Skip to main content

hotshot_contract_adapter/bindings/
reward_claim.rs

1/**
2
3Generated by the following Solidity interface...
4```solidity
5interface RewardClaim {
6    error AccessControlBadConfirmation();
7    error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
8    error AddressEmptyCode(address target);
9    error AlreadyClaimed();
10    error DailyLimitExceeded();
11    error DailyLimitTooHigh();
12    error DefaultAdminCannotBeRenounced();
13    error DefaultAdminCannotBeRevoked();
14    error ERC1967InvalidImplementation(address implementation);
15    error ERC1967NonPayable();
16    error EnforcedPause();
17    error ExpectedPause();
18    error FailedInnerCall();
19    error InvalidAuthRoot();
20    error InvalidInitialization();
21    error InvalidRewardAmount();
22    error NoChangeRequired();
23    error NotInitializing();
24    error ReentrancyGuardReentrantCall();
25    error UUPSUnauthorizedCallContext();
26    error UUPSUnsupportedProxiableUUID(bytes32 slot);
27    error ZeroAdminAddress();
28    error ZeroDailyLimit();
29    error ZeroLightClientAddress();
30    error ZeroPauserAddress();
31    error ZeroTokenAddress();
32    error ZeroTotalSupply();
33
34    event DailyLimitUpdated(uint256 oldLimit, uint256 newLimit);
35    event Initialized(uint64 version);
36    event Paused(address account);
37    event RewardsClaimed(address indexed user, uint256 amount);
38    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
39    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
40    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
41    event Unpaused(address account);
42    event Upgraded(address indexed implementation);
43
44    constructor();
45
46    function BPS_DENOMINATOR() external view returns (uint256);
47    function DEFAULT_ADMIN_ROLE() external view returns (bytes32);
48    function MAX_DAILY_LIMIT_BASIS_POINTS() external view returns (uint256);
49    function PAUSER_ROLE() external view returns (bytes32);
50    function UPGRADE_INTERFACE_VERSION() external view returns (string memory);
51    function claimRewards(uint256 lifetimeRewards, bytes memory authData) external;
52    function claimedRewards(address claimer) external view returns (uint256 claimed);
53    function currentAdmin() external view returns (address);
54    function dailyLimitWei() external view returns (uint256);
55    function espToken() external view returns (address);
56    function getRoleAdmin(bytes32 role) external view returns (bytes32);
57    function getVersion() external pure returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion);
58    function grantRole(bytes32 role, address account) external;
59    function hasRole(bytes32 role, address account) external view returns (bool);
60    function initialize(address _admin, address _espToken, address _lightClient, address _pauser) external;
61    function lastSetDailyLimitBasisPoints() external view returns (uint256);
62    function lightClient() external view returns (address);
63    function pause() external;
64    function paused() external view returns (bool);
65    function proxiableUUID() external view returns (bytes32);
66    function renounceRole(bytes32 role, address callerConfirmation) external;
67    function revokeRole(bytes32 role, address account) external;
68    function setDailyLimit(uint256 basisPoints) external;
69    function supportsInterface(bytes4 interfaceId) external view returns (bool);
70    function totalClaimed() external view returns (uint256);
71    function unpause() external;
72    function upgradeToAndCall(address newImplementation, bytes memory data) external payable;
73}
74```
75
76...which was generated by the following JSON ABI:
77```json
78[
79  {
80    "type": "constructor",
81    "inputs": [],
82    "stateMutability": "nonpayable"
83  },
84  {
85    "type": "function",
86    "name": "BPS_DENOMINATOR",
87    "inputs": [],
88    "outputs": [
89      {
90        "name": "",
91        "type": "uint256",
92        "internalType": "uint256"
93      }
94    ],
95    "stateMutability": "view"
96  },
97  {
98    "type": "function",
99    "name": "DEFAULT_ADMIN_ROLE",
100    "inputs": [],
101    "outputs": [
102      {
103        "name": "",
104        "type": "bytes32",
105        "internalType": "bytes32"
106      }
107    ],
108    "stateMutability": "view"
109  },
110  {
111    "type": "function",
112    "name": "MAX_DAILY_LIMIT_BASIS_POINTS",
113    "inputs": [],
114    "outputs": [
115      {
116        "name": "",
117        "type": "uint256",
118        "internalType": "uint256"
119      }
120    ],
121    "stateMutability": "view"
122  },
123  {
124    "type": "function",
125    "name": "PAUSER_ROLE",
126    "inputs": [],
127    "outputs": [
128      {
129        "name": "",
130        "type": "bytes32",
131        "internalType": "bytes32"
132      }
133    ],
134    "stateMutability": "view"
135  },
136  {
137    "type": "function",
138    "name": "UPGRADE_INTERFACE_VERSION",
139    "inputs": [],
140    "outputs": [
141      {
142        "name": "",
143        "type": "string",
144        "internalType": "string"
145      }
146    ],
147    "stateMutability": "view"
148  },
149  {
150    "type": "function",
151    "name": "claimRewards",
152    "inputs": [
153      {
154        "name": "lifetimeRewards",
155        "type": "uint256",
156        "internalType": "uint256"
157      },
158      {
159        "name": "authData",
160        "type": "bytes",
161        "internalType": "bytes"
162      }
163    ],
164    "outputs": [],
165    "stateMutability": "nonpayable"
166  },
167  {
168    "type": "function",
169    "name": "claimedRewards",
170    "inputs": [
171      {
172        "name": "claimer",
173        "type": "address",
174        "internalType": "address"
175      }
176    ],
177    "outputs": [
178      {
179        "name": "claimed",
180        "type": "uint256",
181        "internalType": "uint256"
182      }
183    ],
184    "stateMutability": "view"
185  },
186  {
187    "type": "function",
188    "name": "currentAdmin",
189    "inputs": [],
190    "outputs": [
191      {
192        "name": "",
193        "type": "address",
194        "internalType": "address"
195      }
196    ],
197    "stateMutability": "view"
198  },
199  {
200    "type": "function",
201    "name": "dailyLimitWei",
202    "inputs": [],
203    "outputs": [
204      {
205        "name": "",
206        "type": "uint256",
207        "internalType": "uint256"
208      }
209    ],
210    "stateMutability": "view"
211  },
212  {
213    "type": "function",
214    "name": "espToken",
215    "inputs": [],
216    "outputs": [
217      {
218        "name": "",
219        "type": "address",
220        "internalType": "contract EspTokenV2"
221      }
222    ],
223    "stateMutability": "view"
224  },
225  {
226    "type": "function",
227    "name": "getRoleAdmin",
228    "inputs": [
229      {
230        "name": "role",
231        "type": "bytes32",
232        "internalType": "bytes32"
233      }
234    ],
235    "outputs": [
236      {
237        "name": "",
238        "type": "bytes32",
239        "internalType": "bytes32"
240      }
241    ],
242    "stateMutability": "view"
243  },
244  {
245    "type": "function",
246    "name": "getVersion",
247    "inputs": [],
248    "outputs": [
249      {
250        "name": "majorVersion",
251        "type": "uint8",
252        "internalType": "uint8"
253      },
254      {
255        "name": "minorVersion",
256        "type": "uint8",
257        "internalType": "uint8"
258      },
259      {
260        "name": "patchVersion",
261        "type": "uint8",
262        "internalType": "uint8"
263      }
264    ],
265    "stateMutability": "pure"
266  },
267  {
268    "type": "function",
269    "name": "grantRole",
270    "inputs": [
271      {
272        "name": "role",
273        "type": "bytes32",
274        "internalType": "bytes32"
275      },
276      {
277        "name": "account",
278        "type": "address",
279        "internalType": "address"
280      }
281    ],
282    "outputs": [],
283    "stateMutability": "nonpayable"
284  },
285  {
286    "type": "function",
287    "name": "hasRole",
288    "inputs": [
289      {
290        "name": "role",
291        "type": "bytes32",
292        "internalType": "bytes32"
293      },
294      {
295        "name": "account",
296        "type": "address",
297        "internalType": "address"
298      }
299    ],
300    "outputs": [
301      {
302        "name": "",
303        "type": "bool",
304        "internalType": "bool"
305      }
306    ],
307    "stateMutability": "view"
308  },
309  {
310    "type": "function",
311    "name": "initialize",
312    "inputs": [
313      {
314        "name": "_admin",
315        "type": "address",
316        "internalType": "address"
317      },
318      {
319        "name": "_espToken",
320        "type": "address",
321        "internalType": "address"
322      },
323      {
324        "name": "_lightClient",
325        "type": "address",
326        "internalType": "address"
327      },
328      {
329        "name": "_pauser",
330        "type": "address",
331        "internalType": "address"
332      }
333    ],
334    "outputs": [],
335    "stateMutability": "nonpayable"
336  },
337  {
338    "type": "function",
339    "name": "lastSetDailyLimitBasisPoints",
340    "inputs": [],
341    "outputs": [
342      {
343        "name": "",
344        "type": "uint256",
345        "internalType": "uint256"
346      }
347    ],
348    "stateMutability": "view"
349  },
350  {
351    "type": "function",
352    "name": "lightClient",
353    "inputs": [],
354    "outputs": [
355      {
356        "name": "",
357        "type": "address",
358        "internalType": "contract LightClientV3"
359      }
360    ],
361    "stateMutability": "view"
362  },
363  {
364    "type": "function",
365    "name": "pause",
366    "inputs": [],
367    "outputs": [],
368    "stateMutability": "nonpayable"
369  },
370  {
371    "type": "function",
372    "name": "paused",
373    "inputs": [],
374    "outputs": [
375      {
376        "name": "",
377        "type": "bool",
378        "internalType": "bool"
379      }
380    ],
381    "stateMutability": "view"
382  },
383  {
384    "type": "function",
385    "name": "proxiableUUID",
386    "inputs": [],
387    "outputs": [
388      {
389        "name": "",
390        "type": "bytes32",
391        "internalType": "bytes32"
392      }
393    ],
394    "stateMutability": "view"
395  },
396  {
397    "type": "function",
398    "name": "renounceRole",
399    "inputs": [
400      {
401        "name": "role",
402        "type": "bytes32",
403        "internalType": "bytes32"
404      },
405      {
406        "name": "callerConfirmation",
407        "type": "address",
408        "internalType": "address"
409      }
410    ],
411    "outputs": [],
412    "stateMutability": "nonpayable"
413  },
414  {
415    "type": "function",
416    "name": "revokeRole",
417    "inputs": [
418      {
419        "name": "role",
420        "type": "bytes32",
421        "internalType": "bytes32"
422      },
423      {
424        "name": "account",
425        "type": "address",
426        "internalType": "address"
427      }
428    ],
429    "outputs": [],
430    "stateMutability": "nonpayable"
431  },
432  {
433    "type": "function",
434    "name": "setDailyLimit",
435    "inputs": [
436      {
437        "name": "basisPoints",
438        "type": "uint256",
439        "internalType": "uint256"
440      }
441    ],
442    "outputs": [],
443    "stateMutability": "nonpayable"
444  },
445  {
446    "type": "function",
447    "name": "supportsInterface",
448    "inputs": [
449      {
450        "name": "interfaceId",
451        "type": "bytes4",
452        "internalType": "bytes4"
453      }
454    ],
455    "outputs": [
456      {
457        "name": "",
458        "type": "bool",
459        "internalType": "bool"
460      }
461    ],
462    "stateMutability": "view"
463  },
464  {
465    "type": "function",
466    "name": "totalClaimed",
467    "inputs": [],
468    "outputs": [
469      {
470        "name": "",
471        "type": "uint256",
472        "internalType": "uint256"
473      }
474    ],
475    "stateMutability": "view"
476  },
477  {
478    "type": "function",
479    "name": "unpause",
480    "inputs": [],
481    "outputs": [],
482    "stateMutability": "nonpayable"
483  },
484  {
485    "type": "function",
486    "name": "upgradeToAndCall",
487    "inputs": [
488      {
489        "name": "newImplementation",
490        "type": "address",
491        "internalType": "address"
492      },
493      {
494        "name": "data",
495        "type": "bytes",
496        "internalType": "bytes"
497      }
498    ],
499    "outputs": [],
500    "stateMutability": "payable"
501  },
502  {
503    "type": "event",
504    "name": "DailyLimitUpdated",
505    "inputs": [
506      {
507        "name": "oldLimit",
508        "type": "uint256",
509        "indexed": false,
510        "internalType": "uint256"
511      },
512      {
513        "name": "newLimit",
514        "type": "uint256",
515        "indexed": false,
516        "internalType": "uint256"
517      }
518    ],
519    "anonymous": false
520  },
521  {
522    "type": "event",
523    "name": "Initialized",
524    "inputs": [
525      {
526        "name": "version",
527        "type": "uint64",
528        "indexed": false,
529        "internalType": "uint64"
530      }
531    ],
532    "anonymous": false
533  },
534  {
535    "type": "event",
536    "name": "Paused",
537    "inputs": [
538      {
539        "name": "account",
540        "type": "address",
541        "indexed": false,
542        "internalType": "address"
543      }
544    ],
545    "anonymous": false
546  },
547  {
548    "type": "event",
549    "name": "RewardsClaimed",
550    "inputs": [
551      {
552        "name": "user",
553        "type": "address",
554        "indexed": true,
555        "internalType": "address"
556      },
557      {
558        "name": "amount",
559        "type": "uint256",
560        "indexed": false,
561        "internalType": "uint256"
562      }
563    ],
564    "anonymous": false
565  },
566  {
567    "type": "event",
568    "name": "RoleAdminChanged",
569    "inputs": [
570      {
571        "name": "role",
572        "type": "bytes32",
573        "indexed": true,
574        "internalType": "bytes32"
575      },
576      {
577        "name": "previousAdminRole",
578        "type": "bytes32",
579        "indexed": true,
580        "internalType": "bytes32"
581      },
582      {
583        "name": "newAdminRole",
584        "type": "bytes32",
585        "indexed": true,
586        "internalType": "bytes32"
587      }
588    ],
589    "anonymous": false
590  },
591  {
592    "type": "event",
593    "name": "RoleGranted",
594    "inputs": [
595      {
596        "name": "role",
597        "type": "bytes32",
598        "indexed": true,
599        "internalType": "bytes32"
600      },
601      {
602        "name": "account",
603        "type": "address",
604        "indexed": true,
605        "internalType": "address"
606      },
607      {
608        "name": "sender",
609        "type": "address",
610        "indexed": true,
611        "internalType": "address"
612      }
613    ],
614    "anonymous": false
615  },
616  {
617    "type": "event",
618    "name": "RoleRevoked",
619    "inputs": [
620      {
621        "name": "role",
622        "type": "bytes32",
623        "indexed": true,
624        "internalType": "bytes32"
625      },
626      {
627        "name": "account",
628        "type": "address",
629        "indexed": true,
630        "internalType": "address"
631      },
632      {
633        "name": "sender",
634        "type": "address",
635        "indexed": true,
636        "internalType": "address"
637      }
638    ],
639    "anonymous": false
640  },
641  {
642    "type": "event",
643    "name": "Unpaused",
644    "inputs": [
645      {
646        "name": "account",
647        "type": "address",
648        "indexed": false,
649        "internalType": "address"
650      }
651    ],
652    "anonymous": false
653  },
654  {
655    "type": "event",
656    "name": "Upgraded",
657    "inputs": [
658      {
659        "name": "implementation",
660        "type": "address",
661        "indexed": true,
662        "internalType": "address"
663      }
664    ],
665    "anonymous": false
666  },
667  {
668    "type": "error",
669    "name": "AccessControlBadConfirmation",
670    "inputs": []
671  },
672  {
673    "type": "error",
674    "name": "AccessControlUnauthorizedAccount",
675    "inputs": [
676      {
677        "name": "account",
678        "type": "address",
679        "internalType": "address"
680      },
681      {
682        "name": "neededRole",
683        "type": "bytes32",
684        "internalType": "bytes32"
685      }
686    ]
687  },
688  {
689    "type": "error",
690    "name": "AddressEmptyCode",
691    "inputs": [
692      {
693        "name": "target",
694        "type": "address",
695        "internalType": "address"
696      }
697    ]
698  },
699  {
700    "type": "error",
701    "name": "AlreadyClaimed",
702    "inputs": []
703  },
704  {
705    "type": "error",
706    "name": "DailyLimitExceeded",
707    "inputs": []
708  },
709  {
710    "type": "error",
711    "name": "DailyLimitTooHigh",
712    "inputs": []
713  },
714  {
715    "type": "error",
716    "name": "DefaultAdminCannotBeRenounced",
717    "inputs": []
718  },
719  {
720    "type": "error",
721    "name": "DefaultAdminCannotBeRevoked",
722    "inputs": []
723  },
724  {
725    "type": "error",
726    "name": "ERC1967InvalidImplementation",
727    "inputs": [
728      {
729        "name": "implementation",
730        "type": "address",
731        "internalType": "address"
732      }
733    ]
734  },
735  {
736    "type": "error",
737    "name": "ERC1967NonPayable",
738    "inputs": []
739  },
740  {
741    "type": "error",
742    "name": "EnforcedPause",
743    "inputs": []
744  },
745  {
746    "type": "error",
747    "name": "ExpectedPause",
748    "inputs": []
749  },
750  {
751    "type": "error",
752    "name": "FailedInnerCall",
753    "inputs": []
754  },
755  {
756    "type": "error",
757    "name": "InvalidAuthRoot",
758    "inputs": []
759  },
760  {
761    "type": "error",
762    "name": "InvalidInitialization",
763    "inputs": []
764  },
765  {
766    "type": "error",
767    "name": "InvalidRewardAmount",
768    "inputs": []
769  },
770  {
771    "type": "error",
772    "name": "NoChangeRequired",
773    "inputs": []
774  },
775  {
776    "type": "error",
777    "name": "NotInitializing",
778    "inputs": []
779  },
780  {
781    "type": "error",
782    "name": "ReentrancyGuardReentrantCall",
783    "inputs": []
784  },
785  {
786    "type": "error",
787    "name": "UUPSUnauthorizedCallContext",
788    "inputs": []
789  },
790  {
791    "type": "error",
792    "name": "UUPSUnsupportedProxiableUUID",
793    "inputs": [
794      {
795        "name": "slot",
796        "type": "bytes32",
797        "internalType": "bytes32"
798      }
799    ]
800  },
801  {
802    "type": "error",
803    "name": "ZeroAdminAddress",
804    "inputs": []
805  },
806  {
807    "type": "error",
808    "name": "ZeroDailyLimit",
809    "inputs": []
810  },
811  {
812    "type": "error",
813    "name": "ZeroLightClientAddress",
814    "inputs": []
815  },
816  {
817    "type": "error",
818    "name": "ZeroPauserAddress",
819    "inputs": []
820  },
821  {
822    "type": "error",
823    "name": "ZeroTokenAddress",
824    "inputs": []
825  },
826  {
827    "type": "error",
828    "name": "ZeroTotalSupply",
829    "inputs": []
830  }
831]
832```*/
833#[allow(
834    non_camel_case_types,
835    non_snake_case,
836    clippy::pub_underscore_fields,
837    clippy::style,
838    clippy::empty_structs_with_brackets
839)]
840pub mod RewardClaim {
841    use super::*;
842    use alloy::sol_types as alloy_sol_types;
843    /// The creation / init bytecode of the contract.
844    ///
845    /// ```text
846    ///0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051611ae06100f95f395f8181610e1201528181610e3b0152610f830152611ae05ff3fe608060405260043610610195575f3560e01c806391d14854116100e7578063cf21395b11610087578063e1a4521811610062578063e1a4521814610478578063e63ab1e91461048d578063f092e13a146104ad578063f8c8765e146104cb575f5ffd5b8063cf21395b1461042f578063d547741f14610444578063d54ad2a114610463575f5ffd5b8063b20d30a9116100c2578063b20d30a91461038f578063b5700e68146103ae578063ba4bcd72146103e5578063bd83434514610404575f5ffd5b806391d1485414610320578063a217fddf1461033f578063ad3cb1cc14610352575f5ffd5b806336568abe1161015257806352d1902d1161012d57806352d1902d146102b6578063549dd8c3146102ca5780635c975abb146102e95780638456cb591461030c575f5ffd5b806336568abe146102705780633f4ba83a1461028f5780634f1ef286146102a3575f5ffd5b806301ffc9a7146101995780630d8e6e2c146101cd5780630f6ca1d6146101f8578063248a9ca31461021b5780632cca74d81461023a5780632f2ff15d1461024f575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b3366004611638565b6104ea565b60405190151581526020015b60405180910390f35b3480156101d8575f5ffd5b5060408051600181525f60208201819052918101919091526060016101c4565b348015610203575f5ffd5b5061020d60045481565b6040519081526020016101c4565b348015610226575f5ffd5b5061020d61023536600461165f565b610520565b348015610245575f5ffd5b5061020d60035481565b34801561025a575f5ffd5b5061026e610269366004611691565b610540565b005b34801561027b575f5ffd5b5061026e61028a366004611691565b6105a4565b34801561029a575f5ffd5b5061026e6105cc565b61026e6102b1366004611700565b6105ee565b3480156102c1575f5ffd5b5061020d610609565b3480156102d5575f5ffd5b5061026e6102e43660046117a5565b610624565b3480156102f4575f5ffd5b505f516020611a945f395f51905f525460ff166101b8565b348015610317575f5ffd5b5061026e6107c3565b34801561032b575f5ffd5b506101b861033a366004611691565b6107e2565b34801561034a575f5ffd5b5061020d5f81565b34801561035d575f5ffd5b50610382604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c4919061181c565b34801561039a575f5ffd5b5061026e6103a936600461165f565b610818565b3480156103b9575f5ffd5b506001546103cd906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b3480156103f0575f5ffd5b506007546103cd906001600160a01b031681565b34801561040f575f5ffd5b5061020d61041e366004611851565b60026020525f908152604090205481565b34801561043a575f5ffd5b5061020d6101f481565b34801561044f575f5ffd5b5061026e61045e366004611691565b610997565b34801561046e575f5ffd5b5061020d60085481565b348015610483575f5ffd5b5061020d61271081565b348015610498575f5ffd5b5061020d5f516020611a545f395f51905f5281565b3480156104b8575f5ffd5b505f546103cd906001600160a01b031681565b3480156104d6575f5ffd5b5061026e6104e536600461186a565b6109bf565b5f6001600160e01b03198216637965db0b60e01b148061051a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f9081525f516020611a745f395f51905f52602052604090206001015490565b61054a8282610ccd565b816105a0576007546001600160a01b03908116908216810361056b57505050565b600780546001600160a01b0319166001600160a01b038481169190911790915581161561059e5761059c5f82610ce9565b505b505b5050565b816105c257604051638b78631d60e01b815260040160405180910390fd5b6105a08282610d6b565b5f516020611a545f395f51905f526105e381610d9e565b6105eb610da8565b50565b6105f6610e07565b6105ff82610ead565b6105a08282610eb7565b5f610612610f78565b505f516020611a345f395f51905f5290565b61062c610fc1565b610634610ff1565b825f0361065457604051633853986560e01b815260040160405180910390fd5b335f81815260026020526040902054841161068257604051630c8d9eab60e31b815260040160405180910390fd5b6001600160a01b0381165f908152600260205260408120546106a490866118cf565b90506106af81611028565b6106ba858585611086565b6106d757604051630651710f60e31b815260040160405180910390fd5b6001600160a01b0382165f908152600260205260408120869055600880548392906107039084906118e2565b90915550505f546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044015f604051808303815f87803b158015610752575f5ffd5b505af1158015610764573d5f5f3e3d5ffd5b50505050816001600160a01b03167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe826040516107a391815260200190565b60405180910390a2505061059e60015f516020611ab45f395f51905f5255565b5f516020611a545f395f51905f526107da81610d9e565b6105eb6111ac565b5f9182525f516020611a745f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f61082281610d9e565b61082a610ff1565b5f821161084a57604051639b11a8bd60e01b815260040160405180910390fd5b6101f482111561086d5760405163c5d2ae5360e01b815260040160405180910390fd5b5f612710835f5f9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e591906118f5565b6108ef919061190c565b6108f99190611923565b90505f811161091b57604051639b11a8bd60e01b815260040160405180910390fd5b600354810361093d5760405163a863aec960e01b815260040160405180910390fd5b60035460408051918252602082018390527f207c4cbdf55ec315a13f0d5e047732ec5d947da056e706593aa509909941cedf910160405180910390a160035560048290556105a060015f516020611ab45f395f51905f5255565b816109b55760405163b0b5fb9960e01b815260040160405180910390fd5b6105a082826111f4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610a045750825b90505f8267ffffffffffffffff166001148015610a205750303b155b905081158015610a2e575080155b15610a4c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7657845460ff60401b1916600160401b1785555b6001600160a01b038916610a9d57604051633ef39b8160e01b815260040160405180910390fd5b6001600160a01b038716610ac45760405163fcabddbd60e01b815260040160405180910390fd5b6001600160a01b038616610aeb5760405163a74995ab60e01b815260040160405180910390fd5b6001600160a01b038816610b1257604051636b093aad60e01b815260040160405180910390fd5b5f886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7391906118f5565b90505f8111610b95576040516348b5002360e01b815260040160405180910390fd5b60645f612710610ba5838561190c565b610baf9190611923565b90505f8111610bd157604051639b11a8bd60e01b815260040160405180910390fd5b610bd9611210565b610be1611218565b610be9611210565b610bf1611228565b610bfb5f8d611238565b50600780546001600160a01b0319166001600160a01b038e16179055610c2e5f516020611a545f395f51905f528a611238565b505f80546001600160a01b03808e166001600160a01b03199283161790925560018054928d169290911691909117905560038190556004829055610c756201518042611923565b600555505084159050610cc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610cd682610520565b610cdf81610d9e565b61059c8383611238565b5f5f516020611a745f395f51905f52610d0284846107e2565b15610d62575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061051a565b5f91505061051a565b6001600160a01b0381163314610d945760405163334bd91960e11b815260040160405180910390fd5b61059e8282610ce9565b6105eb81336112d0565b610db0611309565b5f516020611a945f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e8d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e815f516020611a345f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610eab5760405163703e46dd60e11b815260040160405180910390fd5b565b5f6105a081610d9e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f11575060408051601f3d908101601f19168201909252610f0e918101906118f5565b60015b610f3e57604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f516020611a345f395f51905f528114610f6e57604051632a87526960e21b815260048101829052602401610f35565b61059e8383611338565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eab5760405163703e46dd60e11b815260040160405180910390fd5b5f516020611a945f395f51905f525460ff1615610eab5760405163d93c066560e01b815260040160405180910390fd5b5f516020611ab45f395f51905f5280546001190161102257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f6110366201518042611923565b9050600554811461104b5760058190555f6006555b8160065f82825461105c91906118e2565b909155505060035460065411156105a057604051630652f4c560e21b815260040160405180910390fd5b5f808061109584860186611983565b915091505f6110a533888561138d565b82516020808501516040808701516060808901516080808b015160a0808d015160c0808f015189519b8c018e9052988b019b909b529489019790975290870193909352938501939093529383019390935260e08201526101008101919091529091505f906101200160408051601f198184030181528282528051602091820120600154631330651d60e31b855292519094506001600160a01b039092169263998328e892600480830193928290030181865afa158015611167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b91906118f5565b1493505050505b9392505050565b60015f516020611ab45f395f51905f5255565b6111b4610fc1565b5f516020611a945f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610de9565b6111fd82610520565b61120681610d9e565b61059c8383610ce9565b610eab611402565b611220611402565b610eab61144b565b611230611402565b610eab61146b565b5f5f516020611a745f395f51905f5261125184846107e2565b610d62575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556112863390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061051a565b6112da82826107e2565b6105a05760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610f35565b5f516020611a945f395f51905f525460ff16610eab57604051638dfc202b60e01b815260040160405180910390fd5b61134182611473565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156113855761059e82826114d6565b6105a0611548565b5f5f61139884611567565b90505f5b60a08110156113f9575f848260a081106113b8576113b8611a09565b60200201519050600187831c1680156113df575f82815260208590526040902093506113ef565b5f84815260208390526040902093505b505060010161139c565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610eab57604051631afcd79f60e31b815260040160405180910390fd5b611453611402565b5f516020611a945f395f51905f52805460ff19169055565b611199611402565b806001600160a01b03163b5f036114a857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610f35565b5f516020611a345f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516114f29190611a1d565b5f60405180830381855af49150503d805f811461152a576040519150601f19603f3d011682016040523d82523d5f602084013e61152f565b606091505b509150915061153f8583836115b3565b95945050505050565b3415610eab5760405163b398979f60e01b815260040160405180910390fd5b5f5f8260405160200161157c91815260200190565b60408051808303601f1901815282825280516020918201208184015281518084038201815292820190915281519101209392505050565b6060826115c8576115c38261160f565b611192565b81511580156115df57506001600160a01b0384163b155b1561160857604051639996b31560e01b81526001600160a01b0385166004820152602401610f35565b5080611192565b80511561161f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5f60208284031215611648575f5ffd5b81356001600160e01b031981168114611192575f5ffd5b5f6020828403121561166f575f5ffd5b5035919050565b80356001600160a01b038116811461168c575f5ffd5b919050565b5f5f604083850312156116a2575f5ffd5b823591506116b260208401611676565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116f8576116f86116bb565b604052919050565b5f5f60408385031215611711575f5ffd5b61171a83611676565b9150602083013567ffffffffffffffff811115611735575f5ffd5b8301601f81018513611745575f5ffd5b803567ffffffffffffffff81111561175f5761175f6116bb565b611772601f8201601f19166020016116cf565b818152866020838501011115611786575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f604084860312156117b7575f5ffd5b83359250602084013567ffffffffffffffff8111156117d4575f5ffd5b8401601f810186136117e4575f5ffd5b803567ffffffffffffffff8111156117fa575f5ffd5b86602082840101111561180b575f5ffd5b939660209190910195509293505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611861575f5ffd5b61119282611676565b5f5f5f5f6080858703121561187d575f5ffd5b61188685611676565b935061189460208601611676565b92506118a260408601611676565b91506118b060608601611676565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561051a5761051a6118bb565b8082018082111561051a5761051a6118bb565b5f60208284031215611905575f5ffd5b5051919050565b808202811582820484141761051a5761051a6118bb565b5f8261193d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61194d60e06116cf565b90508060e0830184811115611960575f5ffd5b835b8181101561197a578035835260209283019201611962565b50505092915050565b5f5f6114e08385031215611995575f5ffd5b5f84601f8501126119a4575f5ffd5b505f806114006119b3816116cf565b92508291508501868111156119c6575f5ffd5b855b818110156119e05780358452602093840193016119c8565b508194508661141f8701126119f3575f5ffd5b6119fd8782611942565b93505050509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c6343000823000a
847    /// ```
848    #[rustfmt::skip]
849    #[allow(clippy::all)]
850    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
851        b"`\xA0`@R0`\x80R4\x80\x15a\0\x13W__\xFD[Pa\0\x1Ca\0!V[a\0\xD3V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\0qW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14a\0\xD0W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[`\x80Qa\x1A\xE0a\0\xF9_9_\x81\x81a\x0E\x12\x01R\x81\x81a\x0E;\x01Ra\x0F\x83\x01Ra\x1A\xE0_\xF3\xFE`\x80`@R`\x046\x10a\x01\x95W_5`\xE0\x1C\x80c\x91\xD1HT\x11a\0\xE7W\x80c\xCF!9[\x11a\0\x87W\x80c\xE1\xA4R\x18\x11a\0bW\x80c\xE1\xA4R\x18\x14a\x04xW\x80c\xE6:\xB1\xE9\x14a\x04\x8DW\x80c\xF0\x92\xE1:\x14a\x04\xADW\x80c\xF8\xC8v^\x14a\x04\xCBW__\xFD[\x80c\xCF!9[\x14a\x04/W\x80c\xD5Gt\x1F\x14a\x04DW\x80c\xD5J\xD2\xA1\x14a\x04cW__\xFD[\x80c\xB2\r0\xA9\x11a\0\xC2W\x80c\xB2\r0\xA9\x14a\x03\x8FW\x80c\xB5p\x0Eh\x14a\x03\xAEW\x80c\xBAK\xCDr\x14a\x03\xE5W\x80c\xBD\x83CE\x14a\x04\x04W__\xFD[\x80c\x91\xD1HT\x14a\x03 W\x80c\xA2\x17\xFD\xDF\x14a\x03?W\x80c\xAD<\xB1\xCC\x14a\x03RW__\xFD[\x80c6V\x8A\xBE\x11a\x01RW\x80cR\xD1\x90-\x11a\x01-W\x80cR\xD1\x90-\x14a\x02\xB6W\x80cT\x9D\xD8\xC3\x14a\x02\xCAW\x80c\\\x97Z\xBB\x14a\x02\xE9W\x80c\x84V\xCBY\x14a\x03\x0CW__\xFD[\x80c6V\x8A\xBE\x14a\x02pW\x80c?K\xA8:\x14a\x02\x8FW\x80cO\x1E\xF2\x86\x14a\x02\xA3W__\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x99W\x80c\r\x8En,\x14a\x01\xCDW\x80c\x0Fl\xA1\xD6\x14a\x01\xF8W\x80c$\x8A\x9C\xA3\x14a\x02\x1BW\x80c,\xCAt\xD8\x14a\x02:W\x80c//\xF1]\x14a\x02OW[__\xFD[4\x80\x15a\x01\xA4W__\xFD[Pa\x01\xB8a\x01\xB36`\x04a\x168V[a\x04\xEAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xD8W__\xFD[P`@\x80Q`\x01\x81R_` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R``\x01a\x01\xC4V[4\x80\x15a\x02\x03W__\xFD[Pa\x02\r`\x04T\x81V[`@Q\x90\x81R` \x01a\x01\xC4V[4\x80\x15a\x02&W__\xFD[Pa\x02\ra\x0256`\x04a\x16_V[a\x05 V[4\x80\x15a\x02EW__\xFD[Pa\x02\r`\x03T\x81V[4\x80\x15a\x02ZW__\xFD[Pa\x02na\x02i6`\x04a\x16\x91V[a\x05@V[\0[4\x80\x15a\x02{W__\xFD[Pa\x02na\x02\x8A6`\x04a\x16\x91V[a\x05\xA4V[4\x80\x15a\x02\x9AW__\xFD[Pa\x02na\x05\xCCV[a\x02na\x02\xB16`\x04a\x17\0V[a\x05\xEEV[4\x80\x15a\x02\xC1W__\xFD[Pa\x02\ra\x06\tV[4\x80\x15a\x02\xD5W__\xFD[Pa\x02na\x02\xE46`\x04a\x17\xA5V[a\x06$V[4\x80\x15a\x02\xF4W__\xFD[P_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x01\xB8V[4\x80\x15a\x03\x17W__\xFD[Pa\x02na\x07\xC3V[4\x80\x15a\x03+W__\xFD[Pa\x01\xB8a\x03:6`\x04a\x16\x91V[a\x07\xE2V[4\x80\x15a\x03JW__\xFD[Pa\x02\r_\x81V[4\x80\x15a\x03]W__\xFD[Pa\x03\x82`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03R\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\x01\xC4\x91\x90a\x18\x1CV[4\x80\x15a\x03\x9AW__\xFD[Pa\x02na\x03\xA96`\x04a\x16_V[a\x08\x18V[4\x80\x15a\x03\xB9W__\xFD[P`\x01Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC4V[4\x80\x15a\x03\xF0W__\xFD[P`\x07Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\x0FW__\xFD[Pa\x02\ra\x04\x1E6`\x04a\x18QV[`\x02` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x04:W__\xFD[Pa\x02\ra\x01\xF4\x81V[4\x80\x15a\x04OW__\xFD[Pa\x02na\x04^6`\x04a\x16\x91V[a\t\x97V[4\x80\x15a\x04nW__\xFD[Pa\x02\r`\x08T\x81V[4\x80\x15a\x04\x83W__\xFD[Pa\x02\ra'\x10\x81V[4\x80\x15a\x04\x98W__\xFD[Pa\x02\r_Q` a\x1AT_9_Q\x90_R\x81V[4\x80\x15a\x04\xB8W__\xFD[P_Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xD6W__\xFD[Pa\x02na\x04\xE56`\x04a\x18jV[a\t\xBFV[_`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x05\x1AWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14[\x92\x91PPV[_\x90\x81R_Q` a\x1At_9_Q\x90_R` R`@\x90 `\x01\x01T\x90V[a\x05J\x82\x82a\x0C\xCDV[\x81a\x05\xA0W`\x07T`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x82\x16\x81\x03a\x05kWPPPV[`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x91\x90\x91\x17\x90\x91U\x81\x16\x15a\x05\x9EWa\x05\x9C_\x82a\x0C\xE9V[P[P[PPV[\x81a\x05\xC2W`@Qc\x8Bxc\x1D`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\rkV[_Q` a\x1AT_9_Q\x90_Ra\x05\xE3\x81a\r\x9EV[a\x05\xEBa\r\xA8V[PV[a\x05\xF6a\x0E\x07V[a\x05\xFF\x82a\x0E\xADV[a\x05\xA0\x82\x82a\x0E\xB7V[_a\x06\x12a\x0FxV[P_Q` a\x1A4_9_Q\x90_R\x90V[a\x06,a\x0F\xC1V[a\x064a\x0F\xF1V[\x82_\x03a\x06TW`@Qc8S\x98e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3_\x81\x81R`\x02` R`@\x90 T\x84\x11a\x06\x82W`@Qc\x0C\x8D\x9E\xAB`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x02` R`@\x81 Ta\x06\xA4\x90\x86a\x18\xCFV[\x90Pa\x06\xAF\x81a\x10(V[a\x06\xBA\x85\x85\x85a\x10\x86V[a\x06\xD7W`@Qc\x06Qq\x0F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x02` R`@\x81 \x86\x90U`\x08\x80T\x83\x92\x90a\x07\x03\x90\x84\x90a\x18\xE2V[\x90\x91UPP_T`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x90\x91\x16\x90c@\xC1\x0F\x19\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x07RW__\xFD[PZ\xF1\x15\x80\x15a\x07dW=__>=_\xFD[PPPP\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xFC0\xCD\xDE\xA3\x8E+\xF4\xD6\xEA}?\x9E\xD3\xB6\xAD\x7F\x17d\x19\xF4\x96;\xD8\x13\x18\x06zJ\xEEs\xFE\x82`@Qa\x07\xA3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPa\x05\x9E`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[_Q` a\x1AT_9_Q\x90_Ra\x07\xDA\x81a\r\x9EV[a\x05\xEBa\x11\xACV[_\x91\x82R_Q` a\x1At_9_Q\x90_R` \x90\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[_a\x08\"\x81a\r\x9EV[a\x08*a\x0F\xF1V[_\x82\x11a\x08JW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xF4\x82\x11\x15a\x08mW`@Qc\xC5\xD2\xAES`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a'\x10\x83__\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xC1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xE5\x91\x90a\x18\xF5V[a\x08\xEF\x91\x90a\x19\x0CV[a\x08\xF9\x91\x90a\x19#V[\x90P_\x81\x11a\t\x1BW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T\x81\x03a\t=W`@Qc\xA8c\xAE\xC9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T`@\x80Q\x91\x82R` \x82\x01\x83\x90R\x7F |L\xBD\xF5^\xC3\x15\xA1?\r^\x04w2\xEC]\x94}\xA0V\xE7\x06Y:\xA5\t\x90\x99A\xCE\xDF\x91\x01`@Q\x80\x91\x03\x90\xA1`\x03U`\x04\x82\x90Ua\x05\xA0`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[\x81a\t\xB5W`@Qc\xB0\xB5\xFB\x99`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\x11\xF4V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80T`\x01`@\x1B\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\n\x04WP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\n WP0;\x15[\x90P\x81\x15\x80\x15a\n.WP\x80\x15[\x15a\nLW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01\x17\x85U\x83\x15a\nvW\x84T`\xFF`@\x1B\x19\x16`\x01`@\x1B\x17\x85U[`\x01`\x01`\xA0\x1B\x03\x89\x16a\n\x9DW`@Qc>\xF3\x9B\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x87\x16a\n\xC4W`@Qc\xFC\xAB\xDD\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x16a\n\xEBW`@Qc\xA7I\x95\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x88\x16a\x0B\x12W`@Qck\t:\xAD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x88`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0BOW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Bs\x91\x90a\x18\xF5V[\x90P_\x81\x11a\x0B\x95W`@QcH\xB5\0#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`d_a'\x10a\x0B\xA5\x83\x85a\x19\x0CV[a\x0B\xAF\x91\x90a\x19#V[\x90P_\x81\x11a\x0B\xD1W`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xD9a\x12\x10V[a\x0B\xE1a\x12\x18V[a\x0B\xE9a\x12\x10V[a\x0B\xF1a\x12(V[a\x0B\xFB_\x8Da\x128V[P`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x8E\x16\x17\x90Ua\x0C._Q` a\x1AT_9_Q\x90_R\x8Aa\x128V[P_\x80T`\x01`\x01`\xA0\x1B\x03\x80\x8E\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x01\x80T\x92\x8D\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\x03\x81\x90U`\x04\x82\x90Ua\x0Cub\x01Q\x80Ba\x19#V[`\x05UPP\x84\x15\x90Pa\x0C\xC2W\x84T`\xFF`@\x1B\x19\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[a\x0C\xD6\x82a\x05 V[a\x0C\xDF\x81a\r\x9EV[a\x05\x9C\x83\x83a\x128V[__Q` a\x1At_9_Q\x90_Ra\r\x02\x84\x84a\x07\xE2V[\x15a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x87\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4`\x01\x91PPa\x05\x1AV[_\x91PPa\x05\x1AV[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\r\x94W`@Qc3K\xD9\x19`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x9E\x82\x82a\x0C\xE9V[a\x05\xEB\x813a\x12\xD0V[a\r\xB0a\x13\tV[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x81U\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA3[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1PV[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a\x0E\x8DWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16a\x0E\x81_Q` a\x1A4_9_Q\x90_RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[_a\x05\xA0\x81a\r\x9EV[\x81`\x01`\x01`\xA0\x1B\x03\x16cR\xD1\x90-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x92PPP\x80\x15a\x0F\x11WP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x0F\x0E\x91\x81\x01\x90a\x18\xF5V[`\x01[a\x0F>W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A4_9_Q\x90_R\x81\x14a\x0FnW`@Qc*\x87Ri`\xE2\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x0F5V[a\x05\x9E\x83\x83a\x138V[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16\x15a\x0E\xABW`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\xB4_9_Q\x90_R\x80T`\x01\x19\x01a\x10\"W`@Qc>\xE5\xAE\xB5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x90UV[_a\x106b\x01Q\x80Ba\x19#V[\x90P`\x05T\x81\x14a\x10KW`\x05\x81\x90U_`\x06U[\x81`\x06_\x82\x82Ta\x10\\\x91\x90a\x18\xE2V[\x90\x91UPP`\x03T`\x06T\x11\x15a\x05\xA0W`@Qc\x06R\xF4\xC5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80\x80a\x10\x95\x84\x86\x01\x86a\x19\x83V[\x91P\x91P_a\x10\xA53\x88\x85a\x13\x8DV[\x82Q` \x80\x85\x01Q`@\x80\x87\x01Q``\x80\x89\x01Q`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`\xC0\x80\x8F\x01Q\x89Q\x9B\x8C\x01\x8E\x90R\x98\x8B\x01\x9B\x90\x9BR\x94\x89\x01\x97\x90\x97R\x90\x87\x01\x93\x90\x93R\x93\x85\x01\x93\x90\x93R\x93\x83\x01\x93\x90\x93R`\xE0\x82\x01Ra\x01\0\x81\x01\x91\x90\x91R\x90\x91P_\x90a\x01 \x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x01Tc\x130e\x1D`\xE3\x1B\x85R\x92Q\x90\x94P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92c\x99\x83(\xE8\x92`\x04\x80\x83\x01\x93\x92\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x11gW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x8B\x91\x90a\x18\xF5V[\x14\x93PPPP[\x93\x92PPPV[`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[a\x11\xB4a\x0F\xC1V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16`\x01\x17\x81U\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X3a\r\xE9V[a\x11\xFD\x82a\x05 V[a\x12\x06\x81a\r\x9EV[a\x05\x9C\x83\x83a\x0C\xE9V[a\x0E\xABa\x14\x02V[a\x12 a\x14\x02V[a\x0E\xABa\x14KV[a\x120a\x14\x02V[a\x0E\xABa\x14kV[__Q` a\x1At_9_Q\x90_Ra\x12Q\x84\x84a\x07\xE2V[a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x12\x863\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x85\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4`\x01\x91PPa\x05\x1AV[a\x12\xDA\x82\x82a\x07\xE2V[a\x05\xA0W`@Qc\xE2Q}?`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0F5V[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x0E\xABW`@Qc\x8D\xFC +`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x13A\x82a\x14sV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2\x80Q\x15a\x13\x85Wa\x05\x9E\x82\x82a\x14\xD6V[a\x05\xA0a\x15HV[__a\x13\x98\x84a\x15gV[\x90P_[`\xA0\x81\x10\x15a\x13\xF9W_\x84\x82`\xA0\x81\x10a\x13\xB8Wa\x13\xB8a\x1A\tV[` \x02\x01Q\x90P`\x01\x87\x83\x1C\x16\x80\x15a\x13\xDFW_\x82\x81R` \x85\x90R`@\x90 \x93Pa\x13\xEFV[_\x84\x81R` \x83\x90R`@\x90 \x93P[PP`\x01\x01a\x13\x9CV[P\x94\x93PPPPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0T`\x01`@\x1B\x90\x04`\xFF\x16a\x0E\xABW`@Qc\x1A\xFC\xD7\x9F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x14Sa\x14\x02V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x90UV[a\x11\x99a\x14\x02V[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\x14\xA8W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01a\x0F5V[_Q` a\x1A4_9_Q\x90_R\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``__\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x14\xF2\x91\x90a\x1A\x1DV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x15*W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x15/V[``\x91P[P\x91P\x91Pa\x15?\x85\x83\x83a\x15\xB3V[\x95\x94PPPPPV[4\x15a\x0E\xABW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__\x82`@Q` \x01a\x15|\x91\x81R` \x01\x90V[`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x81\x84\x01R\x81Q\x80\x84\x03\x82\x01\x81R\x92\x82\x01\x90\x91R\x81Q\x91\x01 \x93\x92PPPV[``\x82a\x15\xC8Wa\x15\xC3\x82a\x16\x0FV[a\x11\x92V[\x81Q\x15\x80\x15a\x15\xDFWP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x16\x08W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\x0F5V[P\x80a\x11\x92V[\x80Q\x15a\x16\x1FW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_` \x82\x84\x03\x12\x15a\x16HW__\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x11\x92W__\xFD[_` \x82\x84\x03\x12\x15a\x16oW__\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\x8CW__\xFD[\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x16\xA2W__\xFD[\x825\x91Pa\x16\xB2` \x84\x01a\x16vV[\x90P\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF8Wa\x16\xF8a\x16\xBBV[`@R\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x17\x11W__\xFD[a\x17\x1A\x83a\x16vV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x175W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x17EW__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17_Wa\x17_a\x16\xBBV[a\x17r`\x1F\x82\x01`\x1F\x19\x16` \x01a\x16\xCFV[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a\x17\x86W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15a\x17\xB7W__\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xD4W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x17\xE4W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xFAW__\xFD[\x86` \x82\x84\x01\x01\x11\x15a\x18\x0BW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x18aW__\xFD[a\x11\x92\x82a\x16vV[____`\x80\x85\x87\x03\x12\x15a\x18}W__\xFD[a\x18\x86\x85a\x16vV[\x93Pa\x18\x94` \x86\x01a\x16vV[\x92Pa\x18\xA2`@\x86\x01a\x16vV[\x91Pa\x18\xB0``\x86\x01a\x16vV[\x90P\x92\x95\x91\x94P\x92PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[\x80\x82\x01\x80\x82\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[_` \x82\x84\x03\x12\x15a\x19\x05W__\xFD[PQ\x91\x90PV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05\x1AWa\x05\x1Aa\x18\xBBV[_\x82a\x19=WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V[_a\x19M`\xE0a\x16\xCFV[\x90P\x80`\xE0\x83\x01\x84\x81\x11\x15a\x19`W__\xFD[\x83[\x81\x81\x10\x15a\x19zW\x805\x83R` \x92\x83\x01\x92\x01a\x19bV[PPP\x92\x91PPV[__a\x14\xE0\x83\x85\x03\x12\x15a\x19\x95W__\xFD[_\x84`\x1F\x85\x01\x12a\x19\xA4W__\xFD[P_\x80a\x14\0a\x19\xB3\x81a\x16\xCFV[\x92P\x82\x91P\x85\x01\x86\x81\x11\x15a\x19\xC6W__\xFD[\x85[\x81\x81\x10\x15a\x19\xE0W\x805\x84R` \x93\x84\x01\x93\x01a\x19\xC8V[P\x81\x94P\x86a\x14\x1F\x87\x01\x12a\x19\xF3W__\xFD[a\x19\xFD\x87\x82a\x19BV[\x93PPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV\xFE6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCe\xD7\xA2\x8E2e\xB3zdt\x92\x9F3e!\xB32\xC1h\x1B\x93?l\xB9\xF37fsD\r\x86*\x02\xDD{\xC7\xDE\xC4\xDC\xEE\xDD\xA7u\xE5\x8D\xD5A\xE0\x8A\x11llS\x81\\\x0B\xD0(\x19/{bh\0\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\xA1dsolcC\0\x08#\0\n",
852    );
853    /// The runtime bytecode of the contract, as deployed on the network.
854    ///
855    /// ```text
856    ///0x608060405260043610610195575f3560e01c806391d14854116100e7578063cf21395b11610087578063e1a4521811610062578063e1a4521814610478578063e63ab1e91461048d578063f092e13a146104ad578063f8c8765e146104cb575f5ffd5b8063cf21395b1461042f578063d547741f14610444578063d54ad2a114610463575f5ffd5b8063b20d30a9116100c2578063b20d30a91461038f578063b5700e68146103ae578063ba4bcd72146103e5578063bd83434514610404575f5ffd5b806391d1485414610320578063a217fddf1461033f578063ad3cb1cc14610352575f5ffd5b806336568abe1161015257806352d1902d1161012d57806352d1902d146102b6578063549dd8c3146102ca5780635c975abb146102e95780638456cb591461030c575f5ffd5b806336568abe146102705780633f4ba83a1461028f5780634f1ef286146102a3575f5ffd5b806301ffc9a7146101995780630d8e6e2c146101cd5780630f6ca1d6146101f8578063248a9ca31461021b5780632cca74d81461023a5780632f2ff15d1461024f575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b3366004611638565b6104ea565b60405190151581526020015b60405180910390f35b3480156101d8575f5ffd5b5060408051600181525f60208201819052918101919091526060016101c4565b348015610203575f5ffd5b5061020d60045481565b6040519081526020016101c4565b348015610226575f5ffd5b5061020d61023536600461165f565b610520565b348015610245575f5ffd5b5061020d60035481565b34801561025a575f5ffd5b5061026e610269366004611691565b610540565b005b34801561027b575f5ffd5b5061026e61028a366004611691565b6105a4565b34801561029a575f5ffd5b5061026e6105cc565b61026e6102b1366004611700565b6105ee565b3480156102c1575f5ffd5b5061020d610609565b3480156102d5575f5ffd5b5061026e6102e43660046117a5565b610624565b3480156102f4575f5ffd5b505f516020611a945f395f51905f525460ff166101b8565b348015610317575f5ffd5b5061026e6107c3565b34801561032b575f5ffd5b506101b861033a366004611691565b6107e2565b34801561034a575f5ffd5b5061020d5f81565b34801561035d575f5ffd5b50610382604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c4919061181c565b34801561039a575f5ffd5b5061026e6103a936600461165f565b610818565b3480156103b9575f5ffd5b506001546103cd906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b3480156103f0575f5ffd5b506007546103cd906001600160a01b031681565b34801561040f575f5ffd5b5061020d61041e366004611851565b60026020525f908152604090205481565b34801561043a575f5ffd5b5061020d6101f481565b34801561044f575f5ffd5b5061026e61045e366004611691565b610997565b34801561046e575f5ffd5b5061020d60085481565b348015610483575f5ffd5b5061020d61271081565b348015610498575f5ffd5b5061020d5f516020611a545f395f51905f5281565b3480156104b8575f5ffd5b505f546103cd906001600160a01b031681565b3480156104d6575f5ffd5b5061026e6104e536600461186a565b6109bf565b5f6001600160e01b03198216637965db0b60e01b148061051a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f9081525f516020611a745f395f51905f52602052604090206001015490565b61054a8282610ccd565b816105a0576007546001600160a01b03908116908216810361056b57505050565b600780546001600160a01b0319166001600160a01b038481169190911790915581161561059e5761059c5f82610ce9565b505b505b5050565b816105c257604051638b78631d60e01b815260040160405180910390fd5b6105a08282610d6b565b5f516020611a545f395f51905f526105e381610d9e565b6105eb610da8565b50565b6105f6610e07565b6105ff82610ead565b6105a08282610eb7565b5f610612610f78565b505f516020611a345f395f51905f5290565b61062c610fc1565b610634610ff1565b825f0361065457604051633853986560e01b815260040160405180910390fd5b335f81815260026020526040902054841161068257604051630c8d9eab60e31b815260040160405180910390fd5b6001600160a01b0381165f908152600260205260408120546106a490866118cf565b90506106af81611028565b6106ba858585611086565b6106d757604051630651710f60e31b815260040160405180910390fd5b6001600160a01b0382165f908152600260205260408120869055600880548392906107039084906118e2565b90915550505f546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044015f604051808303815f87803b158015610752575f5ffd5b505af1158015610764573d5f5f3e3d5ffd5b50505050816001600160a01b03167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe826040516107a391815260200190565b60405180910390a2505061059e60015f516020611ab45f395f51905f5255565b5f516020611a545f395f51905f526107da81610d9e565b6105eb6111ac565b5f9182525f516020611a745f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f61082281610d9e565b61082a610ff1565b5f821161084a57604051639b11a8bd60e01b815260040160405180910390fd5b6101f482111561086d5760405163c5d2ae5360e01b815260040160405180910390fd5b5f612710835f5f9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e591906118f5565b6108ef919061190c565b6108f99190611923565b90505f811161091b57604051639b11a8bd60e01b815260040160405180910390fd5b600354810361093d5760405163a863aec960e01b815260040160405180910390fd5b60035460408051918252602082018390527f207c4cbdf55ec315a13f0d5e047732ec5d947da056e706593aa509909941cedf910160405180910390a160035560048290556105a060015f516020611ab45f395f51905f5255565b816109b55760405163b0b5fb9960e01b815260040160405180910390fd5b6105a082826111f4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610a045750825b90505f8267ffffffffffffffff166001148015610a205750303b155b905081158015610a2e575080155b15610a4c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7657845460ff60401b1916600160401b1785555b6001600160a01b038916610a9d57604051633ef39b8160e01b815260040160405180910390fd5b6001600160a01b038716610ac45760405163fcabddbd60e01b815260040160405180910390fd5b6001600160a01b038616610aeb5760405163a74995ab60e01b815260040160405180910390fd5b6001600160a01b038816610b1257604051636b093aad60e01b815260040160405180910390fd5b5f886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7391906118f5565b90505f8111610b95576040516348b5002360e01b815260040160405180910390fd5b60645f612710610ba5838561190c565b610baf9190611923565b90505f8111610bd157604051639b11a8bd60e01b815260040160405180910390fd5b610bd9611210565b610be1611218565b610be9611210565b610bf1611228565b610bfb5f8d611238565b50600780546001600160a01b0319166001600160a01b038e16179055610c2e5f516020611a545f395f51905f528a611238565b505f80546001600160a01b03808e166001600160a01b03199283161790925560018054928d169290911691909117905560038190556004829055610c756201518042611923565b600555505084159050610cc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610cd682610520565b610cdf81610d9e565b61059c8383611238565b5f5f516020611a745f395f51905f52610d0284846107e2565b15610d62575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061051a565b5f91505061051a565b6001600160a01b0381163314610d945760405163334bd91960e11b815260040160405180910390fd5b61059e8282610ce9565b6105eb81336112d0565b610db0611309565b5f516020611a945f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e8d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e815f516020611a345f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610eab5760405163703e46dd60e11b815260040160405180910390fd5b565b5f6105a081610d9e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f11575060408051601f3d908101601f19168201909252610f0e918101906118f5565b60015b610f3e57604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f516020611a345f395f51905f528114610f6e57604051632a87526960e21b815260048101829052602401610f35565b61059e8383611338565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eab5760405163703e46dd60e11b815260040160405180910390fd5b5f516020611a945f395f51905f525460ff1615610eab5760405163d93c066560e01b815260040160405180910390fd5b5f516020611ab45f395f51905f5280546001190161102257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f6110366201518042611923565b9050600554811461104b5760058190555f6006555b8160065f82825461105c91906118e2565b909155505060035460065411156105a057604051630652f4c560e21b815260040160405180910390fd5b5f808061109584860186611983565b915091505f6110a533888561138d565b82516020808501516040808701516060808901516080808b015160a0808d015160c0808f015189519b8c018e9052988b019b909b529489019790975290870193909352938501939093529383019390935260e08201526101008101919091529091505f906101200160408051601f198184030181528282528051602091820120600154631330651d60e31b855292519094506001600160a01b039092169263998328e892600480830193928290030181865afa158015611167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b91906118f5565b1493505050505b9392505050565b60015f516020611ab45f395f51905f5255565b6111b4610fc1565b5f516020611a945f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610de9565b6111fd82610520565b61120681610d9e565b61059c8383610ce9565b610eab611402565b611220611402565b610eab61144b565b611230611402565b610eab61146b565b5f5f516020611a745f395f51905f5261125184846107e2565b610d62575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556112863390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061051a565b6112da82826107e2565b6105a05760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610f35565b5f516020611a945f395f51905f525460ff16610eab57604051638dfc202b60e01b815260040160405180910390fd5b61134182611473565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156113855761059e82826114d6565b6105a0611548565b5f5f61139884611567565b90505f5b60a08110156113f9575f848260a081106113b8576113b8611a09565b60200201519050600187831c1680156113df575f82815260208590526040902093506113ef565b5f84815260208390526040902093505b505060010161139c565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610eab57604051631afcd79f60e31b815260040160405180910390fd5b611453611402565b5f516020611a945f395f51905f52805460ff19169055565b611199611402565b806001600160a01b03163b5f036114a857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610f35565b5f516020611a345f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516114f29190611a1d565b5f60405180830381855af49150503d805f811461152a576040519150601f19603f3d011682016040523d82523d5f602084013e61152f565b606091505b509150915061153f8583836115b3565b95945050505050565b3415610eab5760405163b398979f60e01b815260040160405180910390fd5b5f5f8260405160200161157c91815260200190565b60408051808303601f1901815282825280516020918201208184015281518084038201815292820190915281519101209392505050565b6060826115c8576115c38261160f565b611192565b81511580156115df57506001600160a01b0384163b155b1561160857604051639996b31560e01b81526001600160a01b0385166004820152602401610f35565b5080611192565b80511561161f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5f60208284031215611648575f5ffd5b81356001600160e01b031981168114611192575f5ffd5b5f6020828403121561166f575f5ffd5b5035919050565b80356001600160a01b038116811461168c575f5ffd5b919050565b5f5f604083850312156116a2575f5ffd5b823591506116b260208401611676565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116f8576116f86116bb565b604052919050565b5f5f60408385031215611711575f5ffd5b61171a83611676565b9150602083013567ffffffffffffffff811115611735575f5ffd5b8301601f81018513611745575f5ffd5b803567ffffffffffffffff81111561175f5761175f6116bb565b611772601f8201601f19166020016116cf565b818152866020838501011115611786575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f604084860312156117b7575f5ffd5b83359250602084013567ffffffffffffffff8111156117d4575f5ffd5b8401601f810186136117e4575f5ffd5b803567ffffffffffffffff8111156117fa575f5ffd5b86602082840101111561180b575f5ffd5b939660209190910195509293505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611861575f5ffd5b61119282611676565b5f5f5f5f6080858703121561187d575f5ffd5b61188685611676565b935061189460208601611676565b92506118a260408601611676565b91506118b060608601611676565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561051a5761051a6118bb565b8082018082111561051a5761051a6118bb565b5f60208284031215611905575f5ffd5b5051919050565b808202811582820484141761051a5761051a6118bb565b5f8261193d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61194d60e06116cf565b90508060e0830184811115611960575f5ffd5b835b8181101561197a578035835260209283019201611962565b50505092915050565b5f5f6114e08385031215611995575f5ffd5b5f84601f8501126119a4575f5ffd5b505f806114006119b3816116cf565b92508291508501868111156119c6575f5ffd5b855b818110156119e05780358452602093840193016119c8565b508194508661141f8701126119f3575f5ffd5b6119fd8782611942565b93505050509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c6343000823000a
857    /// ```
858    #[rustfmt::skip]
859    #[allow(clippy::all)]
860    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
861        b"`\x80`@R`\x046\x10a\x01\x95W_5`\xE0\x1C\x80c\x91\xD1HT\x11a\0\xE7W\x80c\xCF!9[\x11a\0\x87W\x80c\xE1\xA4R\x18\x11a\0bW\x80c\xE1\xA4R\x18\x14a\x04xW\x80c\xE6:\xB1\xE9\x14a\x04\x8DW\x80c\xF0\x92\xE1:\x14a\x04\xADW\x80c\xF8\xC8v^\x14a\x04\xCBW__\xFD[\x80c\xCF!9[\x14a\x04/W\x80c\xD5Gt\x1F\x14a\x04DW\x80c\xD5J\xD2\xA1\x14a\x04cW__\xFD[\x80c\xB2\r0\xA9\x11a\0\xC2W\x80c\xB2\r0\xA9\x14a\x03\x8FW\x80c\xB5p\x0Eh\x14a\x03\xAEW\x80c\xBAK\xCDr\x14a\x03\xE5W\x80c\xBD\x83CE\x14a\x04\x04W__\xFD[\x80c\x91\xD1HT\x14a\x03 W\x80c\xA2\x17\xFD\xDF\x14a\x03?W\x80c\xAD<\xB1\xCC\x14a\x03RW__\xFD[\x80c6V\x8A\xBE\x11a\x01RW\x80cR\xD1\x90-\x11a\x01-W\x80cR\xD1\x90-\x14a\x02\xB6W\x80cT\x9D\xD8\xC3\x14a\x02\xCAW\x80c\\\x97Z\xBB\x14a\x02\xE9W\x80c\x84V\xCBY\x14a\x03\x0CW__\xFD[\x80c6V\x8A\xBE\x14a\x02pW\x80c?K\xA8:\x14a\x02\x8FW\x80cO\x1E\xF2\x86\x14a\x02\xA3W__\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x99W\x80c\r\x8En,\x14a\x01\xCDW\x80c\x0Fl\xA1\xD6\x14a\x01\xF8W\x80c$\x8A\x9C\xA3\x14a\x02\x1BW\x80c,\xCAt\xD8\x14a\x02:W\x80c//\xF1]\x14a\x02OW[__\xFD[4\x80\x15a\x01\xA4W__\xFD[Pa\x01\xB8a\x01\xB36`\x04a\x168V[a\x04\xEAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xD8W__\xFD[P`@\x80Q`\x01\x81R_` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R``\x01a\x01\xC4V[4\x80\x15a\x02\x03W__\xFD[Pa\x02\r`\x04T\x81V[`@Q\x90\x81R` \x01a\x01\xC4V[4\x80\x15a\x02&W__\xFD[Pa\x02\ra\x0256`\x04a\x16_V[a\x05 V[4\x80\x15a\x02EW__\xFD[Pa\x02\r`\x03T\x81V[4\x80\x15a\x02ZW__\xFD[Pa\x02na\x02i6`\x04a\x16\x91V[a\x05@V[\0[4\x80\x15a\x02{W__\xFD[Pa\x02na\x02\x8A6`\x04a\x16\x91V[a\x05\xA4V[4\x80\x15a\x02\x9AW__\xFD[Pa\x02na\x05\xCCV[a\x02na\x02\xB16`\x04a\x17\0V[a\x05\xEEV[4\x80\x15a\x02\xC1W__\xFD[Pa\x02\ra\x06\tV[4\x80\x15a\x02\xD5W__\xFD[Pa\x02na\x02\xE46`\x04a\x17\xA5V[a\x06$V[4\x80\x15a\x02\xF4W__\xFD[P_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x01\xB8V[4\x80\x15a\x03\x17W__\xFD[Pa\x02na\x07\xC3V[4\x80\x15a\x03+W__\xFD[Pa\x01\xB8a\x03:6`\x04a\x16\x91V[a\x07\xE2V[4\x80\x15a\x03JW__\xFD[Pa\x02\r_\x81V[4\x80\x15a\x03]W__\xFD[Pa\x03\x82`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03R\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\x01\xC4\x91\x90a\x18\x1CV[4\x80\x15a\x03\x9AW__\xFD[Pa\x02na\x03\xA96`\x04a\x16_V[a\x08\x18V[4\x80\x15a\x03\xB9W__\xFD[P`\x01Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC4V[4\x80\x15a\x03\xF0W__\xFD[P`\x07Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\x0FW__\xFD[Pa\x02\ra\x04\x1E6`\x04a\x18QV[`\x02` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x04:W__\xFD[Pa\x02\ra\x01\xF4\x81V[4\x80\x15a\x04OW__\xFD[Pa\x02na\x04^6`\x04a\x16\x91V[a\t\x97V[4\x80\x15a\x04nW__\xFD[Pa\x02\r`\x08T\x81V[4\x80\x15a\x04\x83W__\xFD[Pa\x02\ra'\x10\x81V[4\x80\x15a\x04\x98W__\xFD[Pa\x02\r_Q` a\x1AT_9_Q\x90_R\x81V[4\x80\x15a\x04\xB8W__\xFD[P_Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xD6W__\xFD[Pa\x02na\x04\xE56`\x04a\x18jV[a\t\xBFV[_`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x05\x1AWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14[\x92\x91PPV[_\x90\x81R_Q` a\x1At_9_Q\x90_R` R`@\x90 `\x01\x01T\x90V[a\x05J\x82\x82a\x0C\xCDV[\x81a\x05\xA0W`\x07T`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x82\x16\x81\x03a\x05kWPPPV[`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x91\x90\x91\x17\x90\x91U\x81\x16\x15a\x05\x9EWa\x05\x9C_\x82a\x0C\xE9V[P[P[PPV[\x81a\x05\xC2W`@Qc\x8Bxc\x1D`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\rkV[_Q` a\x1AT_9_Q\x90_Ra\x05\xE3\x81a\r\x9EV[a\x05\xEBa\r\xA8V[PV[a\x05\xF6a\x0E\x07V[a\x05\xFF\x82a\x0E\xADV[a\x05\xA0\x82\x82a\x0E\xB7V[_a\x06\x12a\x0FxV[P_Q` a\x1A4_9_Q\x90_R\x90V[a\x06,a\x0F\xC1V[a\x064a\x0F\xF1V[\x82_\x03a\x06TW`@Qc8S\x98e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3_\x81\x81R`\x02` R`@\x90 T\x84\x11a\x06\x82W`@Qc\x0C\x8D\x9E\xAB`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x02` R`@\x81 Ta\x06\xA4\x90\x86a\x18\xCFV[\x90Pa\x06\xAF\x81a\x10(V[a\x06\xBA\x85\x85\x85a\x10\x86V[a\x06\xD7W`@Qc\x06Qq\x0F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x02` R`@\x81 \x86\x90U`\x08\x80T\x83\x92\x90a\x07\x03\x90\x84\x90a\x18\xE2V[\x90\x91UPP_T`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x90\x91\x16\x90c@\xC1\x0F\x19\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x07RW__\xFD[PZ\xF1\x15\x80\x15a\x07dW=__>=_\xFD[PPPP\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xFC0\xCD\xDE\xA3\x8E+\xF4\xD6\xEA}?\x9E\xD3\xB6\xAD\x7F\x17d\x19\xF4\x96;\xD8\x13\x18\x06zJ\xEEs\xFE\x82`@Qa\x07\xA3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPa\x05\x9E`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[_Q` a\x1AT_9_Q\x90_Ra\x07\xDA\x81a\r\x9EV[a\x05\xEBa\x11\xACV[_\x91\x82R_Q` a\x1At_9_Q\x90_R` \x90\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[_a\x08\"\x81a\r\x9EV[a\x08*a\x0F\xF1V[_\x82\x11a\x08JW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xF4\x82\x11\x15a\x08mW`@Qc\xC5\xD2\xAES`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a'\x10\x83__\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xC1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xE5\x91\x90a\x18\xF5V[a\x08\xEF\x91\x90a\x19\x0CV[a\x08\xF9\x91\x90a\x19#V[\x90P_\x81\x11a\t\x1BW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T\x81\x03a\t=W`@Qc\xA8c\xAE\xC9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T`@\x80Q\x91\x82R` \x82\x01\x83\x90R\x7F |L\xBD\xF5^\xC3\x15\xA1?\r^\x04w2\xEC]\x94}\xA0V\xE7\x06Y:\xA5\t\x90\x99A\xCE\xDF\x91\x01`@Q\x80\x91\x03\x90\xA1`\x03U`\x04\x82\x90Ua\x05\xA0`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[\x81a\t\xB5W`@Qc\xB0\xB5\xFB\x99`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\x11\xF4V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80T`\x01`@\x1B\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\n\x04WP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\n WP0;\x15[\x90P\x81\x15\x80\x15a\n.WP\x80\x15[\x15a\nLW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01\x17\x85U\x83\x15a\nvW\x84T`\xFF`@\x1B\x19\x16`\x01`@\x1B\x17\x85U[`\x01`\x01`\xA0\x1B\x03\x89\x16a\n\x9DW`@Qc>\xF3\x9B\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x87\x16a\n\xC4W`@Qc\xFC\xAB\xDD\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x16a\n\xEBW`@Qc\xA7I\x95\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x88\x16a\x0B\x12W`@Qck\t:\xAD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x88`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0BOW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Bs\x91\x90a\x18\xF5V[\x90P_\x81\x11a\x0B\x95W`@QcH\xB5\0#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`d_a'\x10a\x0B\xA5\x83\x85a\x19\x0CV[a\x0B\xAF\x91\x90a\x19#V[\x90P_\x81\x11a\x0B\xD1W`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xD9a\x12\x10V[a\x0B\xE1a\x12\x18V[a\x0B\xE9a\x12\x10V[a\x0B\xF1a\x12(V[a\x0B\xFB_\x8Da\x128V[P`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x8E\x16\x17\x90Ua\x0C._Q` a\x1AT_9_Q\x90_R\x8Aa\x128V[P_\x80T`\x01`\x01`\xA0\x1B\x03\x80\x8E\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x01\x80T\x92\x8D\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\x03\x81\x90U`\x04\x82\x90Ua\x0Cub\x01Q\x80Ba\x19#V[`\x05UPP\x84\x15\x90Pa\x0C\xC2W\x84T`\xFF`@\x1B\x19\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[a\x0C\xD6\x82a\x05 V[a\x0C\xDF\x81a\r\x9EV[a\x05\x9C\x83\x83a\x128V[__Q` a\x1At_9_Q\x90_Ra\r\x02\x84\x84a\x07\xE2V[\x15a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x87\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4`\x01\x91PPa\x05\x1AV[_\x91PPa\x05\x1AV[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\r\x94W`@Qc3K\xD9\x19`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x9E\x82\x82a\x0C\xE9V[a\x05\xEB\x813a\x12\xD0V[a\r\xB0a\x13\tV[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x81U\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA3[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1PV[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a\x0E\x8DWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16a\x0E\x81_Q` a\x1A4_9_Q\x90_RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[_a\x05\xA0\x81a\r\x9EV[\x81`\x01`\x01`\xA0\x1B\x03\x16cR\xD1\x90-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x92PPP\x80\x15a\x0F\x11WP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x0F\x0E\x91\x81\x01\x90a\x18\xF5V[`\x01[a\x0F>W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A4_9_Q\x90_R\x81\x14a\x0FnW`@Qc*\x87Ri`\xE2\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x0F5V[a\x05\x9E\x83\x83a\x138V[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16\x15a\x0E\xABW`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\xB4_9_Q\x90_R\x80T`\x01\x19\x01a\x10\"W`@Qc>\xE5\xAE\xB5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x90UV[_a\x106b\x01Q\x80Ba\x19#V[\x90P`\x05T\x81\x14a\x10KW`\x05\x81\x90U_`\x06U[\x81`\x06_\x82\x82Ta\x10\\\x91\x90a\x18\xE2V[\x90\x91UPP`\x03T`\x06T\x11\x15a\x05\xA0W`@Qc\x06R\xF4\xC5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80\x80a\x10\x95\x84\x86\x01\x86a\x19\x83V[\x91P\x91P_a\x10\xA53\x88\x85a\x13\x8DV[\x82Q` \x80\x85\x01Q`@\x80\x87\x01Q``\x80\x89\x01Q`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`\xC0\x80\x8F\x01Q\x89Q\x9B\x8C\x01\x8E\x90R\x98\x8B\x01\x9B\x90\x9BR\x94\x89\x01\x97\x90\x97R\x90\x87\x01\x93\x90\x93R\x93\x85\x01\x93\x90\x93R\x93\x83\x01\x93\x90\x93R`\xE0\x82\x01Ra\x01\0\x81\x01\x91\x90\x91R\x90\x91P_\x90a\x01 \x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x01Tc\x130e\x1D`\xE3\x1B\x85R\x92Q\x90\x94P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92c\x99\x83(\xE8\x92`\x04\x80\x83\x01\x93\x92\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x11gW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x8B\x91\x90a\x18\xF5V[\x14\x93PPPP[\x93\x92PPPV[`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[a\x11\xB4a\x0F\xC1V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16`\x01\x17\x81U\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X3a\r\xE9V[a\x11\xFD\x82a\x05 V[a\x12\x06\x81a\r\x9EV[a\x05\x9C\x83\x83a\x0C\xE9V[a\x0E\xABa\x14\x02V[a\x12 a\x14\x02V[a\x0E\xABa\x14KV[a\x120a\x14\x02V[a\x0E\xABa\x14kV[__Q` a\x1At_9_Q\x90_Ra\x12Q\x84\x84a\x07\xE2V[a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x12\x863\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x85\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4`\x01\x91PPa\x05\x1AV[a\x12\xDA\x82\x82a\x07\xE2V[a\x05\xA0W`@Qc\xE2Q}?`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0F5V[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x0E\xABW`@Qc\x8D\xFC +`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x13A\x82a\x14sV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2\x80Q\x15a\x13\x85Wa\x05\x9E\x82\x82a\x14\xD6V[a\x05\xA0a\x15HV[__a\x13\x98\x84a\x15gV[\x90P_[`\xA0\x81\x10\x15a\x13\xF9W_\x84\x82`\xA0\x81\x10a\x13\xB8Wa\x13\xB8a\x1A\tV[` \x02\x01Q\x90P`\x01\x87\x83\x1C\x16\x80\x15a\x13\xDFW_\x82\x81R` \x85\x90R`@\x90 \x93Pa\x13\xEFV[_\x84\x81R` \x83\x90R`@\x90 \x93P[PP`\x01\x01a\x13\x9CV[P\x94\x93PPPPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0T`\x01`@\x1B\x90\x04`\xFF\x16a\x0E\xABW`@Qc\x1A\xFC\xD7\x9F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x14Sa\x14\x02V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x90UV[a\x11\x99a\x14\x02V[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\x14\xA8W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01a\x0F5V[_Q` a\x1A4_9_Q\x90_R\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``__\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x14\xF2\x91\x90a\x1A\x1DV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x15*W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x15/V[``\x91P[P\x91P\x91Pa\x15?\x85\x83\x83a\x15\xB3V[\x95\x94PPPPPV[4\x15a\x0E\xABW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__\x82`@Q` \x01a\x15|\x91\x81R` \x01\x90V[`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x81\x84\x01R\x81Q\x80\x84\x03\x82\x01\x81R\x92\x82\x01\x90\x91R\x81Q\x91\x01 \x93\x92PPPV[``\x82a\x15\xC8Wa\x15\xC3\x82a\x16\x0FV[a\x11\x92V[\x81Q\x15\x80\x15a\x15\xDFWP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x16\x08W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\x0F5V[P\x80a\x11\x92V[\x80Q\x15a\x16\x1FW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_` \x82\x84\x03\x12\x15a\x16HW__\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x11\x92W__\xFD[_` \x82\x84\x03\x12\x15a\x16oW__\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\x8CW__\xFD[\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x16\xA2W__\xFD[\x825\x91Pa\x16\xB2` \x84\x01a\x16vV[\x90P\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF8Wa\x16\xF8a\x16\xBBV[`@R\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x17\x11W__\xFD[a\x17\x1A\x83a\x16vV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x175W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x17EW__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17_Wa\x17_a\x16\xBBV[a\x17r`\x1F\x82\x01`\x1F\x19\x16` \x01a\x16\xCFV[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a\x17\x86W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15a\x17\xB7W__\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xD4W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x17\xE4W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xFAW__\xFD[\x86` \x82\x84\x01\x01\x11\x15a\x18\x0BW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x18aW__\xFD[a\x11\x92\x82a\x16vV[____`\x80\x85\x87\x03\x12\x15a\x18}W__\xFD[a\x18\x86\x85a\x16vV[\x93Pa\x18\x94` \x86\x01a\x16vV[\x92Pa\x18\xA2`@\x86\x01a\x16vV[\x91Pa\x18\xB0``\x86\x01a\x16vV[\x90P\x92\x95\x91\x94P\x92PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[\x80\x82\x01\x80\x82\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[_` \x82\x84\x03\x12\x15a\x19\x05W__\xFD[PQ\x91\x90PV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05\x1AWa\x05\x1Aa\x18\xBBV[_\x82a\x19=WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V[_a\x19M`\xE0a\x16\xCFV[\x90P\x80`\xE0\x83\x01\x84\x81\x11\x15a\x19`W__\xFD[\x83[\x81\x81\x10\x15a\x19zW\x805\x83R` \x92\x83\x01\x92\x01a\x19bV[PPP\x92\x91PPV[__a\x14\xE0\x83\x85\x03\x12\x15a\x19\x95W__\xFD[_\x84`\x1F\x85\x01\x12a\x19\xA4W__\xFD[P_\x80a\x14\0a\x19\xB3\x81a\x16\xCFV[\x92P\x82\x91P\x85\x01\x86\x81\x11\x15a\x19\xC6W__\xFD[\x85[\x81\x81\x10\x15a\x19\xE0W\x805\x84R` \x93\x84\x01\x93\x01a\x19\xC8V[P\x81\x94P\x86a\x14\x1F\x87\x01\x12a\x19\xF3W__\xFD[a\x19\xFD\x87\x82a\x19BV[\x93PPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV\xFE6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCe\xD7\xA2\x8E2e\xB3zdt\x92\x9F3e!\xB32\xC1h\x1B\x93?l\xB9\xF37fsD\r\x86*\x02\xDD{\xC7\xDE\xC4\xDC\xEE\xDD\xA7u\xE5\x8D\xD5A\xE0\x8A\x11llS\x81\\\x0B\xD0(\x19/{bh\0\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\xA1dsolcC\0\x08#\0\n",
862    );
863    #[derive(serde::Serialize, serde::Deserialize)]
864    #[derive(Default, Debug, PartialEq, Eq, Hash)]
865    /**Custom error with signature `AccessControlBadConfirmation()` and selector `0x6697b232`.
866```solidity
867error AccessControlBadConfirmation();
868```*/
869    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
870    #[derive(Clone)]
871    pub struct AccessControlBadConfirmation;
872    #[allow(
873        non_camel_case_types,
874        non_snake_case,
875        clippy::pub_underscore_fields,
876        clippy::style
877    )]
878    const _: () = {
879        use alloy::sol_types as alloy_sol_types;
880        #[doc(hidden)]
881        #[allow(dead_code)]
882        type UnderlyingSolTuple<'a> = ();
883        #[doc(hidden)]
884        type UnderlyingRustTuple<'a> = ();
885        #[cfg(test)]
886        #[allow(dead_code, unreachable_patterns)]
887        fn _type_assertion(
888            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
889        ) {
890            match _t {
891                alloy_sol_types::private::AssertTypeEq::<
892                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
893                >(_) => {}
894            }
895        }
896        #[automatically_derived]
897        #[doc(hidden)]
898        impl ::core::convert::From<AccessControlBadConfirmation>
899        for UnderlyingRustTuple<'_> {
900            fn from(value: AccessControlBadConfirmation) -> Self {
901                ()
902            }
903        }
904        #[automatically_derived]
905        #[doc(hidden)]
906        impl ::core::convert::From<UnderlyingRustTuple<'_>>
907        for AccessControlBadConfirmation {
908            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
909                Self
910            }
911        }
912        #[automatically_derived]
913        impl alloy_sol_types::SolError for AccessControlBadConfirmation {
914            type Parameters<'a> = UnderlyingSolTuple<'a>;
915            type Token<'a> = <Self::Parameters<
916                'a,
917            > as alloy_sol_types::SolType>::Token<'a>;
918            const SIGNATURE: &'static str = "AccessControlBadConfirmation()";
919            const SELECTOR: [u8; 4] = [102u8, 151u8, 178u8, 50u8];
920            #[inline]
921            fn new<'a>(
922                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
923            ) -> Self {
924                tuple.into()
925            }
926            #[inline]
927            fn tokenize(&self) -> Self::Token<'_> {
928                ()
929            }
930            #[inline]
931            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
932                Self::abi_decode_raw_with_config(
933                    data,
934                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
935                )
936            }
937        }
938    };
939    #[derive(serde::Serialize, serde::Deserialize)]
940    #[derive(Default, Debug, PartialEq, Eq, Hash)]
941    /**Custom error with signature `AccessControlUnauthorizedAccount(address,bytes32)` and selector `0xe2517d3f`.
942```solidity
943error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
944```*/
945    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
946    #[derive(Clone)]
947    pub struct AccessControlUnauthorizedAccount {
948        #[allow(missing_docs)]
949        pub account: alloy::sol_types::private::Address,
950        #[allow(missing_docs)]
951        pub neededRole: alloy::sol_types::private::FixedBytes<32>,
952    }
953    #[allow(
954        non_camel_case_types,
955        non_snake_case,
956        clippy::pub_underscore_fields,
957        clippy::style
958    )]
959    const _: () = {
960        use alloy::sol_types as alloy_sol_types;
961        #[doc(hidden)]
962        #[allow(dead_code)]
963        type UnderlyingSolTuple<'a> = (
964            alloy::sol_types::sol_data::Address,
965            alloy::sol_types::sol_data::FixedBytes<32>,
966        );
967        #[doc(hidden)]
968        type UnderlyingRustTuple<'a> = (
969            alloy::sol_types::private::Address,
970            alloy::sol_types::private::FixedBytes<32>,
971        );
972        #[cfg(test)]
973        #[allow(dead_code, unreachable_patterns)]
974        fn _type_assertion(
975            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
976        ) {
977            match _t {
978                alloy_sol_types::private::AssertTypeEq::<
979                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
980                >(_) => {}
981            }
982        }
983        #[automatically_derived]
984        #[doc(hidden)]
985        impl ::core::convert::From<AccessControlUnauthorizedAccount>
986        for UnderlyingRustTuple<'_> {
987            fn from(value: AccessControlUnauthorizedAccount) -> Self {
988                (value.account, value.neededRole)
989            }
990        }
991        #[automatically_derived]
992        #[doc(hidden)]
993        impl ::core::convert::From<UnderlyingRustTuple<'_>>
994        for AccessControlUnauthorizedAccount {
995            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
996                Self {
997                    account: tuple.0,
998                    neededRole: tuple.1,
999                }
1000            }
1001        }
1002        #[automatically_derived]
1003        impl alloy_sol_types::SolError for AccessControlUnauthorizedAccount {
1004            type Parameters<'a> = UnderlyingSolTuple<'a>;
1005            type Token<'a> = <Self::Parameters<
1006                'a,
1007            > as alloy_sol_types::SolType>::Token<'a>;
1008            const SIGNATURE: &'static str = "AccessControlUnauthorizedAccount(address,bytes32)";
1009            const SELECTOR: [u8; 4] = [226u8, 81u8, 125u8, 63u8];
1010            #[inline]
1011            fn new<'a>(
1012                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1013            ) -> Self {
1014                tuple.into()
1015            }
1016            #[inline]
1017            fn tokenize(&self) -> Self::Token<'_> {
1018                (
1019                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1020                        &self.account,
1021                    ),
1022                    <alloy::sol_types::sol_data::FixedBytes<
1023                        32,
1024                    > as alloy_sol_types::SolType>::tokenize(&self.neededRole),
1025                )
1026            }
1027            #[inline]
1028            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1029                Self::abi_decode_raw_with_config(
1030                    data,
1031                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1032                )
1033            }
1034        }
1035    };
1036    #[derive(serde::Serialize, serde::Deserialize)]
1037    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1038    /**Custom error with signature `AddressEmptyCode(address)` and selector `0x9996b315`.
1039```solidity
1040error AddressEmptyCode(address target);
1041```*/
1042    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1043    #[derive(Clone)]
1044    pub struct AddressEmptyCode {
1045        #[allow(missing_docs)]
1046        pub target: alloy::sol_types::private::Address,
1047    }
1048    #[allow(
1049        non_camel_case_types,
1050        non_snake_case,
1051        clippy::pub_underscore_fields,
1052        clippy::style
1053    )]
1054    const _: () = {
1055        use alloy::sol_types as alloy_sol_types;
1056        #[doc(hidden)]
1057        #[allow(dead_code)]
1058        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
1059        #[doc(hidden)]
1060        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
1061        #[cfg(test)]
1062        #[allow(dead_code, unreachable_patterns)]
1063        fn _type_assertion(
1064            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1065        ) {
1066            match _t {
1067                alloy_sol_types::private::AssertTypeEq::<
1068                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1069                >(_) => {}
1070            }
1071        }
1072        #[automatically_derived]
1073        #[doc(hidden)]
1074        impl ::core::convert::From<AddressEmptyCode> for UnderlyingRustTuple<'_> {
1075            fn from(value: AddressEmptyCode) -> Self {
1076                (value.target,)
1077            }
1078        }
1079        #[automatically_derived]
1080        #[doc(hidden)]
1081        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AddressEmptyCode {
1082            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1083                Self { target: tuple.0 }
1084            }
1085        }
1086        #[automatically_derived]
1087        impl alloy_sol_types::SolError for AddressEmptyCode {
1088            type Parameters<'a> = UnderlyingSolTuple<'a>;
1089            type Token<'a> = <Self::Parameters<
1090                'a,
1091            > as alloy_sol_types::SolType>::Token<'a>;
1092            const SIGNATURE: &'static str = "AddressEmptyCode(address)";
1093            const SELECTOR: [u8; 4] = [153u8, 150u8, 179u8, 21u8];
1094            #[inline]
1095            fn new<'a>(
1096                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1097            ) -> Self {
1098                tuple.into()
1099            }
1100            #[inline]
1101            fn tokenize(&self) -> Self::Token<'_> {
1102                (
1103                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1104                        &self.target,
1105                    ),
1106                )
1107            }
1108            #[inline]
1109            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1110                Self::abi_decode_raw_with_config(
1111                    data,
1112                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1113                )
1114            }
1115        }
1116    };
1117    #[derive(serde::Serialize, serde::Deserialize)]
1118    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1119    /**Custom error with signature `AlreadyClaimed()` and selector `0x646cf558`.
1120```solidity
1121error AlreadyClaimed();
1122```*/
1123    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1124    #[derive(Clone)]
1125    pub struct AlreadyClaimed;
1126    #[allow(
1127        non_camel_case_types,
1128        non_snake_case,
1129        clippy::pub_underscore_fields,
1130        clippy::style
1131    )]
1132    const _: () = {
1133        use alloy::sol_types as alloy_sol_types;
1134        #[doc(hidden)]
1135        #[allow(dead_code)]
1136        type UnderlyingSolTuple<'a> = ();
1137        #[doc(hidden)]
1138        type UnderlyingRustTuple<'a> = ();
1139        #[cfg(test)]
1140        #[allow(dead_code, unreachable_patterns)]
1141        fn _type_assertion(
1142            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1143        ) {
1144            match _t {
1145                alloy_sol_types::private::AssertTypeEq::<
1146                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1147                >(_) => {}
1148            }
1149        }
1150        #[automatically_derived]
1151        #[doc(hidden)]
1152        impl ::core::convert::From<AlreadyClaimed> for UnderlyingRustTuple<'_> {
1153            fn from(value: AlreadyClaimed) -> Self {
1154                ()
1155            }
1156        }
1157        #[automatically_derived]
1158        #[doc(hidden)]
1159        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AlreadyClaimed {
1160            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1161                Self
1162            }
1163        }
1164        #[automatically_derived]
1165        impl alloy_sol_types::SolError for AlreadyClaimed {
1166            type Parameters<'a> = UnderlyingSolTuple<'a>;
1167            type Token<'a> = <Self::Parameters<
1168                'a,
1169            > as alloy_sol_types::SolType>::Token<'a>;
1170            const SIGNATURE: &'static str = "AlreadyClaimed()";
1171            const SELECTOR: [u8; 4] = [100u8, 108u8, 245u8, 88u8];
1172            #[inline]
1173            fn new<'a>(
1174                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1175            ) -> Self {
1176                tuple.into()
1177            }
1178            #[inline]
1179            fn tokenize(&self) -> Self::Token<'_> {
1180                ()
1181            }
1182            #[inline]
1183            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1184                Self::abi_decode_raw_with_config(
1185                    data,
1186                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1187                )
1188            }
1189        }
1190    };
1191    #[derive(serde::Serialize, serde::Deserialize)]
1192    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1193    /**Custom error with signature `DailyLimitExceeded()` and selector `0x194bd314`.
1194```solidity
1195error DailyLimitExceeded();
1196```*/
1197    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1198    #[derive(Clone)]
1199    pub struct DailyLimitExceeded;
1200    #[allow(
1201        non_camel_case_types,
1202        non_snake_case,
1203        clippy::pub_underscore_fields,
1204        clippy::style
1205    )]
1206    const _: () = {
1207        use alloy::sol_types as alloy_sol_types;
1208        #[doc(hidden)]
1209        #[allow(dead_code)]
1210        type UnderlyingSolTuple<'a> = ();
1211        #[doc(hidden)]
1212        type UnderlyingRustTuple<'a> = ();
1213        #[cfg(test)]
1214        #[allow(dead_code, unreachable_patterns)]
1215        fn _type_assertion(
1216            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1217        ) {
1218            match _t {
1219                alloy_sol_types::private::AssertTypeEq::<
1220                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1221                >(_) => {}
1222            }
1223        }
1224        #[automatically_derived]
1225        #[doc(hidden)]
1226        impl ::core::convert::From<DailyLimitExceeded> for UnderlyingRustTuple<'_> {
1227            fn from(value: DailyLimitExceeded) -> Self {
1228                ()
1229            }
1230        }
1231        #[automatically_derived]
1232        #[doc(hidden)]
1233        impl ::core::convert::From<UnderlyingRustTuple<'_>> for DailyLimitExceeded {
1234            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1235                Self
1236            }
1237        }
1238        #[automatically_derived]
1239        impl alloy_sol_types::SolError for DailyLimitExceeded {
1240            type Parameters<'a> = UnderlyingSolTuple<'a>;
1241            type Token<'a> = <Self::Parameters<
1242                'a,
1243            > as alloy_sol_types::SolType>::Token<'a>;
1244            const SIGNATURE: &'static str = "DailyLimitExceeded()";
1245            const SELECTOR: [u8; 4] = [25u8, 75u8, 211u8, 20u8];
1246            #[inline]
1247            fn new<'a>(
1248                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1249            ) -> Self {
1250                tuple.into()
1251            }
1252            #[inline]
1253            fn tokenize(&self) -> Self::Token<'_> {
1254                ()
1255            }
1256            #[inline]
1257            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1258                Self::abi_decode_raw_with_config(
1259                    data,
1260                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1261                )
1262            }
1263        }
1264    };
1265    #[derive(serde::Serialize, serde::Deserialize)]
1266    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1267    /**Custom error with signature `DailyLimitTooHigh()` and selector `0xc5d2ae53`.
1268```solidity
1269error DailyLimitTooHigh();
1270```*/
1271    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1272    #[derive(Clone)]
1273    pub struct DailyLimitTooHigh;
1274    #[allow(
1275        non_camel_case_types,
1276        non_snake_case,
1277        clippy::pub_underscore_fields,
1278        clippy::style
1279    )]
1280    const _: () = {
1281        use alloy::sol_types as alloy_sol_types;
1282        #[doc(hidden)]
1283        #[allow(dead_code)]
1284        type UnderlyingSolTuple<'a> = ();
1285        #[doc(hidden)]
1286        type UnderlyingRustTuple<'a> = ();
1287        #[cfg(test)]
1288        #[allow(dead_code, unreachable_patterns)]
1289        fn _type_assertion(
1290            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1291        ) {
1292            match _t {
1293                alloy_sol_types::private::AssertTypeEq::<
1294                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1295                >(_) => {}
1296            }
1297        }
1298        #[automatically_derived]
1299        #[doc(hidden)]
1300        impl ::core::convert::From<DailyLimitTooHigh> for UnderlyingRustTuple<'_> {
1301            fn from(value: DailyLimitTooHigh) -> Self {
1302                ()
1303            }
1304        }
1305        #[automatically_derived]
1306        #[doc(hidden)]
1307        impl ::core::convert::From<UnderlyingRustTuple<'_>> for DailyLimitTooHigh {
1308            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1309                Self
1310            }
1311        }
1312        #[automatically_derived]
1313        impl alloy_sol_types::SolError for DailyLimitTooHigh {
1314            type Parameters<'a> = UnderlyingSolTuple<'a>;
1315            type Token<'a> = <Self::Parameters<
1316                'a,
1317            > as alloy_sol_types::SolType>::Token<'a>;
1318            const SIGNATURE: &'static str = "DailyLimitTooHigh()";
1319            const SELECTOR: [u8; 4] = [197u8, 210u8, 174u8, 83u8];
1320            #[inline]
1321            fn new<'a>(
1322                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1323            ) -> Self {
1324                tuple.into()
1325            }
1326            #[inline]
1327            fn tokenize(&self) -> Self::Token<'_> {
1328                ()
1329            }
1330            #[inline]
1331            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1332                Self::abi_decode_raw_with_config(
1333                    data,
1334                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1335                )
1336            }
1337        }
1338    };
1339    #[derive(serde::Serialize, serde::Deserialize)]
1340    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1341    /**Custom error with signature `DefaultAdminCannotBeRenounced()` and selector `0x8b78631d`.
1342```solidity
1343error DefaultAdminCannotBeRenounced();
1344```*/
1345    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1346    #[derive(Clone)]
1347    pub struct DefaultAdminCannotBeRenounced;
1348    #[allow(
1349        non_camel_case_types,
1350        non_snake_case,
1351        clippy::pub_underscore_fields,
1352        clippy::style
1353    )]
1354    const _: () = {
1355        use alloy::sol_types as alloy_sol_types;
1356        #[doc(hidden)]
1357        #[allow(dead_code)]
1358        type UnderlyingSolTuple<'a> = ();
1359        #[doc(hidden)]
1360        type UnderlyingRustTuple<'a> = ();
1361        #[cfg(test)]
1362        #[allow(dead_code, unreachable_patterns)]
1363        fn _type_assertion(
1364            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1365        ) {
1366            match _t {
1367                alloy_sol_types::private::AssertTypeEq::<
1368                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1369                >(_) => {}
1370            }
1371        }
1372        #[automatically_derived]
1373        #[doc(hidden)]
1374        impl ::core::convert::From<DefaultAdminCannotBeRenounced>
1375        for UnderlyingRustTuple<'_> {
1376            fn from(value: DefaultAdminCannotBeRenounced) -> Self {
1377                ()
1378            }
1379        }
1380        #[automatically_derived]
1381        #[doc(hidden)]
1382        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1383        for DefaultAdminCannotBeRenounced {
1384            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1385                Self
1386            }
1387        }
1388        #[automatically_derived]
1389        impl alloy_sol_types::SolError for DefaultAdminCannotBeRenounced {
1390            type Parameters<'a> = UnderlyingSolTuple<'a>;
1391            type Token<'a> = <Self::Parameters<
1392                'a,
1393            > as alloy_sol_types::SolType>::Token<'a>;
1394            const SIGNATURE: &'static str = "DefaultAdminCannotBeRenounced()";
1395            const SELECTOR: [u8; 4] = [139u8, 120u8, 99u8, 29u8];
1396            #[inline]
1397            fn new<'a>(
1398                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1399            ) -> Self {
1400                tuple.into()
1401            }
1402            #[inline]
1403            fn tokenize(&self) -> Self::Token<'_> {
1404                ()
1405            }
1406            #[inline]
1407            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1408                Self::abi_decode_raw_with_config(
1409                    data,
1410                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1411                )
1412            }
1413        }
1414    };
1415    #[derive(serde::Serialize, serde::Deserialize)]
1416    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1417    /**Custom error with signature `DefaultAdminCannotBeRevoked()` and selector `0xb0b5fb99`.
1418```solidity
1419error DefaultAdminCannotBeRevoked();
1420```*/
1421    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1422    #[derive(Clone)]
1423    pub struct DefaultAdminCannotBeRevoked;
1424    #[allow(
1425        non_camel_case_types,
1426        non_snake_case,
1427        clippy::pub_underscore_fields,
1428        clippy::style
1429    )]
1430    const _: () = {
1431        use alloy::sol_types as alloy_sol_types;
1432        #[doc(hidden)]
1433        #[allow(dead_code)]
1434        type UnderlyingSolTuple<'a> = ();
1435        #[doc(hidden)]
1436        type UnderlyingRustTuple<'a> = ();
1437        #[cfg(test)]
1438        #[allow(dead_code, unreachable_patterns)]
1439        fn _type_assertion(
1440            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1441        ) {
1442            match _t {
1443                alloy_sol_types::private::AssertTypeEq::<
1444                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1445                >(_) => {}
1446            }
1447        }
1448        #[automatically_derived]
1449        #[doc(hidden)]
1450        impl ::core::convert::From<DefaultAdminCannotBeRevoked>
1451        for UnderlyingRustTuple<'_> {
1452            fn from(value: DefaultAdminCannotBeRevoked) -> Self {
1453                ()
1454            }
1455        }
1456        #[automatically_derived]
1457        #[doc(hidden)]
1458        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1459        for DefaultAdminCannotBeRevoked {
1460            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1461                Self
1462            }
1463        }
1464        #[automatically_derived]
1465        impl alloy_sol_types::SolError for DefaultAdminCannotBeRevoked {
1466            type Parameters<'a> = UnderlyingSolTuple<'a>;
1467            type Token<'a> = <Self::Parameters<
1468                'a,
1469            > as alloy_sol_types::SolType>::Token<'a>;
1470            const SIGNATURE: &'static str = "DefaultAdminCannotBeRevoked()";
1471            const SELECTOR: [u8; 4] = [176u8, 181u8, 251u8, 153u8];
1472            #[inline]
1473            fn new<'a>(
1474                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1475            ) -> Self {
1476                tuple.into()
1477            }
1478            #[inline]
1479            fn tokenize(&self) -> Self::Token<'_> {
1480                ()
1481            }
1482            #[inline]
1483            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1484                Self::abi_decode_raw_with_config(
1485                    data,
1486                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1487                )
1488            }
1489        }
1490    };
1491    #[derive(serde::Serialize, serde::Deserialize)]
1492    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1493    /**Custom error with signature `ERC1967InvalidImplementation(address)` and selector `0x4c9c8ce3`.
1494```solidity
1495error ERC1967InvalidImplementation(address implementation);
1496```*/
1497    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1498    #[derive(Clone)]
1499    pub struct ERC1967InvalidImplementation {
1500        #[allow(missing_docs)]
1501        pub implementation: alloy::sol_types::private::Address,
1502    }
1503    #[allow(
1504        non_camel_case_types,
1505        non_snake_case,
1506        clippy::pub_underscore_fields,
1507        clippy::style
1508    )]
1509    const _: () = {
1510        use alloy::sol_types as alloy_sol_types;
1511        #[doc(hidden)]
1512        #[allow(dead_code)]
1513        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
1514        #[doc(hidden)]
1515        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
1516        #[cfg(test)]
1517        #[allow(dead_code, unreachable_patterns)]
1518        fn _type_assertion(
1519            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1520        ) {
1521            match _t {
1522                alloy_sol_types::private::AssertTypeEq::<
1523                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1524                >(_) => {}
1525            }
1526        }
1527        #[automatically_derived]
1528        #[doc(hidden)]
1529        impl ::core::convert::From<ERC1967InvalidImplementation>
1530        for UnderlyingRustTuple<'_> {
1531            fn from(value: ERC1967InvalidImplementation) -> Self {
1532                (value.implementation,)
1533            }
1534        }
1535        #[automatically_derived]
1536        #[doc(hidden)]
1537        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1538        for ERC1967InvalidImplementation {
1539            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1540                Self { implementation: tuple.0 }
1541            }
1542        }
1543        #[automatically_derived]
1544        impl alloy_sol_types::SolError for ERC1967InvalidImplementation {
1545            type Parameters<'a> = UnderlyingSolTuple<'a>;
1546            type Token<'a> = <Self::Parameters<
1547                'a,
1548            > as alloy_sol_types::SolType>::Token<'a>;
1549            const SIGNATURE: &'static str = "ERC1967InvalidImplementation(address)";
1550            const SELECTOR: [u8; 4] = [76u8, 156u8, 140u8, 227u8];
1551            #[inline]
1552            fn new<'a>(
1553                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1554            ) -> Self {
1555                tuple.into()
1556            }
1557            #[inline]
1558            fn tokenize(&self) -> Self::Token<'_> {
1559                (
1560                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1561                        &self.implementation,
1562                    ),
1563                )
1564            }
1565            #[inline]
1566            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1567                Self::abi_decode_raw_with_config(
1568                    data,
1569                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1570                )
1571            }
1572        }
1573    };
1574    #[derive(serde::Serialize, serde::Deserialize)]
1575    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1576    /**Custom error with signature `ERC1967NonPayable()` and selector `0xb398979f`.
1577```solidity
1578error ERC1967NonPayable();
1579```*/
1580    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1581    #[derive(Clone)]
1582    pub struct ERC1967NonPayable;
1583    #[allow(
1584        non_camel_case_types,
1585        non_snake_case,
1586        clippy::pub_underscore_fields,
1587        clippy::style
1588    )]
1589    const _: () = {
1590        use alloy::sol_types as alloy_sol_types;
1591        #[doc(hidden)]
1592        #[allow(dead_code)]
1593        type UnderlyingSolTuple<'a> = ();
1594        #[doc(hidden)]
1595        type UnderlyingRustTuple<'a> = ();
1596        #[cfg(test)]
1597        #[allow(dead_code, unreachable_patterns)]
1598        fn _type_assertion(
1599            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1600        ) {
1601            match _t {
1602                alloy_sol_types::private::AssertTypeEq::<
1603                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1604                >(_) => {}
1605            }
1606        }
1607        #[automatically_derived]
1608        #[doc(hidden)]
1609        impl ::core::convert::From<ERC1967NonPayable> for UnderlyingRustTuple<'_> {
1610            fn from(value: ERC1967NonPayable) -> Self {
1611                ()
1612            }
1613        }
1614        #[automatically_derived]
1615        #[doc(hidden)]
1616        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1967NonPayable {
1617            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1618                Self
1619            }
1620        }
1621        #[automatically_derived]
1622        impl alloy_sol_types::SolError for ERC1967NonPayable {
1623            type Parameters<'a> = UnderlyingSolTuple<'a>;
1624            type Token<'a> = <Self::Parameters<
1625                'a,
1626            > as alloy_sol_types::SolType>::Token<'a>;
1627            const SIGNATURE: &'static str = "ERC1967NonPayable()";
1628            const SELECTOR: [u8; 4] = [179u8, 152u8, 151u8, 159u8];
1629            #[inline]
1630            fn new<'a>(
1631                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1632            ) -> Self {
1633                tuple.into()
1634            }
1635            #[inline]
1636            fn tokenize(&self) -> Self::Token<'_> {
1637                ()
1638            }
1639            #[inline]
1640            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1641                Self::abi_decode_raw_with_config(
1642                    data,
1643                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1644                )
1645            }
1646        }
1647    };
1648    #[derive(serde::Serialize, serde::Deserialize)]
1649    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1650    /**Custom error with signature `EnforcedPause()` and selector `0xd93c0665`.
1651```solidity
1652error EnforcedPause();
1653```*/
1654    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1655    #[derive(Clone)]
1656    pub struct EnforcedPause;
1657    #[allow(
1658        non_camel_case_types,
1659        non_snake_case,
1660        clippy::pub_underscore_fields,
1661        clippy::style
1662    )]
1663    const _: () = {
1664        use alloy::sol_types as alloy_sol_types;
1665        #[doc(hidden)]
1666        #[allow(dead_code)]
1667        type UnderlyingSolTuple<'a> = ();
1668        #[doc(hidden)]
1669        type UnderlyingRustTuple<'a> = ();
1670        #[cfg(test)]
1671        #[allow(dead_code, unreachable_patterns)]
1672        fn _type_assertion(
1673            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1674        ) {
1675            match _t {
1676                alloy_sol_types::private::AssertTypeEq::<
1677                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1678                >(_) => {}
1679            }
1680        }
1681        #[automatically_derived]
1682        #[doc(hidden)]
1683        impl ::core::convert::From<EnforcedPause> for UnderlyingRustTuple<'_> {
1684            fn from(value: EnforcedPause) -> Self {
1685                ()
1686            }
1687        }
1688        #[automatically_derived]
1689        #[doc(hidden)]
1690        impl ::core::convert::From<UnderlyingRustTuple<'_>> for EnforcedPause {
1691            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1692                Self
1693            }
1694        }
1695        #[automatically_derived]
1696        impl alloy_sol_types::SolError for EnforcedPause {
1697            type Parameters<'a> = UnderlyingSolTuple<'a>;
1698            type Token<'a> = <Self::Parameters<
1699                'a,
1700            > as alloy_sol_types::SolType>::Token<'a>;
1701            const SIGNATURE: &'static str = "EnforcedPause()";
1702            const SELECTOR: [u8; 4] = [217u8, 60u8, 6u8, 101u8];
1703            #[inline]
1704            fn new<'a>(
1705                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1706            ) -> Self {
1707                tuple.into()
1708            }
1709            #[inline]
1710            fn tokenize(&self) -> Self::Token<'_> {
1711                ()
1712            }
1713            #[inline]
1714            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1715                Self::abi_decode_raw_with_config(
1716                    data,
1717                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1718                )
1719            }
1720        }
1721    };
1722    #[derive(serde::Serialize, serde::Deserialize)]
1723    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1724    /**Custom error with signature `ExpectedPause()` and selector `0x8dfc202b`.
1725```solidity
1726error ExpectedPause();
1727```*/
1728    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1729    #[derive(Clone)]
1730    pub struct ExpectedPause;
1731    #[allow(
1732        non_camel_case_types,
1733        non_snake_case,
1734        clippy::pub_underscore_fields,
1735        clippy::style
1736    )]
1737    const _: () = {
1738        use alloy::sol_types as alloy_sol_types;
1739        #[doc(hidden)]
1740        #[allow(dead_code)]
1741        type UnderlyingSolTuple<'a> = ();
1742        #[doc(hidden)]
1743        type UnderlyingRustTuple<'a> = ();
1744        #[cfg(test)]
1745        #[allow(dead_code, unreachable_patterns)]
1746        fn _type_assertion(
1747            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1748        ) {
1749            match _t {
1750                alloy_sol_types::private::AssertTypeEq::<
1751                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1752                >(_) => {}
1753            }
1754        }
1755        #[automatically_derived]
1756        #[doc(hidden)]
1757        impl ::core::convert::From<ExpectedPause> for UnderlyingRustTuple<'_> {
1758            fn from(value: ExpectedPause) -> Self {
1759                ()
1760            }
1761        }
1762        #[automatically_derived]
1763        #[doc(hidden)]
1764        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ExpectedPause {
1765            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1766                Self
1767            }
1768        }
1769        #[automatically_derived]
1770        impl alloy_sol_types::SolError for ExpectedPause {
1771            type Parameters<'a> = UnderlyingSolTuple<'a>;
1772            type Token<'a> = <Self::Parameters<
1773                'a,
1774            > as alloy_sol_types::SolType>::Token<'a>;
1775            const SIGNATURE: &'static str = "ExpectedPause()";
1776            const SELECTOR: [u8; 4] = [141u8, 252u8, 32u8, 43u8];
1777            #[inline]
1778            fn new<'a>(
1779                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1780            ) -> Self {
1781                tuple.into()
1782            }
1783            #[inline]
1784            fn tokenize(&self) -> Self::Token<'_> {
1785                ()
1786            }
1787            #[inline]
1788            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1789                Self::abi_decode_raw_with_config(
1790                    data,
1791                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1792                )
1793            }
1794        }
1795    };
1796    #[derive(serde::Serialize, serde::Deserialize)]
1797    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1798    /**Custom error with signature `FailedInnerCall()` and selector `0x1425ea42`.
1799```solidity
1800error FailedInnerCall();
1801```*/
1802    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1803    #[derive(Clone)]
1804    pub struct FailedInnerCall;
1805    #[allow(
1806        non_camel_case_types,
1807        non_snake_case,
1808        clippy::pub_underscore_fields,
1809        clippy::style
1810    )]
1811    const _: () = {
1812        use alloy::sol_types as alloy_sol_types;
1813        #[doc(hidden)]
1814        #[allow(dead_code)]
1815        type UnderlyingSolTuple<'a> = ();
1816        #[doc(hidden)]
1817        type UnderlyingRustTuple<'a> = ();
1818        #[cfg(test)]
1819        #[allow(dead_code, unreachable_patterns)]
1820        fn _type_assertion(
1821            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1822        ) {
1823            match _t {
1824                alloy_sol_types::private::AssertTypeEq::<
1825                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1826                >(_) => {}
1827            }
1828        }
1829        #[automatically_derived]
1830        #[doc(hidden)]
1831        impl ::core::convert::From<FailedInnerCall> for UnderlyingRustTuple<'_> {
1832            fn from(value: FailedInnerCall) -> Self {
1833                ()
1834            }
1835        }
1836        #[automatically_derived]
1837        #[doc(hidden)]
1838        impl ::core::convert::From<UnderlyingRustTuple<'_>> for FailedInnerCall {
1839            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1840                Self
1841            }
1842        }
1843        #[automatically_derived]
1844        impl alloy_sol_types::SolError for FailedInnerCall {
1845            type Parameters<'a> = UnderlyingSolTuple<'a>;
1846            type Token<'a> = <Self::Parameters<
1847                'a,
1848            > as alloy_sol_types::SolType>::Token<'a>;
1849            const SIGNATURE: &'static str = "FailedInnerCall()";
1850            const SELECTOR: [u8; 4] = [20u8, 37u8, 234u8, 66u8];
1851            #[inline]
1852            fn new<'a>(
1853                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1854            ) -> Self {
1855                tuple.into()
1856            }
1857            #[inline]
1858            fn tokenize(&self) -> Self::Token<'_> {
1859                ()
1860            }
1861            #[inline]
1862            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1863                Self::abi_decode_raw_with_config(
1864                    data,
1865                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1866                )
1867            }
1868        }
1869    };
1870    #[derive(serde::Serialize, serde::Deserialize)]
1871    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1872    /**Custom error with signature `InvalidAuthRoot()` and selector `0x328b8878`.
1873```solidity
1874error InvalidAuthRoot();
1875```*/
1876    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1877    #[derive(Clone)]
1878    pub struct InvalidAuthRoot;
1879    #[allow(
1880        non_camel_case_types,
1881        non_snake_case,
1882        clippy::pub_underscore_fields,
1883        clippy::style
1884    )]
1885    const _: () = {
1886        use alloy::sol_types as alloy_sol_types;
1887        #[doc(hidden)]
1888        #[allow(dead_code)]
1889        type UnderlyingSolTuple<'a> = ();
1890        #[doc(hidden)]
1891        type UnderlyingRustTuple<'a> = ();
1892        #[cfg(test)]
1893        #[allow(dead_code, unreachable_patterns)]
1894        fn _type_assertion(
1895            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1896        ) {
1897            match _t {
1898                alloy_sol_types::private::AssertTypeEq::<
1899                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1900                >(_) => {}
1901            }
1902        }
1903        #[automatically_derived]
1904        #[doc(hidden)]
1905        impl ::core::convert::From<InvalidAuthRoot> for UnderlyingRustTuple<'_> {
1906            fn from(value: InvalidAuthRoot) -> Self {
1907                ()
1908            }
1909        }
1910        #[automatically_derived]
1911        #[doc(hidden)]
1912        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidAuthRoot {
1913            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1914                Self
1915            }
1916        }
1917        #[automatically_derived]
1918        impl alloy_sol_types::SolError for InvalidAuthRoot {
1919            type Parameters<'a> = UnderlyingSolTuple<'a>;
1920            type Token<'a> = <Self::Parameters<
1921                'a,
1922            > as alloy_sol_types::SolType>::Token<'a>;
1923            const SIGNATURE: &'static str = "InvalidAuthRoot()";
1924            const SELECTOR: [u8; 4] = [50u8, 139u8, 136u8, 120u8];
1925            #[inline]
1926            fn new<'a>(
1927                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1928            ) -> Self {
1929                tuple.into()
1930            }
1931            #[inline]
1932            fn tokenize(&self) -> Self::Token<'_> {
1933                ()
1934            }
1935            #[inline]
1936            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1937                Self::abi_decode_raw_with_config(
1938                    data,
1939                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
1940                )
1941            }
1942        }
1943    };
1944    #[derive(serde::Serialize, serde::Deserialize)]
1945    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1946    /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`.
1947```solidity
1948error InvalidInitialization();
1949```*/
1950    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1951    #[derive(Clone)]
1952    pub struct InvalidInitialization;
1953    #[allow(
1954        non_camel_case_types,
1955        non_snake_case,
1956        clippy::pub_underscore_fields,
1957        clippy::style
1958    )]
1959    const _: () = {
1960        use alloy::sol_types as alloy_sol_types;
1961        #[doc(hidden)]
1962        #[allow(dead_code)]
1963        type UnderlyingSolTuple<'a> = ();
1964        #[doc(hidden)]
1965        type UnderlyingRustTuple<'a> = ();
1966        #[cfg(test)]
1967        #[allow(dead_code, unreachable_patterns)]
1968        fn _type_assertion(
1969            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1970        ) {
1971            match _t {
1972                alloy_sol_types::private::AssertTypeEq::<
1973                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1974                >(_) => {}
1975            }
1976        }
1977        #[automatically_derived]
1978        #[doc(hidden)]
1979        impl ::core::convert::From<InvalidInitialization> for UnderlyingRustTuple<'_> {
1980            fn from(value: InvalidInitialization) -> Self {
1981                ()
1982            }
1983        }
1984        #[automatically_derived]
1985        #[doc(hidden)]
1986        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidInitialization {
1987            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1988                Self
1989            }
1990        }
1991        #[automatically_derived]
1992        impl alloy_sol_types::SolError for InvalidInitialization {
1993            type Parameters<'a> = UnderlyingSolTuple<'a>;
1994            type Token<'a> = <Self::Parameters<
1995                'a,
1996            > as alloy_sol_types::SolType>::Token<'a>;
1997            const SIGNATURE: &'static str = "InvalidInitialization()";
1998            const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8];
1999            #[inline]
2000            fn new<'a>(
2001                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2002            ) -> Self {
2003                tuple.into()
2004            }
2005            #[inline]
2006            fn tokenize(&self) -> Self::Token<'_> {
2007                ()
2008            }
2009            #[inline]
2010            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2011                Self::abi_decode_raw_with_config(
2012                    data,
2013                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2014                )
2015            }
2016        }
2017    };
2018    #[derive(serde::Serialize, serde::Deserialize)]
2019    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2020    /**Custom error with signature `InvalidRewardAmount()` and selector `0x38539865`.
2021```solidity
2022error InvalidRewardAmount();
2023```*/
2024    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2025    #[derive(Clone)]
2026    pub struct InvalidRewardAmount;
2027    #[allow(
2028        non_camel_case_types,
2029        non_snake_case,
2030        clippy::pub_underscore_fields,
2031        clippy::style
2032    )]
2033    const _: () = {
2034        use alloy::sol_types as alloy_sol_types;
2035        #[doc(hidden)]
2036        #[allow(dead_code)]
2037        type UnderlyingSolTuple<'a> = ();
2038        #[doc(hidden)]
2039        type UnderlyingRustTuple<'a> = ();
2040        #[cfg(test)]
2041        #[allow(dead_code, unreachable_patterns)]
2042        fn _type_assertion(
2043            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2044        ) {
2045            match _t {
2046                alloy_sol_types::private::AssertTypeEq::<
2047                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2048                >(_) => {}
2049            }
2050        }
2051        #[automatically_derived]
2052        #[doc(hidden)]
2053        impl ::core::convert::From<InvalidRewardAmount> for UnderlyingRustTuple<'_> {
2054            fn from(value: InvalidRewardAmount) -> Self {
2055                ()
2056            }
2057        }
2058        #[automatically_derived]
2059        #[doc(hidden)]
2060        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidRewardAmount {
2061            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2062                Self
2063            }
2064        }
2065        #[automatically_derived]
2066        impl alloy_sol_types::SolError for InvalidRewardAmount {
2067            type Parameters<'a> = UnderlyingSolTuple<'a>;
2068            type Token<'a> = <Self::Parameters<
2069                'a,
2070            > as alloy_sol_types::SolType>::Token<'a>;
2071            const SIGNATURE: &'static str = "InvalidRewardAmount()";
2072            const SELECTOR: [u8; 4] = [56u8, 83u8, 152u8, 101u8];
2073            #[inline]
2074            fn new<'a>(
2075                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2076            ) -> Self {
2077                tuple.into()
2078            }
2079            #[inline]
2080            fn tokenize(&self) -> Self::Token<'_> {
2081                ()
2082            }
2083            #[inline]
2084            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2085                Self::abi_decode_raw_with_config(
2086                    data,
2087                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2088                )
2089            }
2090        }
2091    };
2092    #[derive(serde::Serialize, serde::Deserialize)]
2093    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2094    /**Custom error with signature `NoChangeRequired()` and selector `0xa863aec9`.
2095```solidity
2096error NoChangeRequired();
2097```*/
2098    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2099    #[derive(Clone)]
2100    pub struct NoChangeRequired;
2101    #[allow(
2102        non_camel_case_types,
2103        non_snake_case,
2104        clippy::pub_underscore_fields,
2105        clippy::style
2106    )]
2107    const _: () = {
2108        use alloy::sol_types as alloy_sol_types;
2109        #[doc(hidden)]
2110        #[allow(dead_code)]
2111        type UnderlyingSolTuple<'a> = ();
2112        #[doc(hidden)]
2113        type UnderlyingRustTuple<'a> = ();
2114        #[cfg(test)]
2115        #[allow(dead_code, unreachable_patterns)]
2116        fn _type_assertion(
2117            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2118        ) {
2119            match _t {
2120                alloy_sol_types::private::AssertTypeEq::<
2121                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2122                >(_) => {}
2123            }
2124        }
2125        #[automatically_derived]
2126        #[doc(hidden)]
2127        impl ::core::convert::From<NoChangeRequired> for UnderlyingRustTuple<'_> {
2128            fn from(value: NoChangeRequired) -> Self {
2129                ()
2130            }
2131        }
2132        #[automatically_derived]
2133        #[doc(hidden)]
2134        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NoChangeRequired {
2135            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2136                Self
2137            }
2138        }
2139        #[automatically_derived]
2140        impl alloy_sol_types::SolError for NoChangeRequired {
2141            type Parameters<'a> = UnderlyingSolTuple<'a>;
2142            type Token<'a> = <Self::Parameters<
2143                'a,
2144            > as alloy_sol_types::SolType>::Token<'a>;
2145            const SIGNATURE: &'static str = "NoChangeRequired()";
2146            const SELECTOR: [u8; 4] = [168u8, 99u8, 174u8, 201u8];
2147            #[inline]
2148            fn new<'a>(
2149                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2150            ) -> Self {
2151                tuple.into()
2152            }
2153            #[inline]
2154            fn tokenize(&self) -> Self::Token<'_> {
2155                ()
2156            }
2157            #[inline]
2158            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2159                Self::abi_decode_raw_with_config(
2160                    data,
2161                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2162                )
2163            }
2164        }
2165    };
2166    #[derive(serde::Serialize, serde::Deserialize)]
2167    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2168    /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`.
2169```solidity
2170error NotInitializing();
2171```*/
2172    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2173    #[derive(Clone)]
2174    pub struct NotInitializing;
2175    #[allow(
2176        non_camel_case_types,
2177        non_snake_case,
2178        clippy::pub_underscore_fields,
2179        clippy::style
2180    )]
2181    const _: () = {
2182        use alloy::sol_types as alloy_sol_types;
2183        #[doc(hidden)]
2184        #[allow(dead_code)]
2185        type UnderlyingSolTuple<'a> = ();
2186        #[doc(hidden)]
2187        type UnderlyingRustTuple<'a> = ();
2188        #[cfg(test)]
2189        #[allow(dead_code, unreachable_patterns)]
2190        fn _type_assertion(
2191            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2192        ) {
2193            match _t {
2194                alloy_sol_types::private::AssertTypeEq::<
2195                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2196                >(_) => {}
2197            }
2198        }
2199        #[automatically_derived]
2200        #[doc(hidden)]
2201        impl ::core::convert::From<NotInitializing> for UnderlyingRustTuple<'_> {
2202            fn from(value: NotInitializing) -> Self {
2203                ()
2204            }
2205        }
2206        #[automatically_derived]
2207        #[doc(hidden)]
2208        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotInitializing {
2209            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2210                Self
2211            }
2212        }
2213        #[automatically_derived]
2214        impl alloy_sol_types::SolError for NotInitializing {
2215            type Parameters<'a> = UnderlyingSolTuple<'a>;
2216            type Token<'a> = <Self::Parameters<
2217                'a,
2218            > as alloy_sol_types::SolType>::Token<'a>;
2219            const SIGNATURE: &'static str = "NotInitializing()";
2220            const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8];
2221            #[inline]
2222            fn new<'a>(
2223                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2224            ) -> Self {
2225                tuple.into()
2226            }
2227            #[inline]
2228            fn tokenize(&self) -> Self::Token<'_> {
2229                ()
2230            }
2231            #[inline]
2232            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2233                Self::abi_decode_raw_with_config(
2234                    data,
2235                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2236                )
2237            }
2238        }
2239    };
2240    #[derive(serde::Serialize, serde::Deserialize)]
2241    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2242    /**Custom error with signature `ReentrancyGuardReentrantCall()` and selector `0x3ee5aeb5`.
2243```solidity
2244error ReentrancyGuardReentrantCall();
2245```*/
2246    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2247    #[derive(Clone)]
2248    pub struct ReentrancyGuardReentrantCall;
2249    #[allow(
2250        non_camel_case_types,
2251        non_snake_case,
2252        clippy::pub_underscore_fields,
2253        clippy::style
2254    )]
2255    const _: () = {
2256        use alloy::sol_types as alloy_sol_types;
2257        #[doc(hidden)]
2258        #[allow(dead_code)]
2259        type UnderlyingSolTuple<'a> = ();
2260        #[doc(hidden)]
2261        type UnderlyingRustTuple<'a> = ();
2262        #[cfg(test)]
2263        #[allow(dead_code, unreachable_patterns)]
2264        fn _type_assertion(
2265            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2266        ) {
2267            match _t {
2268                alloy_sol_types::private::AssertTypeEq::<
2269                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2270                >(_) => {}
2271            }
2272        }
2273        #[automatically_derived]
2274        #[doc(hidden)]
2275        impl ::core::convert::From<ReentrancyGuardReentrantCall>
2276        for UnderlyingRustTuple<'_> {
2277            fn from(value: ReentrancyGuardReentrantCall) -> Self {
2278                ()
2279            }
2280        }
2281        #[automatically_derived]
2282        #[doc(hidden)]
2283        impl ::core::convert::From<UnderlyingRustTuple<'_>>
2284        for ReentrancyGuardReentrantCall {
2285            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2286                Self
2287            }
2288        }
2289        #[automatically_derived]
2290        impl alloy_sol_types::SolError for ReentrancyGuardReentrantCall {
2291            type Parameters<'a> = UnderlyingSolTuple<'a>;
2292            type Token<'a> = <Self::Parameters<
2293                'a,
2294            > as alloy_sol_types::SolType>::Token<'a>;
2295            const SIGNATURE: &'static str = "ReentrancyGuardReentrantCall()";
2296            const SELECTOR: [u8; 4] = [62u8, 229u8, 174u8, 181u8];
2297            #[inline]
2298            fn new<'a>(
2299                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2300            ) -> Self {
2301                tuple.into()
2302            }
2303            #[inline]
2304            fn tokenize(&self) -> Self::Token<'_> {
2305                ()
2306            }
2307            #[inline]
2308            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2309                Self::abi_decode_raw_with_config(
2310                    data,
2311                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2312                )
2313            }
2314        }
2315    };
2316    #[derive(serde::Serialize, serde::Deserialize)]
2317    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2318    /**Custom error with signature `UUPSUnauthorizedCallContext()` and selector `0xe07c8dba`.
2319```solidity
2320error UUPSUnauthorizedCallContext();
2321```*/
2322    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2323    #[derive(Clone)]
2324    pub struct UUPSUnauthorizedCallContext;
2325    #[allow(
2326        non_camel_case_types,
2327        non_snake_case,
2328        clippy::pub_underscore_fields,
2329        clippy::style
2330    )]
2331    const _: () = {
2332        use alloy::sol_types as alloy_sol_types;
2333        #[doc(hidden)]
2334        #[allow(dead_code)]
2335        type UnderlyingSolTuple<'a> = ();
2336        #[doc(hidden)]
2337        type UnderlyingRustTuple<'a> = ();
2338        #[cfg(test)]
2339        #[allow(dead_code, unreachable_patterns)]
2340        fn _type_assertion(
2341            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2342        ) {
2343            match _t {
2344                alloy_sol_types::private::AssertTypeEq::<
2345                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2346                >(_) => {}
2347            }
2348        }
2349        #[automatically_derived]
2350        #[doc(hidden)]
2351        impl ::core::convert::From<UUPSUnauthorizedCallContext>
2352        for UnderlyingRustTuple<'_> {
2353            fn from(value: UUPSUnauthorizedCallContext) -> Self {
2354                ()
2355            }
2356        }
2357        #[automatically_derived]
2358        #[doc(hidden)]
2359        impl ::core::convert::From<UnderlyingRustTuple<'_>>
2360        for UUPSUnauthorizedCallContext {
2361            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2362                Self
2363            }
2364        }
2365        #[automatically_derived]
2366        impl alloy_sol_types::SolError for UUPSUnauthorizedCallContext {
2367            type Parameters<'a> = UnderlyingSolTuple<'a>;
2368            type Token<'a> = <Self::Parameters<
2369                'a,
2370            > as alloy_sol_types::SolType>::Token<'a>;
2371            const SIGNATURE: &'static str = "UUPSUnauthorizedCallContext()";
2372            const SELECTOR: [u8; 4] = [224u8, 124u8, 141u8, 186u8];
2373            #[inline]
2374            fn new<'a>(
2375                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2376            ) -> Self {
2377                tuple.into()
2378            }
2379            #[inline]
2380            fn tokenize(&self) -> Self::Token<'_> {
2381                ()
2382            }
2383            #[inline]
2384            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2385                Self::abi_decode_raw_with_config(
2386                    data,
2387                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2388                )
2389            }
2390        }
2391    };
2392    #[derive(serde::Serialize, serde::Deserialize)]
2393    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2394    /**Custom error with signature `UUPSUnsupportedProxiableUUID(bytes32)` and selector `0xaa1d49a4`.
2395```solidity
2396error UUPSUnsupportedProxiableUUID(bytes32 slot);
2397```*/
2398    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2399    #[derive(Clone)]
2400    pub struct UUPSUnsupportedProxiableUUID {
2401        #[allow(missing_docs)]
2402        pub slot: alloy::sol_types::private::FixedBytes<32>,
2403    }
2404    #[allow(
2405        non_camel_case_types,
2406        non_snake_case,
2407        clippy::pub_underscore_fields,
2408        clippy::style
2409    )]
2410    const _: () = {
2411        use alloy::sol_types as alloy_sol_types;
2412        #[doc(hidden)]
2413        #[allow(dead_code)]
2414        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
2415        #[doc(hidden)]
2416        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
2417        #[cfg(test)]
2418        #[allow(dead_code, unreachable_patterns)]
2419        fn _type_assertion(
2420            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2421        ) {
2422            match _t {
2423                alloy_sol_types::private::AssertTypeEq::<
2424                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2425                >(_) => {}
2426            }
2427        }
2428        #[automatically_derived]
2429        #[doc(hidden)]
2430        impl ::core::convert::From<UUPSUnsupportedProxiableUUID>
2431        for UnderlyingRustTuple<'_> {
2432            fn from(value: UUPSUnsupportedProxiableUUID) -> Self {
2433                (value.slot,)
2434            }
2435        }
2436        #[automatically_derived]
2437        #[doc(hidden)]
2438        impl ::core::convert::From<UnderlyingRustTuple<'_>>
2439        for UUPSUnsupportedProxiableUUID {
2440            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2441                Self { slot: tuple.0 }
2442            }
2443        }
2444        #[automatically_derived]
2445        impl alloy_sol_types::SolError for UUPSUnsupportedProxiableUUID {
2446            type Parameters<'a> = UnderlyingSolTuple<'a>;
2447            type Token<'a> = <Self::Parameters<
2448                'a,
2449            > as alloy_sol_types::SolType>::Token<'a>;
2450            const SIGNATURE: &'static str = "UUPSUnsupportedProxiableUUID(bytes32)";
2451            const SELECTOR: [u8; 4] = [170u8, 29u8, 73u8, 164u8];
2452            #[inline]
2453            fn new<'a>(
2454                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2455            ) -> Self {
2456                tuple.into()
2457            }
2458            #[inline]
2459            fn tokenize(&self) -> Self::Token<'_> {
2460                (
2461                    <alloy::sol_types::sol_data::FixedBytes<
2462                        32,
2463                    > as alloy_sol_types::SolType>::tokenize(&self.slot),
2464                )
2465            }
2466            #[inline]
2467            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2468                Self::abi_decode_raw_with_config(
2469                    data,
2470                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2471                )
2472            }
2473        }
2474    };
2475    #[derive(serde::Serialize, serde::Deserialize)]
2476    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2477    /**Custom error with signature `ZeroAdminAddress()` and selector `0x3ef39b81`.
2478```solidity
2479error ZeroAdminAddress();
2480```*/
2481    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2482    #[derive(Clone)]
2483    pub struct ZeroAdminAddress;
2484    #[allow(
2485        non_camel_case_types,
2486        non_snake_case,
2487        clippy::pub_underscore_fields,
2488        clippy::style
2489    )]
2490    const _: () = {
2491        use alloy::sol_types as alloy_sol_types;
2492        #[doc(hidden)]
2493        #[allow(dead_code)]
2494        type UnderlyingSolTuple<'a> = ();
2495        #[doc(hidden)]
2496        type UnderlyingRustTuple<'a> = ();
2497        #[cfg(test)]
2498        #[allow(dead_code, unreachable_patterns)]
2499        fn _type_assertion(
2500            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2501        ) {
2502            match _t {
2503                alloy_sol_types::private::AssertTypeEq::<
2504                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2505                >(_) => {}
2506            }
2507        }
2508        #[automatically_derived]
2509        #[doc(hidden)]
2510        impl ::core::convert::From<ZeroAdminAddress> for UnderlyingRustTuple<'_> {
2511            fn from(value: ZeroAdminAddress) -> Self {
2512                ()
2513            }
2514        }
2515        #[automatically_derived]
2516        #[doc(hidden)]
2517        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroAdminAddress {
2518            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2519                Self
2520            }
2521        }
2522        #[automatically_derived]
2523        impl alloy_sol_types::SolError for ZeroAdminAddress {
2524            type Parameters<'a> = UnderlyingSolTuple<'a>;
2525            type Token<'a> = <Self::Parameters<
2526                'a,
2527            > as alloy_sol_types::SolType>::Token<'a>;
2528            const SIGNATURE: &'static str = "ZeroAdminAddress()";
2529            const SELECTOR: [u8; 4] = [62u8, 243u8, 155u8, 129u8];
2530            #[inline]
2531            fn new<'a>(
2532                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2533            ) -> Self {
2534                tuple.into()
2535            }
2536            #[inline]
2537            fn tokenize(&self) -> Self::Token<'_> {
2538                ()
2539            }
2540            #[inline]
2541            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2542                Self::abi_decode_raw_with_config(
2543                    data,
2544                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2545                )
2546            }
2547        }
2548    };
2549    #[derive(serde::Serialize, serde::Deserialize)]
2550    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2551    /**Custom error with signature `ZeroDailyLimit()` and selector `0x9b11a8bd`.
2552```solidity
2553error ZeroDailyLimit();
2554```*/
2555    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2556    #[derive(Clone)]
2557    pub struct ZeroDailyLimit;
2558    #[allow(
2559        non_camel_case_types,
2560        non_snake_case,
2561        clippy::pub_underscore_fields,
2562        clippy::style
2563    )]
2564    const _: () = {
2565        use alloy::sol_types as alloy_sol_types;
2566        #[doc(hidden)]
2567        #[allow(dead_code)]
2568        type UnderlyingSolTuple<'a> = ();
2569        #[doc(hidden)]
2570        type UnderlyingRustTuple<'a> = ();
2571        #[cfg(test)]
2572        #[allow(dead_code, unreachable_patterns)]
2573        fn _type_assertion(
2574            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2575        ) {
2576            match _t {
2577                alloy_sol_types::private::AssertTypeEq::<
2578                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2579                >(_) => {}
2580            }
2581        }
2582        #[automatically_derived]
2583        #[doc(hidden)]
2584        impl ::core::convert::From<ZeroDailyLimit> for UnderlyingRustTuple<'_> {
2585            fn from(value: ZeroDailyLimit) -> Self {
2586                ()
2587            }
2588        }
2589        #[automatically_derived]
2590        #[doc(hidden)]
2591        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroDailyLimit {
2592            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2593                Self
2594            }
2595        }
2596        #[automatically_derived]
2597        impl alloy_sol_types::SolError for ZeroDailyLimit {
2598            type Parameters<'a> = UnderlyingSolTuple<'a>;
2599            type Token<'a> = <Self::Parameters<
2600                'a,
2601            > as alloy_sol_types::SolType>::Token<'a>;
2602            const SIGNATURE: &'static str = "ZeroDailyLimit()";
2603            const SELECTOR: [u8; 4] = [155u8, 17u8, 168u8, 189u8];
2604            #[inline]
2605            fn new<'a>(
2606                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2607            ) -> Self {
2608                tuple.into()
2609            }
2610            #[inline]
2611            fn tokenize(&self) -> Self::Token<'_> {
2612                ()
2613            }
2614            #[inline]
2615            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2616                Self::abi_decode_raw_with_config(
2617                    data,
2618                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2619                )
2620            }
2621        }
2622    };
2623    #[derive(serde::Serialize, serde::Deserialize)]
2624    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2625    /**Custom error with signature `ZeroLightClientAddress()` and selector `0xfcabddbd`.
2626```solidity
2627error ZeroLightClientAddress();
2628```*/
2629    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2630    #[derive(Clone)]
2631    pub struct ZeroLightClientAddress;
2632    #[allow(
2633        non_camel_case_types,
2634        non_snake_case,
2635        clippy::pub_underscore_fields,
2636        clippy::style
2637    )]
2638    const _: () = {
2639        use alloy::sol_types as alloy_sol_types;
2640        #[doc(hidden)]
2641        #[allow(dead_code)]
2642        type UnderlyingSolTuple<'a> = ();
2643        #[doc(hidden)]
2644        type UnderlyingRustTuple<'a> = ();
2645        #[cfg(test)]
2646        #[allow(dead_code, unreachable_patterns)]
2647        fn _type_assertion(
2648            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2649        ) {
2650            match _t {
2651                alloy_sol_types::private::AssertTypeEq::<
2652                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2653                >(_) => {}
2654            }
2655        }
2656        #[automatically_derived]
2657        #[doc(hidden)]
2658        impl ::core::convert::From<ZeroLightClientAddress> for UnderlyingRustTuple<'_> {
2659            fn from(value: ZeroLightClientAddress) -> Self {
2660                ()
2661            }
2662        }
2663        #[automatically_derived]
2664        #[doc(hidden)]
2665        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroLightClientAddress {
2666            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2667                Self
2668            }
2669        }
2670        #[automatically_derived]
2671        impl alloy_sol_types::SolError for ZeroLightClientAddress {
2672            type Parameters<'a> = UnderlyingSolTuple<'a>;
2673            type Token<'a> = <Self::Parameters<
2674                'a,
2675            > as alloy_sol_types::SolType>::Token<'a>;
2676            const SIGNATURE: &'static str = "ZeroLightClientAddress()";
2677            const SELECTOR: [u8; 4] = [252u8, 171u8, 221u8, 189u8];
2678            #[inline]
2679            fn new<'a>(
2680                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2681            ) -> Self {
2682                tuple.into()
2683            }
2684            #[inline]
2685            fn tokenize(&self) -> Self::Token<'_> {
2686                ()
2687            }
2688            #[inline]
2689            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2690                Self::abi_decode_raw_with_config(
2691                    data,
2692                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2693                )
2694            }
2695        }
2696    };
2697    #[derive(serde::Serialize, serde::Deserialize)]
2698    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2699    /**Custom error with signature `ZeroPauserAddress()` and selector `0xa74995ab`.
2700```solidity
2701error ZeroPauserAddress();
2702```*/
2703    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2704    #[derive(Clone)]
2705    pub struct ZeroPauserAddress;
2706    #[allow(
2707        non_camel_case_types,
2708        non_snake_case,
2709        clippy::pub_underscore_fields,
2710        clippy::style
2711    )]
2712    const _: () = {
2713        use alloy::sol_types as alloy_sol_types;
2714        #[doc(hidden)]
2715        #[allow(dead_code)]
2716        type UnderlyingSolTuple<'a> = ();
2717        #[doc(hidden)]
2718        type UnderlyingRustTuple<'a> = ();
2719        #[cfg(test)]
2720        #[allow(dead_code, unreachable_patterns)]
2721        fn _type_assertion(
2722            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2723        ) {
2724            match _t {
2725                alloy_sol_types::private::AssertTypeEq::<
2726                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2727                >(_) => {}
2728            }
2729        }
2730        #[automatically_derived]
2731        #[doc(hidden)]
2732        impl ::core::convert::From<ZeroPauserAddress> for UnderlyingRustTuple<'_> {
2733            fn from(value: ZeroPauserAddress) -> Self {
2734                ()
2735            }
2736        }
2737        #[automatically_derived]
2738        #[doc(hidden)]
2739        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroPauserAddress {
2740            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2741                Self
2742            }
2743        }
2744        #[automatically_derived]
2745        impl alloy_sol_types::SolError for ZeroPauserAddress {
2746            type Parameters<'a> = UnderlyingSolTuple<'a>;
2747            type Token<'a> = <Self::Parameters<
2748                'a,
2749            > as alloy_sol_types::SolType>::Token<'a>;
2750            const SIGNATURE: &'static str = "ZeroPauserAddress()";
2751            const SELECTOR: [u8; 4] = [167u8, 73u8, 149u8, 171u8];
2752            #[inline]
2753            fn new<'a>(
2754                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2755            ) -> Self {
2756                tuple.into()
2757            }
2758            #[inline]
2759            fn tokenize(&self) -> Self::Token<'_> {
2760                ()
2761            }
2762            #[inline]
2763            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2764                Self::abi_decode_raw_with_config(
2765                    data,
2766                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2767                )
2768            }
2769        }
2770    };
2771    #[derive(serde::Serialize, serde::Deserialize)]
2772    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2773    /**Custom error with signature `ZeroTokenAddress()` and selector `0x6b093aad`.
2774```solidity
2775error ZeroTokenAddress();
2776```*/
2777    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2778    #[derive(Clone)]
2779    pub struct ZeroTokenAddress;
2780    #[allow(
2781        non_camel_case_types,
2782        non_snake_case,
2783        clippy::pub_underscore_fields,
2784        clippy::style
2785    )]
2786    const _: () = {
2787        use alloy::sol_types as alloy_sol_types;
2788        #[doc(hidden)]
2789        #[allow(dead_code)]
2790        type UnderlyingSolTuple<'a> = ();
2791        #[doc(hidden)]
2792        type UnderlyingRustTuple<'a> = ();
2793        #[cfg(test)]
2794        #[allow(dead_code, unreachable_patterns)]
2795        fn _type_assertion(
2796            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2797        ) {
2798            match _t {
2799                alloy_sol_types::private::AssertTypeEq::<
2800                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2801                >(_) => {}
2802            }
2803        }
2804        #[automatically_derived]
2805        #[doc(hidden)]
2806        impl ::core::convert::From<ZeroTokenAddress> for UnderlyingRustTuple<'_> {
2807            fn from(value: ZeroTokenAddress) -> Self {
2808                ()
2809            }
2810        }
2811        #[automatically_derived]
2812        #[doc(hidden)]
2813        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroTokenAddress {
2814            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2815                Self
2816            }
2817        }
2818        #[automatically_derived]
2819        impl alloy_sol_types::SolError for ZeroTokenAddress {
2820            type Parameters<'a> = UnderlyingSolTuple<'a>;
2821            type Token<'a> = <Self::Parameters<
2822                'a,
2823            > as alloy_sol_types::SolType>::Token<'a>;
2824            const SIGNATURE: &'static str = "ZeroTokenAddress()";
2825            const SELECTOR: [u8; 4] = [107u8, 9u8, 58u8, 173u8];
2826            #[inline]
2827            fn new<'a>(
2828                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2829            ) -> Self {
2830                tuple.into()
2831            }
2832            #[inline]
2833            fn tokenize(&self) -> Self::Token<'_> {
2834                ()
2835            }
2836            #[inline]
2837            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2838                Self::abi_decode_raw_with_config(
2839                    data,
2840                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2841                )
2842            }
2843        }
2844    };
2845    #[derive(serde::Serialize, serde::Deserialize)]
2846    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2847    /**Custom error with signature `ZeroTotalSupply()` and selector `0x48b50023`.
2848```solidity
2849error ZeroTotalSupply();
2850```*/
2851    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2852    #[derive(Clone)]
2853    pub struct ZeroTotalSupply;
2854    #[allow(
2855        non_camel_case_types,
2856        non_snake_case,
2857        clippy::pub_underscore_fields,
2858        clippy::style
2859    )]
2860    const _: () = {
2861        use alloy::sol_types as alloy_sol_types;
2862        #[doc(hidden)]
2863        #[allow(dead_code)]
2864        type UnderlyingSolTuple<'a> = ();
2865        #[doc(hidden)]
2866        type UnderlyingRustTuple<'a> = ();
2867        #[cfg(test)]
2868        #[allow(dead_code, unreachable_patterns)]
2869        fn _type_assertion(
2870            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2871        ) {
2872            match _t {
2873                alloy_sol_types::private::AssertTypeEq::<
2874                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2875                >(_) => {}
2876            }
2877        }
2878        #[automatically_derived]
2879        #[doc(hidden)]
2880        impl ::core::convert::From<ZeroTotalSupply> for UnderlyingRustTuple<'_> {
2881            fn from(value: ZeroTotalSupply) -> Self {
2882                ()
2883            }
2884        }
2885        #[automatically_derived]
2886        #[doc(hidden)]
2887        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroTotalSupply {
2888            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2889                Self
2890            }
2891        }
2892        #[automatically_derived]
2893        impl alloy_sol_types::SolError for ZeroTotalSupply {
2894            type Parameters<'a> = UnderlyingSolTuple<'a>;
2895            type Token<'a> = <Self::Parameters<
2896                'a,
2897            > as alloy_sol_types::SolType>::Token<'a>;
2898            const SIGNATURE: &'static str = "ZeroTotalSupply()";
2899            const SELECTOR: [u8; 4] = [72u8, 181u8, 0u8, 35u8];
2900            #[inline]
2901            fn new<'a>(
2902                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2903            ) -> Self {
2904                tuple.into()
2905            }
2906            #[inline]
2907            fn tokenize(&self) -> Self::Token<'_> {
2908                ()
2909            }
2910            #[inline]
2911            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2912                Self::abi_decode_raw_with_config(
2913                    data,
2914                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
2915                )
2916            }
2917        }
2918    };
2919    #[derive(serde::Serialize, serde::Deserialize)]
2920    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2921    /**Event with signature `DailyLimitUpdated(uint256,uint256)` and selector `0x207c4cbdf55ec315a13f0d5e047732ec5d947da056e706593aa509909941cedf`.
2922```solidity
2923event DailyLimitUpdated(uint256 oldLimit, uint256 newLimit);
2924```*/
2925    #[allow(
2926        non_camel_case_types,
2927        non_snake_case,
2928        clippy::pub_underscore_fields,
2929        clippy::style
2930    )]
2931    #[derive(Clone)]
2932    pub struct DailyLimitUpdated {
2933        #[allow(missing_docs)]
2934        pub oldLimit: alloy::sol_types::private::primitives::aliases::U256,
2935        #[allow(missing_docs)]
2936        pub newLimit: alloy::sol_types::private::primitives::aliases::U256,
2937    }
2938    #[allow(
2939        non_camel_case_types,
2940        non_snake_case,
2941        clippy::pub_underscore_fields,
2942        clippy::style
2943    )]
2944    const _: () = {
2945        use alloy::sol_types as alloy_sol_types;
2946        #[automatically_derived]
2947        impl alloy_sol_types::SolEvent for DailyLimitUpdated {
2948            type DataTuple<'a> = (
2949                alloy::sol_types::sol_data::Uint<256>,
2950                alloy::sol_types::sol_data::Uint<256>,
2951            );
2952            type DataToken<'a> = <Self::DataTuple<
2953                'a,
2954            > as alloy_sol_types::SolType>::Token<'a>;
2955            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2956            const SIGNATURE: &'static str = "DailyLimitUpdated(uint256,uint256)";
2957            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2958                32u8, 124u8, 76u8, 189u8, 245u8, 94u8, 195u8, 21u8, 161u8, 63u8, 13u8,
2959                94u8, 4u8, 119u8, 50u8, 236u8, 93u8, 148u8, 125u8, 160u8, 86u8, 231u8,
2960                6u8, 89u8, 58u8, 165u8, 9u8, 144u8, 153u8, 65u8, 206u8, 223u8,
2961            ]);
2962            const ANONYMOUS: bool = false;
2963            #[allow(unused_variables)]
2964            #[inline]
2965            fn new(
2966                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2967                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2968            ) -> Self {
2969                Self {
2970                    oldLimit: data.0,
2971                    newLimit: data.1,
2972                }
2973            }
2974            #[inline]
2975            fn check_signature(
2976                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2977            ) -> alloy_sol_types::Result<()> {
2978                if topics.0 != Self::SIGNATURE_HASH {
2979                    return Err(
2980                        alloy_sol_types::Error::invalid_event_signature_hash(
2981                            Self::SIGNATURE,
2982                            topics.0,
2983                            Self::SIGNATURE_HASH,
2984                        ),
2985                    );
2986                }
2987                Ok(())
2988            }
2989            #[inline]
2990            fn tokenize_body(&self) -> Self::DataToken<'_> {
2991                (
2992                    <alloy::sol_types::sol_data::Uint<
2993                        256,
2994                    > as alloy_sol_types::SolType>::tokenize(&self.oldLimit),
2995                    <alloy::sol_types::sol_data::Uint<
2996                        256,
2997                    > as alloy_sol_types::SolType>::tokenize(&self.newLimit),
2998                )
2999            }
3000            #[inline]
3001            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3002                (Self::SIGNATURE_HASH.into(),)
3003            }
3004            #[inline]
3005            fn encode_topics_raw(
3006                &self,
3007                out: &mut [alloy_sol_types::abi::token::WordToken],
3008            ) -> alloy_sol_types::Result<()> {
3009                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3010                    return Err(alloy_sol_types::Error::Overrun);
3011                }
3012                out[0usize] = alloy_sol_types::abi::token::WordToken(
3013                    Self::SIGNATURE_HASH,
3014                );
3015                Ok(())
3016            }
3017        }
3018        #[automatically_derived]
3019        impl alloy_sol_types::private::IntoLogData for DailyLimitUpdated {
3020            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3021                From::from(self)
3022            }
3023            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3024                From::from(&self)
3025            }
3026        }
3027        #[automatically_derived]
3028        impl From<&DailyLimitUpdated> for alloy_sol_types::private::LogData {
3029            #[inline]
3030            fn from(this: &DailyLimitUpdated) -> alloy_sol_types::private::LogData {
3031                alloy_sol_types::SolEvent::encode_log_data(this)
3032            }
3033        }
3034    };
3035    #[derive(serde::Serialize, serde::Deserialize)]
3036    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3037    /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`.
3038```solidity
3039event Initialized(uint64 version);
3040```*/
3041    #[allow(
3042        non_camel_case_types,
3043        non_snake_case,
3044        clippy::pub_underscore_fields,
3045        clippy::style
3046    )]
3047    #[derive(Clone)]
3048    pub struct Initialized {
3049        #[allow(missing_docs)]
3050        pub version: u64,
3051    }
3052    #[allow(
3053        non_camel_case_types,
3054        non_snake_case,
3055        clippy::pub_underscore_fields,
3056        clippy::style
3057    )]
3058    const _: () = {
3059        use alloy::sol_types as alloy_sol_types;
3060        #[automatically_derived]
3061        impl alloy_sol_types::SolEvent for Initialized {
3062            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
3063            type DataToken<'a> = <Self::DataTuple<
3064                'a,
3065            > as alloy_sol_types::SolType>::Token<'a>;
3066            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3067            const SIGNATURE: &'static str = "Initialized(uint64)";
3068            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3069                199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8,
3070                19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8,
3071                33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8,
3072            ]);
3073            const ANONYMOUS: bool = false;
3074            #[allow(unused_variables)]
3075            #[inline]
3076            fn new(
3077                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3078                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3079            ) -> Self {
3080                Self { version: data.0 }
3081            }
3082            #[inline]
3083            fn check_signature(
3084                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3085            ) -> alloy_sol_types::Result<()> {
3086                if topics.0 != Self::SIGNATURE_HASH {
3087                    return Err(
3088                        alloy_sol_types::Error::invalid_event_signature_hash(
3089                            Self::SIGNATURE,
3090                            topics.0,
3091                            Self::SIGNATURE_HASH,
3092                        ),
3093                    );
3094                }
3095                Ok(())
3096            }
3097            #[inline]
3098            fn tokenize_body(&self) -> Self::DataToken<'_> {
3099                (
3100                    <alloy::sol_types::sol_data::Uint<
3101                        64,
3102                    > as alloy_sol_types::SolType>::tokenize(&self.version),
3103                )
3104            }
3105            #[inline]
3106            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3107                (Self::SIGNATURE_HASH.into(),)
3108            }
3109            #[inline]
3110            fn encode_topics_raw(
3111                &self,
3112                out: &mut [alloy_sol_types::abi::token::WordToken],
3113            ) -> alloy_sol_types::Result<()> {
3114                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3115                    return Err(alloy_sol_types::Error::Overrun);
3116                }
3117                out[0usize] = alloy_sol_types::abi::token::WordToken(
3118                    Self::SIGNATURE_HASH,
3119                );
3120                Ok(())
3121            }
3122        }
3123        #[automatically_derived]
3124        impl alloy_sol_types::private::IntoLogData for Initialized {
3125            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3126                From::from(self)
3127            }
3128            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3129                From::from(&self)
3130            }
3131        }
3132        #[automatically_derived]
3133        impl From<&Initialized> for alloy_sol_types::private::LogData {
3134            #[inline]
3135            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
3136                alloy_sol_types::SolEvent::encode_log_data(this)
3137            }
3138        }
3139    };
3140    #[derive(serde::Serialize, serde::Deserialize)]
3141    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3142    /**Event with signature `Paused(address)` and selector `0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258`.
3143```solidity
3144event Paused(address account);
3145```*/
3146    #[allow(
3147        non_camel_case_types,
3148        non_snake_case,
3149        clippy::pub_underscore_fields,
3150        clippy::style
3151    )]
3152    #[derive(Clone)]
3153    pub struct Paused {
3154        #[allow(missing_docs)]
3155        pub account: alloy::sol_types::private::Address,
3156    }
3157    #[allow(
3158        non_camel_case_types,
3159        non_snake_case,
3160        clippy::pub_underscore_fields,
3161        clippy::style
3162    )]
3163    const _: () = {
3164        use alloy::sol_types as alloy_sol_types;
3165        #[automatically_derived]
3166        impl alloy_sol_types::SolEvent for Paused {
3167            type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
3168            type DataToken<'a> = <Self::DataTuple<
3169                'a,
3170            > as alloy_sol_types::SolType>::Token<'a>;
3171            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3172            const SIGNATURE: &'static str = "Paused(address)";
3173            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3174                98u8, 231u8, 140u8, 234u8, 1u8, 190u8, 227u8, 32u8, 205u8, 78u8, 66u8,
3175                2u8, 112u8, 181u8, 234u8, 116u8, 0u8, 13u8, 17u8, 176u8, 201u8, 247u8,
3176                71u8, 84u8, 235u8, 219u8, 252u8, 84u8, 75u8, 5u8, 162u8, 88u8,
3177            ]);
3178            const ANONYMOUS: bool = false;
3179            #[allow(unused_variables)]
3180            #[inline]
3181            fn new(
3182                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3183                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3184            ) -> Self {
3185                Self { account: data.0 }
3186            }
3187            #[inline]
3188            fn check_signature(
3189                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3190            ) -> alloy_sol_types::Result<()> {
3191                if topics.0 != Self::SIGNATURE_HASH {
3192                    return Err(
3193                        alloy_sol_types::Error::invalid_event_signature_hash(
3194                            Self::SIGNATURE,
3195                            topics.0,
3196                            Self::SIGNATURE_HASH,
3197                        ),
3198                    );
3199                }
3200                Ok(())
3201            }
3202            #[inline]
3203            fn tokenize_body(&self) -> Self::DataToken<'_> {
3204                (
3205                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3206                        &self.account,
3207                    ),
3208                )
3209            }
3210            #[inline]
3211            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3212                (Self::SIGNATURE_HASH.into(),)
3213            }
3214            #[inline]
3215            fn encode_topics_raw(
3216                &self,
3217                out: &mut [alloy_sol_types::abi::token::WordToken],
3218            ) -> alloy_sol_types::Result<()> {
3219                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3220                    return Err(alloy_sol_types::Error::Overrun);
3221                }
3222                out[0usize] = alloy_sol_types::abi::token::WordToken(
3223                    Self::SIGNATURE_HASH,
3224                );
3225                Ok(())
3226            }
3227        }
3228        #[automatically_derived]
3229        impl alloy_sol_types::private::IntoLogData for Paused {
3230            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3231                From::from(self)
3232            }
3233            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3234                From::from(&self)
3235            }
3236        }
3237        #[automatically_derived]
3238        impl From<&Paused> for alloy_sol_types::private::LogData {
3239            #[inline]
3240            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
3241                alloy_sol_types::SolEvent::encode_log_data(this)
3242            }
3243        }
3244    };
3245    #[derive(serde::Serialize, serde::Deserialize)]
3246    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3247    /**Event with signature `RewardsClaimed(address,uint256)` and selector `0xfc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe`.
3248```solidity
3249event RewardsClaimed(address indexed user, uint256 amount);
3250```*/
3251    #[allow(
3252        non_camel_case_types,
3253        non_snake_case,
3254        clippy::pub_underscore_fields,
3255        clippy::style
3256    )]
3257    #[derive(Clone)]
3258    pub struct RewardsClaimed {
3259        #[allow(missing_docs)]
3260        pub user: alloy::sol_types::private::Address,
3261        #[allow(missing_docs)]
3262        pub amount: alloy::sol_types::private::primitives::aliases::U256,
3263    }
3264    #[allow(
3265        non_camel_case_types,
3266        non_snake_case,
3267        clippy::pub_underscore_fields,
3268        clippy::style
3269    )]
3270    const _: () = {
3271        use alloy::sol_types as alloy_sol_types;
3272        #[automatically_derived]
3273        impl alloy_sol_types::SolEvent for RewardsClaimed {
3274            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3275            type DataToken<'a> = <Self::DataTuple<
3276                'a,
3277            > as alloy_sol_types::SolType>::Token<'a>;
3278            type TopicList = (
3279                alloy_sol_types::sol_data::FixedBytes<32>,
3280                alloy::sol_types::sol_data::Address,
3281            );
3282            const SIGNATURE: &'static str = "RewardsClaimed(address,uint256)";
3283            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3284                252u8, 48u8, 205u8, 222u8, 163u8, 142u8, 43u8, 244u8, 214u8, 234u8,
3285                125u8, 63u8, 158u8, 211u8, 182u8, 173u8, 127u8, 23u8, 100u8, 25u8, 244u8,
3286                150u8, 59u8, 216u8, 19u8, 24u8, 6u8, 122u8, 74u8, 238u8, 115u8, 254u8,
3287            ]);
3288            const ANONYMOUS: bool = false;
3289            #[allow(unused_variables)]
3290            #[inline]
3291            fn new(
3292                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3293                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3294            ) -> Self {
3295                Self {
3296                    user: topics.1,
3297                    amount: data.0,
3298                }
3299            }
3300            #[inline]
3301            fn check_signature(
3302                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3303            ) -> alloy_sol_types::Result<()> {
3304                if topics.0 != Self::SIGNATURE_HASH {
3305                    return Err(
3306                        alloy_sol_types::Error::invalid_event_signature_hash(
3307                            Self::SIGNATURE,
3308                            topics.0,
3309                            Self::SIGNATURE_HASH,
3310                        ),
3311                    );
3312                }
3313                Ok(())
3314            }
3315            #[inline]
3316            fn tokenize_body(&self) -> Self::DataToken<'_> {
3317                (
3318                    <alloy::sol_types::sol_data::Uint<
3319                        256,
3320                    > as alloy_sol_types::SolType>::tokenize(&self.amount),
3321                )
3322            }
3323            #[inline]
3324            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3325                (Self::SIGNATURE_HASH.into(), self.user.clone())
3326            }
3327            #[inline]
3328            fn encode_topics_raw(
3329                &self,
3330                out: &mut [alloy_sol_types::abi::token::WordToken],
3331            ) -> alloy_sol_types::Result<()> {
3332                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3333                    return Err(alloy_sol_types::Error::Overrun);
3334                }
3335                out[0usize] = alloy_sol_types::abi::token::WordToken(
3336                    Self::SIGNATURE_HASH,
3337                );
3338                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3339                    &self.user,
3340                );
3341                Ok(())
3342            }
3343        }
3344        #[automatically_derived]
3345        impl alloy_sol_types::private::IntoLogData for RewardsClaimed {
3346            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3347                From::from(self)
3348            }
3349            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3350                From::from(&self)
3351            }
3352        }
3353        #[automatically_derived]
3354        impl From<&RewardsClaimed> for alloy_sol_types::private::LogData {
3355            #[inline]
3356            fn from(this: &RewardsClaimed) -> alloy_sol_types::private::LogData {
3357                alloy_sol_types::SolEvent::encode_log_data(this)
3358            }
3359        }
3360    };
3361    #[derive(serde::Serialize, serde::Deserialize)]
3362    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3363    /**Event with signature `RoleAdminChanged(bytes32,bytes32,bytes32)` and selector `0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff`.
3364```solidity
3365event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
3366```*/
3367    #[allow(
3368        non_camel_case_types,
3369        non_snake_case,
3370        clippy::pub_underscore_fields,
3371        clippy::style
3372    )]
3373    #[derive(Clone)]
3374    pub struct RoleAdminChanged {
3375        #[allow(missing_docs)]
3376        pub role: alloy::sol_types::private::FixedBytes<32>,
3377        #[allow(missing_docs)]
3378        pub previousAdminRole: alloy::sol_types::private::FixedBytes<32>,
3379        #[allow(missing_docs)]
3380        pub newAdminRole: alloy::sol_types::private::FixedBytes<32>,
3381    }
3382    #[allow(
3383        non_camel_case_types,
3384        non_snake_case,
3385        clippy::pub_underscore_fields,
3386        clippy::style
3387    )]
3388    const _: () = {
3389        use alloy::sol_types as alloy_sol_types;
3390        #[automatically_derived]
3391        impl alloy_sol_types::SolEvent for RoleAdminChanged {
3392            type DataTuple<'a> = ();
3393            type DataToken<'a> = <Self::DataTuple<
3394                'a,
3395            > as alloy_sol_types::SolType>::Token<'a>;
3396            type TopicList = (
3397                alloy_sol_types::sol_data::FixedBytes<32>,
3398                alloy::sol_types::sol_data::FixedBytes<32>,
3399                alloy::sol_types::sol_data::FixedBytes<32>,
3400                alloy::sol_types::sol_data::FixedBytes<32>,
3401            );
3402            const SIGNATURE: &'static str = "RoleAdminChanged(bytes32,bytes32,bytes32)";
3403            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3404                189u8, 121u8, 184u8, 111u8, 254u8, 10u8, 184u8, 232u8, 119u8, 97u8, 81u8,
3405                81u8, 66u8, 23u8, 205u8, 124u8, 172u8, 213u8, 44u8, 144u8, 159u8, 102u8,
3406                71u8, 92u8, 58u8, 244u8, 78u8, 18u8, 159u8, 11u8, 0u8, 255u8,
3407            ]);
3408            const ANONYMOUS: bool = false;
3409            #[allow(unused_variables)]
3410            #[inline]
3411            fn new(
3412                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3413                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3414            ) -> Self {
3415                Self {
3416                    role: topics.1,
3417                    previousAdminRole: topics.2,
3418                    newAdminRole: topics.3,
3419                }
3420            }
3421            #[inline]
3422            fn check_signature(
3423                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3424            ) -> alloy_sol_types::Result<()> {
3425                if topics.0 != Self::SIGNATURE_HASH {
3426                    return Err(
3427                        alloy_sol_types::Error::invalid_event_signature_hash(
3428                            Self::SIGNATURE,
3429                            topics.0,
3430                            Self::SIGNATURE_HASH,
3431                        ),
3432                    );
3433                }
3434                Ok(())
3435            }
3436            #[inline]
3437            fn tokenize_body(&self) -> Self::DataToken<'_> {
3438                ()
3439            }
3440            #[inline]
3441            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3442                (
3443                    Self::SIGNATURE_HASH.into(),
3444                    self.role.clone(),
3445                    self.previousAdminRole.clone(),
3446                    self.newAdminRole.clone(),
3447                )
3448            }
3449            #[inline]
3450            fn encode_topics_raw(
3451                &self,
3452                out: &mut [alloy_sol_types::abi::token::WordToken],
3453            ) -> alloy_sol_types::Result<()> {
3454                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3455                    return Err(alloy_sol_types::Error::Overrun);
3456                }
3457                out[0usize] = alloy_sol_types::abi::token::WordToken(
3458                    Self::SIGNATURE_HASH,
3459                );
3460                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
3461                    32,
3462                > as alloy_sol_types::EventTopic>::encode_topic(&self.role);
3463                out[2usize] = <alloy::sol_types::sol_data::FixedBytes<
3464                    32,
3465                > as alloy_sol_types::EventTopic>::encode_topic(&self.previousAdminRole);
3466                out[3usize] = <alloy::sol_types::sol_data::FixedBytes<
3467                    32,
3468                > as alloy_sol_types::EventTopic>::encode_topic(&self.newAdminRole);
3469                Ok(())
3470            }
3471        }
3472        #[automatically_derived]
3473        impl alloy_sol_types::private::IntoLogData for RoleAdminChanged {
3474            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3475                From::from(self)
3476            }
3477            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3478                From::from(&self)
3479            }
3480        }
3481        #[automatically_derived]
3482        impl From<&RoleAdminChanged> for alloy_sol_types::private::LogData {
3483            #[inline]
3484            fn from(this: &RoleAdminChanged) -> alloy_sol_types::private::LogData {
3485                alloy_sol_types::SolEvent::encode_log_data(this)
3486            }
3487        }
3488    };
3489    #[derive(serde::Serialize, serde::Deserialize)]
3490    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3491    /**Event with signature `RoleGranted(bytes32,address,address)` and selector `0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d`.
3492```solidity
3493event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
3494```*/
3495    #[allow(
3496        non_camel_case_types,
3497        non_snake_case,
3498        clippy::pub_underscore_fields,
3499        clippy::style
3500    )]
3501    #[derive(Clone)]
3502    pub struct RoleGranted {
3503        #[allow(missing_docs)]
3504        pub role: alloy::sol_types::private::FixedBytes<32>,
3505        #[allow(missing_docs)]
3506        pub account: alloy::sol_types::private::Address,
3507        #[allow(missing_docs)]
3508        pub sender: alloy::sol_types::private::Address,
3509    }
3510    #[allow(
3511        non_camel_case_types,
3512        non_snake_case,
3513        clippy::pub_underscore_fields,
3514        clippy::style
3515    )]
3516    const _: () = {
3517        use alloy::sol_types as alloy_sol_types;
3518        #[automatically_derived]
3519        impl alloy_sol_types::SolEvent for RoleGranted {
3520            type DataTuple<'a> = ();
3521            type DataToken<'a> = <Self::DataTuple<
3522                'a,
3523            > as alloy_sol_types::SolType>::Token<'a>;
3524            type TopicList = (
3525                alloy_sol_types::sol_data::FixedBytes<32>,
3526                alloy::sol_types::sol_data::FixedBytes<32>,
3527                alloy::sol_types::sol_data::Address,
3528                alloy::sol_types::sol_data::Address,
3529            );
3530            const SIGNATURE: &'static str = "RoleGranted(bytes32,address,address)";
3531            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3532                47u8, 135u8, 136u8, 17u8, 126u8, 126u8, 255u8, 29u8, 130u8, 233u8, 38u8,
3533                236u8, 121u8, 73u8, 1u8, 209u8, 124u8, 120u8, 2u8, 74u8, 80u8, 39u8, 9u8,
3534                64u8, 48u8, 69u8, 64u8, 167u8, 51u8, 101u8, 111u8, 13u8,
3535            ]);
3536            const ANONYMOUS: bool = false;
3537            #[allow(unused_variables)]
3538            #[inline]
3539            fn new(
3540                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3541                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3542            ) -> Self {
3543                Self {
3544                    role: topics.1,
3545                    account: topics.2,
3546                    sender: topics.3,
3547                }
3548            }
3549            #[inline]
3550            fn check_signature(
3551                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3552            ) -> alloy_sol_types::Result<()> {
3553                if topics.0 != Self::SIGNATURE_HASH {
3554                    return Err(
3555                        alloy_sol_types::Error::invalid_event_signature_hash(
3556                            Self::SIGNATURE,
3557                            topics.0,
3558                            Self::SIGNATURE_HASH,
3559                        ),
3560                    );
3561                }
3562                Ok(())
3563            }
3564            #[inline]
3565            fn tokenize_body(&self) -> Self::DataToken<'_> {
3566                ()
3567            }
3568            #[inline]
3569            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3570                (
3571                    Self::SIGNATURE_HASH.into(),
3572                    self.role.clone(),
3573                    self.account.clone(),
3574                    self.sender.clone(),
3575                )
3576            }
3577            #[inline]
3578            fn encode_topics_raw(
3579                &self,
3580                out: &mut [alloy_sol_types::abi::token::WordToken],
3581            ) -> alloy_sol_types::Result<()> {
3582                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3583                    return Err(alloy_sol_types::Error::Overrun);
3584                }
3585                out[0usize] = alloy_sol_types::abi::token::WordToken(
3586                    Self::SIGNATURE_HASH,
3587                );
3588                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
3589                    32,
3590                > as alloy_sol_types::EventTopic>::encode_topic(&self.role);
3591                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3592                    &self.account,
3593                );
3594                out[3usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3595                    &self.sender,
3596                );
3597                Ok(())
3598            }
3599        }
3600        #[automatically_derived]
3601        impl alloy_sol_types::private::IntoLogData for RoleGranted {
3602            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3603                From::from(self)
3604            }
3605            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3606                From::from(&self)
3607            }
3608        }
3609        #[automatically_derived]
3610        impl From<&RoleGranted> for alloy_sol_types::private::LogData {
3611            #[inline]
3612            fn from(this: &RoleGranted) -> alloy_sol_types::private::LogData {
3613                alloy_sol_types::SolEvent::encode_log_data(this)
3614            }
3615        }
3616    };
3617    #[derive(serde::Serialize, serde::Deserialize)]
3618    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3619    /**Event with signature `RoleRevoked(bytes32,address,address)` and selector `0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b`.
3620```solidity
3621event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
3622```*/
3623    #[allow(
3624        non_camel_case_types,
3625        non_snake_case,
3626        clippy::pub_underscore_fields,
3627        clippy::style
3628    )]
3629    #[derive(Clone)]
3630    pub struct RoleRevoked {
3631        #[allow(missing_docs)]
3632        pub role: alloy::sol_types::private::FixedBytes<32>,
3633        #[allow(missing_docs)]
3634        pub account: alloy::sol_types::private::Address,
3635        #[allow(missing_docs)]
3636        pub sender: alloy::sol_types::private::Address,
3637    }
3638    #[allow(
3639        non_camel_case_types,
3640        non_snake_case,
3641        clippy::pub_underscore_fields,
3642        clippy::style
3643    )]
3644    const _: () = {
3645        use alloy::sol_types as alloy_sol_types;
3646        #[automatically_derived]
3647        impl alloy_sol_types::SolEvent for RoleRevoked {
3648            type DataTuple<'a> = ();
3649            type DataToken<'a> = <Self::DataTuple<
3650                'a,
3651            > as alloy_sol_types::SolType>::Token<'a>;
3652            type TopicList = (
3653                alloy_sol_types::sol_data::FixedBytes<32>,
3654                alloy::sol_types::sol_data::FixedBytes<32>,
3655                alloy::sol_types::sol_data::Address,
3656                alloy::sol_types::sol_data::Address,
3657            );
3658            const SIGNATURE: &'static str = "RoleRevoked(bytes32,address,address)";
3659            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3660                246u8, 57u8, 31u8, 92u8, 50u8, 217u8, 198u8, 157u8, 42u8, 71u8, 234u8,
3661                103u8, 11u8, 68u8, 41u8, 116u8, 181u8, 57u8, 53u8, 209u8, 237u8, 199u8,
3662                253u8, 100u8, 235u8, 33u8, 224u8, 71u8, 168u8, 57u8, 23u8, 27u8,
3663            ]);
3664            const ANONYMOUS: bool = false;
3665            #[allow(unused_variables)]
3666            #[inline]
3667            fn new(
3668                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3669                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3670            ) -> Self {
3671                Self {
3672                    role: topics.1,
3673                    account: topics.2,
3674                    sender: topics.3,
3675                }
3676            }
3677            #[inline]
3678            fn check_signature(
3679                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3680            ) -> alloy_sol_types::Result<()> {
3681                if topics.0 != Self::SIGNATURE_HASH {
3682                    return Err(
3683                        alloy_sol_types::Error::invalid_event_signature_hash(
3684                            Self::SIGNATURE,
3685                            topics.0,
3686                            Self::SIGNATURE_HASH,
3687                        ),
3688                    );
3689                }
3690                Ok(())
3691            }
3692            #[inline]
3693            fn tokenize_body(&self) -> Self::DataToken<'_> {
3694                ()
3695            }
3696            #[inline]
3697            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3698                (
3699                    Self::SIGNATURE_HASH.into(),
3700                    self.role.clone(),
3701                    self.account.clone(),
3702                    self.sender.clone(),
3703                )
3704            }
3705            #[inline]
3706            fn encode_topics_raw(
3707                &self,
3708                out: &mut [alloy_sol_types::abi::token::WordToken],
3709            ) -> alloy_sol_types::Result<()> {
3710                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3711                    return Err(alloy_sol_types::Error::Overrun);
3712                }
3713                out[0usize] = alloy_sol_types::abi::token::WordToken(
3714                    Self::SIGNATURE_HASH,
3715                );
3716                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
3717                    32,
3718                > as alloy_sol_types::EventTopic>::encode_topic(&self.role);
3719                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3720                    &self.account,
3721                );
3722                out[3usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3723                    &self.sender,
3724                );
3725                Ok(())
3726            }
3727        }
3728        #[automatically_derived]
3729        impl alloy_sol_types::private::IntoLogData for RoleRevoked {
3730            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3731                From::from(self)
3732            }
3733            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3734                From::from(&self)
3735            }
3736        }
3737        #[automatically_derived]
3738        impl From<&RoleRevoked> for alloy_sol_types::private::LogData {
3739            #[inline]
3740            fn from(this: &RoleRevoked) -> alloy_sol_types::private::LogData {
3741                alloy_sol_types::SolEvent::encode_log_data(this)
3742            }
3743        }
3744    };
3745    #[derive(serde::Serialize, serde::Deserialize)]
3746    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3747    /**Event with signature `Unpaused(address)` and selector `0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa`.
3748```solidity
3749event Unpaused(address account);
3750```*/
3751    #[allow(
3752        non_camel_case_types,
3753        non_snake_case,
3754        clippy::pub_underscore_fields,
3755        clippy::style
3756    )]
3757    #[derive(Clone)]
3758    pub struct Unpaused {
3759        #[allow(missing_docs)]
3760        pub account: alloy::sol_types::private::Address,
3761    }
3762    #[allow(
3763        non_camel_case_types,
3764        non_snake_case,
3765        clippy::pub_underscore_fields,
3766        clippy::style
3767    )]
3768    const _: () = {
3769        use alloy::sol_types as alloy_sol_types;
3770        #[automatically_derived]
3771        impl alloy_sol_types::SolEvent for Unpaused {
3772            type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
3773            type DataToken<'a> = <Self::DataTuple<
3774                'a,
3775            > as alloy_sol_types::SolType>::Token<'a>;
3776            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3777            const SIGNATURE: &'static str = "Unpaused(address)";
3778            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3779                93u8, 185u8, 238u8, 10u8, 73u8, 91u8, 242u8, 230u8, 255u8, 156u8, 145u8,
3780                167u8, 131u8, 76u8, 27u8, 164u8, 253u8, 210u8, 68u8, 165u8, 232u8, 170u8,
3781                78u8, 83u8, 123u8, 211u8, 138u8, 234u8, 228u8, 176u8, 115u8, 170u8,
3782            ]);
3783            const ANONYMOUS: bool = false;
3784            #[allow(unused_variables)]
3785            #[inline]
3786            fn new(
3787                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3788                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3789            ) -> Self {
3790                Self { account: data.0 }
3791            }
3792            #[inline]
3793            fn check_signature(
3794                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3795            ) -> alloy_sol_types::Result<()> {
3796                if topics.0 != Self::SIGNATURE_HASH {
3797                    return Err(
3798                        alloy_sol_types::Error::invalid_event_signature_hash(
3799                            Self::SIGNATURE,
3800                            topics.0,
3801                            Self::SIGNATURE_HASH,
3802                        ),
3803                    );
3804                }
3805                Ok(())
3806            }
3807            #[inline]
3808            fn tokenize_body(&self) -> Self::DataToken<'_> {
3809                (
3810                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3811                        &self.account,
3812                    ),
3813                )
3814            }
3815            #[inline]
3816            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3817                (Self::SIGNATURE_HASH.into(),)
3818            }
3819            #[inline]
3820            fn encode_topics_raw(
3821                &self,
3822                out: &mut [alloy_sol_types::abi::token::WordToken],
3823            ) -> alloy_sol_types::Result<()> {
3824                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3825                    return Err(alloy_sol_types::Error::Overrun);
3826                }
3827                out[0usize] = alloy_sol_types::abi::token::WordToken(
3828                    Self::SIGNATURE_HASH,
3829                );
3830                Ok(())
3831            }
3832        }
3833        #[automatically_derived]
3834        impl alloy_sol_types::private::IntoLogData for Unpaused {
3835            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3836                From::from(self)
3837            }
3838            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3839                From::from(&self)
3840            }
3841        }
3842        #[automatically_derived]
3843        impl From<&Unpaused> for alloy_sol_types::private::LogData {
3844            #[inline]
3845            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
3846                alloy_sol_types::SolEvent::encode_log_data(this)
3847            }
3848        }
3849    };
3850    #[derive(serde::Serialize, serde::Deserialize)]
3851    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3852    /**Event with signature `Upgraded(address)` and selector `0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b`.
3853```solidity
3854event Upgraded(address indexed implementation);
3855```*/
3856    #[allow(
3857        non_camel_case_types,
3858        non_snake_case,
3859        clippy::pub_underscore_fields,
3860        clippy::style
3861    )]
3862    #[derive(Clone)]
3863    pub struct Upgraded {
3864        #[allow(missing_docs)]
3865        pub implementation: alloy::sol_types::private::Address,
3866    }
3867    #[allow(
3868        non_camel_case_types,
3869        non_snake_case,
3870        clippy::pub_underscore_fields,
3871        clippy::style
3872    )]
3873    const _: () = {
3874        use alloy::sol_types as alloy_sol_types;
3875        #[automatically_derived]
3876        impl alloy_sol_types::SolEvent for Upgraded {
3877            type DataTuple<'a> = ();
3878            type DataToken<'a> = <Self::DataTuple<
3879                'a,
3880            > as alloy_sol_types::SolType>::Token<'a>;
3881            type TopicList = (
3882                alloy_sol_types::sol_data::FixedBytes<32>,
3883                alloy::sol_types::sol_data::Address,
3884            );
3885            const SIGNATURE: &'static str = "Upgraded(address)";
3886            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3887                188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
3888                179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
3889                12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
3890            ]);
3891            const ANONYMOUS: bool = false;
3892            #[allow(unused_variables)]
3893            #[inline]
3894            fn new(
3895                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3896                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3897            ) -> Self {
3898                Self { implementation: topics.1 }
3899            }
3900            #[inline]
3901            fn check_signature(
3902                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3903            ) -> alloy_sol_types::Result<()> {
3904                if topics.0 != Self::SIGNATURE_HASH {
3905                    return Err(
3906                        alloy_sol_types::Error::invalid_event_signature_hash(
3907                            Self::SIGNATURE,
3908                            topics.0,
3909                            Self::SIGNATURE_HASH,
3910                        ),
3911                    );
3912                }
3913                Ok(())
3914            }
3915            #[inline]
3916            fn tokenize_body(&self) -> Self::DataToken<'_> {
3917                ()
3918            }
3919            #[inline]
3920            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3921                (Self::SIGNATURE_HASH.into(), self.implementation.clone())
3922            }
3923            #[inline]
3924            fn encode_topics_raw(
3925                &self,
3926                out: &mut [alloy_sol_types::abi::token::WordToken],
3927            ) -> alloy_sol_types::Result<()> {
3928                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3929                    return Err(alloy_sol_types::Error::Overrun);
3930                }
3931                out[0usize] = alloy_sol_types::abi::token::WordToken(
3932                    Self::SIGNATURE_HASH,
3933                );
3934                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3935                    &self.implementation,
3936                );
3937                Ok(())
3938            }
3939        }
3940        #[automatically_derived]
3941        impl alloy_sol_types::private::IntoLogData for Upgraded {
3942            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3943                From::from(self)
3944            }
3945            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3946                From::from(&self)
3947            }
3948        }
3949        #[automatically_derived]
3950        impl From<&Upgraded> for alloy_sol_types::private::LogData {
3951            #[inline]
3952            fn from(this: &Upgraded) -> alloy_sol_types::private::LogData {
3953                alloy_sol_types::SolEvent::encode_log_data(this)
3954            }
3955        }
3956    };
3957    /**Constructor`.
3958```solidity
3959constructor();
3960```*/
3961    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3962    #[derive(Clone)]
3963    pub struct constructorCall {}
3964    const _: () = {
3965        use alloy::sol_types as alloy_sol_types;
3966        {
3967            #[doc(hidden)]
3968            #[allow(dead_code)]
3969            type UnderlyingSolTuple<'a> = ();
3970            #[doc(hidden)]
3971            type UnderlyingRustTuple<'a> = ();
3972            #[cfg(test)]
3973            #[allow(dead_code, unreachable_patterns)]
3974            fn _type_assertion(
3975                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3976            ) {
3977                match _t {
3978                    alloy_sol_types::private::AssertTypeEq::<
3979                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3980                    >(_) => {}
3981                }
3982            }
3983            #[automatically_derived]
3984            #[doc(hidden)]
3985            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
3986                fn from(value: constructorCall) -> Self {
3987                    ()
3988                }
3989            }
3990            #[automatically_derived]
3991            #[doc(hidden)]
3992            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
3993                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3994                    Self {}
3995                }
3996            }
3997        }
3998        #[automatically_derived]
3999        impl alloy_sol_types::SolConstructor for constructorCall {
4000            type Parameters<'a> = ();
4001            type Token<'a> = <Self::Parameters<
4002                'a,
4003            > as alloy_sol_types::SolType>::Token<'a>;
4004            #[inline]
4005            fn new<'a>(
4006                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4007            ) -> Self {
4008                tuple.into()
4009            }
4010            #[inline]
4011            fn tokenize(&self) -> Self::Token<'_> {
4012                ()
4013            }
4014        }
4015    };
4016    #[derive(serde::Serialize, serde::Deserialize)]
4017    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4018    /**Function with signature `BPS_DENOMINATOR()` and selector `0xe1a45218`.
4019```solidity
4020function BPS_DENOMINATOR() external view returns (uint256);
4021```*/
4022    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4023    #[derive(Clone)]
4024    pub struct BPS_DENOMINATORCall;
4025    #[derive(serde::Serialize, serde::Deserialize)]
4026    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4027    ///Container type for the return parameters of the [`BPS_DENOMINATOR()`](BPS_DENOMINATORCall) function.
4028    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4029    #[derive(Clone)]
4030    pub struct BPS_DENOMINATORReturn {
4031        #[allow(missing_docs)]
4032        pub _0: alloy::sol_types::private::primitives::aliases::U256,
4033    }
4034    #[allow(
4035        non_camel_case_types,
4036        non_snake_case,
4037        clippy::pub_underscore_fields,
4038        clippy::style
4039    )]
4040    const _: () = {
4041        use alloy::sol_types as alloy_sol_types;
4042        {
4043            #[doc(hidden)]
4044            #[allow(dead_code)]
4045            type UnderlyingSolTuple<'a> = ();
4046            #[doc(hidden)]
4047            type UnderlyingRustTuple<'a> = ();
4048            #[cfg(test)]
4049            #[allow(dead_code, unreachable_patterns)]
4050            fn _type_assertion(
4051                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4052            ) {
4053                match _t {
4054                    alloy_sol_types::private::AssertTypeEq::<
4055                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4056                    >(_) => {}
4057                }
4058            }
4059            #[automatically_derived]
4060            #[doc(hidden)]
4061            impl ::core::convert::From<BPS_DENOMINATORCall> for UnderlyingRustTuple<'_> {
4062                fn from(value: BPS_DENOMINATORCall) -> Self {
4063                    ()
4064                }
4065            }
4066            #[automatically_derived]
4067            #[doc(hidden)]
4068            impl ::core::convert::From<UnderlyingRustTuple<'_>> for BPS_DENOMINATORCall {
4069                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4070                    Self
4071                }
4072            }
4073        }
4074        {
4075            #[doc(hidden)]
4076            #[allow(dead_code)]
4077            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4078            #[doc(hidden)]
4079            type UnderlyingRustTuple<'a> = (
4080                alloy::sol_types::private::primitives::aliases::U256,
4081            );
4082            #[cfg(test)]
4083            #[allow(dead_code, unreachable_patterns)]
4084            fn _type_assertion(
4085                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4086            ) {
4087                match _t {
4088                    alloy_sol_types::private::AssertTypeEq::<
4089                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4090                    >(_) => {}
4091                }
4092            }
4093            #[automatically_derived]
4094            #[doc(hidden)]
4095            impl ::core::convert::From<BPS_DENOMINATORReturn>
4096            for UnderlyingRustTuple<'_> {
4097                fn from(value: BPS_DENOMINATORReturn) -> Self {
4098                    (value._0,)
4099                }
4100            }
4101            #[automatically_derived]
4102            #[doc(hidden)]
4103            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4104            for BPS_DENOMINATORReturn {
4105                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4106                    Self { _0: tuple.0 }
4107                }
4108            }
4109        }
4110        #[automatically_derived]
4111        impl alloy_sol_types::SolCall for BPS_DENOMINATORCall {
4112            type Parameters<'a> = ();
4113            type Token<'a> = <Self::Parameters<
4114                'a,
4115            > as alloy_sol_types::SolType>::Token<'a>;
4116            type Return = alloy::sol_types::private::primitives::aliases::U256;
4117            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4118            type ReturnToken<'a> = <Self::ReturnTuple<
4119                'a,
4120            > as alloy_sol_types::SolType>::Token<'a>;
4121            const SIGNATURE: &'static str = "BPS_DENOMINATOR()";
4122            const SELECTOR: [u8; 4] = [225u8, 164u8, 82u8, 24u8];
4123            #[inline]
4124            fn new<'a>(
4125                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4126            ) -> Self {
4127                tuple.into()
4128            }
4129            #[inline]
4130            fn tokenize(&self) -> Self::Token<'_> {
4131                ()
4132            }
4133            #[inline]
4134            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4135                (
4136                    <alloy::sol_types::sol_data::Uint<
4137                        256,
4138                    > as alloy_sol_types::SolType>::tokenize(ret),
4139                )
4140            }
4141            #[inline]
4142            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4143                <Self::ReturnTuple<
4144                    '_,
4145                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4146                    .map(|r| {
4147                        let r: BPS_DENOMINATORReturn = r.into();
4148                        r._0
4149                    })
4150            }
4151            #[inline]
4152            fn abi_decode_returns_with_config(
4153                data: &[u8],
4154                config: alloy_sol_types::abi::AbiDecoderConfig,
4155            ) -> alloy_sol_types::Result<Self::Return> {
4156                <Self::ReturnTuple<
4157                    '_,
4158                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4159                        data,
4160                        config,
4161                    )
4162                    .map(|r| {
4163                        let r: BPS_DENOMINATORReturn = r.into();
4164                        r._0
4165                    })
4166            }
4167            #[inline]
4168            fn abi_decode_returns_validate(
4169                data: &[u8],
4170            ) -> alloy_sol_types::Result<Self::Return> {
4171                Self::abi_decode_returns_with_config(
4172                    data,
4173                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4174                )
4175            }
4176        }
4177    };
4178    #[derive(serde::Serialize, serde::Deserialize)]
4179    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4180    /**Function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`.
4181```solidity
4182function DEFAULT_ADMIN_ROLE() external view returns (bytes32);
4183```*/
4184    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4185    #[derive(Clone)]
4186    pub struct DEFAULT_ADMIN_ROLECall;
4187    #[derive(serde::Serialize, serde::Deserialize)]
4188    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4189    ///Container type for the return parameters of the [`DEFAULT_ADMIN_ROLE()`](DEFAULT_ADMIN_ROLECall) function.
4190    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4191    #[derive(Clone)]
4192    pub struct DEFAULT_ADMIN_ROLEReturn {
4193        #[allow(missing_docs)]
4194        pub _0: alloy::sol_types::private::FixedBytes<32>,
4195    }
4196    #[allow(
4197        non_camel_case_types,
4198        non_snake_case,
4199        clippy::pub_underscore_fields,
4200        clippy::style
4201    )]
4202    const _: () = {
4203        use alloy::sol_types as alloy_sol_types;
4204        {
4205            #[doc(hidden)]
4206            #[allow(dead_code)]
4207            type UnderlyingSolTuple<'a> = ();
4208            #[doc(hidden)]
4209            type UnderlyingRustTuple<'a> = ();
4210            #[cfg(test)]
4211            #[allow(dead_code, unreachable_patterns)]
4212            fn _type_assertion(
4213                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4214            ) {
4215                match _t {
4216                    alloy_sol_types::private::AssertTypeEq::<
4217                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4218                    >(_) => {}
4219                }
4220            }
4221            #[automatically_derived]
4222            #[doc(hidden)]
4223            impl ::core::convert::From<DEFAULT_ADMIN_ROLECall>
4224            for UnderlyingRustTuple<'_> {
4225                fn from(value: DEFAULT_ADMIN_ROLECall) -> Self {
4226                    ()
4227                }
4228            }
4229            #[automatically_derived]
4230            #[doc(hidden)]
4231            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4232            for DEFAULT_ADMIN_ROLECall {
4233                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4234                    Self
4235                }
4236            }
4237        }
4238        {
4239            #[doc(hidden)]
4240            #[allow(dead_code)]
4241            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4242            #[doc(hidden)]
4243            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
4244            #[cfg(test)]
4245            #[allow(dead_code, unreachable_patterns)]
4246            fn _type_assertion(
4247                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4248            ) {
4249                match _t {
4250                    alloy_sol_types::private::AssertTypeEq::<
4251                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4252                    >(_) => {}
4253                }
4254            }
4255            #[automatically_derived]
4256            #[doc(hidden)]
4257            impl ::core::convert::From<DEFAULT_ADMIN_ROLEReturn>
4258            for UnderlyingRustTuple<'_> {
4259                fn from(value: DEFAULT_ADMIN_ROLEReturn) -> Self {
4260                    (value._0,)
4261                }
4262            }
4263            #[automatically_derived]
4264            #[doc(hidden)]
4265            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4266            for DEFAULT_ADMIN_ROLEReturn {
4267                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4268                    Self { _0: tuple.0 }
4269                }
4270            }
4271        }
4272        #[automatically_derived]
4273        impl alloy_sol_types::SolCall for DEFAULT_ADMIN_ROLECall {
4274            type Parameters<'a> = ();
4275            type Token<'a> = <Self::Parameters<
4276                'a,
4277            > as alloy_sol_types::SolType>::Token<'a>;
4278            type Return = alloy::sol_types::private::FixedBytes<32>;
4279            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4280            type ReturnToken<'a> = <Self::ReturnTuple<
4281                'a,
4282            > as alloy_sol_types::SolType>::Token<'a>;
4283            const SIGNATURE: &'static str = "DEFAULT_ADMIN_ROLE()";
4284            const SELECTOR: [u8; 4] = [162u8, 23u8, 253u8, 223u8];
4285            #[inline]
4286            fn new<'a>(
4287                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4288            ) -> Self {
4289                tuple.into()
4290            }
4291            #[inline]
4292            fn tokenize(&self) -> Self::Token<'_> {
4293                ()
4294            }
4295            #[inline]
4296            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4297                (
4298                    <alloy::sol_types::sol_data::FixedBytes<
4299                        32,
4300                    > as alloy_sol_types::SolType>::tokenize(ret),
4301                )
4302            }
4303            #[inline]
4304            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4305                <Self::ReturnTuple<
4306                    '_,
4307                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4308                    .map(|r| {
4309                        let r: DEFAULT_ADMIN_ROLEReturn = r.into();
4310                        r._0
4311                    })
4312            }
4313            #[inline]
4314            fn abi_decode_returns_with_config(
4315                data: &[u8],
4316                config: alloy_sol_types::abi::AbiDecoderConfig,
4317            ) -> alloy_sol_types::Result<Self::Return> {
4318                <Self::ReturnTuple<
4319                    '_,
4320                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4321                        data,
4322                        config,
4323                    )
4324                    .map(|r| {
4325                        let r: DEFAULT_ADMIN_ROLEReturn = r.into();
4326                        r._0
4327                    })
4328            }
4329            #[inline]
4330            fn abi_decode_returns_validate(
4331                data: &[u8],
4332            ) -> alloy_sol_types::Result<Self::Return> {
4333                Self::abi_decode_returns_with_config(
4334                    data,
4335                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4336                )
4337            }
4338        }
4339    };
4340    #[derive(serde::Serialize, serde::Deserialize)]
4341    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4342    /**Function with signature `MAX_DAILY_LIMIT_BASIS_POINTS()` and selector `0xcf21395b`.
4343```solidity
4344function MAX_DAILY_LIMIT_BASIS_POINTS() external view returns (uint256);
4345```*/
4346    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4347    #[derive(Clone)]
4348    pub struct MAX_DAILY_LIMIT_BASIS_POINTSCall;
4349    #[derive(serde::Serialize, serde::Deserialize)]
4350    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4351    ///Container type for the return parameters of the [`MAX_DAILY_LIMIT_BASIS_POINTS()`](MAX_DAILY_LIMIT_BASIS_POINTSCall) function.
4352    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4353    #[derive(Clone)]
4354    pub struct MAX_DAILY_LIMIT_BASIS_POINTSReturn {
4355        #[allow(missing_docs)]
4356        pub _0: alloy::sol_types::private::primitives::aliases::U256,
4357    }
4358    #[allow(
4359        non_camel_case_types,
4360        non_snake_case,
4361        clippy::pub_underscore_fields,
4362        clippy::style
4363    )]
4364    const _: () = {
4365        use alloy::sol_types as alloy_sol_types;
4366        {
4367            #[doc(hidden)]
4368            #[allow(dead_code)]
4369            type UnderlyingSolTuple<'a> = ();
4370            #[doc(hidden)]
4371            type UnderlyingRustTuple<'a> = ();
4372            #[cfg(test)]
4373            #[allow(dead_code, unreachable_patterns)]
4374            fn _type_assertion(
4375                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4376            ) {
4377                match _t {
4378                    alloy_sol_types::private::AssertTypeEq::<
4379                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4380                    >(_) => {}
4381                }
4382            }
4383            #[automatically_derived]
4384            #[doc(hidden)]
4385            impl ::core::convert::From<MAX_DAILY_LIMIT_BASIS_POINTSCall>
4386            for UnderlyingRustTuple<'_> {
4387                fn from(value: MAX_DAILY_LIMIT_BASIS_POINTSCall) -> Self {
4388                    ()
4389                }
4390            }
4391            #[automatically_derived]
4392            #[doc(hidden)]
4393            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4394            for MAX_DAILY_LIMIT_BASIS_POINTSCall {
4395                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4396                    Self
4397                }
4398            }
4399        }
4400        {
4401            #[doc(hidden)]
4402            #[allow(dead_code)]
4403            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4404            #[doc(hidden)]
4405            type UnderlyingRustTuple<'a> = (
4406                alloy::sol_types::private::primitives::aliases::U256,
4407            );
4408            #[cfg(test)]
4409            #[allow(dead_code, unreachable_patterns)]
4410            fn _type_assertion(
4411                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4412            ) {
4413                match _t {
4414                    alloy_sol_types::private::AssertTypeEq::<
4415                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4416                    >(_) => {}
4417                }
4418            }
4419            #[automatically_derived]
4420            #[doc(hidden)]
4421            impl ::core::convert::From<MAX_DAILY_LIMIT_BASIS_POINTSReturn>
4422            for UnderlyingRustTuple<'_> {
4423                fn from(value: MAX_DAILY_LIMIT_BASIS_POINTSReturn) -> Self {
4424                    (value._0,)
4425                }
4426            }
4427            #[automatically_derived]
4428            #[doc(hidden)]
4429            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4430            for MAX_DAILY_LIMIT_BASIS_POINTSReturn {
4431                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4432                    Self { _0: tuple.0 }
4433                }
4434            }
4435        }
4436        #[automatically_derived]
4437        impl alloy_sol_types::SolCall for MAX_DAILY_LIMIT_BASIS_POINTSCall {
4438            type Parameters<'a> = ();
4439            type Token<'a> = <Self::Parameters<
4440                'a,
4441            > as alloy_sol_types::SolType>::Token<'a>;
4442            type Return = alloy::sol_types::private::primitives::aliases::U256;
4443            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4444            type ReturnToken<'a> = <Self::ReturnTuple<
4445                'a,
4446            > as alloy_sol_types::SolType>::Token<'a>;
4447            const SIGNATURE: &'static str = "MAX_DAILY_LIMIT_BASIS_POINTS()";
4448            const SELECTOR: [u8; 4] = [207u8, 33u8, 57u8, 91u8];
4449            #[inline]
4450            fn new<'a>(
4451                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4452            ) -> Self {
4453                tuple.into()
4454            }
4455            #[inline]
4456            fn tokenize(&self) -> Self::Token<'_> {
4457                ()
4458            }
4459            #[inline]
4460            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4461                (
4462                    <alloy::sol_types::sol_data::Uint<
4463                        256,
4464                    > as alloy_sol_types::SolType>::tokenize(ret),
4465                )
4466            }
4467            #[inline]
4468            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4469                <Self::ReturnTuple<
4470                    '_,
4471                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4472                    .map(|r| {
4473                        let r: MAX_DAILY_LIMIT_BASIS_POINTSReturn = r.into();
4474                        r._0
4475                    })
4476            }
4477            #[inline]
4478            fn abi_decode_returns_with_config(
4479                data: &[u8],
4480                config: alloy_sol_types::abi::AbiDecoderConfig,
4481            ) -> alloy_sol_types::Result<Self::Return> {
4482                <Self::ReturnTuple<
4483                    '_,
4484                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4485                        data,
4486                        config,
4487                    )
4488                    .map(|r| {
4489                        let r: MAX_DAILY_LIMIT_BASIS_POINTSReturn = r.into();
4490                        r._0
4491                    })
4492            }
4493            #[inline]
4494            fn abi_decode_returns_validate(
4495                data: &[u8],
4496            ) -> alloy_sol_types::Result<Self::Return> {
4497                Self::abi_decode_returns_with_config(
4498                    data,
4499                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4500                )
4501            }
4502        }
4503    };
4504    #[derive(serde::Serialize, serde::Deserialize)]
4505    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4506    /**Function with signature `PAUSER_ROLE()` and selector `0xe63ab1e9`.
4507```solidity
4508function PAUSER_ROLE() external view returns (bytes32);
4509```*/
4510    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4511    #[derive(Clone)]
4512    pub struct PAUSER_ROLECall;
4513    #[derive(serde::Serialize, serde::Deserialize)]
4514    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4515    ///Container type for the return parameters of the [`PAUSER_ROLE()`](PAUSER_ROLECall) function.
4516    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4517    #[derive(Clone)]
4518    pub struct PAUSER_ROLEReturn {
4519        #[allow(missing_docs)]
4520        pub _0: alloy::sol_types::private::FixedBytes<32>,
4521    }
4522    #[allow(
4523        non_camel_case_types,
4524        non_snake_case,
4525        clippy::pub_underscore_fields,
4526        clippy::style
4527    )]
4528    const _: () = {
4529        use alloy::sol_types as alloy_sol_types;
4530        {
4531            #[doc(hidden)]
4532            #[allow(dead_code)]
4533            type UnderlyingSolTuple<'a> = ();
4534            #[doc(hidden)]
4535            type UnderlyingRustTuple<'a> = ();
4536            #[cfg(test)]
4537            #[allow(dead_code, unreachable_patterns)]
4538            fn _type_assertion(
4539                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4540            ) {
4541                match _t {
4542                    alloy_sol_types::private::AssertTypeEq::<
4543                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4544                    >(_) => {}
4545                }
4546            }
4547            #[automatically_derived]
4548            #[doc(hidden)]
4549            impl ::core::convert::From<PAUSER_ROLECall> for UnderlyingRustTuple<'_> {
4550                fn from(value: PAUSER_ROLECall) -> Self {
4551                    ()
4552                }
4553            }
4554            #[automatically_derived]
4555            #[doc(hidden)]
4556            impl ::core::convert::From<UnderlyingRustTuple<'_>> for PAUSER_ROLECall {
4557                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4558                    Self
4559                }
4560            }
4561        }
4562        {
4563            #[doc(hidden)]
4564            #[allow(dead_code)]
4565            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4566            #[doc(hidden)]
4567            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
4568            #[cfg(test)]
4569            #[allow(dead_code, unreachable_patterns)]
4570            fn _type_assertion(
4571                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4572            ) {
4573                match _t {
4574                    alloy_sol_types::private::AssertTypeEq::<
4575                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4576                    >(_) => {}
4577                }
4578            }
4579            #[automatically_derived]
4580            #[doc(hidden)]
4581            impl ::core::convert::From<PAUSER_ROLEReturn> for UnderlyingRustTuple<'_> {
4582                fn from(value: PAUSER_ROLEReturn) -> Self {
4583                    (value._0,)
4584                }
4585            }
4586            #[automatically_derived]
4587            #[doc(hidden)]
4588            impl ::core::convert::From<UnderlyingRustTuple<'_>> for PAUSER_ROLEReturn {
4589                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4590                    Self { _0: tuple.0 }
4591                }
4592            }
4593        }
4594        #[automatically_derived]
4595        impl alloy_sol_types::SolCall for PAUSER_ROLECall {
4596            type Parameters<'a> = ();
4597            type Token<'a> = <Self::Parameters<
4598                'a,
4599            > as alloy_sol_types::SolType>::Token<'a>;
4600            type Return = alloy::sol_types::private::FixedBytes<32>;
4601            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4602            type ReturnToken<'a> = <Self::ReturnTuple<
4603                'a,
4604            > as alloy_sol_types::SolType>::Token<'a>;
4605            const SIGNATURE: &'static str = "PAUSER_ROLE()";
4606            const SELECTOR: [u8; 4] = [230u8, 58u8, 177u8, 233u8];
4607            #[inline]
4608            fn new<'a>(
4609                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4610            ) -> Self {
4611                tuple.into()
4612            }
4613            #[inline]
4614            fn tokenize(&self) -> Self::Token<'_> {
4615                ()
4616            }
4617            #[inline]
4618            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4619                (
4620                    <alloy::sol_types::sol_data::FixedBytes<
4621                        32,
4622                    > as alloy_sol_types::SolType>::tokenize(ret),
4623                )
4624            }
4625            #[inline]
4626            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4627                <Self::ReturnTuple<
4628                    '_,
4629                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4630                    .map(|r| {
4631                        let r: PAUSER_ROLEReturn = r.into();
4632                        r._0
4633                    })
4634            }
4635            #[inline]
4636            fn abi_decode_returns_with_config(
4637                data: &[u8],
4638                config: alloy_sol_types::abi::AbiDecoderConfig,
4639            ) -> alloy_sol_types::Result<Self::Return> {
4640                <Self::ReturnTuple<
4641                    '_,
4642                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4643                        data,
4644                        config,
4645                    )
4646                    .map(|r| {
4647                        let r: PAUSER_ROLEReturn = r.into();
4648                        r._0
4649                    })
4650            }
4651            #[inline]
4652            fn abi_decode_returns_validate(
4653                data: &[u8],
4654            ) -> alloy_sol_types::Result<Self::Return> {
4655                Self::abi_decode_returns_with_config(
4656                    data,
4657                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4658                )
4659            }
4660        }
4661    };
4662    #[derive(serde::Serialize, serde::Deserialize)]
4663    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4664    /**Function with signature `UPGRADE_INTERFACE_VERSION()` and selector `0xad3cb1cc`.
4665```solidity
4666function UPGRADE_INTERFACE_VERSION() external view returns (string memory);
4667```*/
4668    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4669    #[derive(Clone)]
4670    pub struct UPGRADE_INTERFACE_VERSIONCall;
4671    #[derive(serde::Serialize, serde::Deserialize)]
4672    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4673    ///Container type for the return parameters of the [`UPGRADE_INTERFACE_VERSION()`](UPGRADE_INTERFACE_VERSIONCall) function.
4674    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4675    #[derive(Clone)]
4676    pub struct UPGRADE_INTERFACE_VERSIONReturn {
4677        #[allow(missing_docs)]
4678        pub _0: alloy::sol_types::private::String,
4679    }
4680    #[allow(
4681        non_camel_case_types,
4682        non_snake_case,
4683        clippy::pub_underscore_fields,
4684        clippy::style
4685    )]
4686    const _: () = {
4687        use alloy::sol_types as alloy_sol_types;
4688        {
4689            #[doc(hidden)]
4690            #[allow(dead_code)]
4691            type UnderlyingSolTuple<'a> = ();
4692            #[doc(hidden)]
4693            type UnderlyingRustTuple<'a> = ();
4694            #[cfg(test)]
4695            #[allow(dead_code, unreachable_patterns)]
4696            fn _type_assertion(
4697                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4698            ) {
4699                match _t {
4700                    alloy_sol_types::private::AssertTypeEq::<
4701                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4702                    >(_) => {}
4703                }
4704            }
4705            #[automatically_derived]
4706            #[doc(hidden)]
4707            impl ::core::convert::From<UPGRADE_INTERFACE_VERSIONCall>
4708            for UnderlyingRustTuple<'_> {
4709                fn from(value: UPGRADE_INTERFACE_VERSIONCall) -> Self {
4710                    ()
4711                }
4712            }
4713            #[automatically_derived]
4714            #[doc(hidden)]
4715            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4716            for UPGRADE_INTERFACE_VERSIONCall {
4717                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4718                    Self
4719                }
4720            }
4721        }
4722        {
4723            #[doc(hidden)]
4724            #[allow(dead_code)]
4725            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
4726            #[doc(hidden)]
4727            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
4728            #[cfg(test)]
4729            #[allow(dead_code, unreachable_patterns)]
4730            fn _type_assertion(
4731                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4732            ) {
4733                match _t {
4734                    alloy_sol_types::private::AssertTypeEq::<
4735                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4736                    >(_) => {}
4737                }
4738            }
4739            #[automatically_derived]
4740            #[doc(hidden)]
4741            impl ::core::convert::From<UPGRADE_INTERFACE_VERSIONReturn>
4742            for UnderlyingRustTuple<'_> {
4743                fn from(value: UPGRADE_INTERFACE_VERSIONReturn) -> Self {
4744                    (value._0,)
4745                }
4746            }
4747            #[automatically_derived]
4748            #[doc(hidden)]
4749            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4750            for UPGRADE_INTERFACE_VERSIONReturn {
4751                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4752                    Self { _0: tuple.0 }
4753                }
4754            }
4755        }
4756        #[automatically_derived]
4757        impl alloy_sol_types::SolCall for UPGRADE_INTERFACE_VERSIONCall {
4758            type Parameters<'a> = ();
4759            type Token<'a> = <Self::Parameters<
4760                'a,
4761            > as alloy_sol_types::SolType>::Token<'a>;
4762            type Return = alloy::sol_types::private::String;
4763            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
4764            type ReturnToken<'a> = <Self::ReturnTuple<
4765                'a,
4766            > as alloy_sol_types::SolType>::Token<'a>;
4767            const SIGNATURE: &'static str = "UPGRADE_INTERFACE_VERSION()";
4768            const SELECTOR: [u8; 4] = [173u8, 60u8, 177u8, 204u8];
4769            #[inline]
4770            fn new<'a>(
4771                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4772            ) -> Self {
4773                tuple.into()
4774            }
4775            #[inline]
4776            fn tokenize(&self) -> Self::Token<'_> {
4777                ()
4778            }
4779            #[inline]
4780            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4781                (
4782                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
4783                        ret,
4784                    ),
4785                )
4786            }
4787            #[inline]
4788            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4789                <Self::ReturnTuple<
4790                    '_,
4791                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4792                    .map(|r| {
4793                        let r: UPGRADE_INTERFACE_VERSIONReturn = r.into();
4794                        r._0
4795                    })
4796            }
4797            #[inline]
4798            fn abi_decode_returns_with_config(
4799                data: &[u8],
4800                config: alloy_sol_types::abi::AbiDecoderConfig,
4801            ) -> alloy_sol_types::Result<Self::Return> {
4802                <Self::ReturnTuple<
4803                    '_,
4804                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4805                        data,
4806                        config,
4807                    )
4808                    .map(|r| {
4809                        let r: UPGRADE_INTERFACE_VERSIONReturn = r.into();
4810                        r._0
4811                    })
4812            }
4813            #[inline]
4814            fn abi_decode_returns_validate(
4815                data: &[u8],
4816            ) -> alloy_sol_types::Result<Self::Return> {
4817                Self::abi_decode_returns_with_config(
4818                    data,
4819                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4820                )
4821            }
4822        }
4823    };
4824    #[derive(serde::Serialize, serde::Deserialize)]
4825    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4826    /**Function with signature `claimRewards(uint256,bytes)` and selector `0x549dd8c3`.
4827```solidity
4828function claimRewards(uint256 lifetimeRewards, bytes memory authData) external;
4829```*/
4830    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4831    #[derive(Clone)]
4832    pub struct claimRewardsCall {
4833        #[allow(missing_docs)]
4834        pub lifetimeRewards: alloy::sol_types::private::primitives::aliases::U256,
4835        #[allow(missing_docs)]
4836        pub authData: alloy::sol_types::private::Bytes,
4837    }
4838    ///Container type for the return parameters of the [`claimRewards(uint256,bytes)`](claimRewardsCall) function.
4839    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4840    #[derive(Clone)]
4841    pub struct claimRewardsReturn {}
4842    #[allow(
4843        non_camel_case_types,
4844        non_snake_case,
4845        clippy::pub_underscore_fields,
4846        clippy::style
4847    )]
4848    const _: () = {
4849        use alloy::sol_types as alloy_sol_types;
4850        {
4851            #[doc(hidden)]
4852            #[allow(dead_code)]
4853            type UnderlyingSolTuple<'a> = (
4854                alloy::sol_types::sol_data::Uint<256>,
4855                alloy::sol_types::sol_data::Bytes,
4856            );
4857            #[doc(hidden)]
4858            type UnderlyingRustTuple<'a> = (
4859                alloy::sol_types::private::primitives::aliases::U256,
4860                alloy::sol_types::private::Bytes,
4861            );
4862            #[cfg(test)]
4863            #[allow(dead_code, unreachable_patterns)]
4864            fn _type_assertion(
4865                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4866            ) {
4867                match _t {
4868                    alloy_sol_types::private::AssertTypeEq::<
4869                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4870                    >(_) => {}
4871                }
4872            }
4873            #[automatically_derived]
4874            #[doc(hidden)]
4875            impl ::core::convert::From<claimRewardsCall> for UnderlyingRustTuple<'_> {
4876                fn from(value: claimRewardsCall) -> Self {
4877                    (value.lifetimeRewards, value.authData)
4878                }
4879            }
4880            #[automatically_derived]
4881            #[doc(hidden)]
4882            impl ::core::convert::From<UnderlyingRustTuple<'_>> for claimRewardsCall {
4883                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4884                    Self {
4885                        lifetimeRewards: tuple.0,
4886                        authData: tuple.1,
4887                    }
4888                }
4889            }
4890        }
4891        {
4892            #[doc(hidden)]
4893            #[allow(dead_code)]
4894            type UnderlyingSolTuple<'a> = ();
4895            #[doc(hidden)]
4896            type UnderlyingRustTuple<'a> = ();
4897            #[cfg(test)]
4898            #[allow(dead_code, unreachable_patterns)]
4899            fn _type_assertion(
4900                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4901            ) {
4902                match _t {
4903                    alloy_sol_types::private::AssertTypeEq::<
4904                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4905                    >(_) => {}
4906                }
4907            }
4908            #[automatically_derived]
4909            #[doc(hidden)]
4910            impl ::core::convert::From<claimRewardsReturn> for UnderlyingRustTuple<'_> {
4911                fn from(value: claimRewardsReturn) -> Self {
4912                    ()
4913                }
4914            }
4915            #[automatically_derived]
4916            #[doc(hidden)]
4917            impl ::core::convert::From<UnderlyingRustTuple<'_>> for claimRewardsReturn {
4918                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4919                    Self {}
4920                }
4921            }
4922        }
4923        impl claimRewardsReturn {
4924            fn _tokenize(
4925                &self,
4926            ) -> <claimRewardsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
4927                ()
4928            }
4929        }
4930        #[automatically_derived]
4931        impl alloy_sol_types::SolCall for claimRewardsCall {
4932            type Parameters<'a> = (
4933                alloy::sol_types::sol_data::Uint<256>,
4934                alloy::sol_types::sol_data::Bytes,
4935            );
4936            type Token<'a> = <Self::Parameters<
4937                'a,
4938            > as alloy_sol_types::SolType>::Token<'a>;
4939            type Return = claimRewardsReturn;
4940            type ReturnTuple<'a> = ();
4941            type ReturnToken<'a> = <Self::ReturnTuple<
4942                'a,
4943            > as alloy_sol_types::SolType>::Token<'a>;
4944            const SIGNATURE: &'static str = "claimRewards(uint256,bytes)";
4945            const SELECTOR: [u8; 4] = [84u8, 157u8, 216u8, 195u8];
4946            #[inline]
4947            fn new<'a>(
4948                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4949            ) -> Self {
4950                tuple.into()
4951            }
4952            #[inline]
4953            fn tokenize(&self) -> Self::Token<'_> {
4954                (
4955                    <alloy::sol_types::sol_data::Uint<
4956                        256,
4957                    > as alloy_sol_types::SolType>::tokenize(&self.lifetimeRewards),
4958                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
4959                        &self.authData,
4960                    ),
4961                )
4962            }
4963            #[inline]
4964            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4965                claimRewardsReturn::_tokenize(ret)
4966            }
4967            #[inline]
4968            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4969                <Self::ReturnTuple<
4970                    '_,
4971                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4972                    .map(Into::into)
4973            }
4974            #[inline]
4975            fn abi_decode_returns_with_config(
4976                data: &[u8],
4977                config: alloy_sol_types::abi::AbiDecoderConfig,
4978            ) -> alloy_sol_types::Result<Self::Return> {
4979                <Self::ReturnTuple<
4980                    '_,
4981                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4982                        data,
4983                        config,
4984                    )
4985                    .map(Into::into)
4986            }
4987            #[inline]
4988            fn abi_decode_returns_validate(
4989                data: &[u8],
4990            ) -> alloy_sol_types::Result<Self::Return> {
4991                Self::abi_decode_returns_with_config(
4992                    data,
4993                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4994                )
4995            }
4996        }
4997    };
4998    #[derive(serde::Serialize, serde::Deserialize)]
4999    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5000    /**Function with signature `claimedRewards(address)` and selector `0xbd834345`.
5001```solidity
5002function claimedRewards(address claimer) external view returns (uint256 claimed);
5003```*/
5004    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5005    #[derive(Clone)]
5006    pub struct claimedRewardsCall {
5007        #[allow(missing_docs)]
5008        pub claimer: alloy::sol_types::private::Address,
5009    }
5010    #[derive(serde::Serialize, serde::Deserialize)]
5011    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5012    ///Container type for the return parameters of the [`claimedRewards(address)`](claimedRewardsCall) function.
5013    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5014    #[derive(Clone)]
5015    pub struct claimedRewardsReturn {
5016        #[allow(missing_docs)]
5017        pub claimed: alloy::sol_types::private::primitives::aliases::U256,
5018    }
5019    #[allow(
5020        non_camel_case_types,
5021        non_snake_case,
5022        clippy::pub_underscore_fields,
5023        clippy::style
5024    )]
5025    const _: () = {
5026        use alloy::sol_types as alloy_sol_types;
5027        {
5028            #[doc(hidden)]
5029            #[allow(dead_code)]
5030            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5031            #[doc(hidden)]
5032            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5033            #[cfg(test)]
5034            #[allow(dead_code, unreachable_patterns)]
5035            fn _type_assertion(
5036                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5037            ) {
5038                match _t {
5039                    alloy_sol_types::private::AssertTypeEq::<
5040                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5041                    >(_) => {}
5042                }
5043            }
5044            #[automatically_derived]
5045            #[doc(hidden)]
5046            impl ::core::convert::From<claimedRewardsCall> for UnderlyingRustTuple<'_> {
5047                fn from(value: claimedRewardsCall) -> Self {
5048                    (value.claimer,)
5049                }
5050            }
5051            #[automatically_derived]
5052            #[doc(hidden)]
5053            impl ::core::convert::From<UnderlyingRustTuple<'_>> for claimedRewardsCall {
5054                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5055                    Self { claimer: tuple.0 }
5056                }
5057            }
5058        }
5059        {
5060            #[doc(hidden)]
5061            #[allow(dead_code)]
5062            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5063            #[doc(hidden)]
5064            type UnderlyingRustTuple<'a> = (
5065                alloy::sol_types::private::primitives::aliases::U256,
5066            );
5067            #[cfg(test)]
5068            #[allow(dead_code, unreachable_patterns)]
5069            fn _type_assertion(
5070                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5071            ) {
5072                match _t {
5073                    alloy_sol_types::private::AssertTypeEq::<
5074                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5075                    >(_) => {}
5076                }
5077            }
5078            #[automatically_derived]
5079            #[doc(hidden)]
5080            impl ::core::convert::From<claimedRewardsReturn>
5081            for UnderlyingRustTuple<'_> {
5082                fn from(value: claimedRewardsReturn) -> Self {
5083                    (value.claimed,)
5084                }
5085            }
5086            #[automatically_derived]
5087            #[doc(hidden)]
5088            impl ::core::convert::From<UnderlyingRustTuple<'_>>
5089            for claimedRewardsReturn {
5090                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5091                    Self { claimed: tuple.0 }
5092                }
5093            }
5094        }
5095        #[automatically_derived]
5096        impl alloy_sol_types::SolCall for claimedRewardsCall {
5097            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
5098            type Token<'a> = <Self::Parameters<
5099                'a,
5100            > as alloy_sol_types::SolType>::Token<'a>;
5101            type Return = alloy::sol_types::private::primitives::aliases::U256;
5102            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5103            type ReturnToken<'a> = <Self::ReturnTuple<
5104                'a,
5105            > as alloy_sol_types::SolType>::Token<'a>;
5106            const SIGNATURE: &'static str = "claimedRewards(address)";
5107            const SELECTOR: [u8; 4] = [189u8, 131u8, 67u8, 69u8];
5108            #[inline]
5109            fn new<'a>(
5110                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5111            ) -> Self {
5112                tuple.into()
5113            }
5114            #[inline]
5115            fn tokenize(&self) -> Self::Token<'_> {
5116                (
5117                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5118                        &self.claimer,
5119                    ),
5120                )
5121            }
5122            #[inline]
5123            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5124                (
5125                    <alloy::sol_types::sol_data::Uint<
5126                        256,
5127                    > as alloy_sol_types::SolType>::tokenize(ret),
5128                )
5129            }
5130            #[inline]
5131            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5132                <Self::ReturnTuple<
5133                    '_,
5134                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5135                    .map(|r| {
5136                        let r: claimedRewardsReturn = r.into();
5137                        r.claimed
5138                    })
5139            }
5140            #[inline]
5141            fn abi_decode_returns_with_config(
5142                data: &[u8],
5143                config: alloy_sol_types::abi::AbiDecoderConfig,
5144            ) -> alloy_sol_types::Result<Self::Return> {
5145                <Self::ReturnTuple<
5146                    '_,
5147                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5148                        data,
5149                        config,
5150                    )
5151                    .map(|r| {
5152                        let r: claimedRewardsReturn = r.into();
5153                        r.claimed
5154                    })
5155            }
5156            #[inline]
5157            fn abi_decode_returns_validate(
5158                data: &[u8],
5159            ) -> alloy_sol_types::Result<Self::Return> {
5160                Self::abi_decode_returns_with_config(
5161                    data,
5162                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5163                )
5164            }
5165        }
5166    };
5167    #[derive(serde::Serialize, serde::Deserialize)]
5168    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5169    /**Function with signature `currentAdmin()` and selector `0xba4bcd72`.
5170```solidity
5171function currentAdmin() external view returns (address);
5172```*/
5173    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5174    #[derive(Clone)]
5175    pub struct currentAdminCall;
5176    #[derive(serde::Serialize, serde::Deserialize)]
5177    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5178    ///Container type for the return parameters of the [`currentAdmin()`](currentAdminCall) function.
5179    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5180    #[derive(Clone)]
5181    pub struct currentAdminReturn {
5182        #[allow(missing_docs)]
5183        pub _0: alloy::sol_types::private::Address,
5184    }
5185    #[allow(
5186        non_camel_case_types,
5187        non_snake_case,
5188        clippy::pub_underscore_fields,
5189        clippy::style
5190    )]
5191    const _: () = {
5192        use alloy::sol_types as alloy_sol_types;
5193        {
5194            #[doc(hidden)]
5195            #[allow(dead_code)]
5196            type UnderlyingSolTuple<'a> = ();
5197            #[doc(hidden)]
5198            type UnderlyingRustTuple<'a> = ();
5199            #[cfg(test)]
5200            #[allow(dead_code, unreachable_patterns)]
5201            fn _type_assertion(
5202                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5203            ) {
5204                match _t {
5205                    alloy_sol_types::private::AssertTypeEq::<
5206                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5207                    >(_) => {}
5208                }
5209            }
5210            #[automatically_derived]
5211            #[doc(hidden)]
5212            impl ::core::convert::From<currentAdminCall> for UnderlyingRustTuple<'_> {
5213                fn from(value: currentAdminCall) -> Self {
5214                    ()
5215                }
5216            }
5217            #[automatically_derived]
5218            #[doc(hidden)]
5219            impl ::core::convert::From<UnderlyingRustTuple<'_>> for currentAdminCall {
5220                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5221                    Self
5222                }
5223            }
5224        }
5225        {
5226            #[doc(hidden)]
5227            #[allow(dead_code)]
5228            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5229            #[doc(hidden)]
5230            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5231            #[cfg(test)]
5232            #[allow(dead_code, unreachable_patterns)]
5233            fn _type_assertion(
5234                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5235            ) {
5236                match _t {
5237                    alloy_sol_types::private::AssertTypeEq::<
5238                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5239                    >(_) => {}
5240                }
5241            }
5242            #[automatically_derived]
5243            #[doc(hidden)]
5244            impl ::core::convert::From<currentAdminReturn> for UnderlyingRustTuple<'_> {
5245                fn from(value: currentAdminReturn) -> Self {
5246                    (value._0,)
5247                }
5248            }
5249            #[automatically_derived]
5250            #[doc(hidden)]
5251            impl ::core::convert::From<UnderlyingRustTuple<'_>> for currentAdminReturn {
5252                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5253                    Self { _0: tuple.0 }
5254                }
5255            }
5256        }
5257        #[automatically_derived]
5258        impl alloy_sol_types::SolCall for currentAdminCall {
5259            type Parameters<'a> = ();
5260            type Token<'a> = <Self::Parameters<
5261                'a,
5262            > as alloy_sol_types::SolType>::Token<'a>;
5263            type Return = alloy::sol_types::private::Address;
5264            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5265            type ReturnToken<'a> = <Self::ReturnTuple<
5266                'a,
5267            > as alloy_sol_types::SolType>::Token<'a>;
5268            const SIGNATURE: &'static str = "currentAdmin()";
5269            const SELECTOR: [u8; 4] = [186u8, 75u8, 205u8, 114u8];
5270            #[inline]
5271            fn new<'a>(
5272                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5273            ) -> Self {
5274                tuple.into()
5275            }
5276            #[inline]
5277            fn tokenize(&self) -> Self::Token<'_> {
5278                ()
5279            }
5280            #[inline]
5281            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5282                (
5283                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5284                        ret,
5285                    ),
5286                )
5287            }
5288            #[inline]
5289            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5290                <Self::ReturnTuple<
5291                    '_,
5292                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5293                    .map(|r| {
5294                        let r: currentAdminReturn = r.into();
5295                        r._0
5296                    })
5297            }
5298            #[inline]
5299            fn abi_decode_returns_with_config(
5300                data: &[u8],
5301                config: alloy_sol_types::abi::AbiDecoderConfig,
5302            ) -> alloy_sol_types::Result<Self::Return> {
5303                <Self::ReturnTuple<
5304                    '_,
5305                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5306                        data,
5307                        config,
5308                    )
5309                    .map(|r| {
5310                        let r: currentAdminReturn = r.into();
5311                        r._0
5312                    })
5313            }
5314            #[inline]
5315            fn abi_decode_returns_validate(
5316                data: &[u8],
5317            ) -> alloy_sol_types::Result<Self::Return> {
5318                Self::abi_decode_returns_with_config(
5319                    data,
5320                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5321                )
5322            }
5323        }
5324    };
5325    #[derive(serde::Serialize, serde::Deserialize)]
5326    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5327    /**Function with signature `dailyLimitWei()` and selector `0x2cca74d8`.
5328```solidity
5329function dailyLimitWei() external view returns (uint256);
5330```*/
5331    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5332    #[derive(Clone)]
5333    pub struct dailyLimitWeiCall;
5334    #[derive(serde::Serialize, serde::Deserialize)]
5335    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5336    ///Container type for the return parameters of the [`dailyLimitWei()`](dailyLimitWeiCall) function.
5337    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5338    #[derive(Clone)]
5339    pub struct dailyLimitWeiReturn {
5340        #[allow(missing_docs)]
5341        pub _0: alloy::sol_types::private::primitives::aliases::U256,
5342    }
5343    #[allow(
5344        non_camel_case_types,
5345        non_snake_case,
5346        clippy::pub_underscore_fields,
5347        clippy::style
5348    )]
5349    const _: () = {
5350        use alloy::sol_types as alloy_sol_types;
5351        {
5352            #[doc(hidden)]
5353            #[allow(dead_code)]
5354            type UnderlyingSolTuple<'a> = ();
5355            #[doc(hidden)]
5356            type UnderlyingRustTuple<'a> = ();
5357            #[cfg(test)]
5358            #[allow(dead_code, unreachable_patterns)]
5359            fn _type_assertion(
5360                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5361            ) {
5362                match _t {
5363                    alloy_sol_types::private::AssertTypeEq::<
5364                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5365                    >(_) => {}
5366                }
5367            }
5368            #[automatically_derived]
5369            #[doc(hidden)]
5370            impl ::core::convert::From<dailyLimitWeiCall> for UnderlyingRustTuple<'_> {
5371                fn from(value: dailyLimitWeiCall) -> Self {
5372                    ()
5373                }
5374            }
5375            #[automatically_derived]
5376            #[doc(hidden)]
5377            impl ::core::convert::From<UnderlyingRustTuple<'_>> for dailyLimitWeiCall {
5378                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5379                    Self
5380                }
5381            }
5382        }
5383        {
5384            #[doc(hidden)]
5385            #[allow(dead_code)]
5386            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5387            #[doc(hidden)]
5388            type UnderlyingRustTuple<'a> = (
5389                alloy::sol_types::private::primitives::aliases::U256,
5390            );
5391            #[cfg(test)]
5392            #[allow(dead_code, unreachable_patterns)]
5393            fn _type_assertion(
5394                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5395            ) {
5396                match _t {
5397                    alloy_sol_types::private::AssertTypeEq::<
5398                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5399                    >(_) => {}
5400                }
5401            }
5402            #[automatically_derived]
5403            #[doc(hidden)]
5404            impl ::core::convert::From<dailyLimitWeiReturn> for UnderlyingRustTuple<'_> {
5405                fn from(value: dailyLimitWeiReturn) -> Self {
5406                    (value._0,)
5407                }
5408            }
5409            #[automatically_derived]
5410            #[doc(hidden)]
5411            impl ::core::convert::From<UnderlyingRustTuple<'_>> for dailyLimitWeiReturn {
5412                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5413                    Self { _0: tuple.0 }
5414                }
5415            }
5416        }
5417        #[automatically_derived]
5418        impl alloy_sol_types::SolCall for dailyLimitWeiCall {
5419            type Parameters<'a> = ();
5420            type Token<'a> = <Self::Parameters<
5421                'a,
5422            > as alloy_sol_types::SolType>::Token<'a>;
5423            type Return = alloy::sol_types::private::primitives::aliases::U256;
5424            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5425            type ReturnToken<'a> = <Self::ReturnTuple<
5426                'a,
5427            > as alloy_sol_types::SolType>::Token<'a>;
5428            const SIGNATURE: &'static str = "dailyLimitWei()";
5429            const SELECTOR: [u8; 4] = [44u8, 202u8, 116u8, 216u8];
5430            #[inline]
5431            fn new<'a>(
5432                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5433            ) -> Self {
5434                tuple.into()
5435            }
5436            #[inline]
5437            fn tokenize(&self) -> Self::Token<'_> {
5438                ()
5439            }
5440            #[inline]
5441            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5442                (
5443                    <alloy::sol_types::sol_data::Uint<
5444                        256,
5445                    > as alloy_sol_types::SolType>::tokenize(ret),
5446                )
5447            }
5448            #[inline]
5449            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5450                <Self::ReturnTuple<
5451                    '_,
5452                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5453                    .map(|r| {
5454                        let r: dailyLimitWeiReturn = r.into();
5455                        r._0
5456                    })
5457            }
5458            #[inline]
5459            fn abi_decode_returns_with_config(
5460                data: &[u8],
5461                config: alloy_sol_types::abi::AbiDecoderConfig,
5462            ) -> alloy_sol_types::Result<Self::Return> {
5463                <Self::ReturnTuple<
5464                    '_,
5465                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5466                        data,
5467                        config,
5468                    )
5469                    .map(|r| {
5470                        let r: dailyLimitWeiReturn = r.into();
5471                        r._0
5472                    })
5473            }
5474            #[inline]
5475            fn abi_decode_returns_validate(
5476                data: &[u8],
5477            ) -> alloy_sol_types::Result<Self::Return> {
5478                Self::abi_decode_returns_with_config(
5479                    data,
5480                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5481                )
5482            }
5483        }
5484    };
5485    #[derive(serde::Serialize, serde::Deserialize)]
5486    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5487    /**Function with signature `espToken()` and selector `0xf092e13a`.
5488```solidity
5489function espToken() external view returns (address);
5490```*/
5491    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5492    #[derive(Clone)]
5493    pub struct espTokenCall;
5494    #[derive(serde::Serialize, serde::Deserialize)]
5495    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5496    ///Container type for the return parameters of the [`espToken()`](espTokenCall) function.
5497    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5498    #[derive(Clone)]
5499    pub struct espTokenReturn {
5500        #[allow(missing_docs)]
5501        pub _0: alloy::sol_types::private::Address,
5502    }
5503    #[allow(
5504        non_camel_case_types,
5505        non_snake_case,
5506        clippy::pub_underscore_fields,
5507        clippy::style
5508    )]
5509    const _: () = {
5510        use alloy::sol_types as alloy_sol_types;
5511        {
5512            #[doc(hidden)]
5513            #[allow(dead_code)]
5514            type UnderlyingSolTuple<'a> = ();
5515            #[doc(hidden)]
5516            type UnderlyingRustTuple<'a> = ();
5517            #[cfg(test)]
5518            #[allow(dead_code, unreachable_patterns)]
5519            fn _type_assertion(
5520                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5521            ) {
5522                match _t {
5523                    alloy_sol_types::private::AssertTypeEq::<
5524                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5525                    >(_) => {}
5526                }
5527            }
5528            #[automatically_derived]
5529            #[doc(hidden)]
5530            impl ::core::convert::From<espTokenCall> for UnderlyingRustTuple<'_> {
5531                fn from(value: espTokenCall) -> Self {
5532                    ()
5533                }
5534            }
5535            #[automatically_derived]
5536            #[doc(hidden)]
5537            impl ::core::convert::From<UnderlyingRustTuple<'_>> for espTokenCall {
5538                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5539                    Self
5540                }
5541            }
5542        }
5543        {
5544            #[doc(hidden)]
5545            #[allow(dead_code)]
5546            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5547            #[doc(hidden)]
5548            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5549            #[cfg(test)]
5550            #[allow(dead_code, unreachable_patterns)]
5551            fn _type_assertion(
5552                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5553            ) {
5554                match _t {
5555                    alloy_sol_types::private::AssertTypeEq::<
5556                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5557                    >(_) => {}
5558                }
5559            }
5560            #[automatically_derived]
5561            #[doc(hidden)]
5562            impl ::core::convert::From<espTokenReturn> for UnderlyingRustTuple<'_> {
5563                fn from(value: espTokenReturn) -> Self {
5564                    (value._0,)
5565                }
5566            }
5567            #[automatically_derived]
5568            #[doc(hidden)]
5569            impl ::core::convert::From<UnderlyingRustTuple<'_>> for espTokenReturn {
5570                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5571                    Self { _0: tuple.0 }
5572                }
5573            }
5574        }
5575        #[automatically_derived]
5576        impl alloy_sol_types::SolCall for espTokenCall {
5577            type Parameters<'a> = ();
5578            type Token<'a> = <Self::Parameters<
5579                'a,
5580            > as alloy_sol_types::SolType>::Token<'a>;
5581            type Return = alloy::sol_types::private::Address;
5582            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5583            type ReturnToken<'a> = <Self::ReturnTuple<
5584                'a,
5585            > as alloy_sol_types::SolType>::Token<'a>;
5586            const SIGNATURE: &'static str = "espToken()";
5587            const SELECTOR: [u8; 4] = [240u8, 146u8, 225u8, 58u8];
5588            #[inline]
5589            fn new<'a>(
5590                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5591            ) -> Self {
5592                tuple.into()
5593            }
5594            #[inline]
5595            fn tokenize(&self) -> Self::Token<'_> {
5596                ()
5597            }
5598            #[inline]
5599            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5600                (
5601                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5602                        ret,
5603                    ),
5604                )
5605            }
5606            #[inline]
5607            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5608                <Self::ReturnTuple<
5609                    '_,
5610                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5611                    .map(|r| {
5612                        let r: espTokenReturn = r.into();
5613                        r._0
5614                    })
5615            }
5616            #[inline]
5617            fn abi_decode_returns_with_config(
5618                data: &[u8],
5619                config: alloy_sol_types::abi::AbiDecoderConfig,
5620            ) -> alloy_sol_types::Result<Self::Return> {
5621                <Self::ReturnTuple<
5622                    '_,
5623                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5624                        data,
5625                        config,
5626                    )
5627                    .map(|r| {
5628                        let r: espTokenReturn = r.into();
5629                        r._0
5630                    })
5631            }
5632            #[inline]
5633            fn abi_decode_returns_validate(
5634                data: &[u8],
5635            ) -> alloy_sol_types::Result<Self::Return> {
5636                Self::abi_decode_returns_with_config(
5637                    data,
5638                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5639                )
5640            }
5641        }
5642    };
5643    #[derive(serde::Serialize, serde::Deserialize)]
5644    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5645    /**Function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`.
5646```solidity
5647function getRoleAdmin(bytes32 role) external view returns (bytes32);
5648```*/
5649    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5650    #[derive(Clone)]
5651    pub struct getRoleAdminCall {
5652        #[allow(missing_docs)]
5653        pub role: alloy::sol_types::private::FixedBytes<32>,
5654    }
5655    #[derive(serde::Serialize, serde::Deserialize)]
5656    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5657    ///Container type for the return parameters of the [`getRoleAdmin(bytes32)`](getRoleAdminCall) function.
5658    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5659    #[derive(Clone)]
5660    pub struct getRoleAdminReturn {
5661        #[allow(missing_docs)]
5662        pub _0: alloy::sol_types::private::FixedBytes<32>,
5663    }
5664    #[allow(
5665        non_camel_case_types,
5666        non_snake_case,
5667        clippy::pub_underscore_fields,
5668        clippy::style
5669    )]
5670    const _: () = {
5671        use alloy::sol_types as alloy_sol_types;
5672        {
5673            #[doc(hidden)]
5674            #[allow(dead_code)]
5675            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5676            #[doc(hidden)]
5677            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
5678            #[cfg(test)]
5679            #[allow(dead_code, unreachable_patterns)]
5680            fn _type_assertion(
5681                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5682            ) {
5683                match _t {
5684                    alloy_sol_types::private::AssertTypeEq::<
5685                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5686                    >(_) => {}
5687                }
5688            }
5689            #[automatically_derived]
5690            #[doc(hidden)]
5691            impl ::core::convert::From<getRoleAdminCall> for UnderlyingRustTuple<'_> {
5692                fn from(value: getRoleAdminCall) -> Self {
5693                    (value.role,)
5694                }
5695            }
5696            #[automatically_derived]
5697            #[doc(hidden)]
5698            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getRoleAdminCall {
5699                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5700                    Self { role: tuple.0 }
5701                }
5702            }
5703        }
5704        {
5705            #[doc(hidden)]
5706            #[allow(dead_code)]
5707            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5708            #[doc(hidden)]
5709            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
5710            #[cfg(test)]
5711            #[allow(dead_code, unreachable_patterns)]
5712            fn _type_assertion(
5713                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5714            ) {
5715                match _t {
5716                    alloy_sol_types::private::AssertTypeEq::<
5717                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5718                    >(_) => {}
5719                }
5720            }
5721            #[automatically_derived]
5722            #[doc(hidden)]
5723            impl ::core::convert::From<getRoleAdminReturn> for UnderlyingRustTuple<'_> {
5724                fn from(value: getRoleAdminReturn) -> Self {
5725                    (value._0,)
5726                }
5727            }
5728            #[automatically_derived]
5729            #[doc(hidden)]
5730            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getRoleAdminReturn {
5731                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5732                    Self { _0: tuple.0 }
5733                }
5734            }
5735        }
5736        #[automatically_derived]
5737        impl alloy_sol_types::SolCall for getRoleAdminCall {
5738            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5739            type Token<'a> = <Self::Parameters<
5740                'a,
5741            > as alloy_sol_types::SolType>::Token<'a>;
5742            type Return = alloy::sol_types::private::FixedBytes<32>;
5743            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5744            type ReturnToken<'a> = <Self::ReturnTuple<
5745                'a,
5746            > as alloy_sol_types::SolType>::Token<'a>;
5747            const SIGNATURE: &'static str = "getRoleAdmin(bytes32)";
5748            const SELECTOR: [u8; 4] = [36u8, 138u8, 156u8, 163u8];
5749            #[inline]
5750            fn new<'a>(
5751                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5752            ) -> Self {
5753                tuple.into()
5754            }
5755            #[inline]
5756            fn tokenize(&self) -> Self::Token<'_> {
5757                (
5758                    <alloy::sol_types::sol_data::FixedBytes<
5759                        32,
5760                    > as alloy_sol_types::SolType>::tokenize(&self.role),
5761                )
5762            }
5763            #[inline]
5764            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5765                (
5766                    <alloy::sol_types::sol_data::FixedBytes<
5767                        32,
5768                    > as alloy_sol_types::SolType>::tokenize(ret),
5769                )
5770            }
5771            #[inline]
5772            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5773                <Self::ReturnTuple<
5774                    '_,
5775                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5776                    .map(|r| {
5777                        let r: getRoleAdminReturn = r.into();
5778                        r._0
5779                    })
5780            }
5781            #[inline]
5782            fn abi_decode_returns_with_config(
5783                data: &[u8],
5784                config: alloy_sol_types::abi::AbiDecoderConfig,
5785            ) -> alloy_sol_types::Result<Self::Return> {
5786                <Self::ReturnTuple<
5787                    '_,
5788                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5789                        data,
5790                        config,
5791                    )
5792                    .map(|r| {
5793                        let r: getRoleAdminReturn = r.into();
5794                        r._0
5795                    })
5796            }
5797            #[inline]
5798            fn abi_decode_returns_validate(
5799                data: &[u8],
5800            ) -> alloy_sol_types::Result<Self::Return> {
5801                Self::abi_decode_returns_with_config(
5802                    data,
5803                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5804                )
5805            }
5806        }
5807    };
5808    #[derive(serde::Serialize, serde::Deserialize)]
5809    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5810    /**Function with signature `getVersion()` and selector `0x0d8e6e2c`.
5811```solidity
5812function getVersion() external pure returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion);
5813```*/
5814    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5815    #[derive(Clone)]
5816    pub struct getVersionCall;
5817    #[derive(serde::Serialize, serde::Deserialize)]
5818    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5819    ///Container type for the return parameters of the [`getVersion()`](getVersionCall) function.
5820    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5821    #[derive(Clone)]
5822    pub struct getVersionReturn {
5823        #[allow(missing_docs)]
5824        pub majorVersion: u8,
5825        #[allow(missing_docs)]
5826        pub minorVersion: u8,
5827        #[allow(missing_docs)]
5828        pub patchVersion: u8,
5829    }
5830    #[allow(
5831        non_camel_case_types,
5832        non_snake_case,
5833        clippy::pub_underscore_fields,
5834        clippy::style
5835    )]
5836    const _: () = {
5837        use alloy::sol_types as alloy_sol_types;
5838        {
5839            #[doc(hidden)]
5840            #[allow(dead_code)]
5841            type UnderlyingSolTuple<'a> = ();
5842            #[doc(hidden)]
5843            type UnderlyingRustTuple<'a> = ();
5844            #[cfg(test)]
5845            #[allow(dead_code, unreachable_patterns)]
5846            fn _type_assertion(
5847                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5848            ) {
5849                match _t {
5850                    alloy_sol_types::private::AssertTypeEq::<
5851                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5852                    >(_) => {}
5853                }
5854            }
5855            #[automatically_derived]
5856            #[doc(hidden)]
5857            impl ::core::convert::From<getVersionCall> for UnderlyingRustTuple<'_> {
5858                fn from(value: getVersionCall) -> Self {
5859                    ()
5860                }
5861            }
5862            #[automatically_derived]
5863            #[doc(hidden)]
5864            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getVersionCall {
5865                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5866                    Self
5867                }
5868            }
5869        }
5870        {
5871            #[doc(hidden)]
5872            #[allow(dead_code)]
5873            type UnderlyingSolTuple<'a> = (
5874                alloy::sol_types::sol_data::Uint<8>,
5875                alloy::sol_types::sol_data::Uint<8>,
5876                alloy::sol_types::sol_data::Uint<8>,
5877            );
5878            #[doc(hidden)]
5879            type UnderlyingRustTuple<'a> = (u8, u8, u8);
5880            #[cfg(test)]
5881            #[allow(dead_code, unreachable_patterns)]
5882            fn _type_assertion(
5883                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5884            ) {
5885                match _t {
5886                    alloy_sol_types::private::AssertTypeEq::<
5887                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5888                    >(_) => {}
5889                }
5890            }
5891            #[automatically_derived]
5892            #[doc(hidden)]
5893            impl ::core::convert::From<getVersionReturn> for UnderlyingRustTuple<'_> {
5894                fn from(value: getVersionReturn) -> Self {
5895                    (value.majorVersion, value.minorVersion, value.patchVersion)
5896                }
5897            }
5898            #[automatically_derived]
5899            #[doc(hidden)]
5900            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getVersionReturn {
5901                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5902                    Self {
5903                        majorVersion: tuple.0,
5904                        minorVersion: tuple.1,
5905                        patchVersion: tuple.2,
5906                    }
5907                }
5908            }
5909        }
5910        impl getVersionReturn {
5911            fn _tokenize(
5912                &self,
5913            ) -> <getVersionCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
5914                (
5915                    <alloy::sol_types::sol_data::Uint<
5916                        8,
5917                    > as alloy_sol_types::SolType>::tokenize(&self.majorVersion),
5918                    <alloy::sol_types::sol_data::Uint<
5919                        8,
5920                    > as alloy_sol_types::SolType>::tokenize(&self.minorVersion),
5921                    <alloy::sol_types::sol_data::Uint<
5922                        8,
5923                    > as alloy_sol_types::SolType>::tokenize(&self.patchVersion),
5924                )
5925            }
5926        }
5927        #[automatically_derived]
5928        impl alloy_sol_types::SolCall for getVersionCall {
5929            type Parameters<'a> = ();
5930            type Token<'a> = <Self::Parameters<
5931                'a,
5932            > as alloy_sol_types::SolType>::Token<'a>;
5933            type Return = getVersionReturn;
5934            type ReturnTuple<'a> = (
5935                alloy::sol_types::sol_data::Uint<8>,
5936                alloy::sol_types::sol_data::Uint<8>,
5937                alloy::sol_types::sol_data::Uint<8>,
5938            );
5939            type ReturnToken<'a> = <Self::ReturnTuple<
5940                'a,
5941            > as alloy_sol_types::SolType>::Token<'a>;
5942            const SIGNATURE: &'static str = "getVersion()";
5943            const SELECTOR: [u8; 4] = [13u8, 142u8, 110u8, 44u8];
5944            #[inline]
5945            fn new<'a>(
5946                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5947            ) -> Self {
5948                tuple.into()
5949            }
5950            #[inline]
5951            fn tokenize(&self) -> Self::Token<'_> {
5952                ()
5953            }
5954            #[inline]
5955            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5956                getVersionReturn::_tokenize(ret)
5957            }
5958            #[inline]
5959            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5960                <Self::ReturnTuple<
5961                    '_,
5962                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5963                    .map(Into::into)
5964            }
5965            #[inline]
5966            fn abi_decode_returns_with_config(
5967                data: &[u8],
5968                config: alloy_sol_types::abi::AbiDecoderConfig,
5969            ) -> alloy_sol_types::Result<Self::Return> {
5970                <Self::ReturnTuple<
5971                    '_,
5972                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5973                        data,
5974                        config,
5975                    )
5976                    .map(Into::into)
5977            }
5978            #[inline]
5979            fn abi_decode_returns_validate(
5980                data: &[u8],
5981            ) -> alloy_sol_types::Result<Self::Return> {
5982                Self::abi_decode_returns_with_config(
5983                    data,
5984                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5985                )
5986            }
5987        }
5988    };
5989    #[derive(serde::Serialize, serde::Deserialize)]
5990    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5991    /**Function with signature `grantRole(bytes32,address)` and selector `0x2f2ff15d`.
5992```solidity
5993function grantRole(bytes32 role, address account) external;
5994```*/
5995    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5996    #[derive(Clone)]
5997    pub struct grantRoleCall {
5998        #[allow(missing_docs)]
5999        pub role: alloy::sol_types::private::FixedBytes<32>,
6000        #[allow(missing_docs)]
6001        pub account: alloy::sol_types::private::Address,
6002    }
6003    ///Container type for the return parameters of the [`grantRole(bytes32,address)`](grantRoleCall) function.
6004    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6005    #[derive(Clone)]
6006    pub struct grantRoleReturn {}
6007    #[allow(
6008        non_camel_case_types,
6009        non_snake_case,
6010        clippy::pub_underscore_fields,
6011        clippy::style
6012    )]
6013    const _: () = {
6014        use alloy::sol_types as alloy_sol_types;
6015        {
6016            #[doc(hidden)]
6017            #[allow(dead_code)]
6018            type UnderlyingSolTuple<'a> = (
6019                alloy::sol_types::sol_data::FixedBytes<32>,
6020                alloy::sol_types::sol_data::Address,
6021            );
6022            #[doc(hidden)]
6023            type UnderlyingRustTuple<'a> = (
6024                alloy::sol_types::private::FixedBytes<32>,
6025                alloy::sol_types::private::Address,
6026            );
6027            #[cfg(test)]
6028            #[allow(dead_code, unreachable_patterns)]
6029            fn _type_assertion(
6030                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6031            ) {
6032                match _t {
6033                    alloy_sol_types::private::AssertTypeEq::<
6034                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6035                    >(_) => {}
6036                }
6037            }
6038            #[automatically_derived]
6039            #[doc(hidden)]
6040            impl ::core::convert::From<grantRoleCall> for UnderlyingRustTuple<'_> {
6041                fn from(value: grantRoleCall) -> Self {
6042                    (value.role, value.account)
6043                }
6044            }
6045            #[automatically_derived]
6046            #[doc(hidden)]
6047            impl ::core::convert::From<UnderlyingRustTuple<'_>> for grantRoleCall {
6048                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6049                    Self {
6050                        role: tuple.0,
6051                        account: tuple.1,
6052                    }
6053                }
6054            }
6055        }
6056        {
6057            #[doc(hidden)]
6058            #[allow(dead_code)]
6059            type UnderlyingSolTuple<'a> = ();
6060            #[doc(hidden)]
6061            type UnderlyingRustTuple<'a> = ();
6062            #[cfg(test)]
6063            #[allow(dead_code, unreachable_patterns)]
6064            fn _type_assertion(
6065                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6066            ) {
6067                match _t {
6068                    alloy_sol_types::private::AssertTypeEq::<
6069                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6070                    >(_) => {}
6071                }
6072            }
6073            #[automatically_derived]
6074            #[doc(hidden)]
6075            impl ::core::convert::From<grantRoleReturn> for UnderlyingRustTuple<'_> {
6076                fn from(value: grantRoleReturn) -> Self {
6077                    ()
6078                }
6079            }
6080            #[automatically_derived]
6081            #[doc(hidden)]
6082            impl ::core::convert::From<UnderlyingRustTuple<'_>> for grantRoleReturn {
6083                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6084                    Self {}
6085                }
6086            }
6087        }
6088        impl grantRoleReturn {
6089            fn _tokenize(
6090                &self,
6091            ) -> <grantRoleCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
6092                ()
6093            }
6094        }
6095        #[automatically_derived]
6096        impl alloy_sol_types::SolCall for grantRoleCall {
6097            type Parameters<'a> = (
6098                alloy::sol_types::sol_data::FixedBytes<32>,
6099                alloy::sol_types::sol_data::Address,
6100            );
6101            type Token<'a> = <Self::Parameters<
6102                'a,
6103            > as alloy_sol_types::SolType>::Token<'a>;
6104            type Return = grantRoleReturn;
6105            type ReturnTuple<'a> = ();
6106            type ReturnToken<'a> = <Self::ReturnTuple<
6107                'a,
6108            > as alloy_sol_types::SolType>::Token<'a>;
6109            const SIGNATURE: &'static str = "grantRole(bytes32,address)";
6110            const SELECTOR: [u8; 4] = [47u8, 47u8, 241u8, 93u8];
6111            #[inline]
6112            fn new<'a>(
6113                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6114            ) -> Self {
6115                tuple.into()
6116            }
6117            #[inline]
6118            fn tokenize(&self) -> Self::Token<'_> {
6119                (
6120                    <alloy::sol_types::sol_data::FixedBytes<
6121                        32,
6122                    > as alloy_sol_types::SolType>::tokenize(&self.role),
6123                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6124                        &self.account,
6125                    ),
6126                )
6127            }
6128            #[inline]
6129            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6130                grantRoleReturn::_tokenize(ret)
6131            }
6132            #[inline]
6133            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6134                <Self::ReturnTuple<
6135                    '_,
6136                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6137                    .map(Into::into)
6138            }
6139            #[inline]
6140            fn abi_decode_returns_with_config(
6141                data: &[u8],
6142                config: alloy_sol_types::abi::AbiDecoderConfig,
6143            ) -> alloy_sol_types::Result<Self::Return> {
6144                <Self::ReturnTuple<
6145                    '_,
6146                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
6147                        data,
6148                        config,
6149                    )
6150                    .map(Into::into)
6151            }
6152            #[inline]
6153            fn abi_decode_returns_validate(
6154                data: &[u8],
6155            ) -> alloy_sol_types::Result<Self::Return> {
6156                Self::abi_decode_returns_with_config(
6157                    data,
6158                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
6159                )
6160            }
6161        }
6162    };
6163    #[derive(serde::Serialize, serde::Deserialize)]
6164    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6165    /**Function with signature `hasRole(bytes32,address)` and selector `0x91d14854`.
6166```solidity
6167function hasRole(bytes32 role, address account) external view returns (bool);
6168```*/
6169    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6170    #[derive(Clone)]
6171    pub struct hasRoleCall {
6172        #[allow(missing_docs)]
6173        pub role: alloy::sol_types::private::FixedBytes<32>,
6174        #[allow(missing_docs)]
6175        pub account: alloy::sol_types::private::Address,
6176    }
6177    #[derive(serde::Serialize, serde::Deserialize)]
6178    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6179    ///Container type for the return parameters of the [`hasRole(bytes32,address)`](hasRoleCall) function.
6180    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6181    #[derive(Clone)]
6182    pub struct hasRoleReturn {
6183        #[allow(missing_docs)]
6184        pub _0: bool,
6185    }
6186    #[allow(
6187        non_camel_case_types,
6188        non_snake_case,
6189        clippy::pub_underscore_fields,
6190        clippy::style
6191    )]
6192    const _: () = {
6193        use alloy::sol_types as alloy_sol_types;
6194        {
6195            #[doc(hidden)]
6196            #[allow(dead_code)]
6197            type UnderlyingSolTuple<'a> = (
6198                alloy::sol_types::sol_data::FixedBytes<32>,
6199                alloy::sol_types::sol_data::Address,
6200            );
6201            #[doc(hidden)]
6202            type UnderlyingRustTuple<'a> = (
6203                alloy::sol_types::private::FixedBytes<32>,
6204                alloy::sol_types::private::Address,
6205            );
6206            #[cfg(test)]
6207            #[allow(dead_code, unreachable_patterns)]
6208            fn _type_assertion(
6209                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6210            ) {
6211                match _t {
6212                    alloy_sol_types::private::AssertTypeEq::<
6213                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6214                    >(_) => {}
6215                }
6216            }
6217            #[automatically_derived]
6218            #[doc(hidden)]
6219            impl ::core::convert::From<hasRoleCall> for UnderlyingRustTuple<'_> {
6220                fn from(value: hasRoleCall) -> Self {
6221                    (value.role, value.account)
6222                }
6223            }
6224            #[automatically_derived]
6225            #[doc(hidden)]
6226            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasRoleCall {
6227                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6228                    Self {
6229                        role: tuple.0,
6230                        account: tuple.1,
6231                    }
6232                }
6233            }
6234        }
6235        {
6236            #[doc(hidden)]
6237            #[allow(dead_code)]
6238            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6239            #[doc(hidden)]
6240            type UnderlyingRustTuple<'a> = (bool,);
6241            #[cfg(test)]
6242            #[allow(dead_code, unreachable_patterns)]
6243            fn _type_assertion(
6244                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6245            ) {
6246                match _t {
6247                    alloy_sol_types::private::AssertTypeEq::<
6248                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6249                    >(_) => {}
6250                }
6251            }
6252            #[automatically_derived]
6253            #[doc(hidden)]
6254            impl ::core::convert::From<hasRoleReturn> for UnderlyingRustTuple<'_> {
6255                fn from(value: hasRoleReturn) -> Self {
6256                    (value._0,)
6257                }
6258            }
6259            #[automatically_derived]
6260            #[doc(hidden)]
6261            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasRoleReturn {
6262                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6263                    Self { _0: tuple.0 }
6264                }
6265            }
6266        }
6267        #[automatically_derived]
6268        impl alloy_sol_types::SolCall for hasRoleCall {
6269            type Parameters<'a> = (
6270                alloy::sol_types::sol_data::FixedBytes<32>,
6271                alloy::sol_types::sol_data::Address,
6272            );
6273            type Token<'a> = <Self::Parameters<
6274                'a,
6275            > as alloy_sol_types::SolType>::Token<'a>;
6276            type Return = bool;
6277            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6278            type ReturnToken<'a> = <Self::ReturnTuple<
6279                'a,
6280            > as alloy_sol_types::SolType>::Token<'a>;
6281            const SIGNATURE: &'static str = "hasRole(bytes32,address)";
6282            const SELECTOR: [u8; 4] = [145u8, 209u8, 72u8, 84u8];
6283            #[inline]
6284            fn new<'a>(
6285                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6286            ) -> Self {
6287                tuple.into()
6288            }
6289            #[inline]
6290            fn tokenize(&self) -> Self::Token<'_> {
6291                (
6292                    <alloy::sol_types::sol_data::FixedBytes<
6293                        32,
6294                    > as alloy_sol_types::SolType>::tokenize(&self.role),
6295                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6296                        &self.account,
6297                    ),
6298                )
6299            }
6300            #[inline]
6301            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6302                (
6303                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
6304                        ret,
6305                    ),
6306                )
6307            }
6308            #[inline]
6309            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6310                <Self::ReturnTuple<
6311                    '_,
6312                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6313                    .map(|r| {
6314                        let r: hasRoleReturn = r.into();
6315                        r._0
6316                    })
6317            }
6318            #[inline]
6319            fn abi_decode_returns_with_config(
6320                data: &[u8],
6321                config: alloy_sol_types::abi::AbiDecoderConfig,
6322            ) -> alloy_sol_types::Result<Self::Return> {
6323                <Self::ReturnTuple<
6324                    '_,
6325                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
6326                        data,
6327                        config,
6328                    )
6329                    .map(|r| {
6330                        let r: hasRoleReturn = r.into();
6331                        r._0
6332                    })
6333            }
6334            #[inline]
6335            fn abi_decode_returns_validate(
6336                data: &[u8],
6337            ) -> alloy_sol_types::Result<Self::Return> {
6338                Self::abi_decode_returns_with_config(
6339                    data,
6340                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
6341                )
6342            }
6343        }
6344    };
6345    #[derive(serde::Serialize, serde::Deserialize)]
6346    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6347    /**Function with signature `initialize(address,address,address,address)` and selector `0xf8c8765e`.
6348```solidity
6349function initialize(address _admin, address _espToken, address _lightClient, address _pauser) external;
6350```*/
6351    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6352    #[derive(Clone)]
6353    pub struct initializeCall {
6354        #[allow(missing_docs)]
6355        pub _admin: alloy::sol_types::private::Address,
6356        #[allow(missing_docs)]
6357        pub _espToken: alloy::sol_types::private::Address,
6358        #[allow(missing_docs)]
6359        pub _lightClient: alloy::sol_types::private::Address,
6360        #[allow(missing_docs)]
6361        pub _pauser: alloy::sol_types::private::Address,
6362    }
6363    ///Container type for the return parameters of the [`initialize(address,address,address,address)`](initializeCall) function.
6364    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6365    #[derive(Clone)]
6366    pub struct initializeReturn {}
6367    #[allow(
6368        non_camel_case_types,
6369        non_snake_case,
6370        clippy::pub_underscore_fields,
6371        clippy::style
6372    )]
6373    const _: () = {
6374        use alloy::sol_types as alloy_sol_types;
6375        {
6376            #[doc(hidden)]
6377            #[allow(dead_code)]
6378            type UnderlyingSolTuple<'a> = (
6379                alloy::sol_types::sol_data::Address,
6380                alloy::sol_types::sol_data::Address,
6381                alloy::sol_types::sol_data::Address,
6382                alloy::sol_types::sol_data::Address,
6383            );
6384            #[doc(hidden)]
6385            type UnderlyingRustTuple<'a> = (
6386                alloy::sol_types::private::Address,
6387                alloy::sol_types::private::Address,
6388                alloy::sol_types::private::Address,
6389                alloy::sol_types::private::Address,
6390            );
6391            #[cfg(test)]
6392            #[allow(dead_code, unreachable_patterns)]
6393            fn _type_assertion(
6394                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6395            ) {
6396                match _t {
6397                    alloy_sol_types::private::AssertTypeEq::<
6398                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6399                    >(_) => {}
6400                }
6401            }
6402            #[automatically_derived]
6403            #[doc(hidden)]
6404            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
6405                fn from(value: initializeCall) -> Self {
6406                    (value._admin, value._espToken, value._lightClient, value._pauser)
6407                }
6408            }
6409            #[automatically_derived]
6410            #[doc(hidden)]
6411            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
6412                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6413                    Self {
6414                        _admin: tuple.0,
6415                        _espToken: tuple.1,
6416                        _lightClient: tuple.2,
6417                        _pauser: tuple.3,
6418                    }
6419                }
6420            }
6421        }
6422        {
6423            #[doc(hidden)]
6424            #[allow(dead_code)]
6425            type UnderlyingSolTuple<'a> = ();
6426            #[doc(hidden)]
6427            type UnderlyingRustTuple<'a> = ();
6428            #[cfg(test)]
6429            #[allow(dead_code, unreachable_patterns)]
6430            fn _type_assertion(
6431                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6432            ) {
6433                match _t {
6434                    alloy_sol_types::private::AssertTypeEq::<
6435                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6436                    >(_) => {}
6437                }
6438            }
6439            #[automatically_derived]
6440            #[doc(hidden)]
6441            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
6442                fn from(value: initializeReturn) -> Self {
6443                    ()
6444                }
6445            }
6446            #[automatically_derived]
6447            #[doc(hidden)]
6448            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
6449                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6450                    Self {}
6451                }
6452            }
6453        }
6454        impl initializeReturn {
6455            fn _tokenize(
6456                &self,
6457            ) -> <initializeCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
6458                ()
6459            }
6460        }
6461        #[automatically_derived]
6462        impl alloy_sol_types::SolCall for initializeCall {
6463            type Parameters<'a> = (
6464                alloy::sol_types::sol_data::Address,
6465                alloy::sol_types::sol_data::Address,
6466                alloy::sol_types::sol_data::Address,
6467                alloy::sol_types::sol_data::Address,
6468            );
6469            type Token<'a> = <Self::Parameters<
6470                'a,
6471            > as alloy_sol_types::SolType>::Token<'a>;
6472            type Return = initializeReturn;
6473            type ReturnTuple<'a> = ();
6474            type ReturnToken<'a> = <Self::ReturnTuple<
6475                'a,
6476            > as alloy_sol_types::SolType>::Token<'a>;
6477            const SIGNATURE: &'static str = "initialize(address,address,address,address)";
6478            const SELECTOR: [u8; 4] = [248u8, 200u8, 118u8, 94u8];
6479            #[inline]
6480            fn new<'a>(
6481                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6482            ) -> Self {
6483                tuple.into()
6484            }
6485            #[inline]
6486            fn tokenize(&self) -> Self::Token<'_> {
6487                (
6488                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6489                        &self._admin,
6490                    ),
6491                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6492                        &self._espToken,
6493                    ),
6494                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6495                        &self._lightClient,
6496                    ),
6497                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6498                        &self._pauser,
6499                    ),
6500                )
6501            }
6502            #[inline]
6503            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6504                initializeReturn::_tokenize(ret)
6505            }
6506            #[inline]
6507            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6508                <Self::ReturnTuple<
6509                    '_,
6510                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6511                    .map(Into::into)
6512            }
6513            #[inline]
6514            fn abi_decode_returns_with_config(
6515                data: &[u8],
6516                config: alloy_sol_types::abi::AbiDecoderConfig,
6517            ) -> alloy_sol_types::Result<Self::Return> {
6518                <Self::ReturnTuple<
6519                    '_,
6520                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
6521                        data,
6522                        config,
6523                    )
6524                    .map(Into::into)
6525            }
6526            #[inline]
6527            fn abi_decode_returns_validate(
6528                data: &[u8],
6529            ) -> alloy_sol_types::Result<Self::Return> {
6530                Self::abi_decode_returns_with_config(
6531                    data,
6532                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
6533                )
6534            }
6535        }
6536    };
6537    #[derive(serde::Serialize, serde::Deserialize)]
6538    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6539    /**Function with signature `lastSetDailyLimitBasisPoints()` and selector `0x0f6ca1d6`.
6540```solidity
6541function lastSetDailyLimitBasisPoints() external view returns (uint256);
6542```*/
6543    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6544    #[derive(Clone)]
6545    pub struct lastSetDailyLimitBasisPointsCall;
6546    #[derive(serde::Serialize, serde::Deserialize)]
6547    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6548    ///Container type for the return parameters of the [`lastSetDailyLimitBasisPoints()`](lastSetDailyLimitBasisPointsCall) function.
6549    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6550    #[derive(Clone)]
6551    pub struct lastSetDailyLimitBasisPointsReturn {
6552        #[allow(missing_docs)]
6553        pub _0: alloy::sol_types::private::primitives::aliases::U256,
6554    }
6555    #[allow(
6556        non_camel_case_types,
6557        non_snake_case,
6558        clippy::pub_underscore_fields,
6559        clippy::style
6560    )]
6561    const _: () = {
6562        use alloy::sol_types as alloy_sol_types;
6563        {
6564            #[doc(hidden)]
6565            #[allow(dead_code)]
6566            type UnderlyingSolTuple<'a> = ();
6567            #[doc(hidden)]
6568            type UnderlyingRustTuple<'a> = ();
6569            #[cfg(test)]
6570            #[allow(dead_code, unreachable_patterns)]
6571            fn _type_assertion(
6572                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6573            ) {
6574                match _t {
6575                    alloy_sol_types::private::AssertTypeEq::<
6576                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6577                    >(_) => {}
6578                }
6579            }
6580            #[automatically_derived]
6581            #[doc(hidden)]
6582            impl ::core::convert::From<lastSetDailyLimitBasisPointsCall>
6583            for UnderlyingRustTuple<'_> {
6584                fn from(value: lastSetDailyLimitBasisPointsCall) -> Self {
6585                    ()
6586                }
6587            }
6588            #[automatically_derived]
6589            #[doc(hidden)]
6590            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6591            for lastSetDailyLimitBasisPointsCall {
6592                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6593                    Self
6594                }
6595            }
6596        }
6597        {
6598            #[doc(hidden)]
6599            #[allow(dead_code)]
6600            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6601            #[doc(hidden)]
6602            type UnderlyingRustTuple<'a> = (
6603                alloy::sol_types::private::primitives::aliases::U256,
6604            );
6605            #[cfg(test)]
6606            #[allow(dead_code, unreachable_patterns)]
6607            fn _type_assertion(
6608                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6609            ) {
6610                match _t {
6611                    alloy_sol_types::private::AssertTypeEq::<
6612                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6613                    >(_) => {}
6614                }
6615            }
6616            #[automatically_derived]
6617            #[doc(hidden)]
6618            impl ::core::convert::From<lastSetDailyLimitBasisPointsReturn>
6619            for UnderlyingRustTuple<'_> {
6620                fn from(value: lastSetDailyLimitBasisPointsReturn) -> Self {
6621                    (value._0,)
6622                }
6623            }
6624            #[automatically_derived]
6625            #[doc(hidden)]
6626            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6627            for lastSetDailyLimitBasisPointsReturn {
6628                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6629                    Self { _0: tuple.0 }
6630                }
6631            }
6632        }
6633        #[automatically_derived]
6634        impl alloy_sol_types::SolCall for lastSetDailyLimitBasisPointsCall {
6635            type Parameters<'a> = ();
6636            type Token<'a> = <Self::Parameters<
6637                'a,
6638            > as alloy_sol_types::SolType>::Token<'a>;
6639            type Return = alloy::sol_types::private::primitives::aliases::U256;
6640            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6641            type ReturnToken<'a> = <Self::ReturnTuple<
6642                'a,
6643            > as alloy_sol_types::SolType>::Token<'a>;
6644            const SIGNATURE: &'static str = "lastSetDailyLimitBasisPoints()";
6645            const SELECTOR: [u8; 4] = [15u8, 108u8, 161u8, 214u8];
6646            #[inline]
6647            fn new<'a>(
6648                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6649            ) -> Self {
6650                tuple.into()
6651            }
6652            #[inline]
6653            fn tokenize(&self) -> Self::Token<'_> {
6654                ()
6655            }
6656            #[inline]
6657            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6658                (
6659                    <alloy::sol_types::sol_data::Uint<
6660                        256,
6661                    > as alloy_sol_types::SolType>::tokenize(ret),
6662                )
6663            }
6664            #[inline]
6665            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6666                <Self::ReturnTuple<
6667                    '_,
6668                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6669                    .map(|r| {
6670                        let r: lastSetDailyLimitBasisPointsReturn = r.into();
6671                        r._0
6672                    })
6673            }
6674            #[inline]
6675            fn abi_decode_returns_with_config(
6676                data: &[u8],
6677                config: alloy_sol_types::abi::AbiDecoderConfig,
6678            ) -> alloy_sol_types::Result<Self::Return> {
6679                <Self::ReturnTuple<
6680                    '_,
6681                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
6682                        data,
6683                        config,
6684                    )
6685                    .map(|r| {
6686                        let r: lastSetDailyLimitBasisPointsReturn = r.into();
6687                        r._0
6688                    })
6689            }
6690            #[inline]
6691            fn abi_decode_returns_validate(
6692                data: &[u8],
6693            ) -> alloy_sol_types::Result<Self::Return> {
6694                Self::abi_decode_returns_with_config(
6695                    data,
6696                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
6697                )
6698            }
6699        }
6700    };
6701    #[derive(serde::Serialize, serde::Deserialize)]
6702    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6703    /**Function with signature `lightClient()` and selector `0xb5700e68`.
6704```solidity
6705function lightClient() external view returns (address);
6706```*/
6707    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6708    #[derive(Clone)]
6709    pub struct lightClientCall;
6710    #[derive(serde::Serialize, serde::Deserialize)]
6711    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6712    ///Container type for the return parameters of the [`lightClient()`](lightClientCall) function.
6713    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6714    #[derive(Clone)]
6715    pub struct lightClientReturn {
6716        #[allow(missing_docs)]
6717        pub _0: alloy::sol_types::private::Address,
6718    }
6719    #[allow(
6720        non_camel_case_types,
6721        non_snake_case,
6722        clippy::pub_underscore_fields,
6723        clippy::style
6724    )]
6725    const _: () = {
6726        use alloy::sol_types as alloy_sol_types;
6727        {
6728            #[doc(hidden)]
6729            #[allow(dead_code)]
6730            type UnderlyingSolTuple<'a> = ();
6731            #[doc(hidden)]
6732            type UnderlyingRustTuple<'a> = ();
6733            #[cfg(test)]
6734            #[allow(dead_code, unreachable_patterns)]
6735            fn _type_assertion(
6736                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6737            ) {
6738                match _t {
6739                    alloy_sol_types::private::AssertTypeEq::<
6740                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6741                    >(_) => {}
6742                }
6743            }
6744            #[automatically_derived]
6745            #[doc(hidden)]
6746            impl ::core::convert::From<lightClientCall> for UnderlyingRustTuple<'_> {
6747                fn from(value: lightClientCall) -> Self {
6748                    ()
6749                }
6750            }
6751            #[automatically_derived]
6752            #[doc(hidden)]
6753            impl ::core::convert::From<UnderlyingRustTuple<'_>> for lightClientCall {
6754                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6755                    Self
6756                }
6757            }
6758        }
6759        {
6760            #[doc(hidden)]
6761            #[allow(dead_code)]
6762            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6763            #[doc(hidden)]
6764            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6765            #[cfg(test)]
6766            #[allow(dead_code, unreachable_patterns)]
6767            fn _type_assertion(
6768                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6769            ) {
6770                match _t {
6771                    alloy_sol_types::private::AssertTypeEq::<
6772                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6773                    >(_) => {}
6774                }
6775            }
6776            #[automatically_derived]
6777            #[doc(hidden)]
6778            impl ::core::convert::From<lightClientReturn> for UnderlyingRustTuple<'_> {
6779                fn from(value: lightClientReturn) -> Self {
6780                    (value._0,)
6781                }
6782            }
6783            #[automatically_derived]
6784            #[doc(hidden)]
6785            impl ::core::convert::From<UnderlyingRustTuple<'_>> for lightClientReturn {
6786                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6787                    Self { _0: tuple.0 }
6788                }
6789            }
6790        }
6791        #[automatically_derived]
6792        impl alloy_sol_types::SolCall for lightClientCall {
6793            type Parameters<'a> = ();
6794            type Token<'a> = <Self::Parameters<
6795                'a,
6796            > as alloy_sol_types::SolType>::Token<'a>;
6797            type Return = alloy::sol_types::private::Address;
6798            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
6799            type ReturnToken<'a> = <Self::ReturnTuple<
6800                'a,
6801            > as alloy_sol_types::SolType>::Token<'a>;
6802            const SIGNATURE: &'static str = "lightClient()";
6803            const SELECTOR: [u8; 4] = [181u8, 112u8, 14u8, 104u8];
6804            #[inline]
6805            fn new<'a>(
6806                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6807            ) -> Self {
6808                tuple.into()
6809            }
6810            #[inline]
6811            fn tokenize(&self) -> Self::Token<'_> {
6812                ()
6813            }
6814            #[inline]
6815            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6816                (
6817                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6818                        ret,
6819                    ),
6820                )
6821            }
6822            #[inline]
6823            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6824                <Self::ReturnTuple<
6825                    '_,
6826                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6827                    .map(|r| {
6828                        let r: lightClientReturn = r.into();
6829                        r._0
6830                    })
6831            }
6832            #[inline]
6833            fn abi_decode_returns_with_config(
6834                data: &[u8],
6835                config: alloy_sol_types::abi::AbiDecoderConfig,
6836            ) -> alloy_sol_types::Result<Self::Return> {
6837                <Self::ReturnTuple<
6838                    '_,
6839                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
6840                        data,
6841                        config,
6842                    )
6843                    .map(|r| {
6844                        let r: lightClientReturn = r.into();
6845                        r._0
6846                    })
6847            }
6848            #[inline]
6849            fn abi_decode_returns_validate(
6850                data: &[u8],
6851            ) -> alloy_sol_types::Result<Self::Return> {
6852                Self::abi_decode_returns_with_config(
6853                    data,
6854                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
6855                )
6856            }
6857        }
6858    };
6859    #[derive(serde::Serialize, serde::Deserialize)]
6860    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6861    /**Function with signature `pause()` and selector `0x8456cb59`.
6862```solidity
6863function pause() external;
6864```*/
6865    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6866    #[derive(Clone)]
6867    pub struct pauseCall;
6868    ///Container type for the return parameters of the [`pause()`](pauseCall) function.
6869    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6870    #[derive(Clone)]
6871    pub struct pauseReturn {}
6872    #[allow(
6873        non_camel_case_types,
6874        non_snake_case,
6875        clippy::pub_underscore_fields,
6876        clippy::style
6877    )]
6878    const _: () = {
6879        use alloy::sol_types as alloy_sol_types;
6880        {
6881            #[doc(hidden)]
6882            #[allow(dead_code)]
6883            type UnderlyingSolTuple<'a> = ();
6884            #[doc(hidden)]
6885            type UnderlyingRustTuple<'a> = ();
6886            #[cfg(test)]
6887            #[allow(dead_code, unreachable_patterns)]
6888            fn _type_assertion(
6889                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6890            ) {
6891                match _t {
6892                    alloy_sol_types::private::AssertTypeEq::<
6893                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6894                    >(_) => {}
6895                }
6896            }
6897            #[automatically_derived]
6898            #[doc(hidden)]
6899            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
6900                fn from(value: pauseCall) -> Self {
6901                    ()
6902                }
6903            }
6904            #[automatically_derived]
6905            #[doc(hidden)]
6906            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
6907                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6908                    Self
6909                }
6910            }
6911        }
6912        {
6913            #[doc(hidden)]
6914            #[allow(dead_code)]
6915            type UnderlyingSolTuple<'a> = ();
6916            #[doc(hidden)]
6917            type UnderlyingRustTuple<'a> = ();
6918            #[cfg(test)]
6919            #[allow(dead_code, unreachable_patterns)]
6920            fn _type_assertion(
6921                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6922            ) {
6923                match _t {
6924                    alloy_sol_types::private::AssertTypeEq::<
6925                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6926                    >(_) => {}
6927                }
6928            }
6929            #[automatically_derived]
6930            #[doc(hidden)]
6931            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
6932                fn from(value: pauseReturn) -> Self {
6933                    ()
6934                }
6935            }
6936            #[automatically_derived]
6937            #[doc(hidden)]
6938            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
6939                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6940                    Self {}
6941                }
6942            }
6943        }
6944        impl pauseReturn {
6945            fn _tokenize(
6946                &self,
6947            ) -> <pauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
6948                ()
6949            }
6950        }
6951        #[automatically_derived]
6952        impl alloy_sol_types::SolCall for pauseCall {
6953            type Parameters<'a> = ();
6954            type Token<'a> = <Self::Parameters<
6955                'a,
6956            > as alloy_sol_types::SolType>::Token<'a>;
6957            type Return = pauseReturn;
6958            type ReturnTuple<'a> = ();
6959            type ReturnToken<'a> = <Self::ReturnTuple<
6960                'a,
6961            > as alloy_sol_types::SolType>::Token<'a>;
6962            const SIGNATURE: &'static str = "pause()";
6963            const SELECTOR: [u8; 4] = [132u8, 86u8, 203u8, 89u8];
6964            #[inline]
6965            fn new<'a>(
6966                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6967            ) -> Self {
6968                tuple.into()
6969            }
6970            #[inline]
6971            fn tokenize(&self) -> Self::Token<'_> {
6972                ()
6973            }
6974            #[inline]
6975            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6976                pauseReturn::_tokenize(ret)
6977            }
6978            #[inline]
6979            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6980                <Self::ReturnTuple<
6981                    '_,
6982                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6983                    .map(Into::into)
6984            }
6985            #[inline]
6986            fn abi_decode_returns_with_config(
6987                data: &[u8],
6988                config: alloy_sol_types::abi::AbiDecoderConfig,
6989            ) -> alloy_sol_types::Result<Self::Return> {
6990                <Self::ReturnTuple<
6991                    '_,
6992                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
6993                        data,
6994                        config,
6995                    )
6996                    .map(Into::into)
6997            }
6998            #[inline]
6999            fn abi_decode_returns_validate(
7000                data: &[u8],
7001            ) -> alloy_sol_types::Result<Self::Return> {
7002                Self::abi_decode_returns_with_config(
7003                    data,
7004                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7005                )
7006            }
7007        }
7008    };
7009    #[derive(serde::Serialize, serde::Deserialize)]
7010    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7011    /**Function with signature `paused()` and selector `0x5c975abb`.
7012```solidity
7013function paused() external view returns (bool);
7014```*/
7015    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7016    #[derive(Clone)]
7017    pub struct pausedCall;
7018    #[derive(serde::Serialize, serde::Deserialize)]
7019    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7020    ///Container type for the return parameters of the [`paused()`](pausedCall) function.
7021    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7022    #[derive(Clone)]
7023    pub struct pausedReturn {
7024        #[allow(missing_docs)]
7025        pub _0: bool,
7026    }
7027    #[allow(
7028        non_camel_case_types,
7029        non_snake_case,
7030        clippy::pub_underscore_fields,
7031        clippy::style
7032    )]
7033    const _: () = {
7034        use alloy::sol_types as alloy_sol_types;
7035        {
7036            #[doc(hidden)]
7037            #[allow(dead_code)]
7038            type UnderlyingSolTuple<'a> = ();
7039            #[doc(hidden)]
7040            type UnderlyingRustTuple<'a> = ();
7041            #[cfg(test)]
7042            #[allow(dead_code, unreachable_patterns)]
7043            fn _type_assertion(
7044                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7045            ) {
7046                match _t {
7047                    alloy_sol_types::private::AssertTypeEq::<
7048                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7049                    >(_) => {}
7050                }
7051            }
7052            #[automatically_derived]
7053            #[doc(hidden)]
7054            impl ::core::convert::From<pausedCall> for UnderlyingRustTuple<'_> {
7055                fn from(value: pausedCall) -> Self {
7056                    ()
7057                }
7058            }
7059            #[automatically_derived]
7060            #[doc(hidden)]
7061            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pausedCall {
7062                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7063                    Self
7064                }
7065            }
7066        }
7067        {
7068            #[doc(hidden)]
7069            #[allow(dead_code)]
7070            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
7071            #[doc(hidden)]
7072            type UnderlyingRustTuple<'a> = (bool,);
7073            #[cfg(test)]
7074            #[allow(dead_code, unreachable_patterns)]
7075            fn _type_assertion(
7076                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7077            ) {
7078                match _t {
7079                    alloy_sol_types::private::AssertTypeEq::<
7080                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7081                    >(_) => {}
7082                }
7083            }
7084            #[automatically_derived]
7085            #[doc(hidden)]
7086            impl ::core::convert::From<pausedReturn> for UnderlyingRustTuple<'_> {
7087                fn from(value: pausedReturn) -> Self {
7088                    (value._0,)
7089                }
7090            }
7091            #[automatically_derived]
7092            #[doc(hidden)]
7093            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pausedReturn {
7094                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7095                    Self { _0: tuple.0 }
7096                }
7097            }
7098        }
7099        #[automatically_derived]
7100        impl alloy_sol_types::SolCall for pausedCall {
7101            type Parameters<'a> = ();
7102            type Token<'a> = <Self::Parameters<
7103                'a,
7104            > as alloy_sol_types::SolType>::Token<'a>;
7105            type Return = bool;
7106            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
7107            type ReturnToken<'a> = <Self::ReturnTuple<
7108                'a,
7109            > as alloy_sol_types::SolType>::Token<'a>;
7110            const SIGNATURE: &'static str = "paused()";
7111            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
7112            #[inline]
7113            fn new<'a>(
7114                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7115            ) -> Self {
7116                tuple.into()
7117            }
7118            #[inline]
7119            fn tokenize(&self) -> Self::Token<'_> {
7120                ()
7121            }
7122            #[inline]
7123            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7124                (
7125                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
7126                        ret,
7127                    ),
7128                )
7129            }
7130            #[inline]
7131            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7132                <Self::ReturnTuple<
7133                    '_,
7134                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7135                    .map(|r| {
7136                        let r: pausedReturn = r.into();
7137                        r._0
7138                    })
7139            }
7140            #[inline]
7141            fn abi_decode_returns_with_config(
7142                data: &[u8],
7143                config: alloy_sol_types::abi::AbiDecoderConfig,
7144            ) -> alloy_sol_types::Result<Self::Return> {
7145                <Self::ReturnTuple<
7146                    '_,
7147                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
7148                        data,
7149                        config,
7150                    )
7151                    .map(|r| {
7152                        let r: pausedReturn = r.into();
7153                        r._0
7154                    })
7155            }
7156            #[inline]
7157            fn abi_decode_returns_validate(
7158                data: &[u8],
7159            ) -> alloy_sol_types::Result<Self::Return> {
7160                Self::abi_decode_returns_with_config(
7161                    data,
7162                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7163                )
7164            }
7165        }
7166    };
7167    #[derive(serde::Serialize, serde::Deserialize)]
7168    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7169    /**Function with signature `proxiableUUID()` and selector `0x52d1902d`.
7170```solidity
7171function proxiableUUID() external view returns (bytes32);
7172```*/
7173    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7174    #[derive(Clone)]
7175    pub struct proxiableUUIDCall;
7176    #[derive(serde::Serialize, serde::Deserialize)]
7177    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7178    ///Container type for the return parameters of the [`proxiableUUID()`](proxiableUUIDCall) function.
7179    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7180    #[derive(Clone)]
7181    pub struct proxiableUUIDReturn {
7182        #[allow(missing_docs)]
7183        pub _0: alloy::sol_types::private::FixedBytes<32>,
7184    }
7185    #[allow(
7186        non_camel_case_types,
7187        non_snake_case,
7188        clippy::pub_underscore_fields,
7189        clippy::style
7190    )]
7191    const _: () = {
7192        use alloy::sol_types as alloy_sol_types;
7193        {
7194            #[doc(hidden)]
7195            #[allow(dead_code)]
7196            type UnderlyingSolTuple<'a> = ();
7197            #[doc(hidden)]
7198            type UnderlyingRustTuple<'a> = ();
7199            #[cfg(test)]
7200            #[allow(dead_code, unreachable_patterns)]
7201            fn _type_assertion(
7202                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7203            ) {
7204                match _t {
7205                    alloy_sol_types::private::AssertTypeEq::<
7206                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7207                    >(_) => {}
7208                }
7209            }
7210            #[automatically_derived]
7211            #[doc(hidden)]
7212            impl ::core::convert::From<proxiableUUIDCall> for UnderlyingRustTuple<'_> {
7213                fn from(value: proxiableUUIDCall) -> Self {
7214                    ()
7215                }
7216            }
7217            #[automatically_derived]
7218            #[doc(hidden)]
7219            impl ::core::convert::From<UnderlyingRustTuple<'_>> for proxiableUUIDCall {
7220                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7221                    Self
7222                }
7223            }
7224        }
7225        {
7226            #[doc(hidden)]
7227            #[allow(dead_code)]
7228            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
7229            #[doc(hidden)]
7230            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
7231            #[cfg(test)]
7232            #[allow(dead_code, unreachable_patterns)]
7233            fn _type_assertion(
7234                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7235            ) {
7236                match _t {
7237                    alloy_sol_types::private::AssertTypeEq::<
7238                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7239                    >(_) => {}
7240                }
7241            }
7242            #[automatically_derived]
7243            #[doc(hidden)]
7244            impl ::core::convert::From<proxiableUUIDReturn> for UnderlyingRustTuple<'_> {
7245                fn from(value: proxiableUUIDReturn) -> Self {
7246                    (value._0,)
7247                }
7248            }
7249            #[automatically_derived]
7250            #[doc(hidden)]
7251            impl ::core::convert::From<UnderlyingRustTuple<'_>> for proxiableUUIDReturn {
7252                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7253                    Self { _0: tuple.0 }
7254                }
7255            }
7256        }
7257        #[automatically_derived]
7258        impl alloy_sol_types::SolCall for proxiableUUIDCall {
7259            type Parameters<'a> = ();
7260            type Token<'a> = <Self::Parameters<
7261                'a,
7262            > as alloy_sol_types::SolType>::Token<'a>;
7263            type Return = alloy::sol_types::private::FixedBytes<32>;
7264            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
7265            type ReturnToken<'a> = <Self::ReturnTuple<
7266                'a,
7267            > as alloy_sol_types::SolType>::Token<'a>;
7268            const SIGNATURE: &'static str = "proxiableUUID()";
7269            const SELECTOR: [u8; 4] = [82u8, 209u8, 144u8, 45u8];
7270            #[inline]
7271            fn new<'a>(
7272                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7273            ) -> Self {
7274                tuple.into()
7275            }
7276            #[inline]
7277            fn tokenize(&self) -> Self::Token<'_> {
7278                ()
7279            }
7280            #[inline]
7281            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7282                (
7283                    <alloy::sol_types::sol_data::FixedBytes<
7284                        32,
7285                    > as alloy_sol_types::SolType>::tokenize(ret),
7286                )
7287            }
7288            #[inline]
7289            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7290                <Self::ReturnTuple<
7291                    '_,
7292                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7293                    .map(|r| {
7294                        let r: proxiableUUIDReturn = r.into();
7295                        r._0
7296                    })
7297            }
7298            #[inline]
7299            fn abi_decode_returns_with_config(
7300                data: &[u8],
7301                config: alloy_sol_types::abi::AbiDecoderConfig,
7302            ) -> alloy_sol_types::Result<Self::Return> {
7303                <Self::ReturnTuple<
7304                    '_,
7305                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
7306                        data,
7307                        config,
7308                    )
7309                    .map(|r| {
7310                        let r: proxiableUUIDReturn = r.into();
7311                        r._0
7312                    })
7313            }
7314            #[inline]
7315            fn abi_decode_returns_validate(
7316                data: &[u8],
7317            ) -> alloy_sol_types::Result<Self::Return> {
7318                Self::abi_decode_returns_with_config(
7319                    data,
7320                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7321                )
7322            }
7323        }
7324    };
7325    #[derive(serde::Serialize, serde::Deserialize)]
7326    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7327    /**Function with signature `renounceRole(bytes32,address)` and selector `0x36568abe`.
7328```solidity
7329function renounceRole(bytes32 role, address callerConfirmation) external;
7330```*/
7331    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7332    #[derive(Clone)]
7333    pub struct renounceRoleCall {
7334        #[allow(missing_docs)]
7335        pub role: alloy::sol_types::private::FixedBytes<32>,
7336        #[allow(missing_docs)]
7337        pub callerConfirmation: alloy::sol_types::private::Address,
7338    }
7339    ///Container type for the return parameters of the [`renounceRole(bytes32,address)`](renounceRoleCall) function.
7340    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7341    #[derive(Clone)]
7342    pub struct renounceRoleReturn {}
7343    #[allow(
7344        non_camel_case_types,
7345        non_snake_case,
7346        clippy::pub_underscore_fields,
7347        clippy::style
7348    )]
7349    const _: () = {
7350        use alloy::sol_types as alloy_sol_types;
7351        {
7352            #[doc(hidden)]
7353            #[allow(dead_code)]
7354            type UnderlyingSolTuple<'a> = (
7355                alloy::sol_types::sol_data::FixedBytes<32>,
7356                alloy::sol_types::sol_data::Address,
7357            );
7358            #[doc(hidden)]
7359            type UnderlyingRustTuple<'a> = (
7360                alloy::sol_types::private::FixedBytes<32>,
7361                alloy::sol_types::private::Address,
7362            );
7363            #[cfg(test)]
7364            #[allow(dead_code, unreachable_patterns)]
7365            fn _type_assertion(
7366                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7367            ) {
7368                match _t {
7369                    alloy_sol_types::private::AssertTypeEq::<
7370                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7371                    >(_) => {}
7372                }
7373            }
7374            #[automatically_derived]
7375            #[doc(hidden)]
7376            impl ::core::convert::From<renounceRoleCall> for UnderlyingRustTuple<'_> {
7377                fn from(value: renounceRoleCall) -> Self {
7378                    (value.role, value.callerConfirmation)
7379                }
7380            }
7381            #[automatically_derived]
7382            #[doc(hidden)]
7383            impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceRoleCall {
7384                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7385                    Self {
7386                        role: tuple.0,
7387                        callerConfirmation: tuple.1,
7388                    }
7389                }
7390            }
7391        }
7392        {
7393            #[doc(hidden)]
7394            #[allow(dead_code)]
7395            type UnderlyingSolTuple<'a> = ();
7396            #[doc(hidden)]
7397            type UnderlyingRustTuple<'a> = ();
7398            #[cfg(test)]
7399            #[allow(dead_code, unreachable_patterns)]
7400            fn _type_assertion(
7401                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7402            ) {
7403                match _t {
7404                    alloy_sol_types::private::AssertTypeEq::<
7405                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7406                    >(_) => {}
7407                }
7408            }
7409            #[automatically_derived]
7410            #[doc(hidden)]
7411            impl ::core::convert::From<renounceRoleReturn> for UnderlyingRustTuple<'_> {
7412                fn from(value: renounceRoleReturn) -> Self {
7413                    ()
7414                }
7415            }
7416            #[automatically_derived]
7417            #[doc(hidden)]
7418            impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceRoleReturn {
7419                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7420                    Self {}
7421                }
7422            }
7423        }
7424        impl renounceRoleReturn {
7425            fn _tokenize(
7426                &self,
7427            ) -> <renounceRoleCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7428                ()
7429            }
7430        }
7431        #[automatically_derived]
7432        impl alloy_sol_types::SolCall for renounceRoleCall {
7433            type Parameters<'a> = (
7434                alloy::sol_types::sol_data::FixedBytes<32>,
7435                alloy::sol_types::sol_data::Address,
7436            );
7437            type Token<'a> = <Self::Parameters<
7438                'a,
7439            > as alloy_sol_types::SolType>::Token<'a>;
7440            type Return = renounceRoleReturn;
7441            type ReturnTuple<'a> = ();
7442            type ReturnToken<'a> = <Self::ReturnTuple<
7443                'a,
7444            > as alloy_sol_types::SolType>::Token<'a>;
7445            const SIGNATURE: &'static str = "renounceRole(bytes32,address)";
7446            const SELECTOR: [u8; 4] = [54u8, 86u8, 138u8, 190u8];
7447            #[inline]
7448            fn new<'a>(
7449                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7450            ) -> Self {
7451                tuple.into()
7452            }
7453            #[inline]
7454            fn tokenize(&self) -> Self::Token<'_> {
7455                (
7456                    <alloy::sol_types::sol_data::FixedBytes<
7457                        32,
7458                    > as alloy_sol_types::SolType>::tokenize(&self.role),
7459                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7460                        &self.callerConfirmation,
7461                    ),
7462                )
7463            }
7464            #[inline]
7465            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7466                renounceRoleReturn::_tokenize(ret)
7467            }
7468            #[inline]
7469            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7470                <Self::ReturnTuple<
7471                    '_,
7472                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7473                    .map(Into::into)
7474            }
7475            #[inline]
7476            fn abi_decode_returns_with_config(
7477                data: &[u8],
7478                config: alloy_sol_types::abi::AbiDecoderConfig,
7479            ) -> alloy_sol_types::Result<Self::Return> {
7480                <Self::ReturnTuple<
7481                    '_,
7482                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
7483                        data,
7484                        config,
7485                    )
7486                    .map(Into::into)
7487            }
7488            #[inline]
7489            fn abi_decode_returns_validate(
7490                data: &[u8],
7491            ) -> alloy_sol_types::Result<Self::Return> {
7492                Self::abi_decode_returns_with_config(
7493                    data,
7494                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7495                )
7496            }
7497        }
7498    };
7499    #[derive(serde::Serialize, serde::Deserialize)]
7500    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7501    /**Function with signature `revokeRole(bytes32,address)` and selector `0xd547741f`.
7502```solidity
7503function revokeRole(bytes32 role, address account) external;
7504```*/
7505    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7506    #[derive(Clone)]
7507    pub struct revokeRoleCall {
7508        #[allow(missing_docs)]
7509        pub role: alloy::sol_types::private::FixedBytes<32>,
7510        #[allow(missing_docs)]
7511        pub account: alloy::sol_types::private::Address,
7512    }
7513    ///Container type for the return parameters of the [`revokeRole(bytes32,address)`](revokeRoleCall) function.
7514    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7515    #[derive(Clone)]
7516    pub struct revokeRoleReturn {}
7517    #[allow(
7518        non_camel_case_types,
7519        non_snake_case,
7520        clippy::pub_underscore_fields,
7521        clippy::style
7522    )]
7523    const _: () = {
7524        use alloy::sol_types as alloy_sol_types;
7525        {
7526            #[doc(hidden)]
7527            #[allow(dead_code)]
7528            type UnderlyingSolTuple<'a> = (
7529                alloy::sol_types::sol_data::FixedBytes<32>,
7530                alloy::sol_types::sol_data::Address,
7531            );
7532            #[doc(hidden)]
7533            type UnderlyingRustTuple<'a> = (
7534                alloy::sol_types::private::FixedBytes<32>,
7535                alloy::sol_types::private::Address,
7536            );
7537            #[cfg(test)]
7538            #[allow(dead_code, unreachable_patterns)]
7539            fn _type_assertion(
7540                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7541            ) {
7542                match _t {
7543                    alloy_sol_types::private::AssertTypeEq::<
7544                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7545                    >(_) => {}
7546                }
7547            }
7548            #[automatically_derived]
7549            #[doc(hidden)]
7550            impl ::core::convert::From<revokeRoleCall> for UnderlyingRustTuple<'_> {
7551                fn from(value: revokeRoleCall) -> Self {
7552                    (value.role, value.account)
7553                }
7554            }
7555            #[automatically_derived]
7556            #[doc(hidden)]
7557            impl ::core::convert::From<UnderlyingRustTuple<'_>> for revokeRoleCall {
7558                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7559                    Self {
7560                        role: tuple.0,
7561                        account: tuple.1,
7562                    }
7563                }
7564            }
7565        }
7566        {
7567            #[doc(hidden)]
7568            #[allow(dead_code)]
7569            type UnderlyingSolTuple<'a> = ();
7570            #[doc(hidden)]
7571            type UnderlyingRustTuple<'a> = ();
7572            #[cfg(test)]
7573            #[allow(dead_code, unreachable_patterns)]
7574            fn _type_assertion(
7575                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7576            ) {
7577                match _t {
7578                    alloy_sol_types::private::AssertTypeEq::<
7579                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7580                    >(_) => {}
7581                }
7582            }
7583            #[automatically_derived]
7584            #[doc(hidden)]
7585            impl ::core::convert::From<revokeRoleReturn> for UnderlyingRustTuple<'_> {
7586                fn from(value: revokeRoleReturn) -> Self {
7587                    ()
7588                }
7589            }
7590            #[automatically_derived]
7591            #[doc(hidden)]
7592            impl ::core::convert::From<UnderlyingRustTuple<'_>> for revokeRoleReturn {
7593                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7594                    Self {}
7595                }
7596            }
7597        }
7598        impl revokeRoleReturn {
7599            fn _tokenize(
7600                &self,
7601            ) -> <revokeRoleCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7602                ()
7603            }
7604        }
7605        #[automatically_derived]
7606        impl alloy_sol_types::SolCall for revokeRoleCall {
7607            type Parameters<'a> = (
7608                alloy::sol_types::sol_data::FixedBytes<32>,
7609                alloy::sol_types::sol_data::Address,
7610            );
7611            type Token<'a> = <Self::Parameters<
7612                'a,
7613            > as alloy_sol_types::SolType>::Token<'a>;
7614            type Return = revokeRoleReturn;
7615            type ReturnTuple<'a> = ();
7616            type ReturnToken<'a> = <Self::ReturnTuple<
7617                'a,
7618            > as alloy_sol_types::SolType>::Token<'a>;
7619            const SIGNATURE: &'static str = "revokeRole(bytes32,address)";
7620            const SELECTOR: [u8; 4] = [213u8, 71u8, 116u8, 31u8];
7621            #[inline]
7622            fn new<'a>(
7623                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7624            ) -> Self {
7625                tuple.into()
7626            }
7627            #[inline]
7628            fn tokenize(&self) -> Self::Token<'_> {
7629                (
7630                    <alloy::sol_types::sol_data::FixedBytes<
7631                        32,
7632                    > as alloy_sol_types::SolType>::tokenize(&self.role),
7633                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7634                        &self.account,
7635                    ),
7636                )
7637            }
7638            #[inline]
7639            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7640                revokeRoleReturn::_tokenize(ret)
7641            }
7642            #[inline]
7643            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7644                <Self::ReturnTuple<
7645                    '_,
7646                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7647                    .map(Into::into)
7648            }
7649            #[inline]
7650            fn abi_decode_returns_with_config(
7651                data: &[u8],
7652                config: alloy_sol_types::abi::AbiDecoderConfig,
7653            ) -> alloy_sol_types::Result<Self::Return> {
7654                <Self::ReturnTuple<
7655                    '_,
7656                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
7657                        data,
7658                        config,
7659                    )
7660                    .map(Into::into)
7661            }
7662            #[inline]
7663            fn abi_decode_returns_validate(
7664                data: &[u8],
7665            ) -> alloy_sol_types::Result<Self::Return> {
7666                Self::abi_decode_returns_with_config(
7667                    data,
7668                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7669                )
7670            }
7671        }
7672    };
7673    #[derive(serde::Serialize, serde::Deserialize)]
7674    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7675    /**Function with signature `setDailyLimit(uint256)` and selector `0xb20d30a9`.
7676```solidity
7677function setDailyLimit(uint256 basisPoints) external;
7678```*/
7679    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7680    #[derive(Clone)]
7681    pub struct setDailyLimitCall {
7682        #[allow(missing_docs)]
7683        pub basisPoints: alloy::sol_types::private::primitives::aliases::U256,
7684    }
7685    ///Container type for the return parameters of the [`setDailyLimit(uint256)`](setDailyLimitCall) function.
7686    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7687    #[derive(Clone)]
7688    pub struct setDailyLimitReturn {}
7689    #[allow(
7690        non_camel_case_types,
7691        non_snake_case,
7692        clippy::pub_underscore_fields,
7693        clippy::style
7694    )]
7695    const _: () = {
7696        use alloy::sol_types as alloy_sol_types;
7697        {
7698            #[doc(hidden)]
7699            #[allow(dead_code)]
7700            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7701            #[doc(hidden)]
7702            type UnderlyingRustTuple<'a> = (
7703                alloy::sol_types::private::primitives::aliases::U256,
7704            );
7705            #[cfg(test)]
7706            #[allow(dead_code, unreachable_patterns)]
7707            fn _type_assertion(
7708                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7709            ) {
7710                match _t {
7711                    alloy_sol_types::private::AssertTypeEq::<
7712                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7713                    >(_) => {}
7714                }
7715            }
7716            #[automatically_derived]
7717            #[doc(hidden)]
7718            impl ::core::convert::From<setDailyLimitCall> for UnderlyingRustTuple<'_> {
7719                fn from(value: setDailyLimitCall) -> Self {
7720                    (value.basisPoints,)
7721                }
7722            }
7723            #[automatically_derived]
7724            #[doc(hidden)]
7725            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setDailyLimitCall {
7726                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7727                    Self { basisPoints: tuple.0 }
7728                }
7729            }
7730        }
7731        {
7732            #[doc(hidden)]
7733            #[allow(dead_code)]
7734            type UnderlyingSolTuple<'a> = ();
7735            #[doc(hidden)]
7736            type UnderlyingRustTuple<'a> = ();
7737            #[cfg(test)]
7738            #[allow(dead_code, unreachable_patterns)]
7739            fn _type_assertion(
7740                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7741            ) {
7742                match _t {
7743                    alloy_sol_types::private::AssertTypeEq::<
7744                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7745                    >(_) => {}
7746                }
7747            }
7748            #[automatically_derived]
7749            #[doc(hidden)]
7750            impl ::core::convert::From<setDailyLimitReturn> for UnderlyingRustTuple<'_> {
7751                fn from(value: setDailyLimitReturn) -> Self {
7752                    ()
7753                }
7754            }
7755            #[automatically_derived]
7756            #[doc(hidden)]
7757            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setDailyLimitReturn {
7758                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7759                    Self {}
7760                }
7761            }
7762        }
7763        impl setDailyLimitReturn {
7764            fn _tokenize(
7765                &self,
7766            ) -> <setDailyLimitCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7767                ()
7768            }
7769        }
7770        #[automatically_derived]
7771        impl alloy_sol_types::SolCall for setDailyLimitCall {
7772            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7773            type Token<'a> = <Self::Parameters<
7774                'a,
7775            > as alloy_sol_types::SolType>::Token<'a>;
7776            type Return = setDailyLimitReturn;
7777            type ReturnTuple<'a> = ();
7778            type ReturnToken<'a> = <Self::ReturnTuple<
7779                'a,
7780            > as alloy_sol_types::SolType>::Token<'a>;
7781            const SIGNATURE: &'static str = "setDailyLimit(uint256)";
7782            const SELECTOR: [u8; 4] = [178u8, 13u8, 48u8, 169u8];
7783            #[inline]
7784            fn new<'a>(
7785                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7786            ) -> Self {
7787                tuple.into()
7788            }
7789            #[inline]
7790            fn tokenize(&self) -> Self::Token<'_> {
7791                (
7792                    <alloy::sol_types::sol_data::Uint<
7793                        256,
7794                    > as alloy_sol_types::SolType>::tokenize(&self.basisPoints),
7795                )
7796            }
7797            #[inline]
7798            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7799                setDailyLimitReturn::_tokenize(ret)
7800            }
7801            #[inline]
7802            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7803                <Self::ReturnTuple<
7804                    '_,
7805                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7806                    .map(Into::into)
7807            }
7808            #[inline]
7809            fn abi_decode_returns_with_config(
7810                data: &[u8],
7811                config: alloy_sol_types::abi::AbiDecoderConfig,
7812            ) -> alloy_sol_types::Result<Self::Return> {
7813                <Self::ReturnTuple<
7814                    '_,
7815                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
7816                        data,
7817                        config,
7818                    )
7819                    .map(Into::into)
7820            }
7821            #[inline]
7822            fn abi_decode_returns_validate(
7823                data: &[u8],
7824            ) -> alloy_sol_types::Result<Self::Return> {
7825                Self::abi_decode_returns_with_config(
7826                    data,
7827                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7828                )
7829            }
7830        }
7831    };
7832    #[derive(serde::Serialize, serde::Deserialize)]
7833    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7834    /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`.
7835```solidity
7836function supportsInterface(bytes4 interfaceId) external view returns (bool);
7837```*/
7838    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7839    #[derive(Clone)]
7840    pub struct supportsInterfaceCall {
7841        #[allow(missing_docs)]
7842        pub interfaceId: alloy::sol_types::private::FixedBytes<4>,
7843    }
7844    #[derive(serde::Serialize, serde::Deserialize)]
7845    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7846    ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function.
7847    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7848    #[derive(Clone)]
7849    pub struct supportsInterfaceReturn {
7850        #[allow(missing_docs)]
7851        pub _0: bool,
7852    }
7853    #[allow(
7854        non_camel_case_types,
7855        non_snake_case,
7856        clippy::pub_underscore_fields,
7857        clippy::style
7858    )]
7859    const _: () = {
7860        use alloy::sol_types as alloy_sol_types;
7861        {
7862            #[doc(hidden)]
7863            #[allow(dead_code)]
7864            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
7865            #[doc(hidden)]
7866            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
7867            #[cfg(test)]
7868            #[allow(dead_code, unreachable_patterns)]
7869            fn _type_assertion(
7870                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7871            ) {
7872                match _t {
7873                    alloy_sol_types::private::AssertTypeEq::<
7874                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7875                    >(_) => {}
7876                }
7877            }
7878            #[automatically_derived]
7879            #[doc(hidden)]
7880            impl ::core::convert::From<supportsInterfaceCall>
7881            for UnderlyingRustTuple<'_> {
7882                fn from(value: supportsInterfaceCall) -> Self {
7883                    (value.interfaceId,)
7884                }
7885            }
7886            #[automatically_derived]
7887            #[doc(hidden)]
7888            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7889            for supportsInterfaceCall {
7890                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7891                    Self { interfaceId: tuple.0 }
7892                }
7893            }
7894        }
7895        {
7896            #[doc(hidden)]
7897            #[allow(dead_code)]
7898            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
7899            #[doc(hidden)]
7900            type UnderlyingRustTuple<'a> = (bool,);
7901            #[cfg(test)]
7902            #[allow(dead_code, unreachable_patterns)]
7903            fn _type_assertion(
7904                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7905            ) {
7906                match _t {
7907                    alloy_sol_types::private::AssertTypeEq::<
7908                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7909                    >(_) => {}
7910                }
7911            }
7912            #[automatically_derived]
7913            #[doc(hidden)]
7914            impl ::core::convert::From<supportsInterfaceReturn>
7915            for UnderlyingRustTuple<'_> {
7916                fn from(value: supportsInterfaceReturn) -> Self {
7917                    (value._0,)
7918                }
7919            }
7920            #[automatically_derived]
7921            #[doc(hidden)]
7922            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7923            for supportsInterfaceReturn {
7924                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7925                    Self { _0: tuple.0 }
7926                }
7927            }
7928        }
7929        #[automatically_derived]
7930        impl alloy_sol_types::SolCall for supportsInterfaceCall {
7931            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
7932            type Token<'a> = <Self::Parameters<
7933                'a,
7934            > as alloy_sol_types::SolType>::Token<'a>;
7935            type Return = bool;
7936            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
7937            type ReturnToken<'a> = <Self::ReturnTuple<
7938                'a,
7939            > as alloy_sol_types::SolType>::Token<'a>;
7940            const SIGNATURE: &'static str = "supportsInterface(bytes4)";
7941            const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8];
7942            #[inline]
7943            fn new<'a>(
7944                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7945            ) -> Self {
7946                tuple.into()
7947            }
7948            #[inline]
7949            fn tokenize(&self) -> Self::Token<'_> {
7950                (
7951                    <alloy::sol_types::sol_data::FixedBytes<
7952                        4,
7953                    > as alloy_sol_types::SolType>::tokenize(&self.interfaceId),
7954                )
7955            }
7956            #[inline]
7957            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7958                (
7959                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
7960                        ret,
7961                    ),
7962                )
7963            }
7964            #[inline]
7965            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7966                <Self::ReturnTuple<
7967                    '_,
7968                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7969                    .map(|r| {
7970                        let r: supportsInterfaceReturn = r.into();
7971                        r._0
7972                    })
7973            }
7974            #[inline]
7975            fn abi_decode_returns_with_config(
7976                data: &[u8],
7977                config: alloy_sol_types::abi::AbiDecoderConfig,
7978            ) -> alloy_sol_types::Result<Self::Return> {
7979                <Self::ReturnTuple<
7980                    '_,
7981                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
7982                        data,
7983                        config,
7984                    )
7985                    .map(|r| {
7986                        let r: supportsInterfaceReturn = r.into();
7987                        r._0
7988                    })
7989            }
7990            #[inline]
7991            fn abi_decode_returns_validate(
7992                data: &[u8],
7993            ) -> alloy_sol_types::Result<Self::Return> {
7994                Self::abi_decode_returns_with_config(
7995                    data,
7996                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
7997                )
7998            }
7999        }
8000    };
8001    #[derive(serde::Serialize, serde::Deserialize)]
8002    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8003    /**Function with signature `totalClaimed()` and selector `0xd54ad2a1`.
8004```solidity
8005function totalClaimed() external view returns (uint256);
8006```*/
8007    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8008    #[derive(Clone)]
8009    pub struct totalClaimedCall;
8010    #[derive(serde::Serialize, serde::Deserialize)]
8011    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8012    ///Container type for the return parameters of the [`totalClaimed()`](totalClaimedCall) function.
8013    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8014    #[derive(Clone)]
8015    pub struct totalClaimedReturn {
8016        #[allow(missing_docs)]
8017        pub _0: alloy::sol_types::private::primitives::aliases::U256,
8018    }
8019    #[allow(
8020        non_camel_case_types,
8021        non_snake_case,
8022        clippy::pub_underscore_fields,
8023        clippy::style
8024    )]
8025    const _: () = {
8026        use alloy::sol_types as alloy_sol_types;
8027        {
8028            #[doc(hidden)]
8029            #[allow(dead_code)]
8030            type UnderlyingSolTuple<'a> = ();
8031            #[doc(hidden)]
8032            type UnderlyingRustTuple<'a> = ();
8033            #[cfg(test)]
8034            #[allow(dead_code, unreachable_patterns)]
8035            fn _type_assertion(
8036                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8037            ) {
8038                match _t {
8039                    alloy_sol_types::private::AssertTypeEq::<
8040                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8041                    >(_) => {}
8042                }
8043            }
8044            #[automatically_derived]
8045            #[doc(hidden)]
8046            impl ::core::convert::From<totalClaimedCall> for UnderlyingRustTuple<'_> {
8047                fn from(value: totalClaimedCall) -> Self {
8048                    ()
8049                }
8050            }
8051            #[automatically_derived]
8052            #[doc(hidden)]
8053            impl ::core::convert::From<UnderlyingRustTuple<'_>> for totalClaimedCall {
8054                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8055                    Self
8056                }
8057            }
8058        }
8059        {
8060            #[doc(hidden)]
8061            #[allow(dead_code)]
8062            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
8063            #[doc(hidden)]
8064            type UnderlyingRustTuple<'a> = (
8065                alloy::sol_types::private::primitives::aliases::U256,
8066            );
8067            #[cfg(test)]
8068            #[allow(dead_code, unreachable_patterns)]
8069            fn _type_assertion(
8070                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8071            ) {
8072                match _t {
8073                    alloy_sol_types::private::AssertTypeEq::<
8074                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8075                    >(_) => {}
8076                }
8077            }
8078            #[automatically_derived]
8079            #[doc(hidden)]
8080            impl ::core::convert::From<totalClaimedReturn> for UnderlyingRustTuple<'_> {
8081                fn from(value: totalClaimedReturn) -> Self {
8082                    (value._0,)
8083                }
8084            }
8085            #[automatically_derived]
8086            #[doc(hidden)]
8087            impl ::core::convert::From<UnderlyingRustTuple<'_>> for totalClaimedReturn {
8088                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8089                    Self { _0: tuple.0 }
8090                }
8091            }
8092        }
8093        #[automatically_derived]
8094        impl alloy_sol_types::SolCall for totalClaimedCall {
8095            type Parameters<'a> = ();
8096            type Token<'a> = <Self::Parameters<
8097                'a,
8098            > as alloy_sol_types::SolType>::Token<'a>;
8099            type Return = alloy::sol_types::private::primitives::aliases::U256;
8100            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
8101            type ReturnToken<'a> = <Self::ReturnTuple<
8102                'a,
8103            > as alloy_sol_types::SolType>::Token<'a>;
8104            const SIGNATURE: &'static str = "totalClaimed()";
8105            const SELECTOR: [u8; 4] = [213u8, 74u8, 210u8, 161u8];
8106            #[inline]
8107            fn new<'a>(
8108                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8109            ) -> Self {
8110                tuple.into()
8111            }
8112            #[inline]
8113            fn tokenize(&self) -> Self::Token<'_> {
8114                ()
8115            }
8116            #[inline]
8117            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8118                (
8119                    <alloy::sol_types::sol_data::Uint<
8120                        256,
8121                    > as alloy_sol_types::SolType>::tokenize(ret),
8122                )
8123            }
8124            #[inline]
8125            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8126                <Self::ReturnTuple<
8127                    '_,
8128                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8129                    .map(|r| {
8130                        let r: totalClaimedReturn = r.into();
8131                        r._0
8132                    })
8133            }
8134            #[inline]
8135            fn abi_decode_returns_with_config(
8136                data: &[u8],
8137                config: alloy_sol_types::abi::AbiDecoderConfig,
8138            ) -> alloy_sol_types::Result<Self::Return> {
8139                <Self::ReturnTuple<
8140                    '_,
8141                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
8142                        data,
8143                        config,
8144                    )
8145                    .map(|r| {
8146                        let r: totalClaimedReturn = r.into();
8147                        r._0
8148                    })
8149            }
8150            #[inline]
8151            fn abi_decode_returns_validate(
8152                data: &[u8],
8153            ) -> alloy_sol_types::Result<Self::Return> {
8154                Self::abi_decode_returns_with_config(
8155                    data,
8156                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
8157                )
8158            }
8159        }
8160    };
8161    #[derive(serde::Serialize, serde::Deserialize)]
8162    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8163    /**Function with signature `unpause()` and selector `0x3f4ba83a`.
8164```solidity
8165function unpause() external;
8166```*/
8167    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8168    #[derive(Clone)]
8169    pub struct unpauseCall;
8170    ///Container type for the return parameters of the [`unpause()`](unpauseCall) function.
8171    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8172    #[derive(Clone)]
8173    pub struct unpauseReturn {}
8174    #[allow(
8175        non_camel_case_types,
8176        non_snake_case,
8177        clippy::pub_underscore_fields,
8178        clippy::style
8179    )]
8180    const _: () = {
8181        use alloy::sol_types as alloy_sol_types;
8182        {
8183            #[doc(hidden)]
8184            #[allow(dead_code)]
8185            type UnderlyingSolTuple<'a> = ();
8186            #[doc(hidden)]
8187            type UnderlyingRustTuple<'a> = ();
8188            #[cfg(test)]
8189            #[allow(dead_code, unreachable_patterns)]
8190            fn _type_assertion(
8191                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8192            ) {
8193                match _t {
8194                    alloy_sol_types::private::AssertTypeEq::<
8195                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8196                    >(_) => {}
8197                }
8198            }
8199            #[automatically_derived]
8200            #[doc(hidden)]
8201            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
8202                fn from(value: unpauseCall) -> Self {
8203                    ()
8204                }
8205            }
8206            #[automatically_derived]
8207            #[doc(hidden)]
8208            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
8209                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8210                    Self
8211                }
8212            }
8213        }
8214        {
8215            #[doc(hidden)]
8216            #[allow(dead_code)]
8217            type UnderlyingSolTuple<'a> = ();
8218            #[doc(hidden)]
8219            type UnderlyingRustTuple<'a> = ();
8220            #[cfg(test)]
8221            #[allow(dead_code, unreachable_patterns)]
8222            fn _type_assertion(
8223                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8224            ) {
8225                match _t {
8226                    alloy_sol_types::private::AssertTypeEq::<
8227                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8228                    >(_) => {}
8229                }
8230            }
8231            #[automatically_derived]
8232            #[doc(hidden)]
8233            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
8234                fn from(value: unpauseReturn) -> Self {
8235                    ()
8236                }
8237            }
8238            #[automatically_derived]
8239            #[doc(hidden)]
8240            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
8241                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8242                    Self {}
8243                }
8244            }
8245        }
8246        impl unpauseReturn {
8247            fn _tokenize(
8248                &self,
8249            ) -> <unpauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
8250                ()
8251            }
8252        }
8253        #[automatically_derived]
8254        impl alloy_sol_types::SolCall for unpauseCall {
8255            type Parameters<'a> = ();
8256            type Token<'a> = <Self::Parameters<
8257                'a,
8258            > as alloy_sol_types::SolType>::Token<'a>;
8259            type Return = unpauseReturn;
8260            type ReturnTuple<'a> = ();
8261            type ReturnToken<'a> = <Self::ReturnTuple<
8262                'a,
8263            > as alloy_sol_types::SolType>::Token<'a>;
8264            const SIGNATURE: &'static str = "unpause()";
8265            const SELECTOR: [u8; 4] = [63u8, 75u8, 168u8, 58u8];
8266            #[inline]
8267            fn new<'a>(
8268                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8269            ) -> Self {
8270                tuple.into()
8271            }
8272            #[inline]
8273            fn tokenize(&self) -> Self::Token<'_> {
8274                ()
8275            }
8276            #[inline]
8277            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8278                unpauseReturn::_tokenize(ret)
8279            }
8280            #[inline]
8281            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8282                <Self::ReturnTuple<
8283                    '_,
8284                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8285                    .map(Into::into)
8286            }
8287            #[inline]
8288            fn abi_decode_returns_with_config(
8289                data: &[u8],
8290                config: alloy_sol_types::abi::AbiDecoderConfig,
8291            ) -> alloy_sol_types::Result<Self::Return> {
8292                <Self::ReturnTuple<
8293                    '_,
8294                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
8295                        data,
8296                        config,
8297                    )
8298                    .map(Into::into)
8299            }
8300            #[inline]
8301            fn abi_decode_returns_validate(
8302                data: &[u8],
8303            ) -> alloy_sol_types::Result<Self::Return> {
8304                Self::abi_decode_returns_with_config(
8305                    data,
8306                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
8307                )
8308            }
8309        }
8310    };
8311    #[derive(serde::Serialize, serde::Deserialize)]
8312    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8313    /**Function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286`.
8314```solidity
8315function upgradeToAndCall(address newImplementation, bytes memory data) external payable;
8316```*/
8317    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8318    #[derive(Clone)]
8319    pub struct upgradeToAndCallCall {
8320        #[allow(missing_docs)]
8321        pub newImplementation: alloy::sol_types::private::Address,
8322        #[allow(missing_docs)]
8323        pub data: alloy::sol_types::private::Bytes,
8324    }
8325    ///Container type for the return parameters of the [`upgradeToAndCall(address,bytes)`](upgradeToAndCallCall) function.
8326    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8327    #[derive(Clone)]
8328    pub struct upgradeToAndCallReturn {}
8329    #[allow(
8330        non_camel_case_types,
8331        non_snake_case,
8332        clippy::pub_underscore_fields,
8333        clippy::style
8334    )]
8335    const _: () = {
8336        use alloy::sol_types as alloy_sol_types;
8337        {
8338            #[doc(hidden)]
8339            #[allow(dead_code)]
8340            type UnderlyingSolTuple<'a> = (
8341                alloy::sol_types::sol_data::Address,
8342                alloy::sol_types::sol_data::Bytes,
8343            );
8344            #[doc(hidden)]
8345            type UnderlyingRustTuple<'a> = (
8346                alloy::sol_types::private::Address,
8347                alloy::sol_types::private::Bytes,
8348            );
8349            #[cfg(test)]
8350            #[allow(dead_code, unreachable_patterns)]
8351            fn _type_assertion(
8352                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8353            ) {
8354                match _t {
8355                    alloy_sol_types::private::AssertTypeEq::<
8356                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8357                    >(_) => {}
8358                }
8359            }
8360            #[automatically_derived]
8361            #[doc(hidden)]
8362            impl ::core::convert::From<upgradeToAndCallCall>
8363            for UnderlyingRustTuple<'_> {
8364                fn from(value: upgradeToAndCallCall) -> Self {
8365                    (value.newImplementation, value.data)
8366                }
8367            }
8368            #[automatically_derived]
8369            #[doc(hidden)]
8370            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8371            for upgradeToAndCallCall {
8372                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8373                    Self {
8374                        newImplementation: tuple.0,
8375                        data: tuple.1,
8376                    }
8377                }
8378            }
8379        }
8380        {
8381            #[doc(hidden)]
8382            #[allow(dead_code)]
8383            type UnderlyingSolTuple<'a> = ();
8384            #[doc(hidden)]
8385            type UnderlyingRustTuple<'a> = ();
8386            #[cfg(test)]
8387            #[allow(dead_code, unreachable_patterns)]
8388            fn _type_assertion(
8389                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8390            ) {
8391                match _t {
8392                    alloy_sol_types::private::AssertTypeEq::<
8393                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8394                    >(_) => {}
8395                }
8396            }
8397            #[automatically_derived]
8398            #[doc(hidden)]
8399            impl ::core::convert::From<upgradeToAndCallReturn>
8400            for UnderlyingRustTuple<'_> {
8401                fn from(value: upgradeToAndCallReturn) -> Self {
8402                    ()
8403                }
8404            }
8405            #[automatically_derived]
8406            #[doc(hidden)]
8407            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8408            for upgradeToAndCallReturn {
8409                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8410                    Self {}
8411                }
8412            }
8413        }
8414        impl upgradeToAndCallReturn {
8415            fn _tokenize(
8416                &self,
8417            ) -> <upgradeToAndCallCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
8418                ()
8419            }
8420        }
8421        #[automatically_derived]
8422        impl alloy_sol_types::SolCall for upgradeToAndCallCall {
8423            type Parameters<'a> = (
8424                alloy::sol_types::sol_data::Address,
8425                alloy::sol_types::sol_data::Bytes,
8426            );
8427            type Token<'a> = <Self::Parameters<
8428                'a,
8429            > as alloy_sol_types::SolType>::Token<'a>;
8430            type Return = upgradeToAndCallReturn;
8431            type ReturnTuple<'a> = ();
8432            type ReturnToken<'a> = <Self::ReturnTuple<
8433                'a,
8434            > as alloy_sol_types::SolType>::Token<'a>;
8435            const SIGNATURE: &'static str = "upgradeToAndCall(address,bytes)";
8436            const SELECTOR: [u8; 4] = [79u8, 30u8, 242u8, 134u8];
8437            #[inline]
8438            fn new<'a>(
8439                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8440            ) -> Self {
8441                tuple.into()
8442            }
8443            #[inline]
8444            fn tokenize(&self) -> Self::Token<'_> {
8445                (
8446                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8447                        &self.newImplementation,
8448                    ),
8449                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
8450                        &self.data,
8451                    ),
8452                )
8453            }
8454            #[inline]
8455            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8456                upgradeToAndCallReturn::_tokenize(ret)
8457            }
8458            #[inline]
8459            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8460                <Self::ReturnTuple<
8461                    '_,
8462                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8463                    .map(Into::into)
8464            }
8465            #[inline]
8466            fn abi_decode_returns_with_config(
8467                data: &[u8],
8468                config: alloy_sol_types::abi::AbiDecoderConfig,
8469            ) -> alloy_sol_types::Result<Self::Return> {
8470                <Self::ReturnTuple<
8471                    '_,
8472                > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
8473                        data,
8474                        config,
8475                    )
8476                    .map(Into::into)
8477            }
8478            #[inline]
8479            fn abi_decode_returns_validate(
8480                data: &[u8],
8481            ) -> alloy_sol_types::Result<Self::Return> {
8482                Self::abi_decode_returns_with_config(
8483                    data,
8484                    alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
8485                )
8486            }
8487        }
8488    };
8489    ///Container for all the [`RewardClaim`](self) function calls.
8490    #[derive(Clone)]
8491    #[derive(serde::Serialize, serde::Deserialize)]
8492    #[derive(Debug, PartialEq, Eq, Hash)]
8493    pub enum RewardClaimCalls {
8494        #[allow(missing_docs)]
8495        BPS_DENOMINATOR(BPS_DENOMINATORCall),
8496        #[allow(missing_docs)]
8497        DEFAULT_ADMIN_ROLE(DEFAULT_ADMIN_ROLECall),
8498        #[allow(missing_docs)]
8499        MAX_DAILY_LIMIT_BASIS_POINTS(MAX_DAILY_LIMIT_BASIS_POINTSCall),
8500        #[allow(missing_docs)]
8501        PAUSER_ROLE(PAUSER_ROLECall),
8502        #[allow(missing_docs)]
8503        UPGRADE_INTERFACE_VERSION(UPGRADE_INTERFACE_VERSIONCall),
8504        #[allow(missing_docs)]
8505        claimRewards(claimRewardsCall),
8506        #[allow(missing_docs)]
8507        claimedRewards(claimedRewardsCall),
8508        #[allow(missing_docs)]
8509        currentAdmin(currentAdminCall),
8510        #[allow(missing_docs)]
8511        dailyLimitWei(dailyLimitWeiCall),
8512        #[allow(missing_docs)]
8513        espToken(espTokenCall),
8514        #[allow(missing_docs)]
8515        getRoleAdmin(getRoleAdminCall),
8516        #[allow(missing_docs)]
8517        getVersion(getVersionCall),
8518        #[allow(missing_docs)]
8519        grantRole(grantRoleCall),
8520        #[allow(missing_docs)]
8521        hasRole(hasRoleCall),
8522        #[allow(missing_docs)]
8523        initialize(initializeCall),
8524        #[allow(missing_docs)]
8525        lastSetDailyLimitBasisPoints(lastSetDailyLimitBasisPointsCall),
8526        #[allow(missing_docs)]
8527        lightClient(lightClientCall),
8528        #[allow(missing_docs)]
8529        pause(pauseCall),
8530        #[allow(missing_docs)]
8531        paused(pausedCall),
8532        #[allow(missing_docs)]
8533        proxiableUUID(proxiableUUIDCall),
8534        #[allow(missing_docs)]
8535        renounceRole(renounceRoleCall),
8536        #[allow(missing_docs)]
8537        revokeRole(revokeRoleCall),
8538        #[allow(missing_docs)]
8539        setDailyLimit(setDailyLimitCall),
8540        #[allow(missing_docs)]
8541        supportsInterface(supportsInterfaceCall),
8542        #[allow(missing_docs)]
8543        totalClaimed(totalClaimedCall),
8544        #[allow(missing_docs)]
8545        unpause(unpauseCall),
8546        #[allow(missing_docs)]
8547        upgradeToAndCall(upgradeToAndCallCall),
8548    }
8549    impl RewardClaimCalls {
8550        /// All the selectors of this enum.
8551        ///
8552        /// Note that the selectors might not be in the same order as the variants.
8553        /// No guarantees are made about the order of the selectors.
8554        ///
8555        /// Prefer using `SolInterface` methods instead.
8556        pub const SELECTORS: &'static [[u8; 4usize]] = &[
8557            [1u8, 255u8, 201u8, 167u8],
8558            [13u8, 142u8, 110u8, 44u8],
8559            [15u8, 108u8, 161u8, 214u8],
8560            [36u8, 138u8, 156u8, 163u8],
8561            [44u8, 202u8, 116u8, 216u8],
8562            [47u8, 47u8, 241u8, 93u8],
8563            [54u8, 86u8, 138u8, 190u8],
8564            [63u8, 75u8, 168u8, 58u8],
8565            [79u8, 30u8, 242u8, 134u8],
8566            [82u8, 209u8, 144u8, 45u8],
8567            [84u8, 157u8, 216u8, 195u8],
8568            [92u8, 151u8, 90u8, 187u8],
8569            [132u8, 86u8, 203u8, 89u8],
8570            [145u8, 209u8, 72u8, 84u8],
8571            [162u8, 23u8, 253u8, 223u8],
8572            [173u8, 60u8, 177u8, 204u8],
8573            [178u8, 13u8, 48u8, 169u8],
8574            [181u8, 112u8, 14u8, 104u8],
8575            [186u8, 75u8, 205u8, 114u8],
8576            [189u8, 131u8, 67u8, 69u8],
8577            [207u8, 33u8, 57u8, 91u8],
8578            [213u8, 71u8, 116u8, 31u8],
8579            [213u8, 74u8, 210u8, 161u8],
8580            [225u8, 164u8, 82u8, 24u8],
8581            [230u8, 58u8, 177u8, 233u8],
8582            [240u8, 146u8, 225u8, 58u8],
8583            [248u8, 200u8, 118u8, 94u8],
8584        ];
8585        /// The names of the variants in the same order as `SELECTORS`.
8586        pub const VARIANT_NAMES: &'static [&'static str] = &[
8587            ::core::stringify!(supportsInterface),
8588            ::core::stringify!(getVersion),
8589            ::core::stringify!(lastSetDailyLimitBasisPoints),
8590            ::core::stringify!(getRoleAdmin),
8591            ::core::stringify!(dailyLimitWei),
8592            ::core::stringify!(grantRole),
8593            ::core::stringify!(renounceRole),
8594            ::core::stringify!(unpause),
8595            ::core::stringify!(upgradeToAndCall),
8596            ::core::stringify!(proxiableUUID),
8597            ::core::stringify!(claimRewards),
8598            ::core::stringify!(paused),
8599            ::core::stringify!(pause),
8600            ::core::stringify!(hasRole),
8601            ::core::stringify!(DEFAULT_ADMIN_ROLE),
8602            ::core::stringify!(UPGRADE_INTERFACE_VERSION),
8603            ::core::stringify!(setDailyLimit),
8604            ::core::stringify!(lightClient),
8605            ::core::stringify!(currentAdmin),
8606            ::core::stringify!(claimedRewards),
8607            ::core::stringify!(MAX_DAILY_LIMIT_BASIS_POINTS),
8608            ::core::stringify!(revokeRole),
8609            ::core::stringify!(totalClaimed),
8610            ::core::stringify!(BPS_DENOMINATOR),
8611            ::core::stringify!(PAUSER_ROLE),
8612            ::core::stringify!(espToken),
8613            ::core::stringify!(initialize),
8614        ];
8615        /// The signatures in the same order as `SELECTORS`.
8616        pub const SIGNATURES: &'static [&'static str] = &[
8617            <supportsInterfaceCall as alloy_sol_types::SolCall>::SIGNATURE,
8618            <getVersionCall as alloy_sol_types::SolCall>::SIGNATURE,
8619            <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::SIGNATURE,
8620            <getRoleAdminCall as alloy_sol_types::SolCall>::SIGNATURE,
8621            <dailyLimitWeiCall as alloy_sol_types::SolCall>::SIGNATURE,
8622            <grantRoleCall as alloy_sol_types::SolCall>::SIGNATURE,
8623            <renounceRoleCall as alloy_sol_types::SolCall>::SIGNATURE,
8624            <unpauseCall as alloy_sol_types::SolCall>::SIGNATURE,
8625            <upgradeToAndCallCall as alloy_sol_types::SolCall>::SIGNATURE,
8626            <proxiableUUIDCall as alloy_sol_types::SolCall>::SIGNATURE,
8627            <claimRewardsCall as alloy_sol_types::SolCall>::SIGNATURE,
8628            <pausedCall as alloy_sol_types::SolCall>::SIGNATURE,
8629            <pauseCall as alloy_sol_types::SolCall>::SIGNATURE,
8630            <hasRoleCall as alloy_sol_types::SolCall>::SIGNATURE,
8631            <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::SIGNATURE,
8632            <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::SIGNATURE,
8633            <setDailyLimitCall as alloy_sol_types::SolCall>::SIGNATURE,
8634            <lightClientCall as alloy_sol_types::SolCall>::SIGNATURE,
8635            <currentAdminCall as alloy_sol_types::SolCall>::SIGNATURE,
8636            <claimedRewardsCall as alloy_sol_types::SolCall>::SIGNATURE,
8637            <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::SIGNATURE,
8638            <revokeRoleCall as alloy_sol_types::SolCall>::SIGNATURE,
8639            <totalClaimedCall as alloy_sol_types::SolCall>::SIGNATURE,
8640            <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::SIGNATURE,
8641            <PAUSER_ROLECall as alloy_sol_types::SolCall>::SIGNATURE,
8642            <espTokenCall as alloy_sol_types::SolCall>::SIGNATURE,
8643            <initializeCall as alloy_sol_types::SolCall>::SIGNATURE,
8644        ];
8645        /// Returns the signature for the given selector, if known.
8646        #[inline]
8647        pub fn signature_by_selector(
8648            selector: [u8; 4usize],
8649        ) -> ::core::option::Option<&'static str> {
8650            match Self::SELECTORS.binary_search(&selector) {
8651                ::core::result::Result::Ok(idx) => {
8652                    ::core::option::Option::Some(Self::SIGNATURES[idx])
8653                }
8654                ::core::result::Result::Err(_) => ::core::option::Option::None,
8655            }
8656        }
8657        /// Returns the enum variant name for the given selector, if known.
8658        #[inline]
8659        pub fn name_by_selector(
8660            selector: [u8; 4usize],
8661        ) -> ::core::option::Option<&'static str> {
8662            let sig = Self::signature_by_selector(selector)?;
8663            sig.split_once('(').map(|(name, _)| name)
8664        }
8665    }
8666    #[automatically_derived]
8667    impl alloy_sol_types::SolInterface for RewardClaimCalls {
8668        const NAME: &'static str = "RewardClaimCalls";
8669        const MIN_DATA_LENGTH: usize = 0usize;
8670        const COUNT: usize = 27usize;
8671        #[inline]
8672        fn selector(&self) -> [u8; 4] {
8673            match self {
8674                Self::BPS_DENOMINATOR(_) => {
8675                    <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::SELECTOR
8676                }
8677                Self::DEFAULT_ADMIN_ROLE(_) => {
8678                    <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::SELECTOR
8679                }
8680                Self::MAX_DAILY_LIMIT_BASIS_POINTS(_) => {
8681                    <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::SELECTOR
8682                }
8683                Self::PAUSER_ROLE(_) => {
8684                    <PAUSER_ROLECall as alloy_sol_types::SolCall>::SELECTOR
8685                }
8686                Self::UPGRADE_INTERFACE_VERSION(_) => {
8687                    <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::SELECTOR
8688                }
8689                Self::claimRewards(_) => {
8690                    <claimRewardsCall as alloy_sol_types::SolCall>::SELECTOR
8691                }
8692                Self::claimedRewards(_) => {
8693                    <claimedRewardsCall as alloy_sol_types::SolCall>::SELECTOR
8694                }
8695                Self::currentAdmin(_) => {
8696                    <currentAdminCall as alloy_sol_types::SolCall>::SELECTOR
8697                }
8698                Self::dailyLimitWei(_) => {
8699                    <dailyLimitWeiCall as alloy_sol_types::SolCall>::SELECTOR
8700                }
8701                Self::espToken(_) => <espTokenCall as alloy_sol_types::SolCall>::SELECTOR,
8702                Self::getRoleAdmin(_) => {
8703                    <getRoleAdminCall as alloy_sol_types::SolCall>::SELECTOR
8704                }
8705                Self::getVersion(_) => {
8706                    <getVersionCall as alloy_sol_types::SolCall>::SELECTOR
8707                }
8708                Self::grantRole(_) => {
8709                    <grantRoleCall as alloy_sol_types::SolCall>::SELECTOR
8710                }
8711                Self::hasRole(_) => <hasRoleCall as alloy_sol_types::SolCall>::SELECTOR,
8712                Self::initialize(_) => {
8713                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
8714                }
8715                Self::lastSetDailyLimitBasisPoints(_) => {
8716                    <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::SELECTOR
8717                }
8718                Self::lightClient(_) => {
8719                    <lightClientCall as alloy_sol_types::SolCall>::SELECTOR
8720                }
8721                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
8722                Self::paused(_) => <pausedCall as alloy_sol_types::SolCall>::SELECTOR,
8723                Self::proxiableUUID(_) => {
8724                    <proxiableUUIDCall as alloy_sol_types::SolCall>::SELECTOR
8725                }
8726                Self::renounceRole(_) => {
8727                    <renounceRoleCall as alloy_sol_types::SolCall>::SELECTOR
8728                }
8729                Self::revokeRole(_) => {
8730                    <revokeRoleCall as alloy_sol_types::SolCall>::SELECTOR
8731                }
8732                Self::setDailyLimit(_) => {
8733                    <setDailyLimitCall as alloy_sol_types::SolCall>::SELECTOR
8734                }
8735                Self::supportsInterface(_) => {
8736                    <supportsInterfaceCall as alloy_sol_types::SolCall>::SELECTOR
8737                }
8738                Self::totalClaimed(_) => {
8739                    <totalClaimedCall as alloy_sol_types::SolCall>::SELECTOR
8740                }
8741                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
8742                Self::upgradeToAndCall(_) => {
8743                    <upgradeToAndCallCall as alloy_sol_types::SolCall>::SELECTOR
8744                }
8745            }
8746        }
8747        #[inline]
8748        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
8749            Self::SELECTORS.get(i).copied()
8750        }
8751        #[inline]
8752        fn valid_selector(selector: [u8; 4]) -> bool {
8753            Self::SELECTORS.binary_search(&selector).is_ok()
8754        }
8755        #[inline]
8756        #[allow(non_snake_case)]
8757        fn abi_decode_raw(
8758            selector: [u8; 4],
8759            data: &[u8],
8760        ) -> alloy_sol_types::Result<Self> {
8761            Self::abi_decode_raw_with_config(
8762                selector,
8763                data,
8764                alloy_sol_types::abi::AbiDecoderConfig::default(),
8765            )
8766        }
8767        #[inline]
8768        #[allow(non_snake_case)]
8769        fn abi_decode_raw_with_config(
8770            selector: [u8; 4],
8771            data: &[u8],
8772            config: alloy_sol_types::abi::AbiDecoderConfig,
8773        ) -> alloy_sol_types::Result<Self> {
8774            static DECODE_SHIMS: &[fn(
8775                &[u8],
8776                alloy_sol_types::abi::AbiDecoderConfig,
8777            ) -> alloy_sol_types::Result<RewardClaimCalls>] = &[
8778                {
8779                    fn supportsInterface(
8780                        data: &[u8],
8781                        config: alloy_sol_types::abi::AbiDecoderConfig,
8782                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8783                        <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8784                                data,
8785                                config,
8786                            )
8787                            .map(RewardClaimCalls::supportsInterface)
8788                    }
8789                    supportsInterface
8790                },
8791                {
8792                    fn getVersion(
8793                        data: &[u8],
8794                        config: alloy_sol_types::abi::AbiDecoderConfig,
8795                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8796                        <getVersionCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8797                                data,
8798                                config,
8799                            )
8800                            .map(RewardClaimCalls::getVersion)
8801                    }
8802                    getVersion
8803                },
8804                {
8805                    fn lastSetDailyLimitBasisPoints(
8806                        data: &[u8],
8807                        config: alloy_sol_types::abi::AbiDecoderConfig,
8808                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8809                        <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8810                                data,
8811                                config,
8812                            )
8813                            .map(RewardClaimCalls::lastSetDailyLimitBasisPoints)
8814                    }
8815                    lastSetDailyLimitBasisPoints
8816                },
8817                {
8818                    fn getRoleAdmin(
8819                        data: &[u8],
8820                        config: alloy_sol_types::abi::AbiDecoderConfig,
8821                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8822                        <getRoleAdminCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8823                                data,
8824                                config,
8825                            )
8826                            .map(RewardClaimCalls::getRoleAdmin)
8827                    }
8828                    getRoleAdmin
8829                },
8830                {
8831                    fn dailyLimitWei(
8832                        data: &[u8],
8833                        config: alloy_sol_types::abi::AbiDecoderConfig,
8834                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8835                        <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8836                                data,
8837                                config,
8838                            )
8839                            .map(RewardClaimCalls::dailyLimitWei)
8840                    }
8841                    dailyLimitWei
8842                },
8843                {
8844                    fn grantRole(
8845                        data: &[u8],
8846                        config: alloy_sol_types::abi::AbiDecoderConfig,
8847                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8848                        <grantRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8849                                data,
8850                                config,
8851                            )
8852                            .map(RewardClaimCalls::grantRole)
8853                    }
8854                    grantRole
8855                },
8856                {
8857                    fn renounceRole(
8858                        data: &[u8],
8859                        config: alloy_sol_types::abi::AbiDecoderConfig,
8860                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8861                        <renounceRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8862                                data,
8863                                config,
8864                            )
8865                            .map(RewardClaimCalls::renounceRole)
8866                    }
8867                    renounceRole
8868                },
8869                {
8870                    fn unpause(
8871                        data: &[u8],
8872                        config: alloy_sol_types::abi::AbiDecoderConfig,
8873                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8874                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8875                                data,
8876                                config,
8877                            )
8878                            .map(RewardClaimCalls::unpause)
8879                    }
8880                    unpause
8881                },
8882                {
8883                    fn upgradeToAndCall(
8884                        data: &[u8],
8885                        config: alloy_sol_types::abi::AbiDecoderConfig,
8886                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8887                        <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8888                                data,
8889                                config,
8890                            )
8891                            .map(RewardClaimCalls::upgradeToAndCall)
8892                    }
8893                    upgradeToAndCall
8894                },
8895                {
8896                    fn proxiableUUID(
8897                        data: &[u8],
8898                        config: alloy_sol_types::abi::AbiDecoderConfig,
8899                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8900                        <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8901                                data,
8902                                config,
8903                            )
8904                            .map(RewardClaimCalls::proxiableUUID)
8905                    }
8906                    proxiableUUID
8907                },
8908                {
8909                    fn claimRewards(
8910                        data: &[u8],
8911                        config: alloy_sol_types::abi::AbiDecoderConfig,
8912                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8913                        <claimRewardsCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8914                                data,
8915                                config,
8916                            )
8917                            .map(RewardClaimCalls::claimRewards)
8918                    }
8919                    claimRewards
8920                },
8921                {
8922                    fn paused(
8923                        data: &[u8],
8924                        config: alloy_sol_types::abi::AbiDecoderConfig,
8925                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8926                        <pausedCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8927                                data,
8928                                config,
8929                            )
8930                            .map(RewardClaimCalls::paused)
8931                    }
8932                    paused
8933                },
8934                {
8935                    fn pause(
8936                        data: &[u8],
8937                        config: alloy_sol_types::abi::AbiDecoderConfig,
8938                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8939                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8940                                data,
8941                                config,
8942                            )
8943                            .map(RewardClaimCalls::pause)
8944                    }
8945                    pause
8946                },
8947                {
8948                    fn hasRole(
8949                        data: &[u8],
8950                        config: alloy_sol_types::abi::AbiDecoderConfig,
8951                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8952                        <hasRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8953                                data,
8954                                config,
8955                            )
8956                            .map(RewardClaimCalls::hasRole)
8957                    }
8958                    hasRole
8959                },
8960                {
8961                    fn DEFAULT_ADMIN_ROLE(
8962                        data: &[u8],
8963                        config: alloy_sol_types::abi::AbiDecoderConfig,
8964                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8965                        <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8966                                data,
8967                                config,
8968                            )
8969                            .map(RewardClaimCalls::DEFAULT_ADMIN_ROLE)
8970                    }
8971                    DEFAULT_ADMIN_ROLE
8972                },
8973                {
8974                    fn UPGRADE_INTERFACE_VERSION(
8975                        data: &[u8],
8976                        config: alloy_sol_types::abi::AbiDecoderConfig,
8977                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8978                        <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8979                                data,
8980                                config,
8981                            )
8982                            .map(RewardClaimCalls::UPGRADE_INTERFACE_VERSION)
8983                    }
8984                    UPGRADE_INTERFACE_VERSION
8985                },
8986                {
8987                    fn setDailyLimit(
8988                        data: &[u8],
8989                        config: alloy_sol_types::abi::AbiDecoderConfig,
8990                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8991                        <setDailyLimitCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
8992                                data,
8993                                config,
8994                            )
8995                            .map(RewardClaimCalls::setDailyLimit)
8996                    }
8997                    setDailyLimit
8998                },
8999                {
9000                    fn lightClient(
9001                        data: &[u8],
9002                        config: alloy_sol_types::abi::AbiDecoderConfig,
9003                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9004                        <lightClientCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9005                                data,
9006                                config,
9007                            )
9008                            .map(RewardClaimCalls::lightClient)
9009                    }
9010                    lightClient
9011                },
9012                {
9013                    fn currentAdmin(
9014                        data: &[u8],
9015                        config: alloy_sol_types::abi::AbiDecoderConfig,
9016                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9017                        <currentAdminCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9018                                data,
9019                                config,
9020                            )
9021                            .map(RewardClaimCalls::currentAdmin)
9022                    }
9023                    currentAdmin
9024                },
9025                {
9026                    fn claimedRewards(
9027                        data: &[u8],
9028                        config: alloy_sol_types::abi::AbiDecoderConfig,
9029                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9030                        <claimedRewardsCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9031                                data,
9032                                config,
9033                            )
9034                            .map(RewardClaimCalls::claimedRewards)
9035                    }
9036                    claimedRewards
9037                },
9038                {
9039                    fn MAX_DAILY_LIMIT_BASIS_POINTS(
9040                        data: &[u8],
9041                        config: alloy_sol_types::abi::AbiDecoderConfig,
9042                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9043                        <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9044                                data,
9045                                config,
9046                            )
9047                            .map(RewardClaimCalls::MAX_DAILY_LIMIT_BASIS_POINTS)
9048                    }
9049                    MAX_DAILY_LIMIT_BASIS_POINTS
9050                },
9051                {
9052                    fn revokeRole(
9053                        data: &[u8],
9054                        config: alloy_sol_types::abi::AbiDecoderConfig,
9055                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9056                        <revokeRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9057                                data,
9058                                config,
9059                            )
9060                            .map(RewardClaimCalls::revokeRole)
9061                    }
9062                    revokeRole
9063                },
9064                {
9065                    fn totalClaimed(
9066                        data: &[u8],
9067                        config: alloy_sol_types::abi::AbiDecoderConfig,
9068                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9069                        <totalClaimedCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9070                                data,
9071                                config,
9072                            )
9073                            .map(RewardClaimCalls::totalClaimed)
9074                    }
9075                    totalClaimed
9076                },
9077                {
9078                    fn BPS_DENOMINATOR(
9079                        data: &[u8],
9080                        config: alloy_sol_types::abi::AbiDecoderConfig,
9081                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9082                        <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9083                                data,
9084                                config,
9085                            )
9086                            .map(RewardClaimCalls::BPS_DENOMINATOR)
9087                    }
9088                    BPS_DENOMINATOR
9089                },
9090                {
9091                    fn PAUSER_ROLE(
9092                        data: &[u8],
9093                        config: alloy_sol_types::abi::AbiDecoderConfig,
9094                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9095                        <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9096                                data,
9097                                config,
9098                            )
9099                            .map(RewardClaimCalls::PAUSER_ROLE)
9100                    }
9101                    PAUSER_ROLE
9102                },
9103                {
9104                    fn espToken(
9105                        data: &[u8],
9106                        config: alloy_sol_types::abi::AbiDecoderConfig,
9107                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9108                        <espTokenCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9109                                data,
9110                                config,
9111                            )
9112                            .map(RewardClaimCalls::espToken)
9113                    }
9114                    espToken
9115                },
9116                {
9117                    fn initialize(
9118                        data: &[u8],
9119                        config: alloy_sol_types::abi::AbiDecoderConfig,
9120                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
9121                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
9122                                data,
9123                                config,
9124                            )
9125                            .map(RewardClaimCalls::initialize)
9126                    }
9127                    initialize
9128                },
9129            ];
9130            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
9131                return Err(
9132                    alloy_sol_types::Error::unknown_selector(
9133                        <Self as alloy_sol_types::SolInterface>::NAME,
9134                        selector,
9135                    ),
9136                );
9137            };
9138            DECODE_SHIMS[idx](data, config)
9139        }
9140        #[inline]
9141        #[allow(non_snake_case)]
9142        fn abi_decode_raw_validate(
9143            selector: [u8; 4],
9144            data: &[u8],
9145        ) -> alloy_sol_types::Result<Self> {
9146            Self::abi_decode_raw_with_config(
9147                selector,
9148                data,
9149                alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
9150            )
9151        }
9152        #[inline]
9153        fn abi_encoded_size(&self) -> usize {
9154            match self {
9155                Self::BPS_DENOMINATOR(inner) => {
9156                    <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_encoded_size(
9157                        inner,
9158                    )
9159                }
9160                Self::DEFAULT_ADMIN_ROLE(inner) => {
9161                    <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_encoded_size(
9162                        inner,
9163                    )
9164                }
9165                Self::MAX_DAILY_LIMIT_BASIS_POINTS(inner) => {
9166                    <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_encoded_size(
9167                        inner,
9168                    )
9169                }
9170                Self::PAUSER_ROLE(inner) => {
9171                    <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_encoded_size(
9172                        inner,
9173                    )
9174                }
9175                Self::UPGRADE_INTERFACE_VERSION(inner) => {
9176                    <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_encoded_size(
9177                        inner,
9178                    )
9179                }
9180                Self::claimRewards(inner) => {
9181                    <claimRewardsCall as alloy_sol_types::SolCall>::abi_encoded_size(
9182                        inner,
9183                    )
9184                }
9185                Self::claimedRewards(inner) => {
9186                    <claimedRewardsCall as alloy_sol_types::SolCall>::abi_encoded_size(
9187                        inner,
9188                    )
9189                }
9190                Self::currentAdmin(inner) => {
9191                    <currentAdminCall as alloy_sol_types::SolCall>::abi_encoded_size(
9192                        inner,
9193                    )
9194                }
9195                Self::dailyLimitWei(inner) => {
9196                    <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_encoded_size(
9197                        inner,
9198                    )
9199                }
9200                Self::espToken(inner) => {
9201                    <espTokenCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9202                }
9203                Self::getRoleAdmin(inner) => {
9204                    <getRoleAdminCall as alloy_sol_types::SolCall>::abi_encoded_size(
9205                        inner,
9206                    )
9207                }
9208                Self::getVersion(inner) => {
9209                    <getVersionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9210                }
9211                Self::grantRole(inner) => {
9212                    <grantRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9213                }
9214                Self::hasRole(inner) => {
9215                    <hasRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9216                }
9217                Self::initialize(inner) => {
9218                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9219                }
9220                Self::lastSetDailyLimitBasisPoints(inner) => {
9221                    <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_encoded_size(
9222                        inner,
9223                    )
9224                }
9225                Self::lightClient(inner) => {
9226                    <lightClientCall as alloy_sol_types::SolCall>::abi_encoded_size(
9227                        inner,
9228                    )
9229                }
9230                Self::pause(inner) => {
9231                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9232                }
9233                Self::paused(inner) => {
9234                    <pausedCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9235                }
9236                Self::proxiableUUID(inner) => {
9237                    <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_encoded_size(
9238                        inner,
9239                    )
9240                }
9241                Self::renounceRole(inner) => {
9242                    <renounceRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(
9243                        inner,
9244                    )
9245                }
9246                Self::revokeRole(inner) => {
9247                    <revokeRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9248                }
9249                Self::setDailyLimit(inner) => {
9250                    <setDailyLimitCall as alloy_sol_types::SolCall>::abi_encoded_size(
9251                        inner,
9252                    )
9253                }
9254                Self::supportsInterface(inner) => {
9255                    <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encoded_size(
9256                        inner,
9257                    )
9258                }
9259                Self::totalClaimed(inner) => {
9260                    <totalClaimedCall as alloy_sol_types::SolCall>::abi_encoded_size(
9261                        inner,
9262                    )
9263                }
9264                Self::unpause(inner) => {
9265                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
9266                }
9267                Self::upgradeToAndCall(inner) => {
9268                    <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_encoded_size(
9269                        inner,
9270                    )
9271                }
9272            }
9273        }
9274        #[inline]
9275        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
9276            match self {
9277                Self::BPS_DENOMINATOR(inner) => {
9278                    <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_encode_raw(
9279                        inner,
9280                        out,
9281                    )
9282                }
9283                Self::DEFAULT_ADMIN_ROLE(inner) => {
9284                    <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_encode_raw(
9285                        inner,
9286                        out,
9287                    )
9288                }
9289                Self::MAX_DAILY_LIMIT_BASIS_POINTS(inner) => {
9290                    <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_encode_raw(
9291                        inner,
9292                        out,
9293                    )
9294                }
9295                Self::PAUSER_ROLE(inner) => {
9296                    <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_encode_raw(
9297                        inner,
9298                        out,
9299                    )
9300                }
9301                Self::UPGRADE_INTERFACE_VERSION(inner) => {
9302                    <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_encode_raw(
9303                        inner,
9304                        out,
9305                    )
9306                }
9307                Self::claimRewards(inner) => {
9308                    <claimRewardsCall as alloy_sol_types::SolCall>::abi_encode_raw(
9309                        inner,
9310                        out,
9311                    )
9312                }
9313                Self::claimedRewards(inner) => {
9314                    <claimedRewardsCall as alloy_sol_types::SolCall>::abi_encode_raw(
9315                        inner,
9316                        out,
9317                    )
9318                }
9319                Self::currentAdmin(inner) => {
9320                    <currentAdminCall as alloy_sol_types::SolCall>::abi_encode_raw(
9321                        inner,
9322                        out,
9323                    )
9324                }
9325                Self::dailyLimitWei(inner) => {
9326                    <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_encode_raw(
9327                        inner,
9328                        out,
9329                    )
9330                }
9331                Self::espToken(inner) => {
9332                    <espTokenCall as alloy_sol_types::SolCall>::abi_encode_raw(
9333                        inner,
9334                        out,
9335                    )
9336                }
9337                Self::getRoleAdmin(inner) => {
9338                    <getRoleAdminCall as alloy_sol_types::SolCall>::abi_encode_raw(
9339                        inner,
9340                        out,
9341                    )
9342                }
9343                Self::getVersion(inner) => {
9344                    <getVersionCall as alloy_sol_types::SolCall>::abi_encode_raw(
9345                        inner,
9346                        out,
9347                    )
9348                }
9349                Self::grantRole(inner) => {
9350                    <grantRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(
9351                        inner,
9352                        out,
9353                    )
9354                }
9355                Self::hasRole(inner) => {
9356                    <hasRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9357                }
9358                Self::initialize(inner) => {
9359                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
9360                        inner,
9361                        out,
9362                    )
9363                }
9364                Self::lastSetDailyLimitBasisPoints(inner) => {
9365                    <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_encode_raw(
9366                        inner,
9367                        out,
9368                    )
9369                }
9370                Self::lightClient(inner) => {
9371                    <lightClientCall as alloy_sol_types::SolCall>::abi_encode_raw(
9372                        inner,
9373                        out,
9374                    )
9375                }
9376                Self::pause(inner) => {
9377                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9378                }
9379                Self::paused(inner) => {
9380                    <pausedCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9381                }
9382                Self::proxiableUUID(inner) => {
9383                    <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_encode_raw(
9384                        inner,
9385                        out,
9386                    )
9387                }
9388                Self::renounceRole(inner) => {
9389                    <renounceRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(
9390                        inner,
9391                        out,
9392                    )
9393                }
9394                Self::revokeRole(inner) => {
9395                    <revokeRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(
9396                        inner,
9397                        out,
9398                    )
9399                }
9400                Self::setDailyLimit(inner) => {
9401                    <setDailyLimitCall as alloy_sol_types::SolCall>::abi_encode_raw(
9402                        inner,
9403                        out,
9404                    )
9405                }
9406                Self::supportsInterface(inner) => {
9407                    <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encode_raw(
9408                        inner,
9409                        out,
9410                    )
9411                }
9412                Self::totalClaimed(inner) => {
9413                    <totalClaimedCall as alloy_sol_types::SolCall>::abi_encode_raw(
9414                        inner,
9415                        out,
9416                    )
9417                }
9418                Self::unpause(inner) => {
9419                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9420                }
9421                Self::upgradeToAndCall(inner) => {
9422                    <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_encode_raw(
9423                        inner,
9424                        out,
9425                    )
9426                }
9427            }
9428        }
9429    }
9430    ///Container for all the [`RewardClaim`](self) custom errors.
9431    #[derive(Clone)]
9432    #[derive(serde::Serialize, serde::Deserialize)]
9433    #[derive(Debug, PartialEq, Eq, Hash)]
9434    pub enum RewardClaimErrors {
9435        #[allow(missing_docs)]
9436        AccessControlBadConfirmation(AccessControlBadConfirmation),
9437        #[allow(missing_docs)]
9438        AccessControlUnauthorizedAccount(AccessControlUnauthorizedAccount),
9439        #[allow(missing_docs)]
9440        AddressEmptyCode(AddressEmptyCode),
9441        #[allow(missing_docs)]
9442        AlreadyClaimed(AlreadyClaimed),
9443        #[allow(missing_docs)]
9444        DailyLimitExceeded(DailyLimitExceeded),
9445        #[allow(missing_docs)]
9446        DailyLimitTooHigh(DailyLimitTooHigh),
9447        #[allow(missing_docs)]
9448        DefaultAdminCannotBeRenounced(DefaultAdminCannotBeRenounced),
9449        #[allow(missing_docs)]
9450        DefaultAdminCannotBeRevoked(DefaultAdminCannotBeRevoked),
9451        #[allow(missing_docs)]
9452        ERC1967InvalidImplementation(ERC1967InvalidImplementation),
9453        #[allow(missing_docs)]
9454        ERC1967NonPayable(ERC1967NonPayable),
9455        #[allow(missing_docs)]
9456        EnforcedPause(EnforcedPause),
9457        #[allow(missing_docs)]
9458        ExpectedPause(ExpectedPause),
9459        #[allow(missing_docs)]
9460        FailedInnerCall(FailedInnerCall),
9461        #[allow(missing_docs)]
9462        InvalidAuthRoot(InvalidAuthRoot),
9463        #[allow(missing_docs)]
9464        InvalidInitialization(InvalidInitialization),
9465        #[allow(missing_docs)]
9466        InvalidRewardAmount(InvalidRewardAmount),
9467        #[allow(missing_docs)]
9468        NoChangeRequired(NoChangeRequired),
9469        #[allow(missing_docs)]
9470        NotInitializing(NotInitializing),
9471        #[allow(missing_docs)]
9472        ReentrancyGuardReentrantCall(ReentrancyGuardReentrantCall),
9473        #[allow(missing_docs)]
9474        UUPSUnauthorizedCallContext(UUPSUnauthorizedCallContext),
9475        #[allow(missing_docs)]
9476        UUPSUnsupportedProxiableUUID(UUPSUnsupportedProxiableUUID),
9477        #[allow(missing_docs)]
9478        ZeroAdminAddress(ZeroAdminAddress),
9479        #[allow(missing_docs)]
9480        ZeroDailyLimit(ZeroDailyLimit),
9481        #[allow(missing_docs)]
9482        ZeroLightClientAddress(ZeroLightClientAddress),
9483        #[allow(missing_docs)]
9484        ZeroPauserAddress(ZeroPauserAddress),
9485        #[allow(missing_docs)]
9486        ZeroTokenAddress(ZeroTokenAddress),
9487        #[allow(missing_docs)]
9488        ZeroTotalSupply(ZeroTotalSupply),
9489    }
9490    impl RewardClaimErrors {
9491        /// All the selectors of this enum.
9492        ///
9493        /// Note that the selectors might not be in the same order as the variants.
9494        /// No guarantees are made about the order of the selectors.
9495        ///
9496        /// Prefer using `SolInterface` methods instead.
9497        pub const SELECTORS: &'static [[u8; 4usize]] = &[
9498            [20u8, 37u8, 234u8, 66u8],
9499            [25u8, 75u8, 211u8, 20u8],
9500            [50u8, 139u8, 136u8, 120u8],
9501            [56u8, 83u8, 152u8, 101u8],
9502            [62u8, 229u8, 174u8, 181u8],
9503            [62u8, 243u8, 155u8, 129u8],
9504            [72u8, 181u8, 0u8, 35u8],
9505            [76u8, 156u8, 140u8, 227u8],
9506            [100u8, 108u8, 245u8, 88u8],
9507            [102u8, 151u8, 178u8, 50u8],
9508            [107u8, 9u8, 58u8, 173u8],
9509            [139u8, 120u8, 99u8, 29u8],
9510            [141u8, 252u8, 32u8, 43u8],
9511            [153u8, 150u8, 179u8, 21u8],
9512            [155u8, 17u8, 168u8, 189u8],
9513            [167u8, 73u8, 149u8, 171u8],
9514            [168u8, 99u8, 174u8, 201u8],
9515            [170u8, 29u8, 73u8, 164u8],
9516            [176u8, 181u8, 251u8, 153u8],
9517            [179u8, 152u8, 151u8, 159u8],
9518            [197u8, 210u8, 174u8, 83u8],
9519            [215u8, 230u8, 188u8, 248u8],
9520            [217u8, 60u8, 6u8, 101u8],
9521            [224u8, 124u8, 141u8, 186u8],
9522            [226u8, 81u8, 125u8, 63u8],
9523            [249u8, 46u8, 232u8, 169u8],
9524            [252u8, 171u8, 221u8, 189u8],
9525        ];
9526        /// The names of the variants in the same order as `SELECTORS`.
9527        pub const VARIANT_NAMES: &'static [&'static str] = &[
9528            ::core::stringify!(FailedInnerCall),
9529            ::core::stringify!(DailyLimitExceeded),
9530            ::core::stringify!(InvalidAuthRoot),
9531            ::core::stringify!(InvalidRewardAmount),
9532            ::core::stringify!(ReentrancyGuardReentrantCall),
9533            ::core::stringify!(ZeroAdminAddress),
9534            ::core::stringify!(ZeroTotalSupply),
9535            ::core::stringify!(ERC1967InvalidImplementation),
9536            ::core::stringify!(AlreadyClaimed),
9537            ::core::stringify!(AccessControlBadConfirmation),
9538            ::core::stringify!(ZeroTokenAddress),
9539            ::core::stringify!(DefaultAdminCannotBeRenounced),
9540            ::core::stringify!(ExpectedPause),
9541            ::core::stringify!(AddressEmptyCode),
9542            ::core::stringify!(ZeroDailyLimit),
9543            ::core::stringify!(ZeroPauserAddress),
9544            ::core::stringify!(NoChangeRequired),
9545            ::core::stringify!(UUPSUnsupportedProxiableUUID),
9546            ::core::stringify!(DefaultAdminCannotBeRevoked),
9547            ::core::stringify!(ERC1967NonPayable),
9548            ::core::stringify!(DailyLimitTooHigh),
9549            ::core::stringify!(NotInitializing),
9550            ::core::stringify!(EnforcedPause),
9551            ::core::stringify!(UUPSUnauthorizedCallContext),
9552            ::core::stringify!(AccessControlUnauthorizedAccount),
9553            ::core::stringify!(InvalidInitialization),
9554            ::core::stringify!(ZeroLightClientAddress),
9555        ];
9556        /// The signatures in the same order as `SELECTORS`.
9557        pub const SIGNATURES: &'static [&'static str] = &[
9558            <FailedInnerCall as alloy_sol_types::SolError>::SIGNATURE,
9559            <DailyLimitExceeded as alloy_sol_types::SolError>::SIGNATURE,
9560            <InvalidAuthRoot as alloy_sol_types::SolError>::SIGNATURE,
9561            <InvalidRewardAmount as alloy_sol_types::SolError>::SIGNATURE,
9562            <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::SIGNATURE,
9563            <ZeroAdminAddress as alloy_sol_types::SolError>::SIGNATURE,
9564            <ZeroTotalSupply as alloy_sol_types::SolError>::SIGNATURE,
9565            <ERC1967InvalidImplementation as alloy_sol_types::SolError>::SIGNATURE,
9566            <AlreadyClaimed as alloy_sol_types::SolError>::SIGNATURE,
9567            <AccessControlBadConfirmation as alloy_sol_types::SolError>::SIGNATURE,
9568            <ZeroTokenAddress as alloy_sol_types::SolError>::SIGNATURE,
9569            <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::SIGNATURE,
9570            <ExpectedPause as alloy_sol_types::SolError>::SIGNATURE,
9571            <AddressEmptyCode as alloy_sol_types::SolError>::SIGNATURE,
9572            <ZeroDailyLimit as alloy_sol_types::SolError>::SIGNATURE,
9573            <ZeroPauserAddress as alloy_sol_types::SolError>::SIGNATURE,
9574            <NoChangeRequired as alloy_sol_types::SolError>::SIGNATURE,
9575            <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::SIGNATURE,
9576            <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::SIGNATURE,
9577            <ERC1967NonPayable as alloy_sol_types::SolError>::SIGNATURE,
9578            <DailyLimitTooHigh as alloy_sol_types::SolError>::SIGNATURE,
9579            <NotInitializing as alloy_sol_types::SolError>::SIGNATURE,
9580            <EnforcedPause as alloy_sol_types::SolError>::SIGNATURE,
9581            <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::SIGNATURE,
9582            <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::SIGNATURE,
9583            <InvalidInitialization as alloy_sol_types::SolError>::SIGNATURE,
9584            <ZeroLightClientAddress as alloy_sol_types::SolError>::SIGNATURE,
9585        ];
9586        /// Returns the signature for the given selector, if known.
9587        #[inline]
9588        pub fn signature_by_selector(
9589            selector: [u8; 4usize],
9590        ) -> ::core::option::Option<&'static str> {
9591            match Self::SELECTORS.binary_search(&selector) {
9592                ::core::result::Result::Ok(idx) => {
9593                    ::core::option::Option::Some(Self::SIGNATURES[idx])
9594                }
9595                ::core::result::Result::Err(_) => ::core::option::Option::None,
9596            }
9597        }
9598        /// Returns the enum variant name for the given selector, if known.
9599        #[inline]
9600        pub fn name_by_selector(
9601            selector: [u8; 4usize],
9602        ) -> ::core::option::Option<&'static str> {
9603            let sig = Self::signature_by_selector(selector)?;
9604            sig.split_once('(').map(|(name, _)| name)
9605        }
9606    }
9607    #[automatically_derived]
9608    impl alloy_sol_types::SolInterface for RewardClaimErrors {
9609        const NAME: &'static str = "RewardClaimErrors";
9610        const MIN_DATA_LENGTH: usize = 0usize;
9611        const COUNT: usize = 27usize;
9612        #[inline]
9613        fn selector(&self) -> [u8; 4] {
9614            match self {
9615                Self::AccessControlBadConfirmation(_) => {
9616                    <AccessControlBadConfirmation as alloy_sol_types::SolError>::SELECTOR
9617                }
9618                Self::AccessControlUnauthorizedAccount(_) => {
9619                    <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::SELECTOR
9620                }
9621                Self::AddressEmptyCode(_) => {
9622                    <AddressEmptyCode as alloy_sol_types::SolError>::SELECTOR
9623                }
9624                Self::AlreadyClaimed(_) => {
9625                    <AlreadyClaimed as alloy_sol_types::SolError>::SELECTOR
9626                }
9627                Self::DailyLimitExceeded(_) => {
9628                    <DailyLimitExceeded as alloy_sol_types::SolError>::SELECTOR
9629                }
9630                Self::DailyLimitTooHigh(_) => {
9631                    <DailyLimitTooHigh as alloy_sol_types::SolError>::SELECTOR
9632                }
9633                Self::DefaultAdminCannotBeRenounced(_) => {
9634                    <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::SELECTOR
9635                }
9636                Self::DefaultAdminCannotBeRevoked(_) => {
9637                    <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::SELECTOR
9638                }
9639                Self::ERC1967InvalidImplementation(_) => {
9640                    <ERC1967InvalidImplementation as alloy_sol_types::SolError>::SELECTOR
9641                }
9642                Self::ERC1967NonPayable(_) => {
9643                    <ERC1967NonPayable as alloy_sol_types::SolError>::SELECTOR
9644                }
9645                Self::EnforcedPause(_) => {
9646                    <EnforcedPause as alloy_sol_types::SolError>::SELECTOR
9647                }
9648                Self::ExpectedPause(_) => {
9649                    <ExpectedPause as alloy_sol_types::SolError>::SELECTOR
9650                }
9651                Self::FailedInnerCall(_) => {
9652                    <FailedInnerCall as alloy_sol_types::SolError>::SELECTOR
9653                }
9654                Self::InvalidAuthRoot(_) => {
9655                    <InvalidAuthRoot as alloy_sol_types::SolError>::SELECTOR
9656                }
9657                Self::InvalidInitialization(_) => {
9658                    <InvalidInitialization as alloy_sol_types::SolError>::SELECTOR
9659                }
9660                Self::InvalidRewardAmount(_) => {
9661                    <InvalidRewardAmount as alloy_sol_types::SolError>::SELECTOR
9662                }
9663                Self::NoChangeRequired(_) => {
9664                    <NoChangeRequired as alloy_sol_types::SolError>::SELECTOR
9665                }
9666                Self::NotInitializing(_) => {
9667                    <NotInitializing as alloy_sol_types::SolError>::SELECTOR
9668                }
9669                Self::ReentrancyGuardReentrantCall(_) => {
9670                    <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::SELECTOR
9671                }
9672                Self::UUPSUnauthorizedCallContext(_) => {
9673                    <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::SELECTOR
9674                }
9675                Self::UUPSUnsupportedProxiableUUID(_) => {
9676                    <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::SELECTOR
9677                }
9678                Self::ZeroAdminAddress(_) => {
9679                    <ZeroAdminAddress as alloy_sol_types::SolError>::SELECTOR
9680                }
9681                Self::ZeroDailyLimit(_) => {
9682                    <ZeroDailyLimit as alloy_sol_types::SolError>::SELECTOR
9683                }
9684                Self::ZeroLightClientAddress(_) => {
9685                    <ZeroLightClientAddress as alloy_sol_types::SolError>::SELECTOR
9686                }
9687                Self::ZeroPauserAddress(_) => {
9688                    <ZeroPauserAddress as alloy_sol_types::SolError>::SELECTOR
9689                }
9690                Self::ZeroTokenAddress(_) => {
9691                    <ZeroTokenAddress as alloy_sol_types::SolError>::SELECTOR
9692                }
9693                Self::ZeroTotalSupply(_) => {
9694                    <ZeroTotalSupply as alloy_sol_types::SolError>::SELECTOR
9695                }
9696            }
9697        }
9698        #[inline]
9699        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
9700            Self::SELECTORS.get(i).copied()
9701        }
9702        #[inline]
9703        fn valid_selector(selector: [u8; 4]) -> bool {
9704            Self::SELECTORS.binary_search(&selector).is_ok()
9705        }
9706        #[inline]
9707        #[allow(non_snake_case)]
9708        fn abi_decode_raw(
9709            selector: [u8; 4],
9710            data: &[u8],
9711        ) -> alloy_sol_types::Result<Self> {
9712            Self::abi_decode_raw_with_config(
9713                selector,
9714                data,
9715                alloy_sol_types::abi::AbiDecoderConfig::default(),
9716            )
9717        }
9718        #[inline]
9719        #[allow(non_snake_case)]
9720        fn abi_decode_raw_with_config(
9721            selector: [u8; 4],
9722            data: &[u8],
9723            config: alloy_sol_types::abi::AbiDecoderConfig,
9724        ) -> alloy_sol_types::Result<Self> {
9725            static DECODE_SHIMS: &[fn(
9726                &[u8],
9727                alloy_sol_types::abi::AbiDecoderConfig,
9728            ) -> alloy_sol_types::Result<RewardClaimErrors>] = &[
9729                {
9730                    fn FailedInnerCall(
9731                        data: &[u8],
9732                        config: alloy_sol_types::abi::AbiDecoderConfig,
9733                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9734                        <FailedInnerCall as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9735                                data,
9736                                config,
9737                            )
9738                            .map(RewardClaimErrors::FailedInnerCall)
9739                    }
9740                    FailedInnerCall
9741                },
9742                {
9743                    fn DailyLimitExceeded(
9744                        data: &[u8],
9745                        config: alloy_sol_types::abi::AbiDecoderConfig,
9746                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9747                        <DailyLimitExceeded as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9748                                data,
9749                                config,
9750                            )
9751                            .map(RewardClaimErrors::DailyLimitExceeded)
9752                    }
9753                    DailyLimitExceeded
9754                },
9755                {
9756                    fn InvalidAuthRoot(
9757                        data: &[u8],
9758                        config: alloy_sol_types::abi::AbiDecoderConfig,
9759                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9760                        <InvalidAuthRoot as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9761                                data,
9762                                config,
9763                            )
9764                            .map(RewardClaimErrors::InvalidAuthRoot)
9765                    }
9766                    InvalidAuthRoot
9767                },
9768                {
9769                    fn InvalidRewardAmount(
9770                        data: &[u8],
9771                        config: alloy_sol_types::abi::AbiDecoderConfig,
9772                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9773                        <InvalidRewardAmount as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9774                                data,
9775                                config,
9776                            )
9777                            .map(RewardClaimErrors::InvalidRewardAmount)
9778                    }
9779                    InvalidRewardAmount
9780                },
9781                {
9782                    fn ReentrancyGuardReentrantCall(
9783                        data: &[u8],
9784                        config: alloy_sol_types::abi::AbiDecoderConfig,
9785                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9786                        <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9787                                data,
9788                                config,
9789                            )
9790                            .map(RewardClaimErrors::ReentrancyGuardReentrantCall)
9791                    }
9792                    ReentrancyGuardReentrantCall
9793                },
9794                {
9795                    fn ZeroAdminAddress(
9796                        data: &[u8],
9797                        config: alloy_sol_types::abi::AbiDecoderConfig,
9798                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9799                        <ZeroAdminAddress as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9800                                data,
9801                                config,
9802                            )
9803                            .map(RewardClaimErrors::ZeroAdminAddress)
9804                    }
9805                    ZeroAdminAddress
9806                },
9807                {
9808                    fn ZeroTotalSupply(
9809                        data: &[u8],
9810                        config: alloy_sol_types::abi::AbiDecoderConfig,
9811                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9812                        <ZeroTotalSupply as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9813                                data,
9814                                config,
9815                            )
9816                            .map(RewardClaimErrors::ZeroTotalSupply)
9817                    }
9818                    ZeroTotalSupply
9819                },
9820                {
9821                    fn ERC1967InvalidImplementation(
9822                        data: &[u8],
9823                        config: alloy_sol_types::abi::AbiDecoderConfig,
9824                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9825                        <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9826                                data,
9827                                config,
9828                            )
9829                            .map(RewardClaimErrors::ERC1967InvalidImplementation)
9830                    }
9831                    ERC1967InvalidImplementation
9832                },
9833                {
9834                    fn AlreadyClaimed(
9835                        data: &[u8],
9836                        config: alloy_sol_types::abi::AbiDecoderConfig,
9837                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9838                        <AlreadyClaimed as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9839                                data,
9840                                config,
9841                            )
9842                            .map(RewardClaimErrors::AlreadyClaimed)
9843                    }
9844                    AlreadyClaimed
9845                },
9846                {
9847                    fn AccessControlBadConfirmation(
9848                        data: &[u8],
9849                        config: alloy_sol_types::abi::AbiDecoderConfig,
9850                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9851                        <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9852                                data,
9853                                config,
9854                            )
9855                            .map(RewardClaimErrors::AccessControlBadConfirmation)
9856                    }
9857                    AccessControlBadConfirmation
9858                },
9859                {
9860                    fn ZeroTokenAddress(
9861                        data: &[u8],
9862                        config: alloy_sol_types::abi::AbiDecoderConfig,
9863                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9864                        <ZeroTokenAddress as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9865                                data,
9866                                config,
9867                            )
9868                            .map(RewardClaimErrors::ZeroTokenAddress)
9869                    }
9870                    ZeroTokenAddress
9871                },
9872                {
9873                    fn DefaultAdminCannotBeRenounced(
9874                        data: &[u8],
9875                        config: alloy_sol_types::abi::AbiDecoderConfig,
9876                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9877                        <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9878                                data,
9879                                config,
9880                            )
9881                            .map(RewardClaimErrors::DefaultAdminCannotBeRenounced)
9882                    }
9883                    DefaultAdminCannotBeRenounced
9884                },
9885                {
9886                    fn ExpectedPause(
9887                        data: &[u8],
9888                        config: alloy_sol_types::abi::AbiDecoderConfig,
9889                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9890                        <ExpectedPause as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9891                                data,
9892                                config,
9893                            )
9894                            .map(RewardClaimErrors::ExpectedPause)
9895                    }
9896                    ExpectedPause
9897                },
9898                {
9899                    fn AddressEmptyCode(
9900                        data: &[u8],
9901                        config: alloy_sol_types::abi::AbiDecoderConfig,
9902                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9903                        <AddressEmptyCode as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9904                                data,
9905                                config,
9906                            )
9907                            .map(RewardClaimErrors::AddressEmptyCode)
9908                    }
9909                    AddressEmptyCode
9910                },
9911                {
9912                    fn ZeroDailyLimit(
9913                        data: &[u8],
9914                        config: alloy_sol_types::abi::AbiDecoderConfig,
9915                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9916                        <ZeroDailyLimit as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9917                                data,
9918                                config,
9919                            )
9920                            .map(RewardClaimErrors::ZeroDailyLimit)
9921                    }
9922                    ZeroDailyLimit
9923                },
9924                {
9925                    fn ZeroPauserAddress(
9926                        data: &[u8],
9927                        config: alloy_sol_types::abi::AbiDecoderConfig,
9928                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9929                        <ZeroPauserAddress as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9930                                data,
9931                                config,
9932                            )
9933                            .map(RewardClaimErrors::ZeroPauserAddress)
9934                    }
9935                    ZeroPauserAddress
9936                },
9937                {
9938                    fn NoChangeRequired(
9939                        data: &[u8],
9940                        config: alloy_sol_types::abi::AbiDecoderConfig,
9941                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9942                        <NoChangeRequired as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9943                                data,
9944                                config,
9945                            )
9946                            .map(RewardClaimErrors::NoChangeRequired)
9947                    }
9948                    NoChangeRequired
9949                },
9950                {
9951                    fn UUPSUnsupportedProxiableUUID(
9952                        data: &[u8],
9953                        config: alloy_sol_types::abi::AbiDecoderConfig,
9954                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9955                        <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9956                                data,
9957                                config,
9958                            )
9959                            .map(RewardClaimErrors::UUPSUnsupportedProxiableUUID)
9960                    }
9961                    UUPSUnsupportedProxiableUUID
9962                },
9963                {
9964                    fn DefaultAdminCannotBeRevoked(
9965                        data: &[u8],
9966                        config: alloy_sol_types::abi::AbiDecoderConfig,
9967                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9968                        <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9969                                data,
9970                                config,
9971                            )
9972                            .map(RewardClaimErrors::DefaultAdminCannotBeRevoked)
9973                    }
9974                    DefaultAdminCannotBeRevoked
9975                },
9976                {
9977                    fn ERC1967NonPayable(
9978                        data: &[u8],
9979                        config: alloy_sol_types::abi::AbiDecoderConfig,
9980                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9981                        <ERC1967NonPayable as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9982                                data,
9983                                config,
9984                            )
9985                            .map(RewardClaimErrors::ERC1967NonPayable)
9986                    }
9987                    ERC1967NonPayable
9988                },
9989                {
9990                    fn DailyLimitTooHigh(
9991                        data: &[u8],
9992                        config: alloy_sol_types::abi::AbiDecoderConfig,
9993                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9994                        <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_decode_raw_with_config(
9995                                data,
9996                                config,
9997                            )
9998                            .map(RewardClaimErrors::DailyLimitTooHigh)
9999                    }
10000                    DailyLimitTooHigh
10001                },
10002                {
10003                    fn NotInitializing(
10004                        data: &[u8],
10005                        config: alloy_sol_types::abi::AbiDecoderConfig,
10006                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
10007                        <NotInitializing as alloy_sol_types::SolError>::abi_decode_raw_with_config(
10008                                data,
10009                                config,
10010                            )
10011                            .map(RewardClaimErrors::NotInitializing)
10012                    }
10013                    NotInitializing
10014                },
10015                {
10016                    fn EnforcedPause(
10017                        data: &[u8],
10018                        config: alloy_sol_types::abi::AbiDecoderConfig,
10019                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
10020                        <EnforcedPause as alloy_sol_types::SolError>::abi_decode_raw_with_config(
10021                                data,
10022                                config,
10023                            )
10024                            .map(RewardClaimErrors::EnforcedPause)
10025                    }
10026                    EnforcedPause
10027                },
10028                {
10029                    fn UUPSUnauthorizedCallContext(
10030                        data: &[u8],
10031                        config: alloy_sol_types::abi::AbiDecoderConfig,
10032                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
10033                        <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_decode_raw_with_config(
10034                                data,
10035                                config,
10036                            )
10037                            .map(RewardClaimErrors::UUPSUnauthorizedCallContext)
10038                    }
10039                    UUPSUnauthorizedCallContext
10040                },
10041                {
10042                    fn AccessControlUnauthorizedAccount(
10043                        data: &[u8],
10044                        config: alloy_sol_types::abi::AbiDecoderConfig,
10045                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
10046                        <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_decode_raw_with_config(
10047                                data,
10048                                config,
10049                            )
10050                            .map(RewardClaimErrors::AccessControlUnauthorizedAccount)
10051                    }
10052                    AccessControlUnauthorizedAccount
10053                },
10054                {
10055                    fn InvalidInitialization(
10056                        data: &[u8],
10057                        config: alloy_sol_types::abi::AbiDecoderConfig,
10058                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
10059                        <InvalidInitialization as alloy_sol_types::SolError>::abi_decode_raw_with_config(
10060                                data,
10061                                config,
10062                            )
10063                            .map(RewardClaimErrors::InvalidInitialization)
10064                    }
10065                    InvalidInitialization
10066                },
10067                {
10068                    fn ZeroLightClientAddress(
10069                        data: &[u8],
10070                        config: alloy_sol_types::abi::AbiDecoderConfig,
10071                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
10072                        <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_decode_raw_with_config(
10073                                data,
10074                                config,
10075                            )
10076                            .map(RewardClaimErrors::ZeroLightClientAddress)
10077                    }
10078                    ZeroLightClientAddress
10079                },
10080            ];
10081            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
10082                return Err(
10083                    alloy_sol_types::Error::unknown_selector(
10084                        <Self as alloy_sol_types::SolInterface>::NAME,
10085                        selector,
10086                    ),
10087                );
10088            };
10089            DECODE_SHIMS[idx](data, config)
10090        }
10091        #[inline]
10092        #[allow(non_snake_case)]
10093        fn abi_decode_raw_validate(
10094            selector: [u8; 4],
10095            data: &[u8],
10096        ) -> alloy_sol_types::Result<Self> {
10097            Self::abi_decode_raw_with_config(
10098                selector,
10099                data,
10100                alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
10101            )
10102        }
10103        #[inline]
10104        fn abi_encoded_size(&self) -> usize {
10105            match self {
10106                Self::AccessControlBadConfirmation(inner) => {
10107                    <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_encoded_size(
10108                        inner,
10109                    )
10110                }
10111                Self::AccessControlUnauthorizedAccount(inner) => {
10112                    <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_encoded_size(
10113                        inner,
10114                    )
10115                }
10116                Self::AddressEmptyCode(inner) => {
10117                    <AddressEmptyCode as alloy_sol_types::SolError>::abi_encoded_size(
10118                        inner,
10119                    )
10120                }
10121                Self::AlreadyClaimed(inner) => {
10122                    <AlreadyClaimed as alloy_sol_types::SolError>::abi_encoded_size(
10123                        inner,
10124                    )
10125                }
10126                Self::DailyLimitExceeded(inner) => {
10127                    <DailyLimitExceeded as alloy_sol_types::SolError>::abi_encoded_size(
10128                        inner,
10129                    )
10130                }
10131                Self::DailyLimitTooHigh(inner) => {
10132                    <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_encoded_size(
10133                        inner,
10134                    )
10135                }
10136                Self::DefaultAdminCannotBeRenounced(inner) => {
10137                    <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_encoded_size(
10138                        inner,
10139                    )
10140                }
10141                Self::DefaultAdminCannotBeRevoked(inner) => {
10142                    <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_encoded_size(
10143                        inner,
10144                    )
10145                }
10146                Self::ERC1967InvalidImplementation(inner) => {
10147                    <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_encoded_size(
10148                        inner,
10149                    )
10150                }
10151                Self::ERC1967NonPayable(inner) => {
10152                    <ERC1967NonPayable as alloy_sol_types::SolError>::abi_encoded_size(
10153                        inner,
10154                    )
10155                }
10156                Self::EnforcedPause(inner) => {
10157                    <EnforcedPause as alloy_sol_types::SolError>::abi_encoded_size(inner)
10158                }
10159                Self::ExpectedPause(inner) => {
10160                    <ExpectedPause as alloy_sol_types::SolError>::abi_encoded_size(inner)
10161                }
10162                Self::FailedInnerCall(inner) => {
10163                    <FailedInnerCall as alloy_sol_types::SolError>::abi_encoded_size(
10164                        inner,
10165                    )
10166                }
10167                Self::InvalidAuthRoot(inner) => {
10168                    <InvalidAuthRoot as alloy_sol_types::SolError>::abi_encoded_size(
10169                        inner,
10170                    )
10171                }
10172                Self::InvalidInitialization(inner) => {
10173                    <InvalidInitialization as alloy_sol_types::SolError>::abi_encoded_size(
10174                        inner,
10175                    )
10176                }
10177                Self::InvalidRewardAmount(inner) => {
10178                    <InvalidRewardAmount as alloy_sol_types::SolError>::abi_encoded_size(
10179                        inner,
10180                    )
10181                }
10182                Self::NoChangeRequired(inner) => {
10183                    <NoChangeRequired as alloy_sol_types::SolError>::abi_encoded_size(
10184                        inner,
10185                    )
10186                }
10187                Self::NotInitializing(inner) => {
10188                    <NotInitializing as alloy_sol_types::SolError>::abi_encoded_size(
10189                        inner,
10190                    )
10191                }
10192                Self::ReentrancyGuardReentrantCall(inner) => {
10193                    <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_encoded_size(
10194                        inner,
10195                    )
10196                }
10197                Self::UUPSUnauthorizedCallContext(inner) => {
10198                    <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_encoded_size(
10199                        inner,
10200                    )
10201                }
10202                Self::UUPSUnsupportedProxiableUUID(inner) => {
10203                    <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_encoded_size(
10204                        inner,
10205                    )
10206                }
10207                Self::ZeroAdminAddress(inner) => {
10208                    <ZeroAdminAddress as alloy_sol_types::SolError>::abi_encoded_size(
10209                        inner,
10210                    )
10211                }
10212                Self::ZeroDailyLimit(inner) => {
10213                    <ZeroDailyLimit as alloy_sol_types::SolError>::abi_encoded_size(
10214                        inner,
10215                    )
10216                }
10217                Self::ZeroLightClientAddress(inner) => {
10218                    <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_encoded_size(
10219                        inner,
10220                    )
10221                }
10222                Self::ZeroPauserAddress(inner) => {
10223                    <ZeroPauserAddress as alloy_sol_types::SolError>::abi_encoded_size(
10224                        inner,
10225                    )
10226                }
10227                Self::ZeroTokenAddress(inner) => {
10228                    <ZeroTokenAddress as alloy_sol_types::SolError>::abi_encoded_size(
10229                        inner,
10230                    )
10231                }
10232                Self::ZeroTotalSupply(inner) => {
10233                    <ZeroTotalSupply as alloy_sol_types::SolError>::abi_encoded_size(
10234                        inner,
10235                    )
10236                }
10237            }
10238        }
10239        #[inline]
10240        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
10241            match self {
10242                Self::AccessControlBadConfirmation(inner) => {
10243                    <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_encode_raw(
10244                        inner,
10245                        out,
10246                    )
10247                }
10248                Self::AccessControlUnauthorizedAccount(inner) => {
10249                    <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_encode_raw(
10250                        inner,
10251                        out,
10252                    )
10253                }
10254                Self::AddressEmptyCode(inner) => {
10255                    <AddressEmptyCode as alloy_sol_types::SolError>::abi_encode_raw(
10256                        inner,
10257                        out,
10258                    )
10259                }
10260                Self::AlreadyClaimed(inner) => {
10261                    <AlreadyClaimed as alloy_sol_types::SolError>::abi_encode_raw(
10262                        inner,
10263                        out,
10264                    )
10265                }
10266                Self::DailyLimitExceeded(inner) => {
10267                    <DailyLimitExceeded as alloy_sol_types::SolError>::abi_encode_raw(
10268                        inner,
10269                        out,
10270                    )
10271                }
10272                Self::DailyLimitTooHigh(inner) => {
10273                    <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_encode_raw(
10274                        inner,
10275                        out,
10276                    )
10277                }
10278                Self::DefaultAdminCannotBeRenounced(inner) => {
10279                    <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_encode_raw(
10280                        inner,
10281                        out,
10282                    )
10283                }
10284                Self::DefaultAdminCannotBeRevoked(inner) => {
10285                    <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_encode_raw(
10286                        inner,
10287                        out,
10288                    )
10289                }
10290                Self::ERC1967InvalidImplementation(inner) => {
10291                    <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_encode_raw(
10292                        inner,
10293                        out,
10294                    )
10295                }
10296                Self::ERC1967NonPayable(inner) => {
10297                    <ERC1967NonPayable as alloy_sol_types::SolError>::abi_encode_raw(
10298                        inner,
10299                        out,
10300                    )
10301                }
10302                Self::EnforcedPause(inner) => {
10303                    <EnforcedPause as alloy_sol_types::SolError>::abi_encode_raw(
10304                        inner,
10305                        out,
10306                    )
10307                }
10308                Self::ExpectedPause(inner) => {
10309                    <ExpectedPause as alloy_sol_types::SolError>::abi_encode_raw(
10310                        inner,
10311                        out,
10312                    )
10313                }
10314                Self::FailedInnerCall(inner) => {
10315                    <FailedInnerCall as alloy_sol_types::SolError>::abi_encode_raw(
10316                        inner,
10317                        out,
10318                    )
10319                }
10320                Self::InvalidAuthRoot(inner) => {
10321                    <InvalidAuthRoot as alloy_sol_types::SolError>::abi_encode_raw(
10322                        inner,
10323                        out,
10324                    )
10325                }
10326                Self::InvalidInitialization(inner) => {
10327                    <InvalidInitialization as alloy_sol_types::SolError>::abi_encode_raw(
10328                        inner,
10329                        out,
10330                    )
10331                }
10332                Self::InvalidRewardAmount(inner) => {
10333                    <InvalidRewardAmount as alloy_sol_types::SolError>::abi_encode_raw(
10334                        inner,
10335                        out,
10336                    )
10337                }
10338                Self::NoChangeRequired(inner) => {
10339                    <NoChangeRequired as alloy_sol_types::SolError>::abi_encode_raw(
10340                        inner,
10341                        out,
10342                    )
10343                }
10344                Self::NotInitializing(inner) => {
10345                    <NotInitializing as alloy_sol_types::SolError>::abi_encode_raw(
10346                        inner,
10347                        out,
10348                    )
10349                }
10350                Self::ReentrancyGuardReentrantCall(inner) => {
10351                    <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_encode_raw(
10352                        inner,
10353                        out,
10354                    )
10355                }
10356                Self::UUPSUnauthorizedCallContext(inner) => {
10357                    <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_encode_raw(
10358                        inner,
10359                        out,
10360                    )
10361                }
10362                Self::UUPSUnsupportedProxiableUUID(inner) => {
10363                    <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_encode_raw(
10364                        inner,
10365                        out,
10366                    )
10367                }
10368                Self::ZeroAdminAddress(inner) => {
10369                    <ZeroAdminAddress as alloy_sol_types::SolError>::abi_encode_raw(
10370                        inner,
10371                        out,
10372                    )
10373                }
10374                Self::ZeroDailyLimit(inner) => {
10375                    <ZeroDailyLimit as alloy_sol_types::SolError>::abi_encode_raw(
10376                        inner,
10377                        out,
10378                    )
10379                }
10380                Self::ZeroLightClientAddress(inner) => {
10381                    <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_encode_raw(
10382                        inner,
10383                        out,
10384                    )
10385                }
10386                Self::ZeroPauserAddress(inner) => {
10387                    <ZeroPauserAddress as alloy_sol_types::SolError>::abi_encode_raw(
10388                        inner,
10389                        out,
10390                    )
10391                }
10392                Self::ZeroTokenAddress(inner) => {
10393                    <ZeroTokenAddress as alloy_sol_types::SolError>::abi_encode_raw(
10394                        inner,
10395                        out,
10396                    )
10397                }
10398                Self::ZeroTotalSupply(inner) => {
10399                    <ZeroTotalSupply as alloy_sol_types::SolError>::abi_encode_raw(
10400                        inner,
10401                        out,
10402                    )
10403                }
10404            }
10405        }
10406    }
10407    #[automatically_derived]
10408    impl RewardClaimErrors {
10409        /**Creates a [`AccessControlBadConfirmation`] error.
10410
10411```solidity
10412error AccessControlBadConfirmation()
10413```*/
10414        #[inline]
10415        pub fn access_control_bad_confirmation() -> Self {
10416            Self::AccessControlBadConfirmation(AccessControlBadConfirmation)
10417        }
10418        /**Creates a [`AccessControlUnauthorizedAccount`] error.
10419
10420```solidity
10421error AccessControlUnauthorizedAccount(address,bytes32)
10422```*/
10423        #[inline]
10424        pub fn access_control_unauthorized_account(
10425            account: alloy::sol_types::private::Address,
10426            needed_role: alloy::sol_types::private::FixedBytes<32>,
10427        ) -> Self {
10428            Self::AccessControlUnauthorizedAccount(AccessControlUnauthorizedAccount {
10429                account: account,
10430                neededRole: needed_role,
10431            })
10432        }
10433        /**Creates a [`AddressEmptyCode`] error.
10434
10435```solidity
10436error AddressEmptyCode(address)
10437```*/
10438        #[inline]
10439        pub fn address_empty_code(target: alloy::sol_types::private::Address) -> Self {
10440            Self::AddressEmptyCode(AddressEmptyCode { target: target })
10441        }
10442        /**Creates a [`AlreadyClaimed`] error.
10443
10444```solidity
10445error AlreadyClaimed()
10446```*/
10447        #[inline]
10448        pub fn already_claimed() -> Self {
10449            Self::AlreadyClaimed(AlreadyClaimed)
10450        }
10451        /**Creates a [`DailyLimitExceeded`] error.
10452
10453```solidity
10454error DailyLimitExceeded()
10455```*/
10456        #[inline]
10457        pub fn daily_limit_exceeded() -> Self {
10458            Self::DailyLimitExceeded(DailyLimitExceeded)
10459        }
10460        /**Creates a [`DailyLimitTooHigh`] error.
10461
10462```solidity
10463error DailyLimitTooHigh()
10464```*/
10465        #[inline]
10466        pub fn daily_limit_too_high() -> Self {
10467            Self::DailyLimitTooHigh(DailyLimitTooHigh)
10468        }
10469        /**Creates a [`DefaultAdminCannotBeRenounced`] error.
10470
10471```solidity
10472error DefaultAdminCannotBeRenounced()
10473```*/
10474        #[inline]
10475        pub fn default_admin_cannot_be_renounced() -> Self {
10476            Self::DefaultAdminCannotBeRenounced(DefaultAdminCannotBeRenounced)
10477        }
10478        /**Creates a [`DefaultAdminCannotBeRevoked`] error.
10479
10480```solidity
10481error DefaultAdminCannotBeRevoked()
10482```*/
10483        #[inline]
10484        pub fn default_admin_cannot_be_revoked() -> Self {
10485            Self::DefaultAdminCannotBeRevoked(DefaultAdminCannotBeRevoked)
10486        }
10487        /**Creates a [`ERC1967InvalidImplementation`] error.
10488
10489```solidity
10490error ERC1967InvalidImplementation(address)
10491```*/
10492        #[inline]
10493        pub fn erc_1967_invalid_implementation(
10494            implementation: alloy::sol_types::private::Address,
10495        ) -> Self {
10496            Self::ERC1967InvalidImplementation(ERC1967InvalidImplementation {
10497                implementation: implementation,
10498            })
10499        }
10500        /**Creates a [`ERC1967NonPayable`] error.
10501
10502```solidity
10503error ERC1967NonPayable()
10504```*/
10505        #[inline]
10506        pub fn erc_1967_non_payable() -> Self {
10507            Self::ERC1967NonPayable(ERC1967NonPayable)
10508        }
10509        /**Creates a [`EnforcedPause`] error.
10510
10511```solidity
10512error EnforcedPause()
10513```*/
10514        #[inline]
10515        pub fn enforced_pause() -> Self {
10516            Self::EnforcedPause(EnforcedPause)
10517        }
10518        /**Creates a [`ExpectedPause`] error.
10519
10520```solidity
10521error ExpectedPause()
10522```*/
10523        #[inline]
10524        pub fn expected_pause() -> Self {
10525            Self::ExpectedPause(ExpectedPause)
10526        }
10527        /**Creates a [`FailedInnerCall`] error.
10528
10529```solidity
10530error FailedInnerCall()
10531```*/
10532        #[inline]
10533        pub fn failed_inner_call() -> Self {
10534            Self::FailedInnerCall(FailedInnerCall)
10535        }
10536        /**Creates a [`InvalidAuthRoot`] error.
10537
10538```solidity
10539error InvalidAuthRoot()
10540```*/
10541        #[inline]
10542        pub fn invalid_auth_root() -> Self {
10543            Self::InvalidAuthRoot(InvalidAuthRoot)
10544        }
10545        /**Creates a [`InvalidInitialization`] error.
10546
10547```solidity
10548error InvalidInitialization()
10549```*/
10550        #[inline]
10551        pub fn invalid_initialization() -> Self {
10552            Self::InvalidInitialization(InvalidInitialization)
10553        }
10554        /**Creates a [`InvalidRewardAmount`] error.
10555
10556```solidity
10557error InvalidRewardAmount()
10558```*/
10559        #[inline]
10560        pub fn invalid_reward_amount() -> Self {
10561            Self::InvalidRewardAmount(InvalidRewardAmount)
10562        }
10563        /**Creates a [`NoChangeRequired`] error.
10564
10565```solidity
10566error NoChangeRequired()
10567```*/
10568        #[inline]
10569        pub fn no_change_required() -> Self {
10570            Self::NoChangeRequired(NoChangeRequired)
10571        }
10572        /**Creates a [`NotInitializing`] error.
10573
10574```solidity
10575error NotInitializing()
10576```*/
10577        #[inline]
10578        pub fn not_initializing() -> Self {
10579            Self::NotInitializing(NotInitializing)
10580        }
10581        /**Creates a [`ReentrancyGuardReentrantCall`] error.
10582
10583```solidity
10584error ReentrancyGuardReentrantCall()
10585```*/
10586        #[inline]
10587        pub fn reentrancy_guard_reentrant_call() -> Self {
10588            Self::ReentrancyGuardReentrantCall(ReentrancyGuardReentrantCall)
10589        }
10590        /**Creates a [`UUPSUnauthorizedCallContext`] error.
10591
10592```solidity
10593error UUPSUnauthorizedCallContext()
10594```*/
10595        #[inline]
10596        pub fn uups_unauthorized_call_context() -> Self {
10597            Self::UUPSUnauthorizedCallContext(UUPSUnauthorizedCallContext)
10598        }
10599        /**Creates a [`UUPSUnsupportedProxiableUUID`] error.
10600
10601```solidity
10602error UUPSUnsupportedProxiableUUID(bytes32)
10603```*/
10604        #[inline]
10605        pub fn uups_unsupported_proxiable_uuid(
10606            slot: alloy::sol_types::private::FixedBytes<32>,
10607        ) -> Self {
10608            Self::UUPSUnsupportedProxiableUUID(UUPSUnsupportedProxiableUUID {
10609                slot: slot,
10610            })
10611        }
10612        /**Creates a [`ZeroAdminAddress`] error.
10613
10614```solidity
10615error ZeroAdminAddress()
10616```*/
10617        #[inline]
10618        pub fn zero_admin_address() -> Self {
10619            Self::ZeroAdminAddress(ZeroAdminAddress)
10620        }
10621        /**Creates a [`ZeroDailyLimit`] error.
10622
10623```solidity
10624error ZeroDailyLimit()
10625```*/
10626        #[inline]
10627        pub fn zero_daily_limit() -> Self {
10628            Self::ZeroDailyLimit(ZeroDailyLimit)
10629        }
10630        /**Creates a [`ZeroLightClientAddress`] error.
10631
10632```solidity
10633error ZeroLightClientAddress()
10634```*/
10635        #[inline]
10636        pub fn zero_light_client_address() -> Self {
10637            Self::ZeroLightClientAddress(ZeroLightClientAddress)
10638        }
10639        /**Creates a [`ZeroPauserAddress`] error.
10640
10641```solidity
10642error ZeroPauserAddress()
10643```*/
10644        #[inline]
10645        pub fn zero_pauser_address() -> Self {
10646            Self::ZeroPauserAddress(ZeroPauserAddress)
10647        }
10648        /**Creates a [`ZeroTokenAddress`] error.
10649
10650```solidity
10651error ZeroTokenAddress()
10652```*/
10653        #[inline]
10654        pub fn zero_token_address() -> Self {
10655            Self::ZeroTokenAddress(ZeroTokenAddress)
10656        }
10657        /**Creates a [`ZeroTotalSupply`] error.
10658
10659```solidity
10660error ZeroTotalSupply()
10661```*/
10662        #[inline]
10663        pub fn zero_total_supply() -> Self {
10664            Self::ZeroTotalSupply(ZeroTotalSupply)
10665        }
10666    }
10667    ///Container for all the [`RewardClaim`](self) events.
10668    #[derive(Clone)]
10669    #[derive(serde::Serialize, serde::Deserialize)]
10670    #[derive(Debug, PartialEq, Eq, Hash)]
10671    pub enum RewardClaimEvents {
10672        #[allow(missing_docs)]
10673        DailyLimitUpdated(DailyLimitUpdated),
10674        #[allow(missing_docs)]
10675        Initialized(Initialized),
10676        #[allow(missing_docs)]
10677        Paused(Paused),
10678        #[allow(missing_docs)]
10679        RewardsClaimed(RewardsClaimed),
10680        #[allow(missing_docs)]
10681        RoleAdminChanged(RoleAdminChanged),
10682        #[allow(missing_docs)]
10683        RoleGranted(RoleGranted),
10684        #[allow(missing_docs)]
10685        RoleRevoked(RoleRevoked),
10686        #[allow(missing_docs)]
10687        Unpaused(Unpaused),
10688        #[allow(missing_docs)]
10689        Upgraded(Upgraded),
10690    }
10691    impl RewardClaimEvents {
10692        /// All the selectors of this enum.
10693        ///
10694        /// Note that the selectors might not be in the same order as the variants.
10695        /// No guarantees are made about the order of the selectors.
10696        ///
10697        /// Prefer using `SolInterface` methods instead.
10698        pub const SELECTORS: &'static [[u8; 32usize]] = &[
10699            [
10700                32u8, 124u8, 76u8, 189u8, 245u8, 94u8, 195u8, 21u8, 161u8, 63u8, 13u8,
10701                94u8, 4u8, 119u8, 50u8, 236u8, 93u8, 148u8, 125u8, 160u8, 86u8, 231u8,
10702                6u8, 89u8, 58u8, 165u8, 9u8, 144u8, 153u8, 65u8, 206u8, 223u8,
10703            ],
10704            [
10705                47u8, 135u8, 136u8, 17u8, 126u8, 126u8, 255u8, 29u8, 130u8, 233u8, 38u8,
10706                236u8, 121u8, 73u8, 1u8, 209u8, 124u8, 120u8, 2u8, 74u8, 80u8, 39u8, 9u8,
10707                64u8, 48u8, 69u8, 64u8, 167u8, 51u8, 101u8, 111u8, 13u8,
10708            ],
10709            [
10710                93u8, 185u8, 238u8, 10u8, 73u8, 91u8, 242u8, 230u8, 255u8, 156u8, 145u8,
10711                167u8, 131u8, 76u8, 27u8, 164u8, 253u8, 210u8, 68u8, 165u8, 232u8, 170u8,
10712                78u8, 83u8, 123u8, 211u8, 138u8, 234u8, 228u8, 176u8, 115u8, 170u8,
10713            ],
10714            [
10715                98u8, 231u8, 140u8, 234u8, 1u8, 190u8, 227u8, 32u8, 205u8, 78u8, 66u8,
10716                2u8, 112u8, 181u8, 234u8, 116u8, 0u8, 13u8, 17u8, 176u8, 201u8, 247u8,
10717                71u8, 84u8, 235u8, 219u8, 252u8, 84u8, 75u8, 5u8, 162u8, 88u8,
10718            ],
10719            [
10720                188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
10721                179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
10722                12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
10723            ],
10724            [
10725                189u8, 121u8, 184u8, 111u8, 254u8, 10u8, 184u8, 232u8, 119u8, 97u8, 81u8,
10726                81u8, 66u8, 23u8, 205u8, 124u8, 172u8, 213u8, 44u8, 144u8, 159u8, 102u8,
10727                71u8, 92u8, 58u8, 244u8, 78u8, 18u8, 159u8, 11u8, 0u8, 255u8,
10728            ],
10729            [
10730                199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8,
10731                19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8,
10732                33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8,
10733            ],
10734            [
10735                246u8, 57u8, 31u8, 92u8, 50u8, 217u8, 198u8, 157u8, 42u8, 71u8, 234u8,
10736                103u8, 11u8, 68u8, 41u8, 116u8, 181u8, 57u8, 53u8, 209u8, 237u8, 199u8,
10737                253u8, 100u8, 235u8, 33u8, 224u8, 71u8, 168u8, 57u8, 23u8, 27u8,
10738            ],
10739            [
10740                252u8, 48u8, 205u8, 222u8, 163u8, 142u8, 43u8, 244u8, 214u8, 234u8,
10741                125u8, 63u8, 158u8, 211u8, 182u8, 173u8, 127u8, 23u8, 100u8, 25u8, 244u8,
10742                150u8, 59u8, 216u8, 19u8, 24u8, 6u8, 122u8, 74u8, 238u8, 115u8, 254u8,
10743            ],
10744        ];
10745        /// The names of the variants in the same order as `SELECTORS`.
10746        pub const VARIANT_NAMES: &'static [&'static str] = &[
10747            ::core::stringify!(DailyLimitUpdated),
10748            ::core::stringify!(RoleGranted),
10749            ::core::stringify!(Unpaused),
10750            ::core::stringify!(Paused),
10751            ::core::stringify!(Upgraded),
10752            ::core::stringify!(RoleAdminChanged),
10753            ::core::stringify!(Initialized),
10754            ::core::stringify!(RoleRevoked),
10755            ::core::stringify!(RewardsClaimed),
10756        ];
10757        /// The signatures in the same order as `SELECTORS`.
10758        pub const SIGNATURES: &'static [&'static str] = &[
10759            <DailyLimitUpdated as alloy_sol_types::SolEvent>::SIGNATURE,
10760            <RoleGranted as alloy_sol_types::SolEvent>::SIGNATURE,
10761            <Unpaused as alloy_sol_types::SolEvent>::SIGNATURE,
10762            <Paused as alloy_sol_types::SolEvent>::SIGNATURE,
10763            <Upgraded as alloy_sol_types::SolEvent>::SIGNATURE,
10764            <RoleAdminChanged as alloy_sol_types::SolEvent>::SIGNATURE,
10765            <Initialized as alloy_sol_types::SolEvent>::SIGNATURE,
10766            <RoleRevoked as alloy_sol_types::SolEvent>::SIGNATURE,
10767            <RewardsClaimed as alloy_sol_types::SolEvent>::SIGNATURE,
10768        ];
10769        /// Returns the signature for the given selector, if known.
10770        #[inline]
10771        pub fn signature_by_selector(
10772            selector: [u8; 32usize],
10773        ) -> ::core::option::Option<&'static str> {
10774            match Self::SELECTORS.binary_search(&selector) {
10775                ::core::result::Result::Ok(idx) => {
10776                    ::core::option::Option::Some(Self::SIGNATURES[idx])
10777                }
10778                ::core::result::Result::Err(_) => ::core::option::Option::None,
10779            }
10780        }
10781        /// Returns the enum variant name for the given selector, if known.
10782        #[inline]
10783        pub fn name_by_selector(
10784            selector: [u8; 32usize],
10785        ) -> ::core::option::Option<&'static str> {
10786            let sig = Self::signature_by_selector(selector)?;
10787            sig.split_once('(').map(|(name, _)| name)
10788        }
10789    }
10790    #[automatically_derived]
10791    impl alloy_sol_types::SolEventInterface for RewardClaimEvents {
10792        const NAME: &'static str = "RewardClaimEvents";
10793        const COUNT: usize = 9usize;
10794        fn decode_raw_log(
10795            topics: &[alloy_sol_types::Word],
10796            data: &[u8],
10797        ) -> alloy_sol_types::Result<Self> {
10798            <Self as alloy_sol_types::SolEventInterface>::decode_raw_log_with_config(
10799                topics,
10800                data,
10801                alloy_sol_types::abi::AbiDecoderConfig::default(),
10802            )
10803        }
10804        fn decode_raw_log_with_config(
10805            topics: &[alloy_sol_types::Word],
10806            data: &[u8],
10807            config: alloy_sol_types::abi::AbiDecoderConfig,
10808        ) -> alloy_sol_types::Result<Self> {
10809            match topics.first().copied() {
10810                Some(
10811                    <DailyLimitUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
10812                ) => {
10813                    <DailyLimitUpdated as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10814                            topics,
10815                            data,
10816                            config,
10817                        )
10818                        .map(Self::DailyLimitUpdated)
10819                }
10820                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10821                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10822                            topics,
10823                            data,
10824                            config,
10825                        )
10826                        .map(Self::Initialized)
10827                }
10828                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10829                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10830                            topics,
10831                            data,
10832                            config,
10833                        )
10834                        .map(Self::Paused)
10835                }
10836                Some(<RewardsClaimed as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10837                    <RewardsClaimed as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10838                            topics,
10839                            data,
10840                            config,
10841                        )
10842                        .map(Self::RewardsClaimed)
10843                }
10844                Some(<RoleAdminChanged as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10845                    <RoleAdminChanged as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10846                            topics,
10847                            data,
10848                            config,
10849                        )
10850                        .map(Self::RoleAdminChanged)
10851                }
10852                Some(<RoleGranted as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10853                    <RoleGranted as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10854                            topics,
10855                            data,
10856                            config,
10857                        )
10858                        .map(Self::RoleGranted)
10859                }
10860                Some(<RoleRevoked as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10861                    <RoleRevoked as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10862                            topics,
10863                            data,
10864                            config,
10865                        )
10866                        .map(Self::RoleRevoked)
10867                }
10868                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10869                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10870                            topics,
10871                            data,
10872                            config,
10873                        )
10874                        .map(Self::Unpaused)
10875                }
10876                Some(<Upgraded as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10877                    <Upgraded as alloy_sol_types::SolEvent>::decode_raw_log_with_config(
10878                            topics,
10879                            data,
10880                            config,
10881                        )
10882                        .map(Self::Upgraded)
10883                }
10884                _ => {
10885                    if topics
10886                        .len()
10887                        .checked_mul(alloy_sol_types::Word::len_bytes())
10888                        .and_then(|len| len.checked_add(data.len()))
10889                        .is_none_or(|len| len > config.get_memory_limit())
10890                    {
10891                        return alloy_sol_types::private::Err(
10892                            alloy_sol_types::Error::MemoryLimitExceeded(
10893                                config.get_memory_limit(),
10894                            ),
10895                        );
10896                    }
10897                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
10898                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
10899                        log: alloy_sol_types::private::Box::new(
10900                            alloy_sol_types::private::LogData::new_unchecked(
10901                                topics.to_vec(),
10902                                data.to_vec().into(),
10903                            ),
10904                        ),
10905                    })
10906                }
10907            }
10908        }
10909    }
10910    #[automatically_derived]
10911    impl alloy_sol_types::private::IntoLogData for RewardClaimEvents {
10912        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
10913            match self {
10914                Self::DailyLimitUpdated(inner) => {
10915                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10916                }
10917                Self::Initialized(inner) => {
10918                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10919                }
10920                Self::Paused(inner) => {
10921                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10922                }
10923                Self::RewardsClaimed(inner) => {
10924                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10925                }
10926                Self::RoleAdminChanged(inner) => {
10927                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10928                }
10929                Self::RoleGranted(inner) => {
10930                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10931                }
10932                Self::RoleRevoked(inner) => {
10933                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10934                }
10935                Self::Unpaused(inner) => {
10936                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10937                }
10938                Self::Upgraded(inner) => {
10939                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10940                }
10941            }
10942        }
10943        fn into_log_data(self) -> alloy_sol_types::private::LogData {
10944            match self {
10945                Self::DailyLimitUpdated(inner) => {
10946                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10947                }
10948                Self::Initialized(inner) => {
10949                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10950                }
10951                Self::Paused(inner) => {
10952                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10953                }
10954                Self::RewardsClaimed(inner) => {
10955                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10956                }
10957                Self::RoleAdminChanged(inner) => {
10958                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10959                }
10960                Self::RoleGranted(inner) => {
10961                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10962                }
10963                Self::RoleRevoked(inner) => {
10964                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10965                }
10966                Self::Unpaused(inner) => {
10967                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10968                }
10969                Self::Upgraded(inner) => {
10970                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10971                }
10972            }
10973        }
10974    }
10975    #[automatically_derived]
10976    impl RewardClaimEvents {
10977        /**Creates a [`DailyLimitUpdated`] event.
10978
10979```solidity
10980event DailyLimitUpdated(uint256,uint256)
10981```*/
10982        #[inline]
10983        pub fn daily_limit_updated(
10984            old_limit: alloy::sol_types::private::primitives::aliases::U256,
10985            new_limit: alloy::sol_types::private::primitives::aliases::U256,
10986        ) -> Self {
10987            Self::DailyLimitUpdated(DailyLimitUpdated {
10988                oldLimit: old_limit,
10989                newLimit: new_limit,
10990            })
10991        }
10992        /**Creates a [`Initialized`] event.
10993
10994```solidity
10995event Initialized(uint64)
10996```*/
10997        #[inline]
10998        pub fn initialized(version: u64) -> Self {
10999            Self::Initialized(Initialized { version: version })
11000        }
11001        /**Creates a [`Paused`] event.
11002
11003```solidity
11004event Paused(address)
11005```*/
11006        #[inline]
11007        pub fn paused(account: alloy::sol_types::private::Address) -> Self {
11008            Self::Paused(Paused { account: account })
11009        }
11010        /**Creates a [`RewardsClaimed`] event.
11011
11012```solidity
11013event RewardsClaimed(address,uint256)
11014```*/
11015        #[inline]
11016        pub fn rewards_claimed(
11017            user: alloy::sol_types::private::Address,
11018            amount: alloy::sol_types::private::primitives::aliases::U256,
11019        ) -> Self {
11020            Self::RewardsClaimed(RewardsClaimed {
11021                user: user,
11022                amount: amount,
11023            })
11024        }
11025        /**Creates a [`RoleAdminChanged`] event.
11026
11027```solidity
11028event RoleAdminChanged(bytes32,bytes32,bytes32)
11029```*/
11030        #[inline]
11031        pub fn role_admin_changed(
11032            role: alloy::sol_types::private::FixedBytes<32>,
11033            previous_admin_role: alloy::sol_types::private::FixedBytes<32>,
11034            new_admin_role: alloy::sol_types::private::FixedBytes<32>,
11035        ) -> Self {
11036            Self::RoleAdminChanged(RoleAdminChanged {
11037                role: role,
11038                previousAdminRole: previous_admin_role,
11039                newAdminRole: new_admin_role,
11040            })
11041        }
11042        /**Creates a [`RoleGranted`] event.
11043
11044```solidity
11045event RoleGranted(bytes32,address,address)
11046```*/
11047        #[inline]
11048        pub fn role_granted(
11049            role: alloy::sol_types::private::FixedBytes<32>,
11050            account: alloy::sol_types::private::Address,
11051            sender: alloy::sol_types::private::Address,
11052        ) -> Self {
11053            Self::RoleGranted(RoleGranted {
11054                role: role,
11055                account: account,
11056                sender: sender,
11057            })
11058        }
11059        /**Creates a [`RoleRevoked`] event.
11060
11061```solidity
11062event RoleRevoked(bytes32,address,address)
11063```*/
11064        #[inline]
11065        pub fn role_revoked(
11066            role: alloy::sol_types::private::FixedBytes<32>,
11067            account: alloy::sol_types::private::Address,
11068            sender: alloy::sol_types::private::Address,
11069        ) -> Self {
11070            Self::RoleRevoked(RoleRevoked {
11071                role: role,
11072                account: account,
11073                sender: sender,
11074            })
11075        }
11076        /**Creates a [`Unpaused`] event.
11077
11078```solidity
11079event Unpaused(address)
11080```*/
11081        #[inline]
11082        pub fn unpaused(account: alloy::sol_types::private::Address) -> Self {
11083            Self::Unpaused(Unpaused { account: account })
11084        }
11085        /**Creates a [`Upgraded`] event.
11086
11087```solidity
11088event Upgraded(address)
11089```*/
11090        #[inline]
11091        pub fn upgraded(implementation: alloy::sol_types::private::Address) -> Self {
11092            Self::Upgraded(Upgraded {
11093                implementation: implementation,
11094            })
11095        }
11096    }
11097    use alloy::contract as alloy_contract;
11098    /**Creates a new wrapper around an on-chain [`RewardClaim`](self) contract instance.
11099
11100See the [wrapper's documentation](`RewardClaimInstance`) for more details.*/
11101    #[inline]
11102    pub const fn new<
11103        P: alloy_contract::private::Provider<N>,
11104        N: alloy_contract::private::Network,
11105    >(
11106        address: alloy_sol_types::private::Address,
11107        __provider: P,
11108    ) -> RewardClaimInstance<P, N> {
11109        RewardClaimInstance::<P, N>::new(address, __provider)
11110    }
11111    /**Deploys this contract using the given `provider` and constructor arguments, if any.
11112
11113Returns a new instance of the contract, if the deployment was successful.
11114
11115For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
11116    #[inline]
11117    pub fn deploy<
11118        P: alloy_contract::private::Provider<N>,
11119        N: alloy_contract::private::Network,
11120    >(
11121        __provider: P,
11122    ) -> impl ::core::future::Future<
11123        Output = alloy_contract::Result<RewardClaimInstance<P, N>>,
11124    > {
11125        RewardClaimInstance::<P, N>::deploy(__provider)
11126    }
11127    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
11128and constructor arguments, if any.
11129
11130This is a simple wrapper around creating a `RawCallBuilder` with the data set to
11131the bytecode concatenated with the constructor's ABI-encoded arguments.*/
11132    #[inline]
11133    pub fn deploy_builder<
11134        P: alloy_contract::private::Provider<N>,
11135        N: alloy_contract::private::Network,
11136    >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
11137        RewardClaimInstance::<P, N>::deploy_builder(__provider)
11138    }
11139    /**A [`RewardClaim`](self) instance.
11140
11141Contains type-safe methods for interacting with an on-chain instance of the
11142[`RewardClaim`](self) contract located at a given `address`, using a given
11143provider `P`.
11144
11145If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
11146documentation on how to provide it), the `deploy` and `deploy_builder` methods can
11147be used to deploy a new instance of the contract.
11148
11149See the [module-level documentation](self) for all the available methods.*/
11150    #[derive(Clone)]
11151    pub struct RewardClaimInstance<P, N = alloy_contract::private::Ethereum> {
11152        address: alloy_sol_types::private::Address,
11153        provider: P,
11154        _network: ::core::marker::PhantomData<N>,
11155    }
11156    #[automatically_derived]
11157    impl<P, N> ::core::fmt::Debug for RewardClaimInstance<P, N> {
11158        #[inline]
11159        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11160            f.debug_tuple("RewardClaimInstance").field(&self.address).finish()
11161        }
11162    }
11163    /// Instantiation and getters/setters.
11164    impl<
11165        P: alloy_contract::private::Provider<N>,
11166        N: alloy_contract::private::Network,
11167    > RewardClaimInstance<P, N> {
11168        /**Creates a new wrapper around an on-chain [`RewardClaim`](self) contract instance.
11169
11170See the [wrapper's documentation](`RewardClaimInstance`) for more details.*/
11171        #[inline]
11172        pub const fn new(
11173            address: alloy_sol_types::private::Address,
11174            __provider: P,
11175        ) -> Self {
11176            Self {
11177                address,
11178                provider: __provider,
11179                _network: ::core::marker::PhantomData,
11180            }
11181        }
11182        /**Deploys this contract using the given `provider` and constructor arguments, if any.
11183
11184Returns a new instance of the contract, if the deployment was successful.
11185
11186For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
11187        #[inline]
11188        pub async fn deploy(
11189            __provider: P,
11190        ) -> alloy_contract::Result<RewardClaimInstance<P, N>> {
11191            let call_builder = Self::deploy_builder(__provider);
11192            let contract_address = call_builder.deploy().await?;
11193            Ok(Self::new(contract_address, call_builder.provider))
11194        }
11195        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
11196and constructor arguments, if any.
11197
11198This is a simple wrapper around creating a `RawCallBuilder` with the data set to
11199the bytecode concatenated with the constructor's ABI-encoded arguments.*/
11200        #[inline]
11201        pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
11202            alloy_contract::RawCallBuilder::new_raw_deploy(
11203                __provider,
11204                ::core::clone::Clone::clone(&BYTECODE),
11205            )
11206        }
11207        /// Returns a reference to the address.
11208        #[inline]
11209        pub const fn address(&self) -> &alloy_sol_types::private::Address {
11210            &self.address
11211        }
11212        /// Sets the address.
11213        #[inline]
11214        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
11215            self.address = address;
11216        }
11217        /// Sets the address and returns `self`.
11218        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
11219            self.set_address(address);
11220            self
11221        }
11222        /// Returns a reference to the provider.
11223        #[inline]
11224        pub const fn provider(&self) -> &P {
11225            &self.provider
11226        }
11227    }
11228    impl<P: ::core::clone::Clone, N> RewardClaimInstance<&P, N> {
11229        /// Clones the provider and returns a new instance with the cloned provider.
11230        #[inline]
11231        pub fn with_cloned_provider(self) -> RewardClaimInstance<P, N> {
11232            RewardClaimInstance {
11233                address: self.address,
11234                provider: ::core::clone::Clone::clone(&self.provider),
11235                _network: ::core::marker::PhantomData,
11236            }
11237        }
11238    }
11239    /// Function calls.
11240    impl<
11241        P: alloy_contract::private::Provider<N>,
11242        N: alloy_contract::private::Network,
11243    > RewardClaimInstance<P, N> {
11244        /// Creates a new call builder using this contract instance's provider and address.
11245        ///
11246        /// Note that the call can be any function call, not just those defined in this
11247        /// contract. Prefer using the other methods for building type-safe contract calls.
11248        pub fn call_builder<C: alloy_sol_types::SolCall>(
11249            &self,
11250            call: &C,
11251        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
11252            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
11253        }
11254        ///Creates a new call builder for the [`BPS_DENOMINATOR`] function.
11255        pub fn BPS_DENOMINATOR(
11256            &self,
11257        ) -> alloy_contract::SolCallBuilder<&P, BPS_DENOMINATORCall, N> {
11258            self.call_builder(&BPS_DENOMINATORCall)
11259        }
11260        ///Creates a new call builder for the [`DEFAULT_ADMIN_ROLE`] function.
11261        pub fn DEFAULT_ADMIN_ROLE(
11262            &self,
11263        ) -> alloy_contract::SolCallBuilder<&P, DEFAULT_ADMIN_ROLECall, N> {
11264            self.call_builder(&DEFAULT_ADMIN_ROLECall)
11265        }
11266        ///Creates a new call builder for the [`MAX_DAILY_LIMIT_BASIS_POINTS`] function.
11267        pub fn MAX_DAILY_LIMIT_BASIS_POINTS(
11268            &self,
11269        ) -> alloy_contract::SolCallBuilder<&P, MAX_DAILY_LIMIT_BASIS_POINTSCall, N> {
11270            self.call_builder(&MAX_DAILY_LIMIT_BASIS_POINTSCall)
11271        }
11272        ///Creates a new call builder for the [`PAUSER_ROLE`] function.
11273        pub fn PAUSER_ROLE(
11274            &self,
11275        ) -> alloy_contract::SolCallBuilder<&P, PAUSER_ROLECall, N> {
11276            self.call_builder(&PAUSER_ROLECall)
11277        }
11278        ///Creates a new call builder for the [`UPGRADE_INTERFACE_VERSION`] function.
11279        pub fn UPGRADE_INTERFACE_VERSION(
11280            &self,
11281        ) -> alloy_contract::SolCallBuilder<&P, UPGRADE_INTERFACE_VERSIONCall, N> {
11282            self.call_builder(&UPGRADE_INTERFACE_VERSIONCall)
11283        }
11284        ///Creates a new call builder for the [`claimRewards`] function.
11285        pub fn claimRewards(
11286            &self,
11287            lifetimeRewards: alloy::sol_types::private::primitives::aliases::U256,
11288            authData: alloy::sol_types::private::Bytes,
11289        ) -> alloy_contract::SolCallBuilder<&P, claimRewardsCall, N> {
11290            self.call_builder(
11291                &claimRewardsCall {
11292                    lifetimeRewards,
11293                    authData,
11294                },
11295            )
11296        }
11297        ///Creates a new call builder for the [`claimedRewards`] function.
11298        pub fn claimedRewards(
11299            &self,
11300            claimer: alloy::sol_types::private::Address,
11301        ) -> alloy_contract::SolCallBuilder<&P, claimedRewardsCall, N> {
11302            self.call_builder(&claimedRewardsCall { claimer })
11303        }
11304        ///Creates a new call builder for the [`currentAdmin`] function.
11305        pub fn currentAdmin(
11306            &self,
11307        ) -> alloy_contract::SolCallBuilder<&P, currentAdminCall, N> {
11308            self.call_builder(&currentAdminCall)
11309        }
11310        ///Creates a new call builder for the [`dailyLimitWei`] function.
11311        pub fn dailyLimitWei(
11312            &self,
11313        ) -> alloy_contract::SolCallBuilder<&P, dailyLimitWeiCall, N> {
11314            self.call_builder(&dailyLimitWeiCall)
11315        }
11316        ///Creates a new call builder for the [`espToken`] function.
11317        pub fn espToken(&self) -> alloy_contract::SolCallBuilder<&P, espTokenCall, N> {
11318            self.call_builder(&espTokenCall)
11319        }
11320        ///Creates a new call builder for the [`getRoleAdmin`] function.
11321        pub fn getRoleAdmin(
11322            &self,
11323            role: alloy::sol_types::private::FixedBytes<32>,
11324        ) -> alloy_contract::SolCallBuilder<&P, getRoleAdminCall, N> {
11325            self.call_builder(&getRoleAdminCall { role })
11326        }
11327        ///Creates a new call builder for the [`getVersion`] function.
11328        pub fn getVersion(
11329            &self,
11330        ) -> alloy_contract::SolCallBuilder<&P, getVersionCall, N> {
11331            self.call_builder(&getVersionCall)
11332        }
11333        ///Creates a new call builder for the [`grantRole`] function.
11334        pub fn grantRole(
11335            &self,
11336            role: alloy::sol_types::private::FixedBytes<32>,
11337            account: alloy::sol_types::private::Address,
11338        ) -> alloy_contract::SolCallBuilder<&P, grantRoleCall, N> {
11339            self.call_builder(&grantRoleCall { role, account })
11340        }
11341        ///Creates a new call builder for the [`hasRole`] function.
11342        pub fn hasRole(
11343            &self,
11344            role: alloy::sol_types::private::FixedBytes<32>,
11345            account: alloy::sol_types::private::Address,
11346        ) -> alloy_contract::SolCallBuilder<&P, hasRoleCall, N> {
11347            self.call_builder(&hasRoleCall { role, account })
11348        }
11349        ///Creates a new call builder for the [`initialize`] function.
11350        pub fn initialize(
11351            &self,
11352            _admin: alloy::sol_types::private::Address,
11353            _espToken: alloy::sol_types::private::Address,
11354            _lightClient: alloy::sol_types::private::Address,
11355            _pauser: alloy::sol_types::private::Address,
11356        ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> {
11357            self.call_builder(
11358                &initializeCall {
11359                    _admin,
11360                    _espToken,
11361                    _lightClient,
11362                    _pauser,
11363                },
11364            )
11365        }
11366        ///Creates a new call builder for the [`lastSetDailyLimitBasisPoints`] function.
11367        pub fn lastSetDailyLimitBasisPoints(
11368            &self,
11369        ) -> alloy_contract::SolCallBuilder<&P, lastSetDailyLimitBasisPointsCall, N> {
11370            self.call_builder(&lastSetDailyLimitBasisPointsCall)
11371        }
11372        ///Creates a new call builder for the [`lightClient`] function.
11373        pub fn lightClient(
11374            &self,
11375        ) -> alloy_contract::SolCallBuilder<&P, lightClientCall, N> {
11376            self.call_builder(&lightClientCall)
11377        }
11378        ///Creates a new call builder for the [`pause`] function.
11379        pub fn pause(&self) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> {
11380            self.call_builder(&pauseCall)
11381        }
11382        ///Creates a new call builder for the [`paused`] function.
11383        pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> {
11384            self.call_builder(&pausedCall)
11385        }
11386        ///Creates a new call builder for the [`proxiableUUID`] function.
11387        pub fn proxiableUUID(
11388            &self,
11389        ) -> alloy_contract::SolCallBuilder<&P, proxiableUUIDCall, N> {
11390            self.call_builder(&proxiableUUIDCall)
11391        }
11392        ///Creates a new call builder for the [`renounceRole`] function.
11393        pub fn renounceRole(
11394            &self,
11395            role: alloy::sol_types::private::FixedBytes<32>,
11396            callerConfirmation: alloy::sol_types::private::Address,
11397        ) -> alloy_contract::SolCallBuilder<&P, renounceRoleCall, N> {
11398            self.call_builder(
11399                &renounceRoleCall {
11400                    role,
11401                    callerConfirmation,
11402                },
11403            )
11404        }
11405        ///Creates a new call builder for the [`revokeRole`] function.
11406        pub fn revokeRole(
11407            &self,
11408            role: alloy::sol_types::private::FixedBytes<32>,
11409            account: alloy::sol_types::private::Address,
11410        ) -> alloy_contract::SolCallBuilder<&P, revokeRoleCall, N> {
11411            self.call_builder(&revokeRoleCall { role, account })
11412        }
11413        ///Creates a new call builder for the [`setDailyLimit`] function.
11414        pub fn setDailyLimit(
11415            &self,
11416            basisPoints: alloy::sol_types::private::primitives::aliases::U256,
11417        ) -> alloy_contract::SolCallBuilder<&P, setDailyLimitCall, N> {
11418            self.call_builder(&setDailyLimitCall { basisPoints })
11419        }
11420        ///Creates a new call builder for the [`supportsInterface`] function.
11421        pub fn supportsInterface(
11422            &self,
11423            interfaceId: alloy::sol_types::private::FixedBytes<4>,
11424        ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> {
11425            self.call_builder(
11426                &supportsInterfaceCall {
11427                    interfaceId,
11428                },
11429            )
11430        }
11431        ///Creates a new call builder for the [`totalClaimed`] function.
11432        pub fn totalClaimed(
11433            &self,
11434        ) -> alloy_contract::SolCallBuilder<&P, totalClaimedCall, N> {
11435            self.call_builder(&totalClaimedCall)
11436        }
11437        ///Creates a new call builder for the [`unpause`] function.
11438        pub fn unpause(&self) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> {
11439            self.call_builder(&unpauseCall)
11440        }
11441        ///Creates a new call builder for the [`upgradeToAndCall`] function.
11442        pub fn upgradeToAndCall(
11443            &self,
11444            newImplementation: alloy::sol_types::private::Address,
11445            data: alloy::sol_types::private::Bytes,
11446        ) -> alloy_contract::SolCallBuilder<&P, upgradeToAndCallCall, N> {
11447            self.call_builder(
11448                &upgradeToAndCallCall {
11449                    newImplementation,
11450                    data,
11451                },
11452            )
11453        }
11454    }
11455    /// Event filters.
11456    impl<
11457        P: alloy_contract::private::Provider<N>,
11458        N: alloy_contract::private::Network,
11459    > RewardClaimInstance<P, N> {
11460        /// Creates a new event filter using this contract instance's provider and address.
11461        ///
11462        /// Note that the type can be any event, not just those defined in this contract.
11463        /// Prefer using the other methods for building type-safe event filters.
11464        pub fn event_filter<E: alloy_sol_types::SolEvent>(
11465            &self,
11466        ) -> alloy_contract::Event<&P, E, N> {
11467            alloy_contract::Event::new_sol(&self.provider, &self.address)
11468        }
11469        ///Creates a new event filter for the [`DailyLimitUpdated`] event.
11470        pub fn DailyLimitUpdated_filter(
11471            &self,
11472        ) -> alloy_contract::Event<&P, DailyLimitUpdated, N> {
11473            self.event_filter::<DailyLimitUpdated>()
11474        }
11475        ///Creates a new event filter for the [`Initialized`] event.
11476        pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> {
11477            self.event_filter::<Initialized>()
11478        }
11479        ///Creates a new event filter for the [`Paused`] event.
11480        pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> {
11481            self.event_filter::<Paused>()
11482        }
11483        ///Creates a new event filter for the [`RewardsClaimed`] event.
11484        pub fn RewardsClaimed_filter(
11485            &self,
11486        ) -> alloy_contract::Event<&P, RewardsClaimed, N> {
11487            self.event_filter::<RewardsClaimed>()
11488        }
11489        ///Creates a new event filter for the [`RoleAdminChanged`] event.
11490        pub fn RoleAdminChanged_filter(
11491            &self,
11492        ) -> alloy_contract::Event<&P, RoleAdminChanged, N> {
11493            self.event_filter::<RoleAdminChanged>()
11494        }
11495        ///Creates a new event filter for the [`RoleGranted`] event.
11496        pub fn RoleGranted_filter(&self) -> alloy_contract::Event<&P, RoleGranted, N> {
11497            self.event_filter::<RoleGranted>()
11498        }
11499        ///Creates a new event filter for the [`RoleRevoked`] event.
11500        pub fn RoleRevoked_filter(&self) -> alloy_contract::Event<&P, RoleRevoked, N> {
11501            self.event_filter::<RoleRevoked>()
11502        }
11503        ///Creates a new event filter for the [`Unpaused`] event.
11504        pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> {
11505            self.event_filter::<Unpaused>()
11506        }
11507        ///Creates a new event filter for the [`Upgraded`] event.
11508        pub fn Upgraded_filter(&self) -> alloy_contract::Event<&P, Upgraded, N> {
11509            self.event_filter::<Upgraded>()
11510        }
11511    }
11512}