eigenlayer_contract_deployer/bindings/core/
eigen_pod_manager.rs

1#![allow(clippy::all, clippy::pedantic, clippy::nursery, warnings, unknown_lints, rustdoc::all, elided_lifetimes_in_paths)]
2use EigenPodManager::*;
3
4/**
5
6Generated by the following Solidity interface...
7```solidity
8interface EigenPodManager {
9    error CurrentlyPaused();
10    error EigenPodAlreadyExists();
11    error InputAddressZero();
12    error InvalidNewPausedStatus();
13    error InvalidShortString();
14    error InvalidStrategy();
15    error LegacyWithdrawalsNotCompleted();
16    error OnlyDelegationManager();
17    error OnlyEigenPod();
18    error OnlyPauser();
19    error OnlyUnpauser();
20    error SharesNegative();
21    error SharesNotMultipleOfGwei();
22    error StringTooLong(string str);
23
24    event BeaconChainETHDeposited(address indexed podOwner, uint256 amount);
25    event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot);
26    event BeaconChainSlashingFactorDecreased(address staker, uint64 prevBeaconChainSlashingFactor, uint64 newBeaconChainSlashingFactor);
27    event BurnableETHSharesIncreased(uint256 shares);
28    event Initialized(uint8 version);
29    event NewTotalShares(address indexed podOwner, int256 newTotalShares);
30    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
31    event Paused(address indexed account, uint256 newPausedStatus);
32    event PodDeployed(address indexed eigenPod, address indexed podOwner);
33    event PodSharesUpdated(address indexed podOwner, int256 sharesDelta);
34    event Unpaused(address indexed account, uint256 newPausedStatus);
35
36    constructor(address _ethPOS, address _eigenPodBeacon, address _delegationManager, address _pauserRegistry, string _version);
37
38    function addShares(address staker, address strategy, uint256 shares) external returns (uint256, uint256);
39    function beaconChainETHStrategy() external view returns (address);
40    function beaconChainSlashingFactor(address podOwner) external view returns (uint64);
41    function burnableETHShares() external view returns (uint256);
42    function createPod() external returns (address);
43    function delegationManager() external view returns (address);
44    function eigenPodBeacon() external view returns (address);
45    function ethPOS() external view returns (address);
46    function getPod(address podOwner) external view returns (address);
47    function hasPod(address podOwner) external view returns (bool);
48    function increaseBurnableShares(address, uint256 addedSharesToBurn) external;
49    function initialize(address initialOwner, uint256 _initPausedStatus) external;
50    function numPods() external view returns (uint256);
51    function owner() external view returns (address);
52    function ownerToPod(address podOwner) external view returns (address);
53    function pause(uint256 newPausedStatus) external;
54    function pauseAll() external;
55    function paused(uint8 index) external view returns (bool);
56    function paused() external view returns (uint256);
57    function pauserRegistry() external view returns (address);
58    function podOwnerDepositShares(address podOwner) external view returns (int256 shares);
59    function recordBeaconChainETHBalanceUpdate(address podOwner, uint256 prevRestakedBalanceWei, int256 balanceDeltaWei) external;
60    function removeDepositShares(address staker, address strategy, uint256 depositSharesToRemove) external returns (uint256);
61    function renounceOwnership() external;
62    function stake(bytes memory pubkey, bytes memory signature, bytes32 depositDataRoot) external payable;
63    function stakerDepositShares(address user, address strategy) external view returns (uint256 depositShares);
64    function transferOwnership(address newOwner) external;
65    function unpause(uint256 newPausedStatus) external;
66    function version() external view returns (string memory);
67    function withdrawSharesAsTokens(address staker, address strategy, address, uint256 shares) external;
68}
69```
70
71...which was generated by the following JSON ABI:
72```json
73[
74  {
75    "type": "constructor",
76    "inputs": [
77      {
78        "name": "_ethPOS",
79        "type": "address",
80        "internalType": "contract IETHPOSDeposit"
81      },
82      {
83        "name": "_eigenPodBeacon",
84        "type": "address",
85        "internalType": "contract IBeacon"
86      },
87      {
88        "name": "_delegationManager",
89        "type": "address",
90        "internalType": "contract IDelegationManager"
91      },
92      {
93        "name": "_pauserRegistry",
94        "type": "address",
95        "internalType": "contract IPauserRegistry"
96      },
97      {
98        "name": "_version",
99        "type": "string",
100        "internalType": "string"
101      }
102    ],
103    "stateMutability": "nonpayable"
104  },
105  {
106    "type": "function",
107    "name": "addShares",
108    "inputs": [
109      {
110        "name": "staker",
111        "type": "address",
112        "internalType": "address"
113      },
114      {
115        "name": "strategy",
116        "type": "address",
117        "internalType": "contract IStrategy"
118      },
119      {
120        "name": "shares",
121        "type": "uint256",
122        "internalType": "uint256"
123      }
124    ],
125    "outputs": [
126      {
127        "name": "",
128        "type": "uint256",
129        "internalType": "uint256"
130      },
131      {
132        "name": "",
133        "type": "uint256",
134        "internalType": "uint256"
135      }
136    ],
137    "stateMutability": "nonpayable"
138  },
139  {
140    "type": "function",
141    "name": "beaconChainETHStrategy",
142    "inputs": [],
143    "outputs": [
144      {
145        "name": "",
146        "type": "address",
147        "internalType": "contract IStrategy"
148      }
149    ],
150    "stateMutability": "view"
151  },
152  {
153    "type": "function",
154    "name": "beaconChainSlashingFactor",
155    "inputs": [
156      {
157        "name": "podOwner",
158        "type": "address",
159        "internalType": "address"
160      }
161    ],
162    "outputs": [
163      {
164        "name": "",
165        "type": "uint64",
166        "internalType": "uint64"
167      }
168    ],
169    "stateMutability": "view"
170  },
171  {
172    "type": "function",
173    "name": "burnableETHShares",
174    "inputs": [],
175    "outputs": [
176      {
177        "name": "",
178        "type": "uint256",
179        "internalType": "uint256"
180      }
181    ],
182    "stateMutability": "view"
183  },
184  {
185    "type": "function",
186    "name": "createPod",
187    "inputs": [],
188    "outputs": [
189      {
190        "name": "",
191        "type": "address",
192        "internalType": "address"
193      }
194    ],
195    "stateMutability": "nonpayable"
196  },
197  {
198    "type": "function",
199    "name": "delegationManager",
200    "inputs": [],
201    "outputs": [
202      {
203        "name": "",
204        "type": "address",
205        "internalType": "contract IDelegationManager"
206      }
207    ],
208    "stateMutability": "view"
209  },
210  {
211    "type": "function",
212    "name": "eigenPodBeacon",
213    "inputs": [],
214    "outputs": [
215      {
216        "name": "",
217        "type": "address",
218        "internalType": "contract IBeacon"
219      }
220    ],
221    "stateMutability": "view"
222  },
223  {
224    "type": "function",
225    "name": "ethPOS",
226    "inputs": [],
227    "outputs": [
228      {
229        "name": "",
230        "type": "address",
231        "internalType": "contract IETHPOSDeposit"
232      }
233    ],
234    "stateMutability": "view"
235  },
236  {
237    "type": "function",
238    "name": "getPod",
239    "inputs": [
240      {
241        "name": "podOwner",
242        "type": "address",
243        "internalType": "address"
244      }
245    ],
246    "outputs": [
247      {
248        "name": "",
249        "type": "address",
250        "internalType": "contract IEigenPod"
251      }
252    ],
253    "stateMutability": "view"
254  },
255  {
256    "type": "function",
257    "name": "hasPod",
258    "inputs": [
259      {
260        "name": "podOwner",
261        "type": "address",
262        "internalType": "address"
263      }
264    ],
265    "outputs": [
266      {
267        "name": "",
268        "type": "bool",
269        "internalType": "bool"
270      }
271    ],
272    "stateMutability": "view"
273  },
274  {
275    "type": "function",
276    "name": "increaseBurnableShares",
277    "inputs": [
278      {
279        "name": "",
280        "type": "address",
281        "internalType": "contract IStrategy"
282      },
283      {
284        "name": "addedSharesToBurn",
285        "type": "uint256",
286        "internalType": "uint256"
287      }
288    ],
289    "outputs": [],
290    "stateMutability": "nonpayable"
291  },
292  {
293    "type": "function",
294    "name": "initialize",
295    "inputs": [
296      {
297        "name": "initialOwner",
298        "type": "address",
299        "internalType": "address"
300      },
301      {
302        "name": "_initPausedStatus",
303        "type": "uint256",
304        "internalType": "uint256"
305      }
306    ],
307    "outputs": [],
308    "stateMutability": "nonpayable"
309  },
310  {
311    "type": "function",
312    "name": "numPods",
313    "inputs": [],
314    "outputs": [
315      {
316        "name": "",
317        "type": "uint256",
318        "internalType": "uint256"
319      }
320    ],
321    "stateMutability": "view"
322  },
323  {
324    "type": "function",
325    "name": "owner",
326    "inputs": [],
327    "outputs": [
328      {
329        "name": "",
330        "type": "address",
331        "internalType": "address"
332      }
333    ],
334    "stateMutability": "view"
335  },
336  {
337    "type": "function",
338    "name": "ownerToPod",
339    "inputs": [
340      {
341        "name": "podOwner",
342        "type": "address",
343        "internalType": "address"
344      }
345    ],
346    "outputs": [
347      {
348        "name": "",
349        "type": "address",
350        "internalType": "contract IEigenPod"
351      }
352    ],
353    "stateMutability": "view"
354  },
355  {
356    "type": "function",
357    "name": "pause",
358    "inputs": [
359      {
360        "name": "newPausedStatus",
361        "type": "uint256",
362        "internalType": "uint256"
363      }
364    ],
365    "outputs": [],
366    "stateMutability": "nonpayable"
367  },
368  {
369    "type": "function",
370    "name": "pauseAll",
371    "inputs": [],
372    "outputs": [],
373    "stateMutability": "nonpayable"
374  },
375  {
376    "type": "function",
377    "name": "paused",
378    "inputs": [
379      {
380        "name": "index",
381        "type": "uint8",
382        "internalType": "uint8"
383      }
384    ],
385    "outputs": [
386      {
387        "name": "",
388        "type": "bool",
389        "internalType": "bool"
390      }
391    ],
392    "stateMutability": "view"
393  },
394  {
395    "type": "function",
396    "name": "paused",
397    "inputs": [],
398    "outputs": [
399      {
400        "name": "",
401        "type": "uint256",
402        "internalType": "uint256"
403      }
404    ],
405    "stateMutability": "view"
406  },
407  {
408    "type": "function",
409    "name": "pauserRegistry",
410    "inputs": [],
411    "outputs": [
412      {
413        "name": "",
414        "type": "address",
415        "internalType": "contract IPauserRegistry"
416      }
417    ],
418    "stateMutability": "view"
419  },
420  {
421    "type": "function",
422    "name": "podOwnerDepositShares",
423    "inputs": [
424      {
425        "name": "podOwner",
426        "type": "address",
427        "internalType": "address"
428      }
429    ],
430    "outputs": [
431      {
432        "name": "shares",
433        "type": "int256",
434        "internalType": "int256"
435      }
436    ],
437    "stateMutability": "view"
438  },
439  {
440    "type": "function",
441    "name": "recordBeaconChainETHBalanceUpdate",
442    "inputs": [
443      {
444        "name": "podOwner",
445        "type": "address",
446        "internalType": "address"
447      },
448      {
449        "name": "prevRestakedBalanceWei",
450        "type": "uint256",
451        "internalType": "uint256"
452      },
453      {
454        "name": "balanceDeltaWei",
455        "type": "int256",
456        "internalType": "int256"
457      }
458    ],
459    "outputs": [],
460    "stateMutability": "nonpayable"
461  },
462  {
463    "type": "function",
464    "name": "removeDepositShares",
465    "inputs": [
466      {
467        "name": "staker",
468        "type": "address",
469        "internalType": "address"
470      },
471      {
472        "name": "strategy",
473        "type": "address",
474        "internalType": "contract IStrategy"
475      },
476      {
477        "name": "depositSharesToRemove",
478        "type": "uint256",
479        "internalType": "uint256"
480      }
481    ],
482    "outputs": [
483      {
484        "name": "",
485        "type": "uint256",
486        "internalType": "uint256"
487      }
488    ],
489    "stateMutability": "nonpayable"
490  },
491  {
492    "type": "function",
493    "name": "renounceOwnership",
494    "inputs": [],
495    "outputs": [],
496    "stateMutability": "nonpayable"
497  },
498  {
499    "type": "function",
500    "name": "stake",
501    "inputs": [
502      {
503        "name": "pubkey",
504        "type": "bytes",
505        "internalType": "bytes"
506      },
507      {
508        "name": "signature",
509        "type": "bytes",
510        "internalType": "bytes"
511      },
512      {
513        "name": "depositDataRoot",
514        "type": "bytes32",
515        "internalType": "bytes32"
516      }
517    ],
518    "outputs": [],
519    "stateMutability": "payable"
520  },
521  {
522    "type": "function",
523    "name": "stakerDepositShares",
524    "inputs": [
525      {
526        "name": "user",
527        "type": "address",
528        "internalType": "address"
529      },
530      {
531        "name": "strategy",
532        "type": "address",
533        "internalType": "contract IStrategy"
534      }
535    ],
536    "outputs": [
537      {
538        "name": "depositShares",
539        "type": "uint256",
540        "internalType": "uint256"
541      }
542    ],
543    "stateMutability": "view"
544  },
545  {
546    "type": "function",
547    "name": "transferOwnership",
548    "inputs": [
549      {
550        "name": "newOwner",
551        "type": "address",
552        "internalType": "address"
553      }
554    ],
555    "outputs": [],
556    "stateMutability": "nonpayable"
557  },
558  {
559    "type": "function",
560    "name": "unpause",
561    "inputs": [
562      {
563        "name": "newPausedStatus",
564        "type": "uint256",
565        "internalType": "uint256"
566      }
567    ],
568    "outputs": [],
569    "stateMutability": "nonpayable"
570  },
571  {
572    "type": "function",
573    "name": "version",
574    "inputs": [],
575    "outputs": [
576      {
577        "name": "",
578        "type": "string",
579        "internalType": "string"
580      }
581    ],
582    "stateMutability": "view"
583  },
584  {
585    "type": "function",
586    "name": "withdrawSharesAsTokens",
587    "inputs": [
588      {
589        "name": "staker",
590        "type": "address",
591        "internalType": "address"
592      },
593      {
594        "name": "strategy",
595        "type": "address",
596        "internalType": "contract IStrategy"
597      },
598      {
599        "name": "",
600        "type": "address",
601        "internalType": "contract IERC20"
602      },
603      {
604        "name": "shares",
605        "type": "uint256",
606        "internalType": "uint256"
607      }
608    ],
609    "outputs": [],
610    "stateMutability": "nonpayable"
611  },
612  {
613    "type": "event",
614    "name": "BeaconChainETHDeposited",
615    "inputs": [
616      {
617        "name": "podOwner",
618        "type": "address",
619        "indexed": true,
620        "internalType": "address"
621      },
622      {
623        "name": "amount",
624        "type": "uint256",
625        "indexed": false,
626        "internalType": "uint256"
627      }
628    ],
629    "anonymous": false
630  },
631  {
632    "type": "event",
633    "name": "BeaconChainETHWithdrawalCompleted",
634    "inputs": [
635      {
636        "name": "podOwner",
637        "type": "address",
638        "indexed": true,
639        "internalType": "address"
640      },
641      {
642        "name": "shares",
643        "type": "uint256",
644        "indexed": false,
645        "internalType": "uint256"
646      },
647      {
648        "name": "nonce",
649        "type": "uint96",
650        "indexed": false,
651        "internalType": "uint96"
652      },
653      {
654        "name": "delegatedAddress",
655        "type": "address",
656        "indexed": false,
657        "internalType": "address"
658      },
659      {
660        "name": "withdrawer",
661        "type": "address",
662        "indexed": false,
663        "internalType": "address"
664      },
665      {
666        "name": "withdrawalRoot",
667        "type": "bytes32",
668        "indexed": false,
669        "internalType": "bytes32"
670      }
671    ],
672    "anonymous": false
673  },
674  {
675    "type": "event",
676    "name": "BeaconChainSlashingFactorDecreased",
677    "inputs": [
678      {
679        "name": "staker",
680        "type": "address",
681        "indexed": false,
682        "internalType": "address"
683      },
684      {
685        "name": "prevBeaconChainSlashingFactor",
686        "type": "uint64",
687        "indexed": false,
688        "internalType": "uint64"
689      },
690      {
691        "name": "newBeaconChainSlashingFactor",
692        "type": "uint64",
693        "indexed": false,
694        "internalType": "uint64"
695      }
696    ],
697    "anonymous": false
698  },
699  {
700    "type": "event",
701    "name": "BurnableETHSharesIncreased",
702    "inputs": [
703      {
704        "name": "shares",
705        "type": "uint256",
706        "indexed": false,
707        "internalType": "uint256"
708      }
709    ],
710    "anonymous": false
711  },
712  {
713    "type": "event",
714    "name": "Initialized",
715    "inputs": [
716      {
717        "name": "version",
718        "type": "uint8",
719        "indexed": false,
720        "internalType": "uint8"
721      }
722    ],
723    "anonymous": false
724  },
725  {
726    "type": "event",
727    "name": "NewTotalShares",
728    "inputs": [
729      {
730        "name": "podOwner",
731        "type": "address",
732        "indexed": true,
733        "internalType": "address"
734      },
735      {
736        "name": "newTotalShares",
737        "type": "int256",
738        "indexed": false,
739        "internalType": "int256"
740      }
741    ],
742    "anonymous": false
743  },
744  {
745    "type": "event",
746    "name": "OwnershipTransferred",
747    "inputs": [
748      {
749        "name": "previousOwner",
750        "type": "address",
751        "indexed": true,
752        "internalType": "address"
753      },
754      {
755        "name": "newOwner",
756        "type": "address",
757        "indexed": true,
758        "internalType": "address"
759      }
760    ],
761    "anonymous": false
762  },
763  {
764    "type": "event",
765    "name": "Paused",
766    "inputs": [
767      {
768        "name": "account",
769        "type": "address",
770        "indexed": true,
771        "internalType": "address"
772      },
773      {
774        "name": "newPausedStatus",
775        "type": "uint256",
776        "indexed": false,
777        "internalType": "uint256"
778      }
779    ],
780    "anonymous": false
781  },
782  {
783    "type": "event",
784    "name": "PodDeployed",
785    "inputs": [
786      {
787        "name": "eigenPod",
788        "type": "address",
789        "indexed": true,
790        "internalType": "address"
791      },
792      {
793        "name": "podOwner",
794        "type": "address",
795        "indexed": true,
796        "internalType": "address"
797      }
798    ],
799    "anonymous": false
800  },
801  {
802    "type": "event",
803    "name": "PodSharesUpdated",
804    "inputs": [
805      {
806        "name": "podOwner",
807        "type": "address",
808        "indexed": true,
809        "internalType": "address"
810      },
811      {
812        "name": "sharesDelta",
813        "type": "int256",
814        "indexed": false,
815        "internalType": "int256"
816      }
817    ],
818    "anonymous": false
819  },
820  {
821    "type": "event",
822    "name": "Unpaused",
823    "inputs": [
824      {
825        "name": "account",
826        "type": "address",
827        "indexed": true,
828        "internalType": "address"
829      },
830      {
831        "name": "newPausedStatus",
832        "type": "uint256",
833        "indexed": false,
834        "internalType": "uint256"
835      }
836    ],
837    "anonymous": false
838  },
839  {
840    "type": "error",
841    "name": "CurrentlyPaused",
842    "inputs": []
843  },
844  {
845    "type": "error",
846    "name": "EigenPodAlreadyExists",
847    "inputs": []
848  },
849  {
850    "type": "error",
851    "name": "InputAddressZero",
852    "inputs": []
853  },
854  {
855    "type": "error",
856    "name": "InvalidNewPausedStatus",
857    "inputs": []
858  },
859  {
860    "type": "error",
861    "name": "InvalidShortString",
862    "inputs": []
863  },
864  {
865    "type": "error",
866    "name": "InvalidStrategy",
867    "inputs": []
868  },
869  {
870    "type": "error",
871    "name": "LegacyWithdrawalsNotCompleted",
872    "inputs": []
873  },
874  {
875    "type": "error",
876    "name": "OnlyDelegationManager",
877    "inputs": []
878  },
879  {
880    "type": "error",
881    "name": "OnlyEigenPod",
882    "inputs": []
883  },
884  {
885    "type": "error",
886    "name": "OnlyPauser",
887    "inputs": []
888  },
889  {
890    "type": "error",
891    "name": "OnlyUnpauser",
892    "inputs": []
893  },
894  {
895    "type": "error",
896    "name": "SharesNegative",
897    "inputs": []
898  },
899  {
900    "type": "error",
901    "name": "SharesNotMultipleOfGwei",
902    "inputs": []
903  },
904  {
905    "type": "error",
906    "name": "StringTooLong",
907    "inputs": [
908      {
909        "name": "str",
910        "type": "string",
911        "internalType": "string"
912      }
913    ]
914  }
915]
916```*/
917#[allow(
918    non_camel_case_types,
919    non_snake_case,
920    clippy::pub_underscore_fields,
921    clippy::style,
922    clippy::empty_structs_with_brackets
923)]
924pub mod EigenPodManager {
925    use super::*;
926    use alloy::sol_types as alloy_sol_types;
927    /// The creation / init bytecode of the contract.
928    ///
929    /// ```text
930    ///0x610120604052348015610010575f5ffd5b50604051612dd8380380612dd883398101604081905261002f916101e4565b80858585856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05290821660c0521660e05261008281610099565b610100525061008f6100df565b5050505050610338565b5f5f829050601f815111156100cc578260405163305a27a960e01b81526004016100c391906102e0565b60405180910390fd5b80516100d782610312565b179392505050565b5f54610100900460ff16156101465760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100c3565b5f5460ff90811614610195575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101ab575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101dc5781810151838201526020016101c4565b50505f910152565b5f5f5f5f5f60a086880312156101f8575f5ffd5b855161020381610197565b602087015190955061021481610197565b604087015190945061022581610197565b606087015190935061023681610197565b60808701519092506001600160401b03811115610251575f5ffd5b8601601f81018813610261575f5ffd5b80516001600160401b0381111561027a5761027a6101ae565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102a8576102a86101ae565b6040528181528282016020018a10156102bf575f5ffd5b6102d08260208301602086016101c2565b8093505050509295509295909350565b602081525f82518060208401526102fe8160408501602087016101c2565b601f01601f19169190910160400192915050565b80516020808301519190811015610332575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161010051612a166103c25f395f610a0e01525f818161055c015281816107090152818161096401528181610b0301528181610ebd01528181610f72015261120601525f81816101fb01528181611008015261182101525f61036301525f81816103aa0152818161063e01528181610a4c015261131a0152612a165ff3fe6080604052600436106101c5575f3560e01c80639b4e4634116100f2578063d48e889411610092578063f5d4fed311610062578063f5d4fed31461059d578063f6848d24146105b2578063fabc1cbc146105eb578063fe243a171461060a575f5ffd5b8063d48e889414610501578063debe1eab1461052c578063ea4d3c9b1461054b578063f2fde38b1461057e575f5ffd5b8063a38406a3116100cd578063a38406a314610476578063a3d75e0914610495578063a6a509be146104cd578063cd6dc687146104e2575f5ffd5b80639b4e4634146104105780639ba0627514610423578063a1ca780b14610457575f5ffd5b80635c975abb1161016857806384d810621161013857806384d8106214610385578063886f1195146103995780638da5cb5b146103cc5780639104c319146103e9575f5ffd5b80635c975abb14610301578063715018a61461031f578063724af4231461033357806374cdd79814610352575f5ffd5b806350ff7225116101a357806350ff72251461025957806354fd4d501461028d578063595c6a67146102ae5780635ac86ab7146102c2575f5ffd5b8063136439dd146101c9578063292b7b2b146101ea5780632eae418c1461023a575b5f5ffd5b3480156101d4575f5ffd5b506101e86101e3366004611c73565b610629565b005b3480156101f5575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610245575f5ffd5b506101e8610254366004611c9e565b6106fe565b348015610264575f5ffd5b50610278610273366004611cec565b610957565b60408051928352602083019190915201610231565b348015610298575f5ffd5b506102a1610a07565b6040516102319190611d4c565b3480156102b9575f5ffd5b506101e8610a37565b3480156102cd575f5ffd5b506102f16102dc366004611d7e565b606654600160ff9092169190911b9081161490565b6040519015158152602001610231565b34801561030c575f5ffd5b506066545b604051908152602001610231565b34801561032a575f5ffd5b506101e8610ae6565b34801561033e575f5ffd5b5061031161034d366004611cec565b610af7565b34801561035d575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610390575f5ffd5b5061021d610c3c565b3480156103a4575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d7575f5ffd5b506033546001600160a01b031661021d565b3480156103f4575f5ffd5b5061021d73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6101e861041e366004611ddc565b610cbe565b34801561042e575f5ffd5b5061021d61043d366004611e4f565b60986020525f90815260409020546001600160a01b031681565b348015610462575f5ffd5b506101e8610471366004611e6a565b610d8d565b348015610481575f5ffd5b5061021d610490366004611e4f565b610fae565b3480156104a0575f5ffd5b506104b46104af366004611e4f565b61107f565b60405167ffffffffffffffff9091168152602001610231565b3480156104d8575f5ffd5b5061031160995481565b3480156104ed575f5ffd5b506101e86104fc366004611e9c565b6110df565b34801561050c575f5ffd5b5061031161051b366004611e4f565b609b6020525f908152604090205481565b348015610537575f5ffd5b506101e8610546366004611e9c565b6111fb565b348015610556575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610589575f5ffd5b506101e8610598366004611e4f565b61129f565b3480156105a8575f5ffd5b50610311609e5481565b3480156105bd575f5ffd5b506102f16105cc366004611e4f565b6001600160a01b039081165f9081526098602052604090205416151590565b3480156105f6575f5ffd5b506101e8610605366004611c73565b611318565b348015610615575f5ffd5b50610311610624366004611ec6565b61142e565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561068b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190611efd565b6106cc57604051631d77d47760e21b815260040160405180910390fd5b60665481811681146106f15760405163c61dca5d60e01b815260040160405180910390fd5b6106fa826114ae565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107475760405163f739589b60e01b815260040160405180910390fd5b61074f6114eb565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461078c57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0384166107b3576040516339b190bb60e11b815260040160405180910390fd5b5f81136107d35760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b60205260408120549082908212156108cd575f6107ff83611f30565b90505f8185111561081d5750806108168186611f4a565b9250610823565b505f9150835b5f61082e8286611f5d565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c61939061087e9085815260200190565b60405180910390a2886001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098826040516108c191815260200190565b60405180910390a25050505b8015610945576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015b5f604051808303815f87803b15801561092e575f5ffd5b505af1158015610940573d5f5f3e3d5ffd5b505050505b5050610951600160c955565b50505050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a25760405163f739589b60e01b815260040160405180910390fd5b6109aa6114eb565b6001600160a01b03841673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146109e757604051632711b74d60e11b815260040160405180910390fd5b6109f18584611544565b915091506109ff600160c955565b935093915050565b6060610a327f000000000000000000000000000000000000000000000000000000000000000061168b565b905090565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a99573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abd9190611efd565b610ada57604051631d77d47760e21b815260040160405180910390fd5b610ae45f196114ae565b565b610aee6116c8565b610ae45f611722565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b415760405163f739589b60e01b815260040160405180910390fd5b610b496114eb565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610b8657604051632711b74d60e11b815260040160405180910390fd5b5f610b9083611773565b6001600160a01b0386165f908152609b6020526040902054610bb29190611f84565b90505f811215610bd55760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0385165f818152609b602052604090819020839055517fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe07709890610c219084815260200190565b60405180910390a29050610c35600160c955565b9392505050565b6066545f908190600190811603610c665760405163840a48d560e01b815260040160405180910390fd5b610c6e6114eb565b335f908152609860205260409020546001600160a01b031615610ca45760405163031a852160e21b815260040160405180910390fd5b5f610cad6117dc565b925050610cba600160c955565b5090565b6066545f90600190811603610ce65760405163840a48d560e01b815260040160405180910390fd5b610cee6114eb565b335f908152609860205260409020546001600160a01b031680610d1657610d136117dc565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610d4c908b908b908b908b908b90600401611fd2565b5f604051808303818588803b158015610d63575f5ffd5b505af1158015610d75573d5f5f3e3d5ffd5b505050505050610d85600160c955565b505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610dc8576040516312e16d7160e11b815260040160405180910390fd5b610dd06114eb565b6001600160a01b038416610df7576040516339b190bb60e11b815260040160405180910390fd5b610e05633b9aca008361201f565b15610e23576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610e5c57604051634b692bcf60e01b815260040160405180910390fd5b5f831315610f1d575f5f610e708786611544565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610f00575f5ffd5b505af1158015610f12573d5f5f3e3d5ffd5b505050505050610fa3565b5f831215610fa3575f610f398686610f3487611f30565b611937565b60405163305068e760e11b81526001600160a01b0388811660048301526024820185905267ffffffffffffffff831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce90606401610917565b50610951600160c955565b6001600160a01b038082165f908152609860205260408120549091168061107957611076836001600160a01b03165f1b60405180610940016040528061090e81526020016120d361090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f198184030181529082905261105b929160200161203e565b60405160208183030381529060405280519060200120611a30565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff8116151580835261010090910467ffffffffffffffff1692820192909252906110d557670de0b6b3a7640000610c35565b6020015192915050565b5f54610100900460ff16158080156110fd57505f54600160ff909116105b806111165750303b15801561111657505f5460ff166001145b61117e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561119f575f805461ff0019166101001790555b6111a883611722565b6111b1826114ae565b80156111f6575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405163f739589b60e01b815260040160405180910390fd5b61124c6114eb565b80609e5f82825461125d919061206c565b90915550506040518181527f1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a49060200160405180910390a16106fa600160c955565b6112a76116c8565b6001600160a01b03811661130c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611175565b61131581611722565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611374573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611398919061207f565b6001600160a01b0316336001600160a01b0316146113c95760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146113f05760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461146c57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b6020526040812054126114a6576001600160a01b0383165f908152609b6020526040902054611076565b505f92915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b600260c9540361153d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611175565b600260c955565b5f806001600160a01b03841661156d576040516339b190bb60e11b815260040160405180910390fd5b5f83121561158e5760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205484916115b28383611f5d565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906116029086815260200190565b60405180910390a2866001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe0770988260405161164591815260200190565b60405180910390a25f8113611662575f5f94509450505050611684565b5f821215611677575f94509250611684915050565b5092508391506116849050565b9250929050565b60605f61169783611a3c565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b03163314610ae45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611175565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160ff1b03821115610cba5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611175565b5f60995f81546117eb9061209a565b9091555060408051610940810190915261090e8082525f9161188891839133916120d36020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f1981840301815290829052611874929160200161203e565b604051602081830303815290604052611a63565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de8906024015f604051808303815f87803b1580156118c9575f5ffd5b505af11580156118db573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b5f806119438385611f4a565b90505f61194f8661107f565b90505f61196767ffffffffffffffff83168488611b65565b90505f61197482846120b2565b6040805180820182526001815267ffffffffffffffff85811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f611076838330611c4a565b5f60ff8216601f81111561107957604051632cd44ac360e21b815260040160405180910390fd5b5f83471015611ab45760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401611175565b81515f03611b045760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401611175565b8282516020840186f590506001600160a01b038116610c355760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401611175565b5f80805f19858709858702925082811083820303915050805f03611b9c57838281611b9257611b9261200b565b0492505050610c35565b808411611be35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401611175565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b5f60208284031215611c83575f5ffd5b5035919050565b6001600160a01b0381168114611315575f5ffd5b5f5f5f5f60808587031215611cb1575f5ffd5b8435611cbc81611c8a565b93506020850135611ccc81611c8a565b92506040850135611cdc81611c8a565b9396929550929360600135925050565b5f5f5f60608486031215611cfe575f5ffd5b8335611d0981611c8a565b92506020840135611d1981611c8a565b929592945050506040919091013590565b5f5b83811015611d44578181015183820152602001611d2c565b50505f910152565b602081525f8251806020840152611d6a816040850160208701611d2a565b601f01601f19169190910160400192915050565b5f60208284031215611d8e575f5ffd5b813560ff81168114610c35575f5ffd5b5f5f83601f840112611dae575f5ffd5b50813567ffffffffffffffff811115611dc5575f5ffd5b602083019150836020828501011115611684575f5ffd5b5f5f5f5f5f60608688031215611df0575f5ffd5b853567ffffffffffffffff811115611e06575f5ffd5b611e1288828901611d9e565b909650945050602086013567ffffffffffffffff811115611e31575f5ffd5b611e3d88828901611d9e565b96999598509660400135949350505050565b5f60208284031215611e5f575f5ffd5b8135610c3581611c8a565b5f5f5f60608486031215611e7c575f5ffd5b8335611e8781611c8a565b95602085013595506040909401359392505050565b5f5f60408385031215611ead575f5ffd5b8235611eb881611c8a565b946020939093013593505050565b5f5f60408385031215611ed7575f5ffd5b8235611ee281611c8a565b91506020830135611ef281611c8a565b809150509250929050565b5f60208284031215611f0d575f5ffd5b81518015158114610c35575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611f4457611f44611f1c565b505f0390565b8181038181111561107957611079611f1c565b8082018281125f831280158216821582161715611f7c57611f7c611f1c565b505092915050565b8181035f831280158383131683831282161715611fa357611fa3611f1c565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f611fe5606083018789611faa565b8281036020840152611ff8818688611faa565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261203957634e487b7160e01b5f52601260045260245ffd5b500790565b5f835161204f818460208801611d2a565b835190830190612063818360208801611d2a565b01949350505050565b8082018082111561107957611079611f1c565b5f6020828403121561208f575f5ffd5b8151610c3581611c8a565b5f600182016120ab576120ab611f1c565b5060010190565b67ffffffffffffffff828116828216039081111561107957611079611f1c56fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220515e903531b8caf4fba797eb3e14ca2048200984df365353a07546c8420f181b64736f6c634300081b0033
931    /// ```
932    #[rustfmt::skip]
933    #[allow(clippy::all)]
934    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
935        b"a\x01 `@R4\x80\x15a\0\x10W__\xFD[P`@Qa-\xD88\x03\x80a-\xD8\x839\x81\x01`@\x81\x90Ra\0/\x91a\x01\xE4V[\x80\x85\x85\x85\x85`\x01`\x01`\xA0\x1B\x03\x81\x16a\0[W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\x80R\x92\x83\x16`\xA0R\x90\x82\x16`\xC0R\x16`\xE0Ra\0\x82\x81a\0\x99V[a\x01\0RPa\0\x8Fa\0\xDFV[PPPPPa\x038V[__\x82\x90P`\x1F\x81Q\x11\x15a\0\xCCW\x82`@Qc0Z'\xA9`\xE0\x1B\x81R`\x04\x01a\0\xC3\x91\x90a\x02\xE0V[`@Q\x80\x91\x03\x90\xFD[\x80Qa\0\xD7\x82a\x03\x12V[\x17\x93\x92PPPV[_Ta\x01\0\x90\x04`\xFF\x16\x15a\x01FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01a\0\xC3V[_T`\xFF\x90\x81\x16\x14a\x01\x95W_\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\xABW__\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_[\x83\x81\x10\x15a\x01\xDCW\x81\x81\x01Q\x83\x82\x01R` \x01a\x01\xC4V[PP_\x91\x01RV[_____`\xA0\x86\x88\x03\x12\x15a\x01\xF8W__\xFD[\x85Qa\x02\x03\x81a\x01\x97V[` \x87\x01Q\x90\x95Pa\x02\x14\x81a\x01\x97V[`@\x87\x01Q\x90\x94Pa\x02%\x81a\x01\x97V[``\x87\x01Q\x90\x93Pa\x026\x81a\x01\x97V[`\x80\x87\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02QW__\xFD[\x86\x01`\x1F\x81\x01\x88\x13a\x02aW__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02zWa\x02za\x01\xAEV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x02\xA8Wa\x02\xA8a\x01\xAEV[`@R\x81\x81R\x82\x82\x01` \x01\x8A\x10\x15a\x02\xBFW__\xFD[a\x02\xD0\x82` \x83\x01` \x86\x01a\x01\xC2V[\x80\x93PPPP\x92\x95P\x92\x95\x90\x93PV[` \x81R_\x82Q\x80` \x84\x01Ra\x02\xFE\x81`@\x85\x01` \x87\x01a\x01\xC2V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x032W_\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa*\x16a\x03\xC2_9_a\n\x0E\x01R_\x81\x81a\x05\\\x01R\x81\x81a\x07\t\x01R\x81\x81a\td\x01R\x81\x81a\x0B\x03\x01R\x81\x81a\x0E\xBD\x01R\x81\x81a\x0Fr\x01Ra\x12\x06\x01R_\x81\x81a\x01\xFB\x01R\x81\x81a\x10\x08\x01Ra\x18!\x01R_a\x03c\x01R_\x81\x81a\x03\xAA\x01R\x81\x81a\x06>\x01R\x81\x81a\nL\x01Ra\x13\x1A\x01Ra*\x16_\xF3\xFE`\x80`@R`\x046\x10a\x01\xC5W_5`\xE0\x1C\x80c\x9BNF4\x11a\0\xF2W\x80c\xD4\x8E\x88\x94\x11a\0\x92W\x80c\xF5\xD4\xFE\xD3\x11a\0bW\x80c\xF5\xD4\xFE\xD3\x14a\x05\x9DW\x80c\xF6\x84\x8D$\x14a\x05\xB2W\x80c\xFA\xBC\x1C\xBC\x14a\x05\xEBW\x80c\xFE$:\x17\x14a\x06\nW__\xFD[\x80c\xD4\x8E\x88\x94\x14a\x05\x01W\x80c\xDE\xBE\x1E\xAB\x14a\x05,W\x80c\xEAM<\x9B\x14a\x05KW\x80c\xF2\xFD\xE3\x8B\x14a\x05~W__\xFD[\x80c\xA3\x84\x06\xA3\x11a\0\xCDW\x80c\xA3\x84\x06\xA3\x14a\x04vW\x80c\xA3\xD7^\t\x14a\x04\x95W\x80c\xA6\xA5\t\xBE\x14a\x04\xCDW\x80c\xCDm\xC6\x87\x14a\x04\xE2W__\xFD[\x80c\x9BNF4\x14a\x04\x10W\x80c\x9B\xA0bu\x14a\x04#W\x80c\xA1\xCAx\x0B\x14a\x04WW__\xFD[\x80c\\\x97Z\xBB\x11a\x01hW\x80c\x84\xD8\x10b\x11a\x018W\x80c\x84\xD8\x10b\x14a\x03\x85W\x80c\x88o\x11\x95\x14a\x03\x99W\x80c\x8D\xA5\xCB[\x14a\x03\xCCW\x80c\x91\x04\xC3\x19\x14a\x03\xE9W__\xFD[\x80c\\\x97Z\xBB\x14a\x03\x01W\x80cqP\x18\xA6\x14a\x03\x1FW\x80crJ\xF4#\x14a\x033W\x80ct\xCD\xD7\x98\x14a\x03RW__\xFD[\x80cP\xFFr%\x11a\x01\xA3W\x80cP\xFFr%\x14a\x02YW\x80cT\xFDMP\x14a\x02\x8DW\x80cY\\jg\x14a\x02\xAEW\x80cZ\xC8j\xB7\x14a\x02\xC2W__\xFD[\x80c\x13d9\xDD\x14a\x01\xC9W\x80c)+{+\x14a\x01\xEAW\x80c.\xAEA\x8C\x14a\x02:W[__\xFD[4\x80\x15a\x01\xD4W__\xFD[Pa\x01\xE8a\x01\xE36`\x04a\x1CsV[a\x06)V[\0[4\x80\x15a\x01\xF5W__\xFD[Pa\x02\x1D\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\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02EW__\xFD[Pa\x01\xE8a\x02T6`\x04a\x1C\x9EV[a\x06\xFEV[4\x80\x15a\x02dW__\xFD[Pa\x02xa\x02s6`\x04a\x1C\xECV[a\tWV[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x021V[4\x80\x15a\x02\x98W__\xFD[Pa\x02\xA1a\n\x07V[`@Qa\x021\x91\x90a\x1DLV[4\x80\x15a\x02\xB9W__\xFD[Pa\x01\xE8a\n7V[4\x80\x15a\x02\xCDW__\xFD[Pa\x02\xF1a\x02\xDC6`\x04a\x1D~V[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`@Q\x90\x15\x15\x81R` \x01a\x021V[4\x80\x15a\x03\x0CW__\xFD[P`fT[`@Q\x90\x81R` \x01a\x021V[4\x80\x15a\x03*W__\xFD[Pa\x01\xE8a\n\xE6V[4\x80\x15a\x03>W__\xFD[Pa\x03\x11a\x03M6`\x04a\x1C\xECV[a\n\xF7V[4\x80\x15a\x03]W__\xFD[Pa\x02\x1D\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\x81V[4\x80\x15a\x03\x90W__\xFD[Pa\x02\x1Da\x0C<V[4\x80\x15a\x03\xA4W__\xFD[Pa\x02\x1D\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\x81V[4\x80\x15a\x03\xD7W__\xFD[P`3T`\x01`\x01`\xA0\x1B\x03\x16a\x02\x1DV[4\x80\x15a\x03\xF4W__\xFD[Pa\x02\x1Ds\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x81V[a\x01\xE8a\x04\x1E6`\x04a\x1D\xDCV[a\x0C\xBEV[4\x80\x15a\x04.W__\xFD[Pa\x02\x1Da\x04=6`\x04a\x1EOV[`\x98` R_\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04bW__\xFD[Pa\x01\xE8a\x04q6`\x04a\x1EjV[a\r\x8DV[4\x80\x15a\x04\x81W__\xFD[Pa\x02\x1Da\x04\x906`\x04a\x1EOV[a\x0F\xAEV[4\x80\x15a\x04\xA0W__\xFD[Pa\x04\xB4a\x04\xAF6`\x04a\x1EOV[a\x10\x7FV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x021V[4\x80\x15a\x04\xD8W__\xFD[Pa\x03\x11`\x99T\x81V[4\x80\x15a\x04\xEDW__\xFD[Pa\x01\xE8a\x04\xFC6`\x04a\x1E\x9CV[a\x10\xDFV[4\x80\x15a\x05\x0CW__\xFD[Pa\x03\x11a\x05\x1B6`\x04a\x1EOV[`\x9B` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x057W__\xFD[Pa\x01\xE8a\x05F6`\x04a\x1E\x9CV[a\x11\xFBV[4\x80\x15a\x05VW__\xFD[Pa\x02\x1D\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\x81V[4\x80\x15a\x05\x89W__\xFD[Pa\x01\xE8a\x05\x986`\x04a\x1EOV[a\x12\x9FV[4\x80\x15a\x05\xA8W__\xFD[Pa\x03\x11`\x9ET\x81V[4\x80\x15a\x05\xBDW__\xFD[Pa\x02\xF1a\x05\xCC6`\x04a\x1EOV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16_\x90\x81R`\x98` R`@\x90 T\x16\x15\x15\x90V[4\x80\x15a\x05\xF6W__\xFD[Pa\x01\xE8a\x06\x056`\x04a\x1CsV[a\x13\x18V[4\x80\x15a\x06\x15W__\xFD[Pa\x03\x11a\x06$6`\x04a\x1E\xC6V[a\x14.V[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\x8BW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xAF\x91\x90a\x1E\xFDV[a\x06\xCCW`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\x06\xF1W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xFA\x82a\x14\xAEV[PPV[3`\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\x07GW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07Oa\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x07\x8CW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16a\x07\xB3W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x81\x13a\x07\xD3W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x82\x90\x82\x12\x15a\x08\xCDW_a\x07\xFF\x83a\x1F0V[\x90P_\x81\x85\x11\x15a\x08\x1DWP\x80a\x08\x16\x81\x86a\x1FJV[\x92Pa\x08#V[P_\x91P\x83[_a\x08.\x82\x86a\x1F]V[`\x01`\x01`\xA0\x1B\x03\x8A\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\x08~\x90\x85\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x88`\x01`\x01`\xA0\x1B\x03\x16\x7F\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98\x82`@Qa\x08\xC1\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPP[\x80\x15a\tEW`\x01`\x01`\xA0\x1B\x03\x86\x81\x16_\x81\x81R`\x98` R`@\x90\x81\x90 T\x90QcbH:!`\xE1\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01\x84\x90R\x90\x91\x16\x90c\xC4\x90tB\x90`D\x01[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\t.W__\xFD[PZ\xF1\x15\x80\x15a\t@W=__>=_\xFD[PPPP[PPa\tQ`\x01`\xC9UV[PPPPV[_\x803`\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\t\xA2W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\xAAa\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x84\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\t\xE7W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\xF1\x85\x84a\x15DV[\x91P\x91Pa\t\xFF`\x01`\xC9UV[\x93P\x93\x91PPV[``a\n2\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\0a\x16\x8BV[\x90P\x90V[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x99W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xBD\x91\x90a\x1E\xFDV[a\n\xDAW`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\n\xE4_\x19a\x14\xAEV[V[a\n\xEEa\x16\xC8V[a\n\xE4_a\x17\"V[_3`\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\x0BAW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BIa\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x0B\x86W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0B\x90\x83a\x17sV[`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\x9B` R`@\x90 Ta\x0B\xB2\x91\x90a\x1F\x84V[\x90P_\x81\x12\x15a\x0B\xD5W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x85\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x7F\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98\x90a\x0C!\x90\x84\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x90Pa\x0C5`\x01`\xC9UV[\x93\x92PPPV[`fT_\x90\x81\x90`\x01\x90\x81\x16\x03a\x0CfW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cna\x14\xEBV[3_\x90\x81R`\x98` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xA4W`@Qc\x03\x1A\x85!`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0C\xADa\x17\xDCV[\x92PPa\x0C\xBA`\x01`\xC9UV[P\x90V[`fT_\x90`\x01\x90\x81\x16\x03a\x0C\xE6W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xEEa\x14\xEBV[3_\x90\x81R`\x98` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\r\x16Wa\r\x13a\x17\xDCV[\x90P[`@Qc&\xD3\x91\x8D`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\x9BNF4\x904\x90a\rL\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90`\x04\x01a\x1F\xD2V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\rcW__\xFD[PZ\xF1\x15\x80\x15a\ruW=__>=_\xFD[PPPPPPa\r\x85`\x01`\xC9UV[PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\x98` R`@\x90 T\x84\x91\x163\x14a\r\xC8W`@Qc\x12\xE1mq`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\r\xD0a\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x84\x16a\r\xF7W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\x05c;\x9A\xCA\0\x83a \x1FV[\x15a\x0E#W`@QcG\xD0r\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x81\x12\x15a\x0E\\W`@QcKi+\xCF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x13\x15a\x0F\x1DW__a\x0Ep\x87\x86a\x15DV[`@Qc\x1E2\x8Ey`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\x04\x83\x01Rs\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0`$\x83\x01R`D\x82\x01\x84\x90R`d\x82\x01\x83\x90R\x92\x94P\x90\x92P\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\x90\x91\x16\x90c<e\x1C\xF2\x90`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x0F\0W__\xFD[PZ\xF1\x15\x80\x15a\x0F\x12W=__>=_\xFD[PPPPPPa\x0F\xA3V[_\x83\x12\x15a\x0F\xA3W_a\x0F9\x86\x86a\x0F4\x87a\x1F0V[a\x197V[`@Qc0Ph\xE7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`D\x83\x01R\x91\x92P\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\x90\x91\x16\x90c`\xA0\xD1\xCE\x90`d\x01a\t\x17V[Pa\tQ`\x01`\xC9UV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x98` R`@\x81 T\x90\x91\x16\x80a\x10yWa\x10v\x83`\x01`\x01`\xA0\x1B\x03\x16_\x1B`@Q\x80a\t@\x01`@R\x80a\t\x0E\x81R` \x01a \xD3a\t\x0E\x919`@\x80Q`\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` \x82\x01R\x80\x82\x01\x91\x90\x91R_``\x82\x01R`\x80\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x10[\x92\x91` \x01a >V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x1A0V[\x90P[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92RT`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x90\x91\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x82\x01\x92\x90\x92R\x90a\x10\xD5Wg\r\xE0\xB6\xB3\xA7d\0\0a\x0C5V[` \x01Q\x92\x91PPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x10\xFDWP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\x11\x16WP0;\x15\x80\x15a\x11\x16WP_T`\xFF\x16`\x01\x14[a\x11~W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x11\x9FW_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x11\xA8\x83a\x17\"V[a\x11\xB1\x82a\x14\xAEV[\x80\x15a\x11\xF6W_\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[3`\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\x12DW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12La\x14\xEBV[\x80`\x9E_\x82\x82Ta\x12]\x91\x90a lV[\x90\x91UPP`@Q\x81\x81R\x7F\x1E\xD0K\x7F\xD2b\xC0\xD9\xE5\x0F\xA0)W\xF3*\x81\xA1Q\xF0;\xAA\xA3g\xFA\xEE\xDCu!\xB0\x01\xC4\xA4\x90` \x01`@Q\x80\x91\x03\x90\xA1a\x06\xFA`\x01`\xC9UV[a\x12\xA7a\x16\xC8V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\x0CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x11uV[a\x13\x15\x81a\x17\"V[PV[\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\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13tW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x98\x91\x90a \x7FV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x13\xC9W`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a\x13\xF0W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`f\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[_`\x01`\x01`\xA0\x1B\x03\x82\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x14lW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x81 T\x12a\x14\xA6W`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x90 Ta\x10vV[P_\x92\x91PPV[`f\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\x02`\xC9T\x03a\x15=W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x11uV[`\x02`\xC9UV[_\x80`\x01`\x01`\xA0\x1B\x03\x84\x16a\x15mW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x12\x15a\x15\x8EW`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x84\x91a\x15\xB2\x83\x83a\x1F]V[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\x16\x02\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x86`\x01`\x01`\xA0\x1B\x03\x16\x7F\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98\x82`@Qa\x16E\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2_\x81\x13a\x16bW__\x94P\x94PPPPa\x16\x84V[_\x82\x12\x15a\x16wW_\x94P\x92Pa\x16\x84\x91PPV[P\x92P\x83\x91Pa\x16\x84\x90PV[\x92P\x92\x90PV[``_a\x16\x97\x83a\x1A<V[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\n\xE4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x11uV[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[_`\x01`\x01`\xFF\x1B\x03\x82\x11\x15a\x0C\xBAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`(`$\x82\x01R\x7FSafeCast: value doesn't fit in a`D\x82\x01Rg7\x104\xB7:\x19\x1A\x9B`\xC1\x1B`d\x82\x01R`\x84\x01a\x11uV[_`\x99_\x81Ta\x17\xEB\x90a \x9AV[\x90\x91UP`@\x80Qa\t@\x81\x01\x90\x91Ra\t\x0E\x80\x82R_\x91a\x18\x88\x91\x83\x913\x91a \xD3` \x83\x019`@\x80Q`\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` \x82\x01R\x80\x82\x01\x91\x90\x91R_``\x82\x01R`\x80\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x18t\x92\x91` \x01a >V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x1AcV[`@Qc\x18\x9A\xCD\xBD`\xE3\x1B\x81R3`\x04\x82\x01R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\xC4\xD6m\xE8\x90`$\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x18\xC9W__\xFD[PZ\xF1\x15\x80\x15a\x18\xDBW=__>=_\xFD[PP3_\x81\x81R`\x98` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x88\x16\x90\x81\x17\x90\x91U\x90Q\x92\x94P\x92P\x7F!\xC9\x9D\r\xB0\"\x13\xC3/\xFF[\x05\xCF\nq\x8A\xB5\xF8X\x80+\x91I\x8F\x80\xD8\"p(\x9D\x85j\x91\xA3\x91\x90PV[_\x80a\x19C\x83\x85a\x1FJV[\x90P_a\x19O\x86a\x10\x7FV[\x90P_a\x19gg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x84\x88a\x1BeV[\x90P_a\x19t\x82\x84a \xB2V[`@\x80Q\x80\x82\x01\x82R`\x01\x81Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16` \x80\x84\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16_\x81\x81R`\x9D\x84R\x87\x90 \x95Q\x86T\x92Qh\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x90\x15\x15h\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x19\x16\x17a\x01\0\x92\x86\x16\x92\x90\x92\x02\x91\x90\x91\x17\x90\x94U\x84Q\x93\x84R\x91\x88\x16\x91\x83\x01\x91\x90\x91R\x91\x81\x01\x91\x90\x91R\x90\x91P\x7F\xB1`\xAB\x85\x89\xBFG\xDC\x04\xEA\x11\xB5\rFg\x8D!Y\x0C\xEA.\xD3\xE4T\xE7\xBD>AQ\x0F\x98\xCF\x90``\x01`@Q\x80\x91\x03\x90\xA1\x97\x96PPPPPPPV[_a\x10v\x83\x830a\x1CJV[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x10yW`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83G\x10\x15a\x1A\xB4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FCreate2: insufficient balance\0\0\0`D\x82\x01R`d\x01a\x11uV[\x81Q_\x03a\x1B\x04W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FCreate2: bytecode length is zero`D\x82\x01R`d\x01a\x11uV[\x82\x82Q` \x84\x01\x86\xF5\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0C5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FCreate2: Failed on deploy\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11uV[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03a\x1B\x9CW\x83\x82\x81a\x1B\x92Wa\x1B\x92a \x0BV[\x04\x92PPPa\x0C5V[\x80\x84\x11a\x1B\xE3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a\x11uV[_\x84\x86\x88\t`\x02`\x01\x87\x19\x81\x01\x88\x16\x97\x88\x90\x04`\x03\x81\x02\x83\x18\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x90\x81\x02\x90\x92\x03\x90\x91\x02_\x88\x90\x03\x88\x90\x04\x90\x91\x01\x85\x83\x11\x90\x94\x03\x93\x90\x93\x02\x93\x03\x94\x90\x94\x04\x91\x90\x91\x17\x02\x94\x93PPPPV[_`@Q\x83`@\x82\x01R\x84` \x82\x01R\x82\x81R`\x0B\x81\x01\x90P`\xFF\x81S`U\x90 \x94\x93PPPPV[_` \x82\x84\x03\x12\x15a\x1C\x83W__\xFD[P5\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x13\x15W__\xFD[____`\x80\x85\x87\x03\x12\x15a\x1C\xB1W__\xFD[\x845a\x1C\xBC\x81a\x1C\x8AV[\x93P` \x85\x015a\x1C\xCC\x81a\x1C\x8AV[\x92P`@\x85\x015a\x1C\xDC\x81a\x1C\x8AV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[___``\x84\x86\x03\x12\x15a\x1C\xFEW__\xFD[\x835a\x1D\t\x81a\x1C\x8AV[\x92P` \x84\x015a\x1D\x19\x81a\x1C\x8AV[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[_[\x83\x81\x10\x15a\x1DDW\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D,V[PP_\x91\x01RV[` \x81R_\x82Q\x80` \x84\x01Ra\x1Dj\x81`@\x85\x01` \x87\x01a\x1D*V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x1D\x8EW__\xFD[\x815`\xFF\x81\x16\x81\x14a\x0C5W__\xFD[__\x83`\x1F\x84\x01\x12a\x1D\xAEW__\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1D\xC5W__\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x16\x84W__\xFD[_____``\x86\x88\x03\x12\x15a\x1D\xF0W__\xFD[\x855g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E\x06W__\xFD[a\x1E\x12\x88\x82\x89\x01a\x1D\x9EV[\x90\x96P\x94PP` \x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E1W__\xFD[a\x1E=\x88\x82\x89\x01a\x1D\x9EV[\x96\x99\x95\x98P\x96`@\x015\x94\x93PPPPV[_` \x82\x84\x03\x12\x15a\x1E_W__\xFD[\x815a\x0C5\x81a\x1C\x8AV[___``\x84\x86\x03\x12\x15a\x1E|W__\xFD[\x835a\x1E\x87\x81a\x1C\x8AV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[__`@\x83\x85\x03\x12\x15a\x1E\xADW__\xFD[\x825a\x1E\xB8\x81a\x1C\x8AV[\x94` \x93\x90\x93\x015\x93PPPV[__`@\x83\x85\x03\x12\x15a\x1E\xD7W__\xFD[\x825a\x1E\xE2\x81a\x1C\x8AV[\x91P` \x83\x015a\x1E\xF2\x81a\x1C\x8AV[\x80\x91PP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x1F\rW__\xFD[\x81Q\x80\x15\x15\x81\x14a\x0C5W__\xFD[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01`\xFF\x1B\x82\x01a\x1FDWa\x1FDa\x1F\x1CV[P_\x03\x90V[\x81\x81\x03\x81\x81\x11\x15a\x10yWa\x10ya\x1F\x1CV[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15a\x1F|Wa\x1F|a\x1F\x1CV[PP\x92\x91PPV[\x81\x81\x03_\x83\x12\x80\x15\x83\x83\x13\x16\x83\x83\x12\x82\x16\x17\x15a\x1F\xA3Wa\x1F\xA3a\x1F\x1CV[P\x92\x91PPV[\x81\x83R\x81\x81` \x85\x017P_\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[``\x81R_a\x1F\xE5``\x83\x01\x87\x89a\x1F\xAAV[\x82\x81\x03` \x84\x01Ra\x1F\xF8\x81\x86\x88a\x1F\xAAV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a 9WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x07\x90V[_\x83Qa O\x81\x84` \x88\x01a\x1D*V[\x83Q\x90\x83\x01\x90a c\x81\x83` \x88\x01a\x1D*V[\x01\x94\x93PPPPV[\x80\x82\x01\x80\x82\x11\x15a\x10yWa\x10ya\x1F\x1CV[_` \x82\x84\x03\x12\x15a \x8FW__\xFD[\x81Qa\x0C5\x81a\x1C\x8AV[_`\x01\x82\x01a \xABWa \xABa\x1F\x1CV[P`\x01\x01\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x10yWa\x10ya\x1F\x1CV\xFE`\x80`@R`@Qa\t\x0E8\x03\x80a\t\x0E\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x04`V[a\0.\x82\x82`\0a\x005V[PPa\x05\x8AV[a\0>\x83a\x01\0V[`@Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\x1C\xF3\xB0:l\xF1\x9F\xA2\xBA\xBAM\xF1H\xE9\xDC\xAB\xED\xEA\x7F\x8A\\\x07\x84\x0E ~\\\x08\x9B\xE9]>\x90`\0\x90\xA2`\0\x82Q\x11\x80a\0\x7FWP\x80[\x15a\0\xFBWa\0\xF9\x83`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xE9\x91\x90a\x05 V[\x83a\x02\xA3` \x1Ba\0)\x17` \x1CV[P[PPPV[a\x01\x13\x81a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x01rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC1967: new beacon is not a con`D\x82\x01Rd\x1D\x1C\x98X\xDD`\xDA\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xE6\x81`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xB3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD7\x91\x90a\x05 V[a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x02KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FERC1967: beacon implementation i`D\x82\x01Ro\x1C\xC8\x1B\x9B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`\x82\x1B`d\x82\x01R`\x84\x01a\x01iV[\x80a\x02\x82\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=P`\0\x1Ba\x02\xDE` \x1Ba\0d\x17` \x1CV[\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UPV[``a\x02\xC8\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x08\xE7`'\x919a\x02\xE1V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x02\xFE\x91\x90a\x05;V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x039W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03>V[``\x91P[P\x90\x92P\x90Pa\x03P\x86\x83\x83\x87a\x03ZV[\x96\x95PPPPPPV[``\x83\x15a\x03\xC6W\x82Qa\x03\xBFW`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x03\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01iV[P\x81a\x03\xD0V[a\x03\xD0\x83\x83a\x03\xD8V[\x94\x93PPPPV[\x81Q\x15a\x03\xE8W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01i\x91\x90a\x05WV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x04\x19W`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x04OW\x81\x81\x01Q\x83\x82\x01R` \x01a\x047V[\x83\x81\x11\x15a\0\xF9WPP`\0\x91\x01RV[`\0\x80`@\x83\x85\x03\x12\x15a\x04sW`\0\x80\xFD[a\x04|\x83a\x04\x02V[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x04\x99W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x04\xADW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x04\xBFWa\x04\xBFa\x04\x1EV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x04\xE7Wa\x04\xE7a\x04\x1EV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x05\0W`\0\x80\xFD[a\x05\x11\x83` \x83\x01` \x88\x01a\x044V[\x80\x95PPPPPP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x052W`\0\x80\xFD[a\x02\xC8\x82a\x04\x02V[`\0\x82Qa\x05M\x81\x84` \x87\x01a\x044V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x05v\x81`@\x85\x01` \x87\x01a\x044V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[a\x03N\x80a\x05\x99`\09`\0\xF3\xFE`\x80`@R6a\0\x13Wa\0\x11a\0\x17V[\0[a\0\x11[a\0'a\0\"a\0gV[a\x01\0V[V[``a\0N\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x02\xF2`'\x919a\x01$V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[`\0a\0\x9A\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xFB\x91\x90a\x02IV[\x90P\x90V[6`\0\x807`\0\x806`\0\x84Z\xF4=`\0\x80>\x80\x80\x15a\x01\x1FW=`\0\xF3[=`\0\xFD[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x01A\x91\x90a\x02\xA2V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x01|W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01\x81V[``\x91P[P\x91P\x91Pa\x01\x92\x86\x83\x83\x87a\x01\x9CV[\x96\x95PPPPPPV[``\x83\x15a\x02\rW\x82Qa\x02\x06W`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x02\x06W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P\x81a\x02\x17V[a\x02\x17\x83\x83a\x02\x1FV[\x94\x93PPPPV[\x81Q\x15a\x02/W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01\xFD\x91\x90a\x02\xBEV[`\0` \x82\x84\x03\x12\x15a\x02[W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0NW`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x02\x8DW\x81\x81\x01Q\x83\x82\x01R` \x01a\x02uV[\x83\x81\x11\x15a\x02\x9CW`\0\x84\x84\x01R[PPPPV[`\0\x82Qa\x02\xB4\x81\x84` \x87\x01a\x02rV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x02\xDD\x81`@\x85\x01` \x87\x01a\x02rV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFEAddress: low-level delegate call failed\xA2dipfsX\"\x12 \xD5\x1E\x81\xD3\xBC^\xD2\n&\xAE\xB0]\xCE~\x82\\P; a\xAAxb\x80'0\x0C\x8De\xB9\xD8\x9AdsolcC\0\x08\x0C\x003Address: low-level delegate call failed\xA2dipfsX\"\x12 Q^\x9051\xB8\xCA\xF4\xFB\xA7\x97\xEB>\x14\xCA H \t\x84\xDF6SS\xA0uF\xC8B\x0F\x18\x1BdsolcC\0\x08\x1B\x003",
936    );
937    /// The runtime bytecode of the contract, as deployed on the network.
938    ///
939    /// ```text
940    ///0x6080604052600436106101c5575f3560e01c80639b4e4634116100f2578063d48e889411610092578063f5d4fed311610062578063f5d4fed31461059d578063f6848d24146105b2578063fabc1cbc146105eb578063fe243a171461060a575f5ffd5b8063d48e889414610501578063debe1eab1461052c578063ea4d3c9b1461054b578063f2fde38b1461057e575f5ffd5b8063a38406a3116100cd578063a38406a314610476578063a3d75e0914610495578063a6a509be146104cd578063cd6dc687146104e2575f5ffd5b80639b4e4634146104105780639ba0627514610423578063a1ca780b14610457575f5ffd5b80635c975abb1161016857806384d810621161013857806384d8106214610385578063886f1195146103995780638da5cb5b146103cc5780639104c319146103e9575f5ffd5b80635c975abb14610301578063715018a61461031f578063724af4231461033357806374cdd79814610352575f5ffd5b806350ff7225116101a357806350ff72251461025957806354fd4d501461028d578063595c6a67146102ae5780635ac86ab7146102c2575f5ffd5b8063136439dd146101c9578063292b7b2b146101ea5780632eae418c1461023a575b5f5ffd5b3480156101d4575f5ffd5b506101e86101e3366004611c73565b610629565b005b3480156101f5575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610245575f5ffd5b506101e8610254366004611c9e565b6106fe565b348015610264575f5ffd5b50610278610273366004611cec565b610957565b60408051928352602083019190915201610231565b348015610298575f5ffd5b506102a1610a07565b6040516102319190611d4c565b3480156102b9575f5ffd5b506101e8610a37565b3480156102cd575f5ffd5b506102f16102dc366004611d7e565b606654600160ff9092169190911b9081161490565b6040519015158152602001610231565b34801561030c575f5ffd5b506066545b604051908152602001610231565b34801561032a575f5ffd5b506101e8610ae6565b34801561033e575f5ffd5b5061031161034d366004611cec565b610af7565b34801561035d575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610390575f5ffd5b5061021d610c3c565b3480156103a4575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d7575f5ffd5b506033546001600160a01b031661021d565b3480156103f4575f5ffd5b5061021d73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6101e861041e366004611ddc565b610cbe565b34801561042e575f5ffd5b5061021d61043d366004611e4f565b60986020525f90815260409020546001600160a01b031681565b348015610462575f5ffd5b506101e8610471366004611e6a565b610d8d565b348015610481575f5ffd5b5061021d610490366004611e4f565b610fae565b3480156104a0575f5ffd5b506104b46104af366004611e4f565b61107f565b60405167ffffffffffffffff9091168152602001610231565b3480156104d8575f5ffd5b5061031160995481565b3480156104ed575f5ffd5b506101e86104fc366004611e9c565b6110df565b34801561050c575f5ffd5b5061031161051b366004611e4f565b609b6020525f908152604090205481565b348015610537575f5ffd5b506101e8610546366004611e9c565b6111fb565b348015610556575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610589575f5ffd5b506101e8610598366004611e4f565b61129f565b3480156105a8575f5ffd5b50610311609e5481565b3480156105bd575f5ffd5b506102f16105cc366004611e4f565b6001600160a01b039081165f9081526098602052604090205416151590565b3480156105f6575f5ffd5b506101e8610605366004611c73565b611318565b348015610615575f5ffd5b50610311610624366004611ec6565b61142e565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561068b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190611efd565b6106cc57604051631d77d47760e21b815260040160405180910390fd5b60665481811681146106f15760405163c61dca5d60e01b815260040160405180910390fd5b6106fa826114ae565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107475760405163f739589b60e01b815260040160405180910390fd5b61074f6114eb565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461078c57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0384166107b3576040516339b190bb60e11b815260040160405180910390fd5b5f81136107d35760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b60205260408120549082908212156108cd575f6107ff83611f30565b90505f8185111561081d5750806108168186611f4a565b9250610823565b505f9150835b5f61082e8286611f5d565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c61939061087e9085815260200190565b60405180910390a2886001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098826040516108c191815260200190565b60405180910390a25050505b8015610945576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015b5f604051808303815f87803b15801561092e575f5ffd5b505af1158015610940573d5f5f3e3d5ffd5b505050505b5050610951600160c955565b50505050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a25760405163f739589b60e01b815260040160405180910390fd5b6109aa6114eb565b6001600160a01b03841673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146109e757604051632711b74d60e11b815260040160405180910390fd5b6109f18584611544565b915091506109ff600160c955565b935093915050565b6060610a327f000000000000000000000000000000000000000000000000000000000000000061168b565b905090565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a99573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abd9190611efd565b610ada57604051631d77d47760e21b815260040160405180910390fd5b610ae45f196114ae565b565b610aee6116c8565b610ae45f611722565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b415760405163f739589b60e01b815260040160405180910390fd5b610b496114eb565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610b8657604051632711b74d60e11b815260040160405180910390fd5b5f610b9083611773565b6001600160a01b0386165f908152609b6020526040902054610bb29190611f84565b90505f811215610bd55760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0385165f818152609b602052604090819020839055517fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe07709890610c219084815260200190565b60405180910390a29050610c35600160c955565b9392505050565b6066545f908190600190811603610c665760405163840a48d560e01b815260040160405180910390fd5b610c6e6114eb565b335f908152609860205260409020546001600160a01b031615610ca45760405163031a852160e21b815260040160405180910390fd5b5f610cad6117dc565b925050610cba600160c955565b5090565b6066545f90600190811603610ce65760405163840a48d560e01b815260040160405180910390fd5b610cee6114eb565b335f908152609860205260409020546001600160a01b031680610d1657610d136117dc565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610d4c908b908b908b908b908b90600401611fd2565b5f604051808303818588803b158015610d63575f5ffd5b505af1158015610d75573d5f5f3e3d5ffd5b505050505050610d85600160c955565b505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610dc8576040516312e16d7160e11b815260040160405180910390fd5b610dd06114eb565b6001600160a01b038416610df7576040516339b190bb60e11b815260040160405180910390fd5b610e05633b9aca008361201f565b15610e23576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610e5c57604051634b692bcf60e01b815260040160405180910390fd5b5f831315610f1d575f5f610e708786611544565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610f00575f5ffd5b505af1158015610f12573d5f5f3e3d5ffd5b505050505050610fa3565b5f831215610fa3575f610f398686610f3487611f30565b611937565b60405163305068e760e11b81526001600160a01b0388811660048301526024820185905267ffffffffffffffff831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce90606401610917565b50610951600160c955565b6001600160a01b038082165f908152609860205260408120549091168061107957611076836001600160a01b03165f1b60405180610940016040528061090e81526020016120d361090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f198184030181529082905261105b929160200161203e565b60405160208183030381529060405280519060200120611a30565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff8116151580835261010090910467ffffffffffffffff1692820192909252906110d557670de0b6b3a7640000610c35565b6020015192915050565b5f54610100900460ff16158080156110fd57505f54600160ff909116105b806111165750303b15801561111657505f5460ff166001145b61117e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561119f575f805461ff0019166101001790555b6111a883611722565b6111b1826114ae565b80156111f6575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405163f739589b60e01b815260040160405180910390fd5b61124c6114eb565b80609e5f82825461125d919061206c565b90915550506040518181527f1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a49060200160405180910390a16106fa600160c955565b6112a76116c8565b6001600160a01b03811661130c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611175565b61131581611722565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611374573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611398919061207f565b6001600160a01b0316336001600160a01b0316146113c95760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146113f05760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461146c57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b6020526040812054126114a6576001600160a01b0383165f908152609b6020526040902054611076565b505f92915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b600260c9540361153d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611175565b600260c955565b5f806001600160a01b03841661156d576040516339b190bb60e11b815260040160405180910390fd5b5f83121561158e5760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205484916115b28383611f5d565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906116029086815260200190565b60405180910390a2866001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe0770988260405161164591815260200190565b60405180910390a25f8113611662575f5f94509450505050611684565b5f821215611677575f94509250611684915050565b5092508391506116849050565b9250929050565b60605f61169783611a3c565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b03163314610ae45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611175565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160ff1b03821115610cba5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611175565b5f60995f81546117eb9061209a565b9091555060408051610940810190915261090e8082525f9161188891839133916120d36020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f1981840301815290829052611874929160200161203e565b604051602081830303815290604052611a63565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de8906024015f604051808303815f87803b1580156118c9575f5ffd5b505af11580156118db573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b5f806119438385611f4a565b90505f61194f8661107f565b90505f61196767ffffffffffffffff83168488611b65565b90505f61197482846120b2565b6040805180820182526001815267ffffffffffffffff85811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f611076838330611c4a565b5f60ff8216601f81111561107957604051632cd44ac360e21b815260040160405180910390fd5b5f83471015611ab45760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401611175565b81515f03611b045760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401611175565b8282516020840186f590506001600160a01b038116610c355760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401611175565b5f80805f19858709858702925082811083820303915050805f03611b9c57838281611b9257611b9261200b565b0492505050610c35565b808411611be35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401611175565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b5f60208284031215611c83575f5ffd5b5035919050565b6001600160a01b0381168114611315575f5ffd5b5f5f5f5f60808587031215611cb1575f5ffd5b8435611cbc81611c8a565b93506020850135611ccc81611c8a565b92506040850135611cdc81611c8a565b9396929550929360600135925050565b5f5f5f60608486031215611cfe575f5ffd5b8335611d0981611c8a565b92506020840135611d1981611c8a565b929592945050506040919091013590565b5f5b83811015611d44578181015183820152602001611d2c565b50505f910152565b602081525f8251806020840152611d6a816040850160208701611d2a565b601f01601f19169190910160400192915050565b5f60208284031215611d8e575f5ffd5b813560ff81168114610c35575f5ffd5b5f5f83601f840112611dae575f5ffd5b50813567ffffffffffffffff811115611dc5575f5ffd5b602083019150836020828501011115611684575f5ffd5b5f5f5f5f5f60608688031215611df0575f5ffd5b853567ffffffffffffffff811115611e06575f5ffd5b611e1288828901611d9e565b909650945050602086013567ffffffffffffffff811115611e31575f5ffd5b611e3d88828901611d9e565b96999598509660400135949350505050565b5f60208284031215611e5f575f5ffd5b8135610c3581611c8a565b5f5f5f60608486031215611e7c575f5ffd5b8335611e8781611c8a565b95602085013595506040909401359392505050565b5f5f60408385031215611ead575f5ffd5b8235611eb881611c8a565b946020939093013593505050565b5f5f60408385031215611ed7575f5ffd5b8235611ee281611c8a565b91506020830135611ef281611c8a565b809150509250929050565b5f60208284031215611f0d575f5ffd5b81518015158114610c35575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611f4457611f44611f1c565b505f0390565b8181038181111561107957611079611f1c565b8082018281125f831280158216821582161715611f7c57611f7c611f1c565b505092915050565b8181035f831280158383131683831282161715611fa357611fa3611f1c565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f611fe5606083018789611faa565b8281036020840152611ff8818688611faa565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261203957634e487b7160e01b5f52601260045260245ffd5b500790565b5f835161204f818460208801611d2a565b835190830190612063818360208801611d2a565b01949350505050565b8082018082111561107957611079611f1c565b5f6020828403121561208f575f5ffd5b8151610c3581611c8a565b5f600182016120ab576120ab611f1c565b5060010190565b67ffffffffffffffff828116828216039081111561107957611079611f1c56fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220515e903531b8caf4fba797eb3e14ca2048200984df365353a07546c8420f181b64736f6c634300081b0033
941    /// ```
942    #[rustfmt::skip]
943    #[allow(clippy::all)]
944    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
945        b"`\x80`@R`\x046\x10a\x01\xC5W_5`\xE0\x1C\x80c\x9BNF4\x11a\0\xF2W\x80c\xD4\x8E\x88\x94\x11a\0\x92W\x80c\xF5\xD4\xFE\xD3\x11a\0bW\x80c\xF5\xD4\xFE\xD3\x14a\x05\x9DW\x80c\xF6\x84\x8D$\x14a\x05\xB2W\x80c\xFA\xBC\x1C\xBC\x14a\x05\xEBW\x80c\xFE$:\x17\x14a\x06\nW__\xFD[\x80c\xD4\x8E\x88\x94\x14a\x05\x01W\x80c\xDE\xBE\x1E\xAB\x14a\x05,W\x80c\xEAM<\x9B\x14a\x05KW\x80c\xF2\xFD\xE3\x8B\x14a\x05~W__\xFD[\x80c\xA3\x84\x06\xA3\x11a\0\xCDW\x80c\xA3\x84\x06\xA3\x14a\x04vW\x80c\xA3\xD7^\t\x14a\x04\x95W\x80c\xA6\xA5\t\xBE\x14a\x04\xCDW\x80c\xCDm\xC6\x87\x14a\x04\xE2W__\xFD[\x80c\x9BNF4\x14a\x04\x10W\x80c\x9B\xA0bu\x14a\x04#W\x80c\xA1\xCAx\x0B\x14a\x04WW__\xFD[\x80c\\\x97Z\xBB\x11a\x01hW\x80c\x84\xD8\x10b\x11a\x018W\x80c\x84\xD8\x10b\x14a\x03\x85W\x80c\x88o\x11\x95\x14a\x03\x99W\x80c\x8D\xA5\xCB[\x14a\x03\xCCW\x80c\x91\x04\xC3\x19\x14a\x03\xE9W__\xFD[\x80c\\\x97Z\xBB\x14a\x03\x01W\x80cqP\x18\xA6\x14a\x03\x1FW\x80crJ\xF4#\x14a\x033W\x80ct\xCD\xD7\x98\x14a\x03RW__\xFD[\x80cP\xFFr%\x11a\x01\xA3W\x80cP\xFFr%\x14a\x02YW\x80cT\xFDMP\x14a\x02\x8DW\x80cY\\jg\x14a\x02\xAEW\x80cZ\xC8j\xB7\x14a\x02\xC2W__\xFD[\x80c\x13d9\xDD\x14a\x01\xC9W\x80c)+{+\x14a\x01\xEAW\x80c.\xAEA\x8C\x14a\x02:W[__\xFD[4\x80\x15a\x01\xD4W__\xFD[Pa\x01\xE8a\x01\xE36`\x04a\x1CsV[a\x06)V[\0[4\x80\x15a\x01\xF5W__\xFD[Pa\x02\x1D\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\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02EW__\xFD[Pa\x01\xE8a\x02T6`\x04a\x1C\x9EV[a\x06\xFEV[4\x80\x15a\x02dW__\xFD[Pa\x02xa\x02s6`\x04a\x1C\xECV[a\tWV[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x021V[4\x80\x15a\x02\x98W__\xFD[Pa\x02\xA1a\n\x07V[`@Qa\x021\x91\x90a\x1DLV[4\x80\x15a\x02\xB9W__\xFD[Pa\x01\xE8a\n7V[4\x80\x15a\x02\xCDW__\xFD[Pa\x02\xF1a\x02\xDC6`\x04a\x1D~V[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`@Q\x90\x15\x15\x81R` \x01a\x021V[4\x80\x15a\x03\x0CW__\xFD[P`fT[`@Q\x90\x81R` \x01a\x021V[4\x80\x15a\x03*W__\xFD[Pa\x01\xE8a\n\xE6V[4\x80\x15a\x03>W__\xFD[Pa\x03\x11a\x03M6`\x04a\x1C\xECV[a\n\xF7V[4\x80\x15a\x03]W__\xFD[Pa\x02\x1D\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\x81V[4\x80\x15a\x03\x90W__\xFD[Pa\x02\x1Da\x0C<V[4\x80\x15a\x03\xA4W__\xFD[Pa\x02\x1D\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\x81V[4\x80\x15a\x03\xD7W__\xFD[P`3T`\x01`\x01`\xA0\x1B\x03\x16a\x02\x1DV[4\x80\x15a\x03\xF4W__\xFD[Pa\x02\x1Ds\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x81V[a\x01\xE8a\x04\x1E6`\x04a\x1D\xDCV[a\x0C\xBEV[4\x80\x15a\x04.W__\xFD[Pa\x02\x1Da\x04=6`\x04a\x1EOV[`\x98` R_\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04bW__\xFD[Pa\x01\xE8a\x04q6`\x04a\x1EjV[a\r\x8DV[4\x80\x15a\x04\x81W__\xFD[Pa\x02\x1Da\x04\x906`\x04a\x1EOV[a\x0F\xAEV[4\x80\x15a\x04\xA0W__\xFD[Pa\x04\xB4a\x04\xAF6`\x04a\x1EOV[a\x10\x7FV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x021V[4\x80\x15a\x04\xD8W__\xFD[Pa\x03\x11`\x99T\x81V[4\x80\x15a\x04\xEDW__\xFD[Pa\x01\xE8a\x04\xFC6`\x04a\x1E\x9CV[a\x10\xDFV[4\x80\x15a\x05\x0CW__\xFD[Pa\x03\x11a\x05\x1B6`\x04a\x1EOV[`\x9B` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x057W__\xFD[Pa\x01\xE8a\x05F6`\x04a\x1E\x9CV[a\x11\xFBV[4\x80\x15a\x05VW__\xFD[Pa\x02\x1D\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\x81V[4\x80\x15a\x05\x89W__\xFD[Pa\x01\xE8a\x05\x986`\x04a\x1EOV[a\x12\x9FV[4\x80\x15a\x05\xA8W__\xFD[Pa\x03\x11`\x9ET\x81V[4\x80\x15a\x05\xBDW__\xFD[Pa\x02\xF1a\x05\xCC6`\x04a\x1EOV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16_\x90\x81R`\x98` R`@\x90 T\x16\x15\x15\x90V[4\x80\x15a\x05\xF6W__\xFD[Pa\x01\xE8a\x06\x056`\x04a\x1CsV[a\x13\x18V[4\x80\x15a\x06\x15W__\xFD[Pa\x03\x11a\x06$6`\x04a\x1E\xC6V[a\x14.V[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\x8BW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xAF\x91\x90a\x1E\xFDV[a\x06\xCCW`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\x06\xF1W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xFA\x82a\x14\xAEV[PPV[3`\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\x07GW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07Oa\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x07\x8CW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16a\x07\xB3W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x81\x13a\x07\xD3W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x82\x90\x82\x12\x15a\x08\xCDW_a\x07\xFF\x83a\x1F0V[\x90P_\x81\x85\x11\x15a\x08\x1DWP\x80a\x08\x16\x81\x86a\x1FJV[\x92Pa\x08#V[P_\x91P\x83[_a\x08.\x82\x86a\x1F]V[`\x01`\x01`\xA0\x1B\x03\x8A\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\x08~\x90\x85\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x88`\x01`\x01`\xA0\x1B\x03\x16\x7F\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98\x82`@Qa\x08\xC1\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPP[\x80\x15a\tEW`\x01`\x01`\xA0\x1B\x03\x86\x81\x16_\x81\x81R`\x98` R`@\x90\x81\x90 T\x90QcbH:!`\xE1\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01\x84\x90R\x90\x91\x16\x90c\xC4\x90tB\x90`D\x01[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\t.W__\xFD[PZ\xF1\x15\x80\x15a\t@W=__>=_\xFD[PPPP[PPa\tQ`\x01`\xC9UV[PPPPV[_\x803`\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\t\xA2W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\xAAa\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x84\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\t\xE7W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\xF1\x85\x84a\x15DV[\x91P\x91Pa\t\xFF`\x01`\xC9UV[\x93P\x93\x91PPV[``a\n2\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\0a\x16\x8BV[\x90P\x90V[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x99W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xBD\x91\x90a\x1E\xFDV[a\n\xDAW`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\n\xE4_\x19a\x14\xAEV[V[a\n\xEEa\x16\xC8V[a\n\xE4_a\x17\"V[_3`\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\x0BAW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BIa\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x0B\x86W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0B\x90\x83a\x17sV[`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\x9B` R`@\x90 Ta\x0B\xB2\x91\x90a\x1F\x84V[\x90P_\x81\x12\x15a\x0B\xD5W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x85\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x7F\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98\x90a\x0C!\x90\x84\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x90Pa\x0C5`\x01`\xC9UV[\x93\x92PPPV[`fT_\x90\x81\x90`\x01\x90\x81\x16\x03a\x0CfW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cna\x14\xEBV[3_\x90\x81R`\x98` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xA4W`@Qc\x03\x1A\x85!`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0C\xADa\x17\xDCV[\x92PPa\x0C\xBA`\x01`\xC9UV[P\x90V[`fT_\x90`\x01\x90\x81\x16\x03a\x0C\xE6W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xEEa\x14\xEBV[3_\x90\x81R`\x98` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\r\x16Wa\r\x13a\x17\xDCV[\x90P[`@Qc&\xD3\x91\x8D`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\x9BNF4\x904\x90a\rL\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90`\x04\x01a\x1F\xD2V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\rcW__\xFD[PZ\xF1\x15\x80\x15a\ruW=__>=_\xFD[PPPPPPa\r\x85`\x01`\xC9UV[PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\x98` R`@\x90 T\x84\x91\x163\x14a\r\xC8W`@Qc\x12\xE1mq`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\r\xD0a\x14\xEBV[`\x01`\x01`\xA0\x1B\x03\x84\x16a\r\xF7W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\x05c;\x9A\xCA\0\x83a \x1FV[\x15a\x0E#W`@QcG\xD0r\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x81\x12\x15a\x0E\\W`@QcKi+\xCF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x13\x15a\x0F\x1DW__a\x0Ep\x87\x86a\x15DV[`@Qc\x1E2\x8Ey`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\x04\x83\x01Rs\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0`$\x83\x01R`D\x82\x01\x84\x90R`d\x82\x01\x83\x90R\x92\x94P\x90\x92P\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\x90\x91\x16\x90c<e\x1C\xF2\x90`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x0F\0W__\xFD[PZ\xF1\x15\x80\x15a\x0F\x12W=__>=_\xFD[PPPPPPa\x0F\xA3V[_\x83\x12\x15a\x0F\xA3W_a\x0F9\x86\x86a\x0F4\x87a\x1F0V[a\x197V[`@Qc0Ph\xE7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`D\x83\x01R\x91\x92P\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\x90\x91\x16\x90c`\xA0\xD1\xCE\x90`d\x01a\t\x17V[Pa\tQ`\x01`\xC9UV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x98` R`@\x81 T\x90\x91\x16\x80a\x10yWa\x10v\x83`\x01`\x01`\xA0\x1B\x03\x16_\x1B`@Q\x80a\t@\x01`@R\x80a\t\x0E\x81R` \x01a \xD3a\t\x0E\x919`@\x80Q`\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` \x82\x01R\x80\x82\x01\x91\x90\x91R_``\x82\x01R`\x80\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x10[\x92\x91` \x01a >V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x1A0V[\x90P[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92RT`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x90\x91\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x82\x01\x92\x90\x92R\x90a\x10\xD5Wg\r\xE0\xB6\xB3\xA7d\0\0a\x0C5V[` \x01Q\x92\x91PPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x10\xFDWP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\x11\x16WP0;\x15\x80\x15a\x11\x16WP_T`\xFF\x16`\x01\x14[a\x11~W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x11\x9FW_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x11\xA8\x83a\x17\"V[a\x11\xB1\x82a\x14\xAEV[\x80\x15a\x11\xF6W_\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[3`\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\x12DW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12La\x14\xEBV[\x80`\x9E_\x82\x82Ta\x12]\x91\x90a lV[\x90\x91UPP`@Q\x81\x81R\x7F\x1E\xD0K\x7F\xD2b\xC0\xD9\xE5\x0F\xA0)W\xF3*\x81\xA1Q\xF0;\xAA\xA3g\xFA\xEE\xDCu!\xB0\x01\xC4\xA4\x90` \x01`@Q\x80\x91\x03\x90\xA1a\x06\xFA`\x01`\xC9UV[a\x12\xA7a\x16\xC8V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\x0CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x11uV[a\x13\x15\x81a\x17\"V[PV[\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\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13tW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x98\x91\x90a \x7FV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x13\xC9W`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a\x13\xF0W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`f\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[_`\x01`\x01`\xA0\x1B\x03\x82\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x14lW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x81 T\x12a\x14\xA6W`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x90 Ta\x10vV[P_\x92\x91PPV[`f\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\x02`\xC9T\x03a\x15=W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x11uV[`\x02`\xC9UV[_\x80`\x01`\x01`\xA0\x1B\x03\x84\x16a\x15mW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x12\x15a\x15\x8EW`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x84\x91a\x15\xB2\x83\x83a\x1F]V[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\x16\x02\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x86`\x01`\x01`\xA0\x1B\x03\x16\x7F\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98\x82`@Qa\x16E\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2_\x81\x13a\x16bW__\x94P\x94PPPPa\x16\x84V[_\x82\x12\x15a\x16wW_\x94P\x92Pa\x16\x84\x91PPV[P\x92P\x83\x91Pa\x16\x84\x90PV[\x92P\x92\x90PV[``_a\x16\x97\x83a\x1A<V[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\n\xE4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x11uV[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[_`\x01`\x01`\xFF\x1B\x03\x82\x11\x15a\x0C\xBAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`(`$\x82\x01R\x7FSafeCast: value doesn't fit in a`D\x82\x01Rg7\x104\xB7:\x19\x1A\x9B`\xC1\x1B`d\x82\x01R`\x84\x01a\x11uV[_`\x99_\x81Ta\x17\xEB\x90a \x9AV[\x90\x91UP`@\x80Qa\t@\x81\x01\x90\x91Ra\t\x0E\x80\x82R_\x91a\x18\x88\x91\x83\x913\x91a \xD3` \x83\x019`@\x80Q`\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` \x82\x01R\x80\x82\x01\x91\x90\x91R_``\x82\x01R`\x80\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x18t\x92\x91` \x01a >V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x1AcV[`@Qc\x18\x9A\xCD\xBD`\xE3\x1B\x81R3`\x04\x82\x01R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\xC4\xD6m\xE8\x90`$\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x18\xC9W__\xFD[PZ\xF1\x15\x80\x15a\x18\xDBW=__>=_\xFD[PP3_\x81\x81R`\x98` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x88\x16\x90\x81\x17\x90\x91U\x90Q\x92\x94P\x92P\x7F!\xC9\x9D\r\xB0\"\x13\xC3/\xFF[\x05\xCF\nq\x8A\xB5\xF8X\x80+\x91I\x8F\x80\xD8\"p(\x9D\x85j\x91\xA3\x91\x90PV[_\x80a\x19C\x83\x85a\x1FJV[\x90P_a\x19O\x86a\x10\x7FV[\x90P_a\x19gg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x84\x88a\x1BeV[\x90P_a\x19t\x82\x84a \xB2V[`@\x80Q\x80\x82\x01\x82R`\x01\x81Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16` \x80\x84\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16_\x81\x81R`\x9D\x84R\x87\x90 \x95Q\x86T\x92Qh\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x90\x15\x15h\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x19\x16\x17a\x01\0\x92\x86\x16\x92\x90\x92\x02\x91\x90\x91\x17\x90\x94U\x84Q\x93\x84R\x91\x88\x16\x91\x83\x01\x91\x90\x91R\x91\x81\x01\x91\x90\x91R\x90\x91P\x7F\xB1`\xAB\x85\x89\xBFG\xDC\x04\xEA\x11\xB5\rFg\x8D!Y\x0C\xEA.\xD3\xE4T\xE7\xBD>AQ\x0F\x98\xCF\x90``\x01`@Q\x80\x91\x03\x90\xA1\x97\x96PPPPPPPV[_a\x10v\x83\x830a\x1CJV[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x10yW`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83G\x10\x15a\x1A\xB4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FCreate2: insufficient balance\0\0\0`D\x82\x01R`d\x01a\x11uV[\x81Q_\x03a\x1B\x04W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FCreate2: bytecode length is zero`D\x82\x01R`d\x01a\x11uV[\x82\x82Q` \x84\x01\x86\xF5\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0C5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FCreate2: Failed on deploy\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11uV[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03a\x1B\x9CW\x83\x82\x81a\x1B\x92Wa\x1B\x92a \x0BV[\x04\x92PPPa\x0C5V[\x80\x84\x11a\x1B\xE3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a\x11uV[_\x84\x86\x88\t`\x02`\x01\x87\x19\x81\x01\x88\x16\x97\x88\x90\x04`\x03\x81\x02\x83\x18\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x90\x81\x02\x90\x92\x03\x90\x91\x02_\x88\x90\x03\x88\x90\x04\x90\x91\x01\x85\x83\x11\x90\x94\x03\x93\x90\x93\x02\x93\x03\x94\x90\x94\x04\x91\x90\x91\x17\x02\x94\x93PPPPV[_`@Q\x83`@\x82\x01R\x84` \x82\x01R\x82\x81R`\x0B\x81\x01\x90P`\xFF\x81S`U\x90 \x94\x93PPPPV[_` \x82\x84\x03\x12\x15a\x1C\x83W__\xFD[P5\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x13\x15W__\xFD[____`\x80\x85\x87\x03\x12\x15a\x1C\xB1W__\xFD[\x845a\x1C\xBC\x81a\x1C\x8AV[\x93P` \x85\x015a\x1C\xCC\x81a\x1C\x8AV[\x92P`@\x85\x015a\x1C\xDC\x81a\x1C\x8AV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[___``\x84\x86\x03\x12\x15a\x1C\xFEW__\xFD[\x835a\x1D\t\x81a\x1C\x8AV[\x92P` \x84\x015a\x1D\x19\x81a\x1C\x8AV[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[_[\x83\x81\x10\x15a\x1DDW\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D,V[PP_\x91\x01RV[` \x81R_\x82Q\x80` \x84\x01Ra\x1Dj\x81`@\x85\x01` \x87\x01a\x1D*V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x1D\x8EW__\xFD[\x815`\xFF\x81\x16\x81\x14a\x0C5W__\xFD[__\x83`\x1F\x84\x01\x12a\x1D\xAEW__\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1D\xC5W__\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x16\x84W__\xFD[_____``\x86\x88\x03\x12\x15a\x1D\xF0W__\xFD[\x855g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E\x06W__\xFD[a\x1E\x12\x88\x82\x89\x01a\x1D\x9EV[\x90\x96P\x94PP` \x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E1W__\xFD[a\x1E=\x88\x82\x89\x01a\x1D\x9EV[\x96\x99\x95\x98P\x96`@\x015\x94\x93PPPPV[_` \x82\x84\x03\x12\x15a\x1E_W__\xFD[\x815a\x0C5\x81a\x1C\x8AV[___``\x84\x86\x03\x12\x15a\x1E|W__\xFD[\x835a\x1E\x87\x81a\x1C\x8AV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[__`@\x83\x85\x03\x12\x15a\x1E\xADW__\xFD[\x825a\x1E\xB8\x81a\x1C\x8AV[\x94` \x93\x90\x93\x015\x93PPPV[__`@\x83\x85\x03\x12\x15a\x1E\xD7W__\xFD[\x825a\x1E\xE2\x81a\x1C\x8AV[\x91P` \x83\x015a\x1E\xF2\x81a\x1C\x8AV[\x80\x91PP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x1F\rW__\xFD[\x81Q\x80\x15\x15\x81\x14a\x0C5W__\xFD[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01`\xFF\x1B\x82\x01a\x1FDWa\x1FDa\x1F\x1CV[P_\x03\x90V[\x81\x81\x03\x81\x81\x11\x15a\x10yWa\x10ya\x1F\x1CV[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15a\x1F|Wa\x1F|a\x1F\x1CV[PP\x92\x91PPV[\x81\x81\x03_\x83\x12\x80\x15\x83\x83\x13\x16\x83\x83\x12\x82\x16\x17\x15a\x1F\xA3Wa\x1F\xA3a\x1F\x1CV[P\x92\x91PPV[\x81\x83R\x81\x81` \x85\x017P_\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[``\x81R_a\x1F\xE5``\x83\x01\x87\x89a\x1F\xAAV[\x82\x81\x03` \x84\x01Ra\x1F\xF8\x81\x86\x88a\x1F\xAAV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a 9WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x07\x90V[_\x83Qa O\x81\x84` \x88\x01a\x1D*V[\x83Q\x90\x83\x01\x90a c\x81\x83` \x88\x01a\x1D*V[\x01\x94\x93PPPPV[\x80\x82\x01\x80\x82\x11\x15a\x10yWa\x10ya\x1F\x1CV[_` \x82\x84\x03\x12\x15a \x8FW__\xFD[\x81Qa\x0C5\x81a\x1C\x8AV[_`\x01\x82\x01a \xABWa \xABa\x1F\x1CV[P`\x01\x01\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x10yWa\x10ya\x1F\x1CV\xFE`\x80`@R`@Qa\t\x0E8\x03\x80a\t\x0E\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x04`V[a\0.\x82\x82`\0a\x005V[PPa\x05\x8AV[a\0>\x83a\x01\0V[`@Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\x1C\xF3\xB0:l\xF1\x9F\xA2\xBA\xBAM\xF1H\xE9\xDC\xAB\xED\xEA\x7F\x8A\\\x07\x84\x0E ~\\\x08\x9B\xE9]>\x90`\0\x90\xA2`\0\x82Q\x11\x80a\0\x7FWP\x80[\x15a\0\xFBWa\0\xF9\x83`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xE9\x91\x90a\x05 V[\x83a\x02\xA3` \x1Ba\0)\x17` \x1CV[P[PPPV[a\x01\x13\x81a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x01rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC1967: new beacon is not a con`D\x82\x01Rd\x1D\x1C\x98X\xDD`\xDA\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xE6\x81`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xB3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD7\x91\x90a\x05 V[a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x02KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FERC1967: beacon implementation i`D\x82\x01Ro\x1C\xC8\x1B\x9B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`\x82\x1B`d\x82\x01R`\x84\x01a\x01iV[\x80a\x02\x82\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=P`\0\x1Ba\x02\xDE` \x1Ba\0d\x17` \x1CV[\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UPV[``a\x02\xC8\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x08\xE7`'\x919a\x02\xE1V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x02\xFE\x91\x90a\x05;V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x039W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03>V[``\x91P[P\x90\x92P\x90Pa\x03P\x86\x83\x83\x87a\x03ZV[\x96\x95PPPPPPV[``\x83\x15a\x03\xC6W\x82Qa\x03\xBFW`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x03\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01iV[P\x81a\x03\xD0V[a\x03\xD0\x83\x83a\x03\xD8V[\x94\x93PPPPV[\x81Q\x15a\x03\xE8W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01i\x91\x90a\x05WV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x04\x19W`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x04OW\x81\x81\x01Q\x83\x82\x01R` \x01a\x047V[\x83\x81\x11\x15a\0\xF9WPP`\0\x91\x01RV[`\0\x80`@\x83\x85\x03\x12\x15a\x04sW`\0\x80\xFD[a\x04|\x83a\x04\x02V[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x04\x99W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x04\xADW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x04\xBFWa\x04\xBFa\x04\x1EV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x04\xE7Wa\x04\xE7a\x04\x1EV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x05\0W`\0\x80\xFD[a\x05\x11\x83` \x83\x01` \x88\x01a\x044V[\x80\x95PPPPPP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x052W`\0\x80\xFD[a\x02\xC8\x82a\x04\x02V[`\0\x82Qa\x05M\x81\x84` \x87\x01a\x044V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x05v\x81`@\x85\x01` \x87\x01a\x044V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[a\x03N\x80a\x05\x99`\09`\0\xF3\xFE`\x80`@R6a\0\x13Wa\0\x11a\0\x17V[\0[a\0\x11[a\0'a\0\"a\0gV[a\x01\0V[V[``a\0N\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x02\xF2`'\x919a\x01$V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[`\0a\0\x9A\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xFB\x91\x90a\x02IV[\x90P\x90V[6`\0\x807`\0\x806`\0\x84Z\xF4=`\0\x80>\x80\x80\x15a\x01\x1FW=`\0\xF3[=`\0\xFD[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x01A\x91\x90a\x02\xA2V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x01|W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01\x81V[``\x91P[P\x91P\x91Pa\x01\x92\x86\x83\x83\x87a\x01\x9CV[\x96\x95PPPPPPV[``\x83\x15a\x02\rW\x82Qa\x02\x06W`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x02\x06W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P\x81a\x02\x17V[a\x02\x17\x83\x83a\x02\x1FV[\x94\x93PPPPV[\x81Q\x15a\x02/W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01\xFD\x91\x90a\x02\xBEV[`\0` \x82\x84\x03\x12\x15a\x02[W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0NW`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x02\x8DW\x81\x81\x01Q\x83\x82\x01R` \x01a\x02uV[\x83\x81\x11\x15a\x02\x9CW`\0\x84\x84\x01R[PPPPV[`\0\x82Qa\x02\xB4\x81\x84` \x87\x01a\x02rV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x02\xDD\x81`@\x85\x01` \x87\x01a\x02rV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFEAddress: low-level delegate call failed\xA2dipfsX\"\x12 \xD5\x1E\x81\xD3\xBC^\xD2\n&\xAE\xB0]\xCE~\x82\\P; a\xAAxb\x80'0\x0C\x8De\xB9\xD8\x9AdsolcC\0\x08\x0C\x003Address: low-level delegate call failed\xA2dipfsX\"\x12 Q^\x9051\xB8\xCA\xF4\xFB\xA7\x97\xEB>\x14\xCA H \t\x84\xDF6SS\xA0uF\xC8B\x0F\x18\x1BdsolcC\0\x08\x1B\x003",
946    );
947    #[derive(serde::Serialize, serde::Deserialize)]
948    #[derive(Default, Debug, PartialEq, Eq, Hash)]
949    /**Custom error with signature `CurrentlyPaused()` and selector `0x840a48d5`.
950```solidity
951error CurrentlyPaused();
952```*/
953    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
954    #[derive(Clone)]
955    pub struct CurrentlyPaused;
956    #[allow(
957        non_camel_case_types,
958        non_snake_case,
959        clippy::pub_underscore_fields,
960        clippy::style
961    )]
962    const _: () = {
963        use alloy::sol_types as alloy_sol_types;
964        #[doc(hidden)]
965        type UnderlyingSolTuple<'a> = ();
966        #[doc(hidden)]
967        type UnderlyingRustTuple<'a> = ();
968        #[cfg(test)]
969        #[allow(dead_code, unreachable_patterns)]
970        fn _type_assertion(
971            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
972        ) {
973            match _t {
974                alloy_sol_types::private::AssertTypeEq::<
975                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
976                >(_) => {}
977            }
978        }
979        #[automatically_derived]
980        #[doc(hidden)]
981        impl ::core::convert::From<CurrentlyPaused> for UnderlyingRustTuple<'_> {
982            fn from(value: CurrentlyPaused) -> Self {
983                ()
984            }
985        }
986        #[automatically_derived]
987        #[doc(hidden)]
988        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CurrentlyPaused {
989            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
990                Self
991            }
992        }
993        #[automatically_derived]
994        impl alloy_sol_types::SolError for CurrentlyPaused {
995            type Parameters<'a> = UnderlyingSolTuple<'a>;
996            type Token<'a> = <Self::Parameters<
997                'a,
998            > as alloy_sol_types::SolType>::Token<'a>;
999            const SIGNATURE: &'static str = "CurrentlyPaused()";
1000            const SELECTOR: [u8; 4] = [132u8, 10u8, 72u8, 213u8];
1001            #[inline]
1002            fn new<'a>(
1003                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1004            ) -> Self {
1005                tuple.into()
1006            }
1007            #[inline]
1008            fn tokenize(&self) -> Self::Token<'_> {
1009                ()
1010            }
1011            #[inline]
1012            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1013                <Self::Parameters<
1014                    '_,
1015                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1016                    .map(Self::new)
1017            }
1018        }
1019    };
1020    #[derive(serde::Serialize, serde::Deserialize)]
1021    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1022    /**Custom error with signature `EigenPodAlreadyExists()` and selector `0x0c6a1484`.
1023```solidity
1024error EigenPodAlreadyExists();
1025```*/
1026    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1027    #[derive(Clone)]
1028    pub struct EigenPodAlreadyExists;
1029    #[allow(
1030        non_camel_case_types,
1031        non_snake_case,
1032        clippy::pub_underscore_fields,
1033        clippy::style
1034    )]
1035    const _: () = {
1036        use alloy::sol_types as alloy_sol_types;
1037        #[doc(hidden)]
1038        type UnderlyingSolTuple<'a> = ();
1039        #[doc(hidden)]
1040        type UnderlyingRustTuple<'a> = ();
1041        #[cfg(test)]
1042        #[allow(dead_code, unreachable_patterns)]
1043        fn _type_assertion(
1044            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1045        ) {
1046            match _t {
1047                alloy_sol_types::private::AssertTypeEq::<
1048                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1049                >(_) => {}
1050            }
1051        }
1052        #[automatically_derived]
1053        #[doc(hidden)]
1054        impl ::core::convert::From<EigenPodAlreadyExists> for UnderlyingRustTuple<'_> {
1055            fn from(value: EigenPodAlreadyExists) -> Self {
1056                ()
1057            }
1058        }
1059        #[automatically_derived]
1060        #[doc(hidden)]
1061        impl ::core::convert::From<UnderlyingRustTuple<'_>> for EigenPodAlreadyExists {
1062            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1063                Self
1064            }
1065        }
1066        #[automatically_derived]
1067        impl alloy_sol_types::SolError for EigenPodAlreadyExists {
1068            type Parameters<'a> = UnderlyingSolTuple<'a>;
1069            type Token<'a> = <Self::Parameters<
1070                'a,
1071            > as alloy_sol_types::SolType>::Token<'a>;
1072            const SIGNATURE: &'static str = "EigenPodAlreadyExists()";
1073            const SELECTOR: [u8; 4] = [12u8, 106u8, 20u8, 132u8];
1074            #[inline]
1075            fn new<'a>(
1076                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1077            ) -> Self {
1078                tuple.into()
1079            }
1080            #[inline]
1081            fn tokenize(&self) -> Self::Token<'_> {
1082                ()
1083            }
1084            #[inline]
1085            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1086                <Self::Parameters<
1087                    '_,
1088                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1089                    .map(Self::new)
1090            }
1091        }
1092    };
1093    #[derive(serde::Serialize, serde::Deserialize)]
1094    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1095    /**Custom error with signature `InputAddressZero()` and selector `0x73632176`.
1096```solidity
1097error InputAddressZero();
1098```*/
1099    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1100    #[derive(Clone)]
1101    pub struct InputAddressZero;
1102    #[allow(
1103        non_camel_case_types,
1104        non_snake_case,
1105        clippy::pub_underscore_fields,
1106        clippy::style
1107    )]
1108    const _: () = {
1109        use alloy::sol_types as alloy_sol_types;
1110        #[doc(hidden)]
1111        type UnderlyingSolTuple<'a> = ();
1112        #[doc(hidden)]
1113        type UnderlyingRustTuple<'a> = ();
1114        #[cfg(test)]
1115        #[allow(dead_code, unreachable_patterns)]
1116        fn _type_assertion(
1117            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1118        ) {
1119            match _t {
1120                alloy_sol_types::private::AssertTypeEq::<
1121                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1122                >(_) => {}
1123            }
1124        }
1125        #[automatically_derived]
1126        #[doc(hidden)]
1127        impl ::core::convert::From<InputAddressZero> for UnderlyingRustTuple<'_> {
1128            fn from(value: InputAddressZero) -> Self {
1129                ()
1130            }
1131        }
1132        #[automatically_derived]
1133        #[doc(hidden)]
1134        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputAddressZero {
1135            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1136                Self
1137            }
1138        }
1139        #[automatically_derived]
1140        impl alloy_sol_types::SolError for InputAddressZero {
1141            type Parameters<'a> = UnderlyingSolTuple<'a>;
1142            type Token<'a> = <Self::Parameters<
1143                'a,
1144            > as alloy_sol_types::SolType>::Token<'a>;
1145            const SIGNATURE: &'static str = "InputAddressZero()";
1146            const SELECTOR: [u8; 4] = [115u8, 99u8, 33u8, 118u8];
1147            #[inline]
1148            fn new<'a>(
1149                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1150            ) -> Self {
1151                tuple.into()
1152            }
1153            #[inline]
1154            fn tokenize(&self) -> Self::Token<'_> {
1155                ()
1156            }
1157            #[inline]
1158            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1159                <Self::Parameters<
1160                    '_,
1161                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1162                    .map(Self::new)
1163            }
1164        }
1165    };
1166    #[derive(serde::Serialize, serde::Deserialize)]
1167    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1168    /**Custom error with signature `InvalidNewPausedStatus()` and selector `0xc61dca5d`.
1169```solidity
1170error InvalidNewPausedStatus();
1171```*/
1172    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1173    #[derive(Clone)]
1174    pub struct InvalidNewPausedStatus;
1175    #[allow(
1176        non_camel_case_types,
1177        non_snake_case,
1178        clippy::pub_underscore_fields,
1179        clippy::style
1180    )]
1181    const _: () = {
1182        use alloy::sol_types as alloy_sol_types;
1183        #[doc(hidden)]
1184        type UnderlyingSolTuple<'a> = ();
1185        #[doc(hidden)]
1186        type UnderlyingRustTuple<'a> = ();
1187        #[cfg(test)]
1188        #[allow(dead_code, unreachable_patterns)]
1189        fn _type_assertion(
1190            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1191        ) {
1192            match _t {
1193                alloy_sol_types::private::AssertTypeEq::<
1194                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1195                >(_) => {}
1196            }
1197        }
1198        #[automatically_derived]
1199        #[doc(hidden)]
1200        impl ::core::convert::From<InvalidNewPausedStatus> for UnderlyingRustTuple<'_> {
1201            fn from(value: InvalidNewPausedStatus) -> Self {
1202                ()
1203            }
1204        }
1205        #[automatically_derived]
1206        #[doc(hidden)]
1207        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidNewPausedStatus {
1208            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1209                Self
1210            }
1211        }
1212        #[automatically_derived]
1213        impl alloy_sol_types::SolError for InvalidNewPausedStatus {
1214            type Parameters<'a> = UnderlyingSolTuple<'a>;
1215            type Token<'a> = <Self::Parameters<
1216                'a,
1217            > as alloy_sol_types::SolType>::Token<'a>;
1218            const SIGNATURE: &'static str = "InvalidNewPausedStatus()";
1219            const SELECTOR: [u8; 4] = [198u8, 29u8, 202u8, 93u8];
1220            #[inline]
1221            fn new<'a>(
1222                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1223            ) -> Self {
1224                tuple.into()
1225            }
1226            #[inline]
1227            fn tokenize(&self) -> Self::Token<'_> {
1228                ()
1229            }
1230            #[inline]
1231            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1232                <Self::Parameters<
1233                    '_,
1234                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1235                    .map(Self::new)
1236            }
1237        }
1238    };
1239    #[derive(serde::Serialize, serde::Deserialize)]
1240    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1241    /**Custom error with signature `InvalidShortString()` and selector `0xb3512b0c`.
1242```solidity
1243error InvalidShortString();
1244```*/
1245    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1246    #[derive(Clone)]
1247    pub struct InvalidShortString;
1248    #[allow(
1249        non_camel_case_types,
1250        non_snake_case,
1251        clippy::pub_underscore_fields,
1252        clippy::style
1253    )]
1254    const _: () = {
1255        use alloy::sol_types as alloy_sol_types;
1256        #[doc(hidden)]
1257        type UnderlyingSolTuple<'a> = ();
1258        #[doc(hidden)]
1259        type UnderlyingRustTuple<'a> = ();
1260        #[cfg(test)]
1261        #[allow(dead_code, unreachable_patterns)]
1262        fn _type_assertion(
1263            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1264        ) {
1265            match _t {
1266                alloy_sol_types::private::AssertTypeEq::<
1267                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1268                >(_) => {}
1269            }
1270        }
1271        #[automatically_derived]
1272        #[doc(hidden)]
1273        impl ::core::convert::From<InvalidShortString> for UnderlyingRustTuple<'_> {
1274            fn from(value: InvalidShortString) -> Self {
1275                ()
1276            }
1277        }
1278        #[automatically_derived]
1279        #[doc(hidden)]
1280        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidShortString {
1281            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1282                Self
1283            }
1284        }
1285        #[automatically_derived]
1286        impl alloy_sol_types::SolError for InvalidShortString {
1287            type Parameters<'a> = UnderlyingSolTuple<'a>;
1288            type Token<'a> = <Self::Parameters<
1289                'a,
1290            > as alloy_sol_types::SolType>::Token<'a>;
1291            const SIGNATURE: &'static str = "InvalidShortString()";
1292            const SELECTOR: [u8; 4] = [179u8, 81u8, 43u8, 12u8];
1293            #[inline]
1294            fn new<'a>(
1295                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1296            ) -> Self {
1297                tuple.into()
1298            }
1299            #[inline]
1300            fn tokenize(&self) -> Self::Token<'_> {
1301                ()
1302            }
1303            #[inline]
1304            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1305                <Self::Parameters<
1306                    '_,
1307                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1308                    .map(Self::new)
1309            }
1310        }
1311    };
1312    #[derive(serde::Serialize, serde::Deserialize)]
1313    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1314    /**Custom error with signature `InvalidStrategy()` and selector `0x4e236e9a`.
1315```solidity
1316error InvalidStrategy();
1317```*/
1318    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1319    #[derive(Clone)]
1320    pub struct InvalidStrategy;
1321    #[allow(
1322        non_camel_case_types,
1323        non_snake_case,
1324        clippy::pub_underscore_fields,
1325        clippy::style
1326    )]
1327    const _: () = {
1328        use alloy::sol_types as alloy_sol_types;
1329        #[doc(hidden)]
1330        type UnderlyingSolTuple<'a> = ();
1331        #[doc(hidden)]
1332        type UnderlyingRustTuple<'a> = ();
1333        #[cfg(test)]
1334        #[allow(dead_code, unreachable_patterns)]
1335        fn _type_assertion(
1336            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1337        ) {
1338            match _t {
1339                alloy_sol_types::private::AssertTypeEq::<
1340                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1341                >(_) => {}
1342            }
1343        }
1344        #[automatically_derived]
1345        #[doc(hidden)]
1346        impl ::core::convert::From<InvalidStrategy> for UnderlyingRustTuple<'_> {
1347            fn from(value: InvalidStrategy) -> Self {
1348                ()
1349            }
1350        }
1351        #[automatically_derived]
1352        #[doc(hidden)]
1353        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidStrategy {
1354            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1355                Self
1356            }
1357        }
1358        #[automatically_derived]
1359        impl alloy_sol_types::SolError for InvalidStrategy {
1360            type Parameters<'a> = UnderlyingSolTuple<'a>;
1361            type Token<'a> = <Self::Parameters<
1362                'a,
1363            > as alloy_sol_types::SolType>::Token<'a>;
1364            const SIGNATURE: &'static str = "InvalidStrategy()";
1365            const SELECTOR: [u8; 4] = [78u8, 35u8, 110u8, 154u8];
1366            #[inline]
1367            fn new<'a>(
1368                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1369            ) -> Self {
1370                tuple.into()
1371            }
1372            #[inline]
1373            fn tokenize(&self) -> Self::Token<'_> {
1374                ()
1375            }
1376            #[inline]
1377            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1378                <Self::Parameters<
1379                    '_,
1380                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1381                    .map(Self::new)
1382            }
1383        }
1384    };
1385    #[derive(serde::Serialize, serde::Deserialize)]
1386    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1387    /**Custom error with signature `LegacyWithdrawalsNotCompleted()` and selector `0x4b692bcf`.
1388```solidity
1389error LegacyWithdrawalsNotCompleted();
1390```*/
1391    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1392    #[derive(Clone)]
1393    pub struct LegacyWithdrawalsNotCompleted;
1394    #[allow(
1395        non_camel_case_types,
1396        non_snake_case,
1397        clippy::pub_underscore_fields,
1398        clippy::style
1399    )]
1400    const _: () = {
1401        use alloy::sol_types as alloy_sol_types;
1402        #[doc(hidden)]
1403        type UnderlyingSolTuple<'a> = ();
1404        #[doc(hidden)]
1405        type UnderlyingRustTuple<'a> = ();
1406        #[cfg(test)]
1407        #[allow(dead_code, unreachable_patterns)]
1408        fn _type_assertion(
1409            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1410        ) {
1411            match _t {
1412                alloy_sol_types::private::AssertTypeEq::<
1413                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1414                >(_) => {}
1415            }
1416        }
1417        #[automatically_derived]
1418        #[doc(hidden)]
1419        impl ::core::convert::From<LegacyWithdrawalsNotCompleted>
1420        for UnderlyingRustTuple<'_> {
1421            fn from(value: LegacyWithdrawalsNotCompleted) -> Self {
1422                ()
1423            }
1424        }
1425        #[automatically_derived]
1426        #[doc(hidden)]
1427        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1428        for LegacyWithdrawalsNotCompleted {
1429            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1430                Self
1431            }
1432        }
1433        #[automatically_derived]
1434        impl alloy_sol_types::SolError for LegacyWithdrawalsNotCompleted {
1435            type Parameters<'a> = UnderlyingSolTuple<'a>;
1436            type Token<'a> = <Self::Parameters<
1437                'a,
1438            > as alloy_sol_types::SolType>::Token<'a>;
1439            const SIGNATURE: &'static str = "LegacyWithdrawalsNotCompleted()";
1440            const SELECTOR: [u8; 4] = [75u8, 105u8, 43u8, 207u8];
1441            #[inline]
1442            fn new<'a>(
1443                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1444            ) -> Self {
1445                tuple.into()
1446            }
1447            #[inline]
1448            fn tokenize(&self) -> Self::Token<'_> {
1449                ()
1450            }
1451            #[inline]
1452            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1453                <Self::Parameters<
1454                    '_,
1455                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1456                    .map(Self::new)
1457            }
1458        }
1459    };
1460    #[derive(serde::Serialize, serde::Deserialize)]
1461    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1462    /**Custom error with signature `OnlyDelegationManager()` and selector `0xf739589b`.
1463```solidity
1464error OnlyDelegationManager();
1465```*/
1466    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1467    #[derive(Clone)]
1468    pub struct OnlyDelegationManager;
1469    #[allow(
1470        non_camel_case_types,
1471        non_snake_case,
1472        clippy::pub_underscore_fields,
1473        clippy::style
1474    )]
1475    const _: () = {
1476        use alloy::sol_types as alloy_sol_types;
1477        #[doc(hidden)]
1478        type UnderlyingSolTuple<'a> = ();
1479        #[doc(hidden)]
1480        type UnderlyingRustTuple<'a> = ();
1481        #[cfg(test)]
1482        #[allow(dead_code, unreachable_patterns)]
1483        fn _type_assertion(
1484            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1485        ) {
1486            match _t {
1487                alloy_sol_types::private::AssertTypeEq::<
1488                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1489                >(_) => {}
1490            }
1491        }
1492        #[automatically_derived]
1493        #[doc(hidden)]
1494        impl ::core::convert::From<OnlyDelegationManager> for UnderlyingRustTuple<'_> {
1495            fn from(value: OnlyDelegationManager) -> Self {
1496                ()
1497            }
1498        }
1499        #[automatically_derived]
1500        #[doc(hidden)]
1501        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyDelegationManager {
1502            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1503                Self
1504            }
1505        }
1506        #[automatically_derived]
1507        impl alloy_sol_types::SolError for OnlyDelegationManager {
1508            type Parameters<'a> = UnderlyingSolTuple<'a>;
1509            type Token<'a> = <Self::Parameters<
1510                'a,
1511            > as alloy_sol_types::SolType>::Token<'a>;
1512            const SIGNATURE: &'static str = "OnlyDelegationManager()";
1513            const SELECTOR: [u8; 4] = [247u8, 57u8, 88u8, 155u8];
1514            #[inline]
1515            fn new<'a>(
1516                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1517            ) -> Self {
1518                tuple.into()
1519            }
1520            #[inline]
1521            fn tokenize(&self) -> Self::Token<'_> {
1522                ()
1523            }
1524            #[inline]
1525            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1526                <Self::Parameters<
1527                    '_,
1528                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1529                    .map(Self::new)
1530            }
1531        }
1532    };
1533    #[derive(serde::Serialize, serde::Deserialize)]
1534    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1535    /**Custom error with signature `OnlyEigenPod()` and selector `0x25c2dae2`.
1536```solidity
1537error OnlyEigenPod();
1538```*/
1539    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1540    #[derive(Clone)]
1541    pub struct OnlyEigenPod;
1542    #[allow(
1543        non_camel_case_types,
1544        non_snake_case,
1545        clippy::pub_underscore_fields,
1546        clippy::style
1547    )]
1548    const _: () = {
1549        use alloy::sol_types as alloy_sol_types;
1550        #[doc(hidden)]
1551        type UnderlyingSolTuple<'a> = ();
1552        #[doc(hidden)]
1553        type UnderlyingRustTuple<'a> = ();
1554        #[cfg(test)]
1555        #[allow(dead_code, unreachable_patterns)]
1556        fn _type_assertion(
1557            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1558        ) {
1559            match _t {
1560                alloy_sol_types::private::AssertTypeEq::<
1561                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1562                >(_) => {}
1563            }
1564        }
1565        #[automatically_derived]
1566        #[doc(hidden)]
1567        impl ::core::convert::From<OnlyEigenPod> for UnderlyingRustTuple<'_> {
1568            fn from(value: OnlyEigenPod) -> Self {
1569                ()
1570            }
1571        }
1572        #[automatically_derived]
1573        #[doc(hidden)]
1574        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyEigenPod {
1575            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1576                Self
1577            }
1578        }
1579        #[automatically_derived]
1580        impl alloy_sol_types::SolError for OnlyEigenPod {
1581            type Parameters<'a> = UnderlyingSolTuple<'a>;
1582            type Token<'a> = <Self::Parameters<
1583                'a,
1584            > as alloy_sol_types::SolType>::Token<'a>;
1585            const SIGNATURE: &'static str = "OnlyEigenPod()";
1586            const SELECTOR: [u8; 4] = [37u8, 194u8, 218u8, 226u8];
1587            #[inline]
1588            fn new<'a>(
1589                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1590            ) -> Self {
1591                tuple.into()
1592            }
1593            #[inline]
1594            fn tokenize(&self) -> Self::Token<'_> {
1595                ()
1596            }
1597            #[inline]
1598            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1599                <Self::Parameters<
1600                    '_,
1601                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1602                    .map(Self::new)
1603            }
1604        }
1605    };
1606    #[derive(serde::Serialize, serde::Deserialize)]
1607    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1608    /**Custom error with signature `OnlyPauser()` and selector `0x75df51dc`.
1609```solidity
1610error OnlyPauser();
1611```*/
1612    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1613    #[derive(Clone)]
1614    pub struct OnlyPauser;
1615    #[allow(
1616        non_camel_case_types,
1617        non_snake_case,
1618        clippy::pub_underscore_fields,
1619        clippy::style
1620    )]
1621    const _: () = {
1622        use alloy::sol_types as alloy_sol_types;
1623        #[doc(hidden)]
1624        type UnderlyingSolTuple<'a> = ();
1625        #[doc(hidden)]
1626        type UnderlyingRustTuple<'a> = ();
1627        #[cfg(test)]
1628        #[allow(dead_code, unreachable_patterns)]
1629        fn _type_assertion(
1630            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1631        ) {
1632            match _t {
1633                alloy_sol_types::private::AssertTypeEq::<
1634                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1635                >(_) => {}
1636            }
1637        }
1638        #[automatically_derived]
1639        #[doc(hidden)]
1640        impl ::core::convert::From<OnlyPauser> for UnderlyingRustTuple<'_> {
1641            fn from(value: OnlyPauser) -> Self {
1642                ()
1643            }
1644        }
1645        #[automatically_derived]
1646        #[doc(hidden)]
1647        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyPauser {
1648            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1649                Self
1650            }
1651        }
1652        #[automatically_derived]
1653        impl alloy_sol_types::SolError for OnlyPauser {
1654            type Parameters<'a> = UnderlyingSolTuple<'a>;
1655            type Token<'a> = <Self::Parameters<
1656                'a,
1657            > as alloy_sol_types::SolType>::Token<'a>;
1658            const SIGNATURE: &'static str = "OnlyPauser()";
1659            const SELECTOR: [u8; 4] = [117u8, 223u8, 81u8, 220u8];
1660            #[inline]
1661            fn new<'a>(
1662                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1663            ) -> Self {
1664                tuple.into()
1665            }
1666            #[inline]
1667            fn tokenize(&self) -> Self::Token<'_> {
1668                ()
1669            }
1670            #[inline]
1671            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1672                <Self::Parameters<
1673                    '_,
1674                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1675                    .map(Self::new)
1676            }
1677        }
1678    };
1679    #[derive(serde::Serialize, serde::Deserialize)]
1680    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1681    /**Custom error with signature `OnlyUnpauser()` and selector `0x794821ff`.
1682```solidity
1683error OnlyUnpauser();
1684```*/
1685    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1686    #[derive(Clone)]
1687    pub struct OnlyUnpauser;
1688    #[allow(
1689        non_camel_case_types,
1690        non_snake_case,
1691        clippy::pub_underscore_fields,
1692        clippy::style
1693    )]
1694    const _: () = {
1695        use alloy::sol_types as alloy_sol_types;
1696        #[doc(hidden)]
1697        type UnderlyingSolTuple<'a> = ();
1698        #[doc(hidden)]
1699        type UnderlyingRustTuple<'a> = ();
1700        #[cfg(test)]
1701        #[allow(dead_code, unreachable_patterns)]
1702        fn _type_assertion(
1703            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1704        ) {
1705            match _t {
1706                alloy_sol_types::private::AssertTypeEq::<
1707                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1708                >(_) => {}
1709            }
1710        }
1711        #[automatically_derived]
1712        #[doc(hidden)]
1713        impl ::core::convert::From<OnlyUnpauser> for UnderlyingRustTuple<'_> {
1714            fn from(value: OnlyUnpauser) -> Self {
1715                ()
1716            }
1717        }
1718        #[automatically_derived]
1719        #[doc(hidden)]
1720        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyUnpauser {
1721            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1722                Self
1723            }
1724        }
1725        #[automatically_derived]
1726        impl alloy_sol_types::SolError for OnlyUnpauser {
1727            type Parameters<'a> = UnderlyingSolTuple<'a>;
1728            type Token<'a> = <Self::Parameters<
1729                'a,
1730            > as alloy_sol_types::SolType>::Token<'a>;
1731            const SIGNATURE: &'static str = "OnlyUnpauser()";
1732            const SELECTOR: [u8; 4] = [121u8, 72u8, 33u8, 255u8];
1733            #[inline]
1734            fn new<'a>(
1735                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1736            ) -> Self {
1737                tuple.into()
1738            }
1739            #[inline]
1740            fn tokenize(&self) -> Self::Token<'_> {
1741                ()
1742            }
1743            #[inline]
1744            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1745                <Self::Parameters<
1746                    '_,
1747                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1748                    .map(Self::new)
1749            }
1750        }
1751    };
1752    #[derive(serde::Serialize, serde::Deserialize)]
1753    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1754    /**Custom error with signature `SharesNegative()` and selector `0xef147de1`.
1755```solidity
1756error SharesNegative();
1757```*/
1758    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1759    #[derive(Clone)]
1760    pub struct SharesNegative;
1761    #[allow(
1762        non_camel_case_types,
1763        non_snake_case,
1764        clippy::pub_underscore_fields,
1765        clippy::style
1766    )]
1767    const _: () = {
1768        use alloy::sol_types as alloy_sol_types;
1769        #[doc(hidden)]
1770        type UnderlyingSolTuple<'a> = ();
1771        #[doc(hidden)]
1772        type UnderlyingRustTuple<'a> = ();
1773        #[cfg(test)]
1774        #[allow(dead_code, unreachable_patterns)]
1775        fn _type_assertion(
1776            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1777        ) {
1778            match _t {
1779                alloy_sol_types::private::AssertTypeEq::<
1780                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1781                >(_) => {}
1782            }
1783        }
1784        #[automatically_derived]
1785        #[doc(hidden)]
1786        impl ::core::convert::From<SharesNegative> for UnderlyingRustTuple<'_> {
1787            fn from(value: SharesNegative) -> Self {
1788                ()
1789            }
1790        }
1791        #[automatically_derived]
1792        #[doc(hidden)]
1793        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SharesNegative {
1794            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1795                Self
1796            }
1797        }
1798        #[automatically_derived]
1799        impl alloy_sol_types::SolError for SharesNegative {
1800            type Parameters<'a> = UnderlyingSolTuple<'a>;
1801            type Token<'a> = <Self::Parameters<
1802                'a,
1803            > as alloy_sol_types::SolType>::Token<'a>;
1804            const SIGNATURE: &'static str = "SharesNegative()";
1805            const SELECTOR: [u8; 4] = [239u8, 20u8, 125u8, 225u8];
1806            #[inline]
1807            fn new<'a>(
1808                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1809            ) -> Self {
1810                tuple.into()
1811            }
1812            #[inline]
1813            fn tokenize(&self) -> Self::Token<'_> {
1814                ()
1815            }
1816            #[inline]
1817            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1818                <Self::Parameters<
1819                    '_,
1820                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1821                    .map(Self::new)
1822            }
1823        }
1824    };
1825    #[derive(serde::Serialize, serde::Deserialize)]
1826    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1827    /**Custom error with signature `SharesNotMultipleOfGwei()` and selector `0x8fa0e576`.
1828```solidity
1829error SharesNotMultipleOfGwei();
1830```*/
1831    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1832    #[derive(Clone)]
1833    pub struct SharesNotMultipleOfGwei;
1834    #[allow(
1835        non_camel_case_types,
1836        non_snake_case,
1837        clippy::pub_underscore_fields,
1838        clippy::style
1839    )]
1840    const _: () = {
1841        use alloy::sol_types as alloy_sol_types;
1842        #[doc(hidden)]
1843        type UnderlyingSolTuple<'a> = ();
1844        #[doc(hidden)]
1845        type UnderlyingRustTuple<'a> = ();
1846        #[cfg(test)]
1847        #[allow(dead_code, unreachable_patterns)]
1848        fn _type_assertion(
1849            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1850        ) {
1851            match _t {
1852                alloy_sol_types::private::AssertTypeEq::<
1853                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1854                >(_) => {}
1855            }
1856        }
1857        #[automatically_derived]
1858        #[doc(hidden)]
1859        impl ::core::convert::From<SharesNotMultipleOfGwei> for UnderlyingRustTuple<'_> {
1860            fn from(value: SharesNotMultipleOfGwei) -> Self {
1861                ()
1862            }
1863        }
1864        #[automatically_derived]
1865        #[doc(hidden)]
1866        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SharesNotMultipleOfGwei {
1867            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1868                Self
1869            }
1870        }
1871        #[automatically_derived]
1872        impl alloy_sol_types::SolError for SharesNotMultipleOfGwei {
1873            type Parameters<'a> = UnderlyingSolTuple<'a>;
1874            type Token<'a> = <Self::Parameters<
1875                'a,
1876            > as alloy_sol_types::SolType>::Token<'a>;
1877            const SIGNATURE: &'static str = "SharesNotMultipleOfGwei()";
1878            const SELECTOR: [u8; 4] = [143u8, 160u8, 229u8, 118u8];
1879            #[inline]
1880            fn new<'a>(
1881                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1882            ) -> Self {
1883                tuple.into()
1884            }
1885            #[inline]
1886            fn tokenize(&self) -> Self::Token<'_> {
1887                ()
1888            }
1889            #[inline]
1890            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1891                <Self::Parameters<
1892                    '_,
1893                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1894                    .map(Self::new)
1895            }
1896        }
1897    };
1898    #[derive(serde::Serialize, serde::Deserialize)]
1899    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1900    /**Custom error with signature `StringTooLong(string)` and selector `0x305a27a9`.
1901```solidity
1902error StringTooLong(string str);
1903```*/
1904    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1905    #[derive(Clone)]
1906    pub struct StringTooLong {
1907        #[allow(missing_docs)]
1908        pub str: alloy::sol_types::private::String,
1909    }
1910    #[allow(
1911        non_camel_case_types,
1912        non_snake_case,
1913        clippy::pub_underscore_fields,
1914        clippy::style
1915    )]
1916    const _: () = {
1917        use alloy::sol_types as alloy_sol_types;
1918        #[doc(hidden)]
1919        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
1920        #[doc(hidden)]
1921        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
1922        #[cfg(test)]
1923        #[allow(dead_code, unreachable_patterns)]
1924        fn _type_assertion(
1925            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1926        ) {
1927            match _t {
1928                alloy_sol_types::private::AssertTypeEq::<
1929                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1930                >(_) => {}
1931            }
1932        }
1933        #[automatically_derived]
1934        #[doc(hidden)]
1935        impl ::core::convert::From<StringTooLong> for UnderlyingRustTuple<'_> {
1936            fn from(value: StringTooLong) -> Self {
1937                (value.str,)
1938            }
1939        }
1940        #[automatically_derived]
1941        #[doc(hidden)]
1942        impl ::core::convert::From<UnderlyingRustTuple<'_>> for StringTooLong {
1943            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1944                Self { str: tuple.0 }
1945            }
1946        }
1947        #[automatically_derived]
1948        impl alloy_sol_types::SolError for StringTooLong {
1949            type Parameters<'a> = UnderlyingSolTuple<'a>;
1950            type Token<'a> = <Self::Parameters<
1951                'a,
1952            > as alloy_sol_types::SolType>::Token<'a>;
1953            const SIGNATURE: &'static str = "StringTooLong(string)";
1954            const SELECTOR: [u8; 4] = [48u8, 90u8, 39u8, 169u8];
1955            #[inline]
1956            fn new<'a>(
1957                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1958            ) -> Self {
1959                tuple.into()
1960            }
1961            #[inline]
1962            fn tokenize(&self) -> Self::Token<'_> {
1963                (
1964                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
1965                        &self.str,
1966                    ),
1967                )
1968            }
1969            #[inline]
1970            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1971                <Self::Parameters<
1972                    '_,
1973                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1974                    .map(Self::new)
1975            }
1976        }
1977    };
1978    #[derive(serde::Serialize, serde::Deserialize)]
1979    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1980    /**Event with signature `BeaconChainETHDeposited(address,uint256)` and selector `0x35a85cabc603f48abb2b71d9fbd8adea7c449d7f0be900ae7a2986ea369c3d0d`.
1981```solidity
1982event BeaconChainETHDeposited(address indexed podOwner, uint256 amount);
1983```*/
1984    #[allow(
1985        non_camel_case_types,
1986        non_snake_case,
1987        clippy::pub_underscore_fields,
1988        clippy::style
1989    )]
1990    #[derive(Clone)]
1991    pub struct BeaconChainETHDeposited {
1992        #[allow(missing_docs)]
1993        pub podOwner: alloy::sol_types::private::Address,
1994        #[allow(missing_docs)]
1995        pub amount: alloy::sol_types::private::primitives::aliases::U256,
1996    }
1997    #[allow(
1998        non_camel_case_types,
1999        non_snake_case,
2000        clippy::pub_underscore_fields,
2001        clippy::style
2002    )]
2003    const _: () = {
2004        use alloy::sol_types as alloy_sol_types;
2005        #[automatically_derived]
2006        impl alloy_sol_types::SolEvent for BeaconChainETHDeposited {
2007            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2008            type DataToken<'a> = <Self::DataTuple<
2009                'a,
2010            > as alloy_sol_types::SolType>::Token<'a>;
2011            type TopicList = (
2012                alloy_sol_types::sol_data::FixedBytes<32>,
2013                alloy::sol_types::sol_data::Address,
2014            );
2015            const SIGNATURE: &'static str = "BeaconChainETHDeposited(address,uint256)";
2016            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2017                53u8, 168u8, 92u8, 171u8, 198u8, 3u8, 244u8, 138u8, 187u8, 43u8, 113u8,
2018                217u8, 251u8, 216u8, 173u8, 234u8, 124u8, 68u8, 157u8, 127u8, 11u8,
2019                233u8, 0u8, 174u8, 122u8, 41u8, 134u8, 234u8, 54u8, 156u8, 61u8, 13u8,
2020            ]);
2021            const ANONYMOUS: bool = false;
2022            #[allow(unused_variables)]
2023            #[inline]
2024            fn new(
2025                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2026                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2027            ) -> Self {
2028                Self {
2029                    podOwner: topics.1,
2030                    amount: data.0,
2031                }
2032            }
2033            #[inline]
2034            fn check_signature(
2035                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2036            ) -> alloy_sol_types::Result<()> {
2037                if topics.0 != Self::SIGNATURE_HASH {
2038                    return Err(
2039                        alloy_sol_types::Error::invalid_event_signature_hash(
2040                            Self::SIGNATURE,
2041                            topics.0,
2042                            Self::SIGNATURE_HASH,
2043                        ),
2044                    );
2045                }
2046                Ok(())
2047            }
2048            #[inline]
2049            fn tokenize_body(&self) -> Self::DataToken<'_> {
2050                (
2051                    <alloy::sol_types::sol_data::Uint<
2052                        256,
2053                    > as alloy_sol_types::SolType>::tokenize(&self.amount),
2054                )
2055            }
2056            #[inline]
2057            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2058                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
2059            }
2060            #[inline]
2061            fn encode_topics_raw(
2062                &self,
2063                out: &mut [alloy_sol_types::abi::token::WordToken],
2064            ) -> alloy_sol_types::Result<()> {
2065                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2066                    return Err(alloy_sol_types::Error::Overrun);
2067                }
2068                out[0usize] = alloy_sol_types::abi::token::WordToken(
2069                    Self::SIGNATURE_HASH,
2070                );
2071                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2072                    &self.podOwner,
2073                );
2074                Ok(())
2075            }
2076        }
2077        #[automatically_derived]
2078        impl alloy_sol_types::private::IntoLogData for BeaconChainETHDeposited {
2079            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2080                From::from(self)
2081            }
2082            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2083                From::from(&self)
2084            }
2085        }
2086        #[automatically_derived]
2087        impl From<&BeaconChainETHDeposited> for alloy_sol_types::private::LogData {
2088            #[inline]
2089            fn from(
2090                this: &BeaconChainETHDeposited,
2091            ) -> alloy_sol_types::private::LogData {
2092                alloy_sol_types::SolEvent::encode_log_data(this)
2093            }
2094        }
2095    };
2096    #[derive(serde::Serialize, serde::Deserialize)]
2097    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2098    /**Event with signature `BeaconChainETHWithdrawalCompleted(address,uint256,uint96,address,address,bytes32)` and selector `0xa6bab1d55a361fcea2eee2bc9491e4f01e6cf333df03c9c4f2c144466429f7d6`.
2099```solidity
2100event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot);
2101```*/
2102    #[allow(
2103        non_camel_case_types,
2104        non_snake_case,
2105        clippy::pub_underscore_fields,
2106        clippy::style
2107    )]
2108    #[derive(Clone)]
2109    pub struct BeaconChainETHWithdrawalCompleted {
2110        #[allow(missing_docs)]
2111        pub podOwner: alloy::sol_types::private::Address,
2112        #[allow(missing_docs)]
2113        pub shares: alloy::sol_types::private::primitives::aliases::U256,
2114        #[allow(missing_docs)]
2115        pub nonce: alloy::sol_types::private::primitives::aliases::U96,
2116        #[allow(missing_docs)]
2117        pub delegatedAddress: alloy::sol_types::private::Address,
2118        #[allow(missing_docs)]
2119        pub withdrawer: alloy::sol_types::private::Address,
2120        #[allow(missing_docs)]
2121        pub withdrawalRoot: alloy::sol_types::private::FixedBytes<32>,
2122    }
2123    #[allow(
2124        non_camel_case_types,
2125        non_snake_case,
2126        clippy::pub_underscore_fields,
2127        clippy::style
2128    )]
2129    const _: () = {
2130        use alloy::sol_types as alloy_sol_types;
2131        #[automatically_derived]
2132        impl alloy_sol_types::SolEvent for BeaconChainETHWithdrawalCompleted {
2133            type DataTuple<'a> = (
2134                alloy::sol_types::sol_data::Uint<256>,
2135                alloy::sol_types::sol_data::Uint<96>,
2136                alloy::sol_types::sol_data::Address,
2137                alloy::sol_types::sol_data::Address,
2138                alloy::sol_types::sol_data::FixedBytes<32>,
2139            );
2140            type DataToken<'a> = <Self::DataTuple<
2141                'a,
2142            > as alloy_sol_types::SolType>::Token<'a>;
2143            type TopicList = (
2144                alloy_sol_types::sol_data::FixedBytes<32>,
2145                alloy::sol_types::sol_data::Address,
2146            );
2147            const SIGNATURE: &'static str = "BeaconChainETHWithdrawalCompleted(address,uint256,uint96,address,address,bytes32)";
2148            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2149                166u8, 186u8, 177u8, 213u8, 90u8, 54u8, 31u8, 206u8, 162u8, 238u8, 226u8,
2150                188u8, 148u8, 145u8, 228u8, 240u8, 30u8, 108u8, 243u8, 51u8, 223u8, 3u8,
2151                201u8, 196u8, 242u8, 193u8, 68u8, 70u8, 100u8, 41u8, 247u8, 214u8,
2152            ]);
2153            const ANONYMOUS: bool = false;
2154            #[allow(unused_variables)]
2155            #[inline]
2156            fn new(
2157                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2158                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2159            ) -> Self {
2160                Self {
2161                    podOwner: topics.1,
2162                    shares: data.0,
2163                    nonce: data.1,
2164                    delegatedAddress: data.2,
2165                    withdrawer: data.3,
2166                    withdrawalRoot: data.4,
2167                }
2168            }
2169            #[inline]
2170            fn check_signature(
2171                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2172            ) -> alloy_sol_types::Result<()> {
2173                if topics.0 != Self::SIGNATURE_HASH {
2174                    return Err(
2175                        alloy_sol_types::Error::invalid_event_signature_hash(
2176                            Self::SIGNATURE,
2177                            topics.0,
2178                            Self::SIGNATURE_HASH,
2179                        ),
2180                    );
2181                }
2182                Ok(())
2183            }
2184            #[inline]
2185            fn tokenize_body(&self) -> Self::DataToken<'_> {
2186                (
2187                    <alloy::sol_types::sol_data::Uint<
2188                        256,
2189                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
2190                    <alloy::sol_types::sol_data::Uint<
2191                        96,
2192                    > as alloy_sol_types::SolType>::tokenize(&self.nonce),
2193                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
2194                        &self.delegatedAddress,
2195                    ),
2196                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
2197                        &self.withdrawer,
2198                    ),
2199                    <alloy::sol_types::sol_data::FixedBytes<
2200                        32,
2201                    > as alloy_sol_types::SolType>::tokenize(&self.withdrawalRoot),
2202                )
2203            }
2204            #[inline]
2205            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2206                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
2207            }
2208            #[inline]
2209            fn encode_topics_raw(
2210                &self,
2211                out: &mut [alloy_sol_types::abi::token::WordToken],
2212            ) -> alloy_sol_types::Result<()> {
2213                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2214                    return Err(alloy_sol_types::Error::Overrun);
2215                }
2216                out[0usize] = alloy_sol_types::abi::token::WordToken(
2217                    Self::SIGNATURE_HASH,
2218                );
2219                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2220                    &self.podOwner,
2221                );
2222                Ok(())
2223            }
2224        }
2225        #[automatically_derived]
2226        impl alloy_sol_types::private::IntoLogData
2227        for BeaconChainETHWithdrawalCompleted {
2228            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2229                From::from(self)
2230            }
2231            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2232                From::from(&self)
2233            }
2234        }
2235        #[automatically_derived]
2236        impl From<&BeaconChainETHWithdrawalCompleted>
2237        for alloy_sol_types::private::LogData {
2238            #[inline]
2239            fn from(
2240                this: &BeaconChainETHWithdrawalCompleted,
2241            ) -> alloy_sol_types::private::LogData {
2242                alloy_sol_types::SolEvent::encode_log_data(this)
2243            }
2244        }
2245    };
2246    #[derive(serde::Serialize, serde::Deserialize)]
2247    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2248    /**Event with signature `BeaconChainSlashingFactorDecreased(address,uint64,uint64)` and selector `0xb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf`.
2249```solidity
2250event BeaconChainSlashingFactorDecreased(address staker, uint64 prevBeaconChainSlashingFactor, uint64 newBeaconChainSlashingFactor);
2251```*/
2252    #[allow(
2253        non_camel_case_types,
2254        non_snake_case,
2255        clippy::pub_underscore_fields,
2256        clippy::style
2257    )]
2258    #[derive(Clone)]
2259    pub struct BeaconChainSlashingFactorDecreased {
2260        #[allow(missing_docs)]
2261        pub staker: alloy::sol_types::private::Address,
2262        #[allow(missing_docs)]
2263        pub prevBeaconChainSlashingFactor: u64,
2264        #[allow(missing_docs)]
2265        pub newBeaconChainSlashingFactor: u64,
2266    }
2267    #[allow(
2268        non_camel_case_types,
2269        non_snake_case,
2270        clippy::pub_underscore_fields,
2271        clippy::style
2272    )]
2273    const _: () = {
2274        use alloy::sol_types as alloy_sol_types;
2275        #[automatically_derived]
2276        impl alloy_sol_types::SolEvent for BeaconChainSlashingFactorDecreased {
2277            type DataTuple<'a> = (
2278                alloy::sol_types::sol_data::Address,
2279                alloy::sol_types::sol_data::Uint<64>,
2280                alloy::sol_types::sol_data::Uint<64>,
2281            );
2282            type DataToken<'a> = <Self::DataTuple<
2283                'a,
2284            > as alloy_sol_types::SolType>::Token<'a>;
2285            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2286            const SIGNATURE: &'static str = "BeaconChainSlashingFactorDecreased(address,uint64,uint64)";
2287            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2288                177u8, 96u8, 171u8, 133u8, 137u8, 191u8, 71u8, 220u8, 4u8, 234u8, 17u8,
2289                181u8, 13u8, 70u8, 103u8, 141u8, 33u8, 89u8, 12u8, 234u8, 46u8, 211u8,
2290                228u8, 84u8, 231u8, 189u8, 62u8, 65u8, 81u8, 15u8, 152u8, 207u8,
2291            ]);
2292            const ANONYMOUS: bool = false;
2293            #[allow(unused_variables)]
2294            #[inline]
2295            fn new(
2296                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2297                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2298            ) -> Self {
2299                Self {
2300                    staker: data.0,
2301                    prevBeaconChainSlashingFactor: data.1,
2302                    newBeaconChainSlashingFactor: data.2,
2303                }
2304            }
2305            #[inline]
2306            fn check_signature(
2307                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2308            ) -> alloy_sol_types::Result<()> {
2309                if topics.0 != Self::SIGNATURE_HASH {
2310                    return Err(
2311                        alloy_sol_types::Error::invalid_event_signature_hash(
2312                            Self::SIGNATURE,
2313                            topics.0,
2314                            Self::SIGNATURE_HASH,
2315                        ),
2316                    );
2317                }
2318                Ok(())
2319            }
2320            #[inline]
2321            fn tokenize_body(&self) -> Self::DataToken<'_> {
2322                (
2323                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
2324                        &self.staker,
2325                    ),
2326                    <alloy::sol_types::sol_data::Uint<
2327                        64,
2328                    > as alloy_sol_types::SolType>::tokenize(
2329                        &self.prevBeaconChainSlashingFactor,
2330                    ),
2331                    <alloy::sol_types::sol_data::Uint<
2332                        64,
2333                    > as alloy_sol_types::SolType>::tokenize(
2334                        &self.newBeaconChainSlashingFactor,
2335                    ),
2336                )
2337            }
2338            #[inline]
2339            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2340                (Self::SIGNATURE_HASH.into(),)
2341            }
2342            #[inline]
2343            fn encode_topics_raw(
2344                &self,
2345                out: &mut [alloy_sol_types::abi::token::WordToken],
2346            ) -> alloy_sol_types::Result<()> {
2347                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2348                    return Err(alloy_sol_types::Error::Overrun);
2349                }
2350                out[0usize] = alloy_sol_types::abi::token::WordToken(
2351                    Self::SIGNATURE_HASH,
2352                );
2353                Ok(())
2354            }
2355        }
2356        #[automatically_derived]
2357        impl alloy_sol_types::private::IntoLogData
2358        for BeaconChainSlashingFactorDecreased {
2359            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2360                From::from(self)
2361            }
2362            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2363                From::from(&self)
2364            }
2365        }
2366        #[automatically_derived]
2367        impl From<&BeaconChainSlashingFactorDecreased>
2368        for alloy_sol_types::private::LogData {
2369            #[inline]
2370            fn from(
2371                this: &BeaconChainSlashingFactorDecreased,
2372            ) -> alloy_sol_types::private::LogData {
2373                alloy_sol_types::SolEvent::encode_log_data(this)
2374            }
2375        }
2376    };
2377    #[derive(serde::Serialize, serde::Deserialize)]
2378    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2379    /**Event with signature `BurnableETHSharesIncreased(uint256)` and selector `0x1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a4`.
2380```solidity
2381event BurnableETHSharesIncreased(uint256 shares);
2382```*/
2383    #[allow(
2384        non_camel_case_types,
2385        non_snake_case,
2386        clippy::pub_underscore_fields,
2387        clippy::style
2388    )]
2389    #[derive(Clone)]
2390    pub struct BurnableETHSharesIncreased {
2391        #[allow(missing_docs)]
2392        pub shares: alloy::sol_types::private::primitives::aliases::U256,
2393    }
2394    #[allow(
2395        non_camel_case_types,
2396        non_snake_case,
2397        clippy::pub_underscore_fields,
2398        clippy::style
2399    )]
2400    const _: () = {
2401        use alloy::sol_types as alloy_sol_types;
2402        #[automatically_derived]
2403        impl alloy_sol_types::SolEvent for BurnableETHSharesIncreased {
2404            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2405            type DataToken<'a> = <Self::DataTuple<
2406                'a,
2407            > as alloy_sol_types::SolType>::Token<'a>;
2408            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2409            const SIGNATURE: &'static str = "BurnableETHSharesIncreased(uint256)";
2410            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2411                30u8, 208u8, 75u8, 127u8, 210u8, 98u8, 192u8, 217u8, 229u8, 15u8, 160u8,
2412                41u8, 87u8, 243u8, 42u8, 129u8, 161u8, 81u8, 240u8, 59u8, 170u8, 163u8,
2413                103u8, 250u8, 238u8, 220u8, 117u8, 33u8, 176u8, 1u8, 196u8, 164u8,
2414            ]);
2415            const ANONYMOUS: bool = false;
2416            #[allow(unused_variables)]
2417            #[inline]
2418            fn new(
2419                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2420                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2421            ) -> Self {
2422                Self { shares: data.0 }
2423            }
2424            #[inline]
2425            fn check_signature(
2426                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2427            ) -> alloy_sol_types::Result<()> {
2428                if topics.0 != Self::SIGNATURE_HASH {
2429                    return Err(
2430                        alloy_sol_types::Error::invalid_event_signature_hash(
2431                            Self::SIGNATURE,
2432                            topics.0,
2433                            Self::SIGNATURE_HASH,
2434                        ),
2435                    );
2436                }
2437                Ok(())
2438            }
2439            #[inline]
2440            fn tokenize_body(&self) -> Self::DataToken<'_> {
2441                (
2442                    <alloy::sol_types::sol_data::Uint<
2443                        256,
2444                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
2445                )
2446            }
2447            #[inline]
2448            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2449                (Self::SIGNATURE_HASH.into(),)
2450            }
2451            #[inline]
2452            fn encode_topics_raw(
2453                &self,
2454                out: &mut [alloy_sol_types::abi::token::WordToken],
2455            ) -> alloy_sol_types::Result<()> {
2456                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2457                    return Err(alloy_sol_types::Error::Overrun);
2458                }
2459                out[0usize] = alloy_sol_types::abi::token::WordToken(
2460                    Self::SIGNATURE_HASH,
2461                );
2462                Ok(())
2463            }
2464        }
2465        #[automatically_derived]
2466        impl alloy_sol_types::private::IntoLogData for BurnableETHSharesIncreased {
2467            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2468                From::from(self)
2469            }
2470            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2471                From::from(&self)
2472            }
2473        }
2474        #[automatically_derived]
2475        impl From<&BurnableETHSharesIncreased> for alloy_sol_types::private::LogData {
2476            #[inline]
2477            fn from(
2478                this: &BurnableETHSharesIncreased,
2479            ) -> alloy_sol_types::private::LogData {
2480                alloy_sol_types::SolEvent::encode_log_data(this)
2481            }
2482        }
2483    };
2484    #[derive(serde::Serialize, serde::Deserialize)]
2485    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2486    /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`.
2487```solidity
2488event Initialized(uint8 version);
2489```*/
2490    #[allow(
2491        non_camel_case_types,
2492        non_snake_case,
2493        clippy::pub_underscore_fields,
2494        clippy::style
2495    )]
2496    #[derive(Clone)]
2497    pub struct Initialized {
2498        #[allow(missing_docs)]
2499        pub version: u8,
2500    }
2501    #[allow(
2502        non_camel_case_types,
2503        non_snake_case,
2504        clippy::pub_underscore_fields,
2505        clippy::style
2506    )]
2507    const _: () = {
2508        use alloy::sol_types as alloy_sol_types;
2509        #[automatically_derived]
2510        impl alloy_sol_types::SolEvent for Initialized {
2511            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
2512            type DataToken<'a> = <Self::DataTuple<
2513                'a,
2514            > as alloy_sol_types::SolType>::Token<'a>;
2515            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2516            const SIGNATURE: &'static str = "Initialized(uint8)";
2517            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2518                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
2519                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
2520                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
2521            ]);
2522            const ANONYMOUS: bool = false;
2523            #[allow(unused_variables)]
2524            #[inline]
2525            fn new(
2526                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2527                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2528            ) -> Self {
2529                Self { version: data.0 }
2530            }
2531            #[inline]
2532            fn check_signature(
2533                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2534            ) -> alloy_sol_types::Result<()> {
2535                if topics.0 != Self::SIGNATURE_HASH {
2536                    return Err(
2537                        alloy_sol_types::Error::invalid_event_signature_hash(
2538                            Self::SIGNATURE,
2539                            topics.0,
2540                            Self::SIGNATURE_HASH,
2541                        ),
2542                    );
2543                }
2544                Ok(())
2545            }
2546            #[inline]
2547            fn tokenize_body(&self) -> Self::DataToken<'_> {
2548                (
2549                    <alloy::sol_types::sol_data::Uint<
2550                        8,
2551                    > as alloy_sol_types::SolType>::tokenize(&self.version),
2552                )
2553            }
2554            #[inline]
2555            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2556                (Self::SIGNATURE_HASH.into(),)
2557            }
2558            #[inline]
2559            fn encode_topics_raw(
2560                &self,
2561                out: &mut [alloy_sol_types::abi::token::WordToken],
2562            ) -> alloy_sol_types::Result<()> {
2563                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2564                    return Err(alloy_sol_types::Error::Overrun);
2565                }
2566                out[0usize] = alloy_sol_types::abi::token::WordToken(
2567                    Self::SIGNATURE_HASH,
2568                );
2569                Ok(())
2570            }
2571        }
2572        #[automatically_derived]
2573        impl alloy_sol_types::private::IntoLogData for Initialized {
2574            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2575                From::from(self)
2576            }
2577            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2578                From::from(&self)
2579            }
2580        }
2581        #[automatically_derived]
2582        impl From<&Initialized> for alloy_sol_types::private::LogData {
2583            #[inline]
2584            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
2585                alloy_sol_types::SolEvent::encode_log_data(this)
2586            }
2587        }
2588    };
2589    #[derive(serde::Serialize, serde::Deserialize)]
2590    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2591    /**Event with signature `NewTotalShares(address,int256)` and selector `0xd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098`.
2592```solidity
2593event NewTotalShares(address indexed podOwner, int256 newTotalShares);
2594```*/
2595    #[allow(
2596        non_camel_case_types,
2597        non_snake_case,
2598        clippy::pub_underscore_fields,
2599        clippy::style
2600    )]
2601    #[derive(Clone)]
2602    pub struct NewTotalShares {
2603        #[allow(missing_docs)]
2604        pub podOwner: alloy::sol_types::private::Address,
2605        #[allow(missing_docs)]
2606        pub newTotalShares: alloy::sol_types::private::primitives::aliases::I256,
2607    }
2608    #[allow(
2609        non_camel_case_types,
2610        non_snake_case,
2611        clippy::pub_underscore_fields,
2612        clippy::style
2613    )]
2614    const _: () = {
2615        use alloy::sol_types as alloy_sol_types;
2616        #[automatically_derived]
2617        impl alloy_sol_types::SolEvent for NewTotalShares {
2618            type DataTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
2619            type DataToken<'a> = <Self::DataTuple<
2620                'a,
2621            > as alloy_sol_types::SolType>::Token<'a>;
2622            type TopicList = (
2623                alloy_sol_types::sol_data::FixedBytes<32>,
2624                alloy::sol_types::sol_data::Address,
2625            );
2626            const SIGNATURE: &'static str = "NewTotalShares(address,int256)";
2627            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2628                212u8, 222u8, 247u8, 109u8, 109u8, 43u8, 237u8, 111u8, 20u8, 213u8,
2629                205u8, 154u8, 247u8, 60u8, 194u8, 145u8, 61u8, 97u8, 141u8, 0u8, 237u8,
2630                222u8, 66u8, 67u8, 46u8, 129u8, 192u8, 155u8, 254u8, 7u8, 112u8, 152u8,
2631            ]);
2632            const ANONYMOUS: bool = false;
2633            #[allow(unused_variables)]
2634            #[inline]
2635            fn new(
2636                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2637                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2638            ) -> Self {
2639                Self {
2640                    podOwner: topics.1,
2641                    newTotalShares: data.0,
2642                }
2643            }
2644            #[inline]
2645            fn check_signature(
2646                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2647            ) -> alloy_sol_types::Result<()> {
2648                if topics.0 != Self::SIGNATURE_HASH {
2649                    return Err(
2650                        alloy_sol_types::Error::invalid_event_signature_hash(
2651                            Self::SIGNATURE,
2652                            topics.0,
2653                            Self::SIGNATURE_HASH,
2654                        ),
2655                    );
2656                }
2657                Ok(())
2658            }
2659            #[inline]
2660            fn tokenize_body(&self) -> Self::DataToken<'_> {
2661                (
2662                    <alloy::sol_types::sol_data::Int<
2663                        256,
2664                    > as alloy_sol_types::SolType>::tokenize(&self.newTotalShares),
2665                )
2666            }
2667            #[inline]
2668            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2669                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
2670            }
2671            #[inline]
2672            fn encode_topics_raw(
2673                &self,
2674                out: &mut [alloy_sol_types::abi::token::WordToken],
2675            ) -> alloy_sol_types::Result<()> {
2676                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2677                    return Err(alloy_sol_types::Error::Overrun);
2678                }
2679                out[0usize] = alloy_sol_types::abi::token::WordToken(
2680                    Self::SIGNATURE_HASH,
2681                );
2682                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2683                    &self.podOwner,
2684                );
2685                Ok(())
2686            }
2687        }
2688        #[automatically_derived]
2689        impl alloy_sol_types::private::IntoLogData for NewTotalShares {
2690            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2691                From::from(self)
2692            }
2693            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2694                From::from(&self)
2695            }
2696        }
2697        #[automatically_derived]
2698        impl From<&NewTotalShares> for alloy_sol_types::private::LogData {
2699            #[inline]
2700            fn from(this: &NewTotalShares) -> alloy_sol_types::private::LogData {
2701                alloy_sol_types::SolEvent::encode_log_data(this)
2702            }
2703        }
2704    };
2705    #[derive(serde::Serialize, serde::Deserialize)]
2706    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2707    /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
2708```solidity
2709event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
2710```*/
2711    #[allow(
2712        non_camel_case_types,
2713        non_snake_case,
2714        clippy::pub_underscore_fields,
2715        clippy::style
2716    )]
2717    #[derive(Clone)]
2718    pub struct OwnershipTransferred {
2719        #[allow(missing_docs)]
2720        pub previousOwner: alloy::sol_types::private::Address,
2721        #[allow(missing_docs)]
2722        pub newOwner: alloy::sol_types::private::Address,
2723    }
2724    #[allow(
2725        non_camel_case_types,
2726        non_snake_case,
2727        clippy::pub_underscore_fields,
2728        clippy::style
2729    )]
2730    const _: () = {
2731        use alloy::sol_types as alloy_sol_types;
2732        #[automatically_derived]
2733        impl alloy_sol_types::SolEvent for OwnershipTransferred {
2734            type DataTuple<'a> = ();
2735            type DataToken<'a> = <Self::DataTuple<
2736                'a,
2737            > as alloy_sol_types::SolType>::Token<'a>;
2738            type TopicList = (
2739                alloy_sol_types::sol_data::FixedBytes<32>,
2740                alloy::sol_types::sol_data::Address,
2741                alloy::sol_types::sol_data::Address,
2742            );
2743            const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
2744            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2745                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
2746                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
2747                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
2748            ]);
2749            const ANONYMOUS: bool = false;
2750            #[allow(unused_variables)]
2751            #[inline]
2752            fn new(
2753                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2754                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2755            ) -> Self {
2756                Self {
2757                    previousOwner: topics.1,
2758                    newOwner: topics.2,
2759                }
2760            }
2761            #[inline]
2762            fn check_signature(
2763                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2764            ) -> alloy_sol_types::Result<()> {
2765                if topics.0 != Self::SIGNATURE_HASH {
2766                    return Err(
2767                        alloy_sol_types::Error::invalid_event_signature_hash(
2768                            Self::SIGNATURE,
2769                            topics.0,
2770                            Self::SIGNATURE_HASH,
2771                        ),
2772                    );
2773                }
2774                Ok(())
2775            }
2776            #[inline]
2777            fn tokenize_body(&self) -> Self::DataToken<'_> {
2778                ()
2779            }
2780            #[inline]
2781            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2782                (
2783                    Self::SIGNATURE_HASH.into(),
2784                    self.previousOwner.clone(),
2785                    self.newOwner.clone(),
2786                )
2787            }
2788            #[inline]
2789            fn encode_topics_raw(
2790                &self,
2791                out: &mut [alloy_sol_types::abi::token::WordToken],
2792            ) -> alloy_sol_types::Result<()> {
2793                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2794                    return Err(alloy_sol_types::Error::Overrun);
2795                }
2796                out[0usize] = alloy_sol_types::abi::token::WordToken(
2797                    Self::SIGNATURE_HASH,
2798                );
2799                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2800                    &self.previousOwner,
2801                );
2802                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2803                    &self.newOwner,
2804                );
2805                Ok(())
2806            }
2807        }
2808        #[automatically_derived]
2809        impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
2810            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2811                From::from(self)
2812            }
2813            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2814                From::from(&self)
2815            }
2816        }
2817        #[automatically_derived]
2818        impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
2819            #[inline]
2820            fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
2821                alloy_sol_types::SolEvent::encode_log_data(this)
2822            }
2823        }
2824    };
2825    #[derive(serde::Serialize, serde::Deserialize)]
2826    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2827    /**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
2828```solidity
2829event Paused(address indexed account, uint256 newPausedStatus);
2830```*/
2831    #[allow(
2832        non_camel_case_types,
2833        non_snake_case,
2834        clippy::pub_underscore_fields,
2835        clippy::style
2836    )]
2837    #[derive(Clone)]
2838    pub struct Paused {
2839        #[allow(missing_docs)]
2840        pub account: alloy::sol_types::private::Address,
2841        #[allow(missing_docs)]
2842        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
2843    }
2844    #[allow(
2845        non_camel_case_types,
2846        non_snake_case,
2847        clippy::pub_underscore_fields,
2848        clippy::style
2849    )]
2850    const _: () = {
2851        use alloy::sol_types as alloy_sol_types;
2852        #[automatically_derived]
2853        impl alloy_sol_types::SolEvent for Paused {
2854            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2855            type DataToken<'a> = <Self::DataTuple<
2856                'a,
2857            > as alloy_sol_types::SolType>::Token<'a>;
2858            type TopicList = (
2859                alloy_sol_types::sol_data::FixedBytes<32>,
2860                alloy::sol_types::sol_data::Address,
2861            );
2862            const SIGNATURE: &'static str = "Paused(address,uint256)";
2863            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2864                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
2865                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
2866                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
2867            ]);
2868            const ANONYMOUS: bool = false;
2869            #[allow(unused_variables)]
2870            #[inline]
2871            fn new(
2872                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2873                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2874            ) -> Self {
2875                Self {
2876                    account: topics.1,
2877                    newPausedStatus: data.0,
2878                }
2879            }
2880            #[inline]
2881            fn check_signature(
2882                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2883            ) -> alloy_sol_types::Result<()> {
2884                if topics.0 != Self::SIGNATURE_HASH {
2885                    return Err(
2886                        alloy_sol_types::Error::invalid_event_signature_hash(
2887                            Self::SIGNATURE,
2888                            topics.0,
2889                            Self::SIGNATURE_HASH,
2890                        ),
2891                    );
2892                }
2893                Ok(())
2894            }
2895            #[inline]
2896            fn tokenize_body(&self) -> Self::DataToken<'_> {
2897                (
2898                    <alloy::sol_types::sol_data::Uint<
2899                        256,
2900                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
2901                )
2902            }
2903            #[inline]
2904            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2905                (Self::SIGNATURE_HASH.into(), self.account.clone())
2906            }
2907            #[inline]
2908            fn encode_topics_raw(
2909                &self,
2910                out: &mut [alloy_sol_types::abi::token::WordToken],
2911            ) -> alloy_sol_types::Result<()> {
2912                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2913                    return Err(alloy_sol_types::Error::Overrun);
2914                }
2915                out[0usize] = alloy_sol_types::abi::token::WordToken(
2916                    Self::SIGNATURE_HASH,
2917                );
2918                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2919                    &self.account,
2920                );
2921                Ok(())
2922            }
2923        }
2924        #[automatically_derived]
2925        impl alloy_sol_types::private::IntoLogData for Paused {
2926            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2927                From::from(self)
2928            }
2929            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2930                From::from(&self)
2931            }
2932        }
2933        #[automatically_derived]
2934        impl From<&Paused> for alloy_sol_types::private::LogData {
2935            #[inline]
2936            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
2937                alloy_sol_types::SolEvent::encode_log_data(this)
2938            }
2939        }
2940    };
2941    #[derive(serde::Serialize, serde::Deserialize)]
2942    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2943    /**Event with signature `PodDeployed(address,address)` and selector `0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a`.
2944```solidity
2945event PodDeployed(address indexed eigenPod, address indexed podOwner);
2946```*/
2947    #[allow(
2948        non_camel_case_types,
2949        non_snake_case,
2950        clippy::pub_underscore_fields,
2951        clippy::style
2952    )]
2953    #[derive(Clone)]
2954    pub struct PodDeployed {
2955        #[allow(missing_docs)]
2956        pub eigenPod: alloy::sol_types::private::Address,
2957        #[allow(missing_docs)]
2958        pub podOwner: alloy::sol_types::private::Address,
2959    }
2960    #[allow(
2961        non_camel_case_types,
2962        non_snake_case,
2963        clippy::pub_underscore_fields,
2964        clippy::style
2965    )]
2966    const _: () = {
2967        use alloy::sol_types as alloy_sol_types;
2968        #[automatically_derived]
2969        impl alloy_sol_types::SolEvent for PodDeployed {
2970            type DataTuple<'a> = ();
2971            type DataToken<'a> = <Self::DataTuple<
2972                'a,
2973            > as alloy_sol_types::SolType>::Token<'a>;
2974            type TopicList = (
2975                alloy_sol_types::sol_data::FixedBytes<32>,
2976                alloy::sol_types::sol_data::Address,
2977                alloy::sol_types::sol_data::Address,
2978            );
2979            const SIGNATURE: &'static str = "PodDeployed(address,address)";
2980            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2981                33u8, 201u8, 157u8, 13u8, 176u8, 34u8, 19u8, 195u8, 47u8, 255u8, 91u8,
2982                5u8, 207u8, 10u8, 113u8, 138u8, 181u8, 248u8, 88u8, 128u8, 43u8, 145u8,
2983                73u8, 143u8, 128u8, 216u8, 34u8, 112u8, 40u8, 157u8, 133u8, 106u8,
2984            ]);
2985            const ANONYMOUS: bool = false;
2986            #[allow(unused_variables)]
2987            #[inline]
2988            fn new(
2989                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2990                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2991            ) -> Self {
2992                Self {
2993                    eigenPod: topics.1,
2994                    podOwner: topics.2,
2995                }
2996            }
2997            #[inline]
2998            fn check_signature(
2999                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3000            ) -> alloy_sol_types::Result<()> {
3001                if topics.0 != Self::SIGNATURE_HASH {
3002                    return Err(
3003                        alloy_sol_types::Error::invalid_event_signature_hash(
3004                            Self::SIGNATURE,
3005                            topics.0,
3006                            Self::SIGNATURE_HASH,
3007                        ),
3008                    );
3009                }
3010                Ok(())
3011            }
3012            #[inline]
3013            fn tokenize_body(&self) -> Self::DataToken<'_> {
3014                ()
3015            }
3016            #[inline]
3017            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3018                (
3019                    Self::SIGNATURE_HASH.into(),
3020                    self.eigenPod.clone(),
3021                    self.podOwner.clone(),
3022                )
3023            }
3024            #[inline]
3025            fn encode_topics_raw(
3026                &self,
3027                out: &mut [alloy_sol_types::abi::token::WordToken],
3028            ) -> alloy_sol_types::Result<()> {
3029                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3030                    return Err(alloy_sol_types::Error::Overrun);
3031                }
3032                out[0usize] = alloy_sol_types::abi::token::WordToken(
3033                    Self::SIGNATURE_HASH,
3034                );
3035                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3036                    &self.eigenPod,
3037                );
3038                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3039                    &self.podOwner,
3040                );
3041                Ok(())
3042            }
3043        }
3044        #[automatically_derived]
3045        impl alloy_sol_types::private::IntoLogData for PodDeployed {
3046            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3047                From::from(self)
3048            }
3049            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3050                From::from(&self)
3051            }
3052        }
3053        #[automatically_derived]
3054        impl From<&PodDeployed> for alloy_sol_types::private::LogData {
3055            #[inline]
3056            fn from(this: &PodDeployed) -> alloy_sol_types::private::LogData {
3057                alloy_sol_types::SolEvent::encode_log_data(this)
3058            }
3059        }
3060    };
3061    #[derive(serde::Serialize, serde::Deserialize)]
3062    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3063    /**Event with signature `PodSharesUpdated(address,int256)` and selector `0x4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193`.
3064```solidity
3065event PodSharesUpdated(address indexed podOwner, int256 sharesDelta);
3066```*/
3067    #[allow(
3068        non_camel_case_types,
3069        non_snake_case,
3070        clippy::pub_underscore_fields,
3071        clippy::style
3072    )]
3073    #[derive(Clone)]
3074    pub struct PodSharesUpdated {
3075        #[allow(missing_docs)]
3076        pub podOwner: alloy::sol_types::private::Address,
3077        #[allow(missing_docs)]
3078        pub sharesDelta: alloy::sol_types::private::primitives::aliases::I256,
3079    }
3080    #[allow(
3081        non_camel_case_types,
3082        non_snake_case,
3083        clippy::pub_underscore_fields,
3084        clippy::style
3085    )]
3086    const _: () = {
3087        use alloy::sol_types as alloy_sol_types;
3088        #[automatically_derived]
3089        impl alloy_sol_types::SolEvent for PodSharesUpdated {
3090            type DataTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
3091            type DataToken<'a> = <Self::DataTuple<
3092                'a,
3093            > as alloy_sol_types::SolType>::Token<'a>;
3094            type TopicList = (
3095                alloy_sol_types::sol_data::FixedBytes<32>,
3096                alloy::sol_types::sol_data::Address,
3097            );
3098            const SIGNATURE: &'static str = "PodSharesUpdated(address,int256)";
3099            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3100                78u8, 43u8, 121u8, 29u8, 237u8, 204u8, 217u8, 251u8, 48u8, 20u8, 27u8,
3101                8u8, 140u8, 171u8, 245u8, 193u8, 74u8, 137u8, 18u8, 181u8, 47u8, 89u8,
3102                55u8, 92u8, 149u8, 192u8, 16u8, 112u8, 11u8, 140u8, 97u8, 147u8,
3103            ]);
3104            const ANONYMOUS: bool = false;
3105            #[allow(unused_variables)]
3106            #[inline]
3107            fn new(
3108                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3109                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3110            ) -> Self {
3111                Self {
3112                    podOwner: topics.1,
3113                    sharesDelta: data.0,
3114                }
3115            }
3116            #[inline]
3117            fn check_signature(
3118                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3119            ) -> alloy_sol_types::Result<()> {
3120                if topics.0 != Self::SIGNATURE_HASH {
3121                    return Err(
3122                        alloy_sol_types::Error::invalid_event_signature_hash(
3123                            Self::SIGNATURE,
3124                            topics.0,
3125                            Self::SIGNATURE_HASH,
3126                        ),
3127                    );
3128                }
3129                Ok(())
3130            }
3131            #[inline]
3132            fn tokenize_body(&self) -> Self::DataToken<'_> {
3133                (
3134                    <alloy::sol_types::sol_data::Int<
3135                        256,
3136                    > as alloy_sol_types::SolType>::tokenize(&self.sharesDelta),
3137                )
3138            }
3139            #[inline]
3140            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3141                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
3142            }
3143            #[inline]
3144            fn encode_topics_raw(
3145                &self,
3146                out: &mut [alloy_sol_types::abi::token::WordToken],
3147            ) -> alloy_sol_types::Result<()> {
3148                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3149                    return Err(alloy_sol_types::Error::Overrun);
3150                }
3151                out[0usize] = alloy_sol_types::abi::token::WordToken(
3152                    Self::SIGNATURE_HASH,
3153                );
3154                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3155                    &self.podOwner,
3156                );
3157                Ok(())
3158            }
3159        }
3160        #[automatically_derived]
3161        impl alloy_sol_types::private::IntoLogData for PodSharesUpdated {
3162            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3163                From::from(self)
3164            }
3165            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3166                From::from(&self)
3167            }
3168        }
3169        #[automatically_derived]
3170        impl From<&PodSharesUpdated> for alloy_sol_types::private::LogData {
3171            #[inline]
3172            fn from(this: &PodSharesUpdated) -> alloy_sol_types::private::LogData {
3173                alloy_sol_types::SolEvent::encode_log_data(this)
3174            }
3175        }
3176    };
3177    #[derive(serde::Serialize, serde::Deserialize)]
3178    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3179    /**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
3180```solidity
3181event Unpaused(address indexed account, uint256 newPausedStatus);
3182```*/
3183    #[allow(
3184        non_camel_case_types,
3185        non_snake_case,
3186        clippy::pub_underscore_fields,
3187        clippy::style
3188    )]
3189    #[derive(Clone)]
3190    pub struct Unpaused {
3191        #[allow(missing_docs)]
3192        pub account: alloy::sol_types::private::Address,
3193        #[allow(missing_docs)]
3194        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
3195    }
3196    #[allow(
3197        non_camel_case_types,
3198        non_snake_case,
3199        clippy::pub_underscore_fields,
3200        clippy::style
3201    )]
3202    const _: () = {
3203        use alloy::sol_types as alloy_sol_types;
3204        #[automatically_derived]
3205        impl alloy_sol_types::SolEvent for Unpaused {
3206            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3207            type DataToken<'a> = <Self::DataTuple<
3208                'a,
3209            > as alloy_sol_types::SolType>::Token<'a>;
3210            type TopicList = (
3211                alloy_sol_types::sol_data::FixedBytes<32>,
3212                alloy::sol_types::sol_data::Address,
3213            );
3214            const SIGNATURE: &'static str = "Unpaused(address,uint256)";
3215            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3216                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
3217                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
3218                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
3219            ]);
3220            const ANONYMOUS: bool = false;
3221            #[allow(unused_variables)]
3222            #[inline]
3223            fn new(
3224                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3225                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3226            ) -> Self {
3227                Self {
3228                    account: topics.1,
3229                    newPausedStatus: data.0,
3230                }
3231            }
3232            #[inline]
3233            fn check_signature(
3234                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3235            ) -> alloy_sol_types::Result<()> {
3236                if topics.0 != Self::SIGNATURE_HASH {
3237                    return Err(
3238                        alloy_sol_types::Error::invalid_event_signature_hash(
3239                            Self::SIGNATURE,
3240                            topics.0,
3241                            Self::SIGNATURE_HASH,
3242                        ),
3243                    );
3244                }
3245                Ok(())
3246            }
3247            #[inline]
3248            fn tokenize_body(&self) -> Self::DataToken<'_> {
3249                (
3250                    <alloy::sol_types::sol_data::Uint<
3251                        256,
3252                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
3253                )
3254            }
3255            #[inline]
3256            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3257                (Self::SIGNATURE_HASH.into(), self.account.clone())
3258            }
3259            #[inline]
3260            fn encode_topics_raw(
3261                &self,
3262                out: &mut [alloy_sol_types::abi::token::WordToken],
3263            ) -> alloy_sol_types::Result<()> {
3264                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3265                    return Err(alloy_sol_types::Error::Overrun);
3266                }
3267                out[0usize] = alloy_sol_types::abi::token::WordToken(
3268                    Self::SIGNATURE_HASH,
3269                );
3270                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3271                    &self.account,
3272                );
3273                Ok(())
3274            }
3275        }
3276        #[automatically_derived]
3277        impl alloy_sol_types::private::IntoLogData for Unpaused {
3278            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3279                From::from(self)
3280            }
3281            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3282                From::from(&self)
3283            }
3284        }
3285        #[automatically_derived]
3286        impl From<&Unpaused> for alloy_sol_types::private::LogData {
3287            #[inline]
3288            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
3289                alloy_sol_types::SolEvent::encode_log_data(this)
3290            }
3291        }
3292    };
3293    /**Constructor`.
3294```solidity
3295constructor(address _ethPOS, address _eigenPodBeacon, address _delegationManager, address _pauserRegistry, string _version);
3296```*/
3297    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3298    #[derive(Clone)]
3299    pub struct constructorCall {
3300        #[allow(missing_docs)]
3301        pub _ethPOS: alloy::sol_types::private::Address,
3302        #[allow(missing_docs)]
3303        pub _eigenPodBeacon: alloy::sol_types::private::Address,
3304        #[allow(missing_docs)]
3305        pub _delegationManager: alloy::sol_types::private::Address,
3306        #[allow(missing_docs)]
3307        pub _pauserRegistry: alloy::sol_types::private::Address,
3308        #[allow(missing_docs)]
3309        pub _version: alloy::sol_types::private::String,
3310    }
3311    const _: () = {
3312        use alloy::sol_types as alloy_sol_types;
3313        {
3314            #[doc(hidden)]
3315            type UnderlyingSolTuple<'a> = (
3316                alloy::sol_types::sol_data::Address,
3317                alloy::sol_types::sol_data::Address,
3318                alloy::sol_types::sol_data::Address,
3319                alloy::sol_types::sol_data::Address,
3320                alloy::sol_types::sol_data::String,
3321            );
3322            #[doc(hidden)]
3323            type UnderlyingRustTuple<'a> = (
3324                alloy::sol_types::private::Address,
3325                alloy::sol_types::private::Address,
3326                alloy::sol_types::private::Address,
3327                alloy::sol_types::private::Address,
3328                alloy::sol_types::private::String,
3329            );
3330            #[cfg(test)]
3331            #[allow(dead_code, unreachable_patterns)]
3332            fn _type_assertion(
3333                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3334            ) {
3335                match _t {
3336                    alloy_sol_types::private::AssertTypeEq::<
3337                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3338                    >(_) => {}
3339                }
3340            }
3341            #[automatically_derived]
3342            #[doc(hidden)]
3343            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
3344                fn from(value: constructorCall) -> Self {
3345                    (
3346                        value._ethPOS,
3347                        value._eigenPodBeacon,
3348                        value._delegationManager,
3349                        value._pauserRegistry,
3350                        value._version,
3351                    )
3352                }
3353            }
3354            #[automatically_derived]
3355            #[doc(hidden)]
3356            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
3357                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3358                    Self {
3359                        _ethPOS: tuple.0,
3360                        _eigenPodBeacon: tuple.1,
3361                        _delegationManager: tuple.2,
3362                        _pauserRegistry: tuple.3,
3363                        _version: tuple.4,
3364                    }
3365                }
3366            }
3367        }
3368        #[automatically_derived]
3369        impl alloy_sol_types::SolConstructor for constructorCall {
3370            type Parameters<'a> = (
3371                alloy::sol_types::sol_data::Address,
3372                alloy::sol_types::sol_data::Address,
3373                alloy::sol_types::sol_data::Address,
3374                alloy::sol_types::sol_data::Address,
3375                alloy::sol_types::sol_data::String,
3376            );
3377            type Token<'a> = <Self::Parameters<
3378                'a,
3379            > as alloy_sol_types::SolType>::Token<'a>;
3380            #[inline]
3381            fn new<'a>(
3382                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3383            ) -> Self {
3384                tuple.into()
3385            }
3386            #[inline]
3387            fn tokenize(&self) -> Self::Token<'_> {
3388                (
3389                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3390                        &self._ethPOS,
3391                    ),
3392                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3393                        &self._eigenPodBeacon,
3394                    ),
3395                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3396                        &self._delegationManager,
3397                    ),
3398                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3399                        &self._pauserRegistry,
3400                    ),
3401                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
3402                        &self._version,
3403                    ),
3404                )
3405            }
3406        }
3407    };
3408    #[derive(serde::Serialize, serde::Deserialize)]
3409    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3410    /**Function with signature `addShares(address,address,uint256)` and selector `0x50ff7225`.
3411```solidity
3412function addShares(address staker, address strategy, uint256 shares) external returns (uint256, uint256);
3413```*/
3414    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3415    #[derive(Clone)]
3416    pub struct addSharesCall {
3417        #[allow(missing_docs)]
3418        pub staker: alloy::sol_types::private::Address,
3419        #[allow(missing_docs)]
3420        pub strategy: alloy::sol_types::private::Address,
3421        #[allow(missing_docs)]
3422        pub shares: alloy::sol_types::private::primitives::aliases::U256,
3423    }
3424    #[derive(serde::Serialize, serde::Deserialize)]
3425    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3426    ///Container type for the return parameters of the [`addShares(address,address,uint256)`](addSharesCall) function.
3427    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3428    #[derive(Clone)]
3429    pub struct addSharesReturn {
3430        #[allow(missing_docs)]
3431        pub _0: alloy::sol_types::private::primitives::aliases::U256,
3432        #[allow(missing_docs)]
3433        pub _1: alloy::sol_types::private::primitives::aliases::U256,
3434    }
3435    #[allow(
3436        non_camel_case_types,
3437        non_snake_case,
3438        clippy::pub_underscore_fields,
3439        clippy::style
3440    )]
3441    const _: () = {
3442        use alloy::sol_types as alloy_sol_types;
3443        {
3444            #[doc(hidden)]
3445            type UnderlyingSolTuple<'a> = (
3446                alloy::sol_types::sol_data::Address,
3447                alloy::sol_types::sol_data::Address,
3448                alloy::sol_types::sol_data::Uint<256>,
3449            );
3450            #[doc(hidden)]
3451            type UnderlyingRustTuple<'a> = (
3452                alloy::sol_types::private::Address,
3453                alloy::sol_types::private::Address,
3454                alloy::sol_types::private::primitives::aliases::U256,
3455            );
3456            #[cfg(test)]
3457            #[allow(dead_code, unreachable_patterns)]
3458            fn _type_assertion(
3459                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3460            ) {
3461                match _t {
3462                    alloy_sol_types::private::AssertTypeEq::<
3463                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3464                    >(_) => {}
3465                }
3466            }
3467            #[automatically_derived]
3468            #[doc(hidden)]
3469            impl ::core::convert::From<addSharesCall> for UnderlyingRustTuple<'_> {
3470                fn from(value: addSharesCall) -> Self {
3471                    (value.staker, value.strategy, value.shares)
3472                }
3473            }
3474            #[automatically_derived]
3475            #[doc(hidden)]
3476            impl ::core::convert::From<UnderlyingRustTuple<'_>> for addSharesCall {
3477                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3478                    Self {
3479                        staker: tuple.0,
3480                        strategy: tuple.1,
3481                        shares: tuple.2,
3482                    }
3483                }
3484            }
3485        }
3486        {
3487            #[doc(hidden)]
3488            type UnderlyingSolTuple<'a> = (
3489                alloy::sol_types::sol_data::Uint<256>,
3490                alloy::sol_types::sol_data::Uint<256>,
3491            );
3492            #[doc(hidden)]
3493            type UnderlyingRustTuple<'a> = (
3494                alloy::sol_types::private::primitives::aliases::U256,
3495                alloy::sol_types::private::primitives::aliases::U256,
3496            );
3497            #[cfg(test)]
3498            #[allow(dead_code, unreachable_patterns)]
3499            fn _type_assertion(
3500                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3501            ) {
3502                match _t {
3503                    alloy_sol_types::private::AssertTypeEq::<
3504                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3505                    >(_) => {}
3506                }
3507            }
3508            #[automatically_derived]
3509            #[doc(hidden)]
3510            impl ::core::convert::From<addSharesReturn> for UnderlyingRustTuple<'_> {
3511                fn from(value: addSharesReturn) -> Self {
3512                    (value._0, value._1)
3513                }
3514            }
3515            #[automatically_derived]
3516            #[doc(hidden)]
3517            impl ::core::convert::From<UnderlyingRustTuple<'_>> for addSharesReturn {
3518                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3519                    Self { _0: tuple.0, _1: tuple.1 }
3520                }
3521            }
3522        }
3523        impl addSharesReturn {
3524            fn _tokenize(
3525                &self,
3526            ) -> <addSharesCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
3527                (
3528                    <alloy::sol_types::sol_data::Uint<
3529                        256,
3530                    > as alloy_sol_types::SolType>::tokenize(&self._0),
3531                    <alloy::sol_types::sol_data::Uint<
3532                        256,
3533                    > as alloy_sol_types::SolType>::tokenize(&self._1),
3534                )
3535            }
3536        }
3537        #[automatically_derived]
3538        impl alloy_sol_types::SolCall for addSharesCall {
3539            type Parameters<'a> = (
3540                alloy::sol_types::sol_data::Address,
3541                alloy::sol_types::sol_data::Address,
3542                alloy::sol_types::sol_data::Uint<256>,
3543            );
3544            type Token<'a> = <Self::Parameters<
3545                'a,
3546            > as alloy_sol_types::SolType>::Token<'a>;
3547            type Return = addSharesReturn;
3548            type ReturnTuple<'a> = (
3549                alloy::sol_types::sol_data::Uint<256>,
3550                alloy::sol_types::sol_data::Uint<256>,
3551            );
3552            type ReturnToken<'a> = <Self::ReturnTuple<
3553                'a,
3554            > as alloy_sol_types::SolType>::Token<'a>;
3555            const SIGNATURE: &'static str = "addShares(address,address,uint256)";
3556            const SELECTOR: [u8; 4] = [80u8, 255u8, 114u8, 37u8];
3557            #[inline]
3558            fn new<'a>(
3559                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3560            ) -> Self {
3561                tuple.into()
3562            }
3563            #[inline]
3564            fn tokenize(&self) -> Self::Token<'_> {
3565                (
3566                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3567                        &self.staker,
3568                    ),
3569                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3570                        &self.strategy,
3571                    ),
3572                    <alloy::sol_types::sol_data::Uint<
3573                        256,
3574                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
3575                )
3576            }
3577            #[inline]
3578            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3579                addSharesReturn::_tokenize(ret)
3580            }
3581            #[inline]
3582            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
3583                <Self::ReturnTuple<
3584                    '_,
3585                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
3586                    .map(Into::into)
3587            }
3588            #[inline]
3589            fn abi_decode_returns_validate(
3590                data: &[u8],
3591            ) -> alloy_sol_types::Result<Self::Return> {
3592                <Self::ReturnTuple<
3593                    '_,
3594                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3595                    .map(Into::into)
3596            }
3597        }
3598    };
3599    #[derive(serde::Serialize, serde::Deserialize)]
3600    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3601    /**Function with signature `beaconChainETHStrategy()` and selector `0x9104c319`.
3602```solidity
3603function beaconChainETHStrategy() external view returns (address);
3604```*/
3605    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3606    #[derive(Clone)]
3607    pub struct beaconChainETHStrategyCall;
3608    #[derive(serde::Serialize, serde::Deserialize)]
3609    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3610    ///Container type for the return parameters of the [`beaconChainETHStrategy()`](beaconChainETHStrategyCall) function.
3611    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3612    #[derive(Clone)]
3613    pub struct beaconChainETHStrategyReturn {
3614        #[allow(missing_docs)]
3615        pub _0: alloy::sol_types::private::Address,
3616    }
3617    #[allow(
3618        non_camel_case_types,
3619        non_snake_case,
3620        clippy::pub_underscore_fields,
3621        clippy::style
3622    )]
3623    const _: () = {
3624        use alloy::sol_types as alloy_sol_types;
3625        {
3626            #[doc(hidden)]
3627            type UnderlyingSolTuple<'a> = ();
3628            #[doc(hidden)]
3629            type UnderlyingRustTuple<'a> = ();
3630            #[cfg(test)]
3631            #[allow(dead_code, unreachable_patterns)]
3632            fn _type_assertion(
3633                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3634            ) {
3635                match _t {
3636                    alloy_sol_types::private::AssertTypeEq::<
3637                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3638                    >(_) => {}
3639                }
3640            }
3641            #[automatically_derived]
3642            #[doc(hidden)]
3643            impl ::core::convert::From<beaconChainETHStrategyCall>
3644            for UnderlyingRustTuple<'_> {
3645                fn from(value: beaconChainETHStrategyCall) -> Self {
3646                    ()
3647                }
3648            }
3649            #[automatically_derived]
3650            #[doc(hidden)]
3651            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3652            for beaconChainETHStrategyCall {
3653                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3654                    Self
3655                }
3656            }
3657        }
3658        {
3659            #[doc(hidden)]
3660            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
3661            #[doc(hidden)]
3662            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
3663            #[cfg(test)]
3664            #[allow(dead_code, unreachable_patterns)]
3665            fn _type_assertion(
3666                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3667            ) {
3668                match _t {
3669                    alloy_sol_types::private::AssertTypeEq::<
3670                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3671                    >(_) => {}
3672                }
3673            }
3674            #[automatically_derived]
3675            #[doc(hidden)]
3676            impl ::core::convert::From<beaconChainETHStrategyReturn>
3677            for UnderlyingRustTuple<'_> {
3678                fn from(value: beaconChainETHStrategyReturn) -> Self {
3679                    (value._0,)
3680                }
3681            }
3682            #[automatically_derived]
3683            #[doc(hidden)]
3684            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3685            for beaconChainETHStrategyReturn {
3686                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3687                    Self { _0: tuple.0 }
3688                }
3689            }
3690        }
3691        #[automatically_derived]
3692        impl alloy_sol_types::SolCall for beaconChainETHStrategyCall {
3693            type Parameters<'a> = ();
3694            type Token<'a> = <Self::Parameters<
3695                'a,
3696            > as alloy_sol_types::SolType>::Token<'a>;
3697            type Return = alloy::sol_types::private::Address;
3698            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
3699            type ReturnToken<'a> = <Self::ReturnTuple<
3700                'a,
3701            > as alloy_sol_types::SolType>::Token<'a>;
3702            const SIGNATURE: &'static str = "beaconChainETHStrategy()";
3703            const SELECTOR: [u8; 4] = [145u8, 4u8, 195u8, 25u8];
3704            #[inline]
3705            fn new<'a>(
3706                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3707            ) -> Self {
3708                tuple.into()
3709            }
3710            #[inline]
3711            fn tokenize(&self) -> Self::Token<'_> {
3712                ()
3713            }
3714            #[inline]
3715            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3716                (
3717                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3718                        ret,
3719                    ),
3720                )
3721            }
3722            #[inline]
3723            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
3724                <Self::ReturnTuple<
3725                    '_,
3726                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
3727                    .map(|r| {
3728                        let r: beaconChainETHStrategyReturn = r.into();
3729                        r._0
3730                    })
3731            }
3732            #[inline]
3733            fn abi_decode_returns_validate(
3734                data: &[u8],
3735            ) -> alloy_sol_types::Result<Self::Return> {
3736                <Self::ReturnTuple<
3737                    '_,
3738                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3739                    .map(|r| {
3740                        let r: beaconChainETHStrategyReturn = r.into();
3741                        r._0
3742                    })
3743            }
3744        }
3745    };
3746    #[derive(serde::Serialize, serde::Deserialize)]
3747    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3748    /**Function with signature `beaconChainSlashingFactor(address)` and selector `0xa3d75e09`.
3749```solidity
3750function beaconChainSlashingFactor(address podOwner) external view returns (uint64);
3751```*/
3752    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3753    #[derive(Clone)]
3754    pub struct beaconChainSlashingFactorCall {
3755        #[allow(missing_docs)]
3756        pub podOwner: alloy::sol_types::private::Address,
3757    }
3758    #[derive(serde::Serialize, serde::Deserialize)]
3759    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3760    ///Container type for the return parameters of the [`beaconChainSlashingFactor(address)`](beaconChainSlashingFactorCall) function.
3761    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3762    #[derive(Clone)]
3763    pub struct beaconChainSlashingFactorReturn {
3764        #[allow(missing_docs)]
3765        pub _0: u64,
3766    }
3767    #[allow(
3768        non_camel_case_types,
3769        non_snake_case,
3770        clippy::pub_underscore_fields,
3771        clippy::style
3772    )]
3773    const _: () = {
3774        use alloy::sol_types as alloy_sol_types;
3775        {
3776            #[doc(hidden)]
3777            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
3778            #[doc(hidden)]
3779            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
3780            #[cfg(test)]
3781            #[allow(dead_code, unreachable_patterns)]
3782            fn _type_assertion(
3783                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3784            ) {
3785                match _t {
3786                    alloy_sol_types::private::AssertTypeEq::<
3787                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3788                    >(_) => {}
3789                }
3790            }
3791            #[automatically_derived]
3792            #[doc(hidden)]
3793            impl ::core::convert::From<beaconChainSlashingFactorCall>
3794            for UnderlyingRustTuple<'_> {
3795                fn from(value: beaconChainSlashingFactorCall) -> Self {
3796                    (value.podOwner,)
3797                }
3798            }
3799            #[automatically_derived]
3800            #[doc(hidden)]
3801            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3802            for beaconChainSlashingFactorCall {
3803                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3804                    Self { podOwner: tuple.0 }
3805                }
3806            }
3807        }
3808        {
3809            #[doc(hidden)]
3810            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
3811            #[doc(hidden)]
3812            type UnderlyingRustTuple<'a> = (u64,);
3813            #[cfg(test)]
3814            #[allow(dead_code, unreachable_patterns)]
3815            fn _type_assertion(
3816                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3817            ) {
3818                match _t {
3819                    alloy_sol_types::private::AssertTypeEq::<
3820                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3821                    >(_) => {}
3822                }
3823            }
3824            #[automatically_derived]
3825            #[doc(hidden)]
3826            impl ::core::convert::From<beaconChainSlashingFactorReturn>
3827            for UnderlyingRustTuple<'_> {
3828                fn from(value: beaconChainSlashingFactorReturn) -> Self {
3829                    (value._0,)
3830                }
3831            }
3832            #[automatically_derived]
3833            #[doc(hidden)]
3834            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3835            for beaconChainSlashingFactorReturn {
3836                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3837                    Self { _0: tuple.0 }
3838                }
3839            }
3840        }
3841        #[automatically_derived]
3842        impl alloy_sol_types::SolCall for beaconChainSlashingFactorCall {
3843            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
3844            type Token<'a> = <Self::Parameters<
3845                'a,
3846            > as alloy_sol_types::SolType>::Token<'a>;
3847            type Return = u64;
3848            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
3849            type ReturnToken<'a> = <Self::ReturnTuple<
3850                'a,
3851            > as alloy_sol_types::SolType>::Token<'a>;
3852            const SIGNATURE: &'static str = "beaconChainSlashingFactor(address)";
3853            const SELECTOR: [u8; 4] = [163u8, 215u8, 94u8, 9u8];
3854            #[inline]
3855            fn new<'a>(
3856                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3857            ) -> Self {
3858                tuple.into()
3859            }
3860            #[inline]
3861            fn tokenize(&self) -> Self::Token<'_> {
3862                (
3863                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3864                        &self.podOwner,
3865                    ),
3866                )
3867            }
3868            #[inline]
3869            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3870                (
3871                    <alloy::sol_types::sol_data::Uint<
3872                        64,
3873                    > as alloy_sol_types::SolType>::tokenize(ret),
3874                )
3875            }
3876            #[inline]
3877            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
3878                <Self::ReturnTuple<
3879                    '_,
3880                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
3881                    .map(|r| {
3882                        let r: beaconChainSlashingFactorReturn = r.into();
3883                        r._0
3884                    })
3885            }
3886            #[inline]
3887            fn abi_decode_returns_validate(
3888                data: &[u8],
3889            ) -> alloy_sol_types::Result<Self::Return> {
3890                <Self::ReturnTuple<
3891                    '_,
3892                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3893                    .map(|r| {
3894                        let r: beaconChainSlashingFactorReturn = r.into();
3895                        r._0
3896                    })
3897            }
3898        }
3899    };
3900    #[derive(serde::Serialize, serde::Deserialize)]
3901    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3902    /**Function with signature `burnableETHShares()` and selector `0xf5d4fed3`.
3903```solidity
3904function burnableETHShares() external view returns (uint256);
3905```*/
3906    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3907    #[derive(Clone)]
3908    pub struct burnableETHSharesCall;
3909    #[derive(serde::Serialize, serde::Deserialize)]
3910    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3911    ///Container type for the return parameters of the [`burnableETHShares()`](burnableETHSharesCall) function.
3912    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3913    #[derive(Clone)]
3914    pub struct burnableETHSharesReturn {
3915        #[allow(missing_docs)]
3916        pub _0: alloy::sol_types::private::primitives::aliases::U256,
3917    }
3918    #[allow(
3919        non_camel_case_types,
3920        non_snake_case,
3921        clippy::pub_underscore_fields,
3922        clippy::style
3923    )]
3924    const _: () = {
3925        use alloy::sol_types as alloy_sol_types;
3926        {
3927            #[doc(hidden)]
3928            type UnderlyingSolTuple<'a> = ();
3929            #[doc(hidden)]
3930            type UnderlyingRustTuple<'a> = ();
3931            #[cfg(test)]
3932            #[allow(dead_code, unreachable_patterns)]
3933            fn _type_assertion(
3934                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3935            ) {
3936                match _t {
3937                    alloy_sol_types::private::AssertTypeEq::<
3938                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3939                    >(_) => {}
3940                }
3941            }
3942            #[automatically_derived]
3943            #[doc(hidden)]
3944            impl ::core::convert::From<burnableETHSharesCall>
3945            for UnderlyingRustTuple<'_> {
3946                fn from(value: burnableETHSharesCall) -> Self {
3947                    ()
3948                }
3949            }
3950            #[automatically_derived]
3951            #[doc(hidden)]
3952            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3953            for burnableETHSharesCall {
3954                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3955                    Self
3956                }
3957            }
3958        }
3959        {
3960            #[doc(hidden)]
3961            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3962            #[doc(hidden)]
3963            type UnderlyingRustTuple<'a> = (
3964                alloy::sol_types::private::primitives::aliases::U256,
3965            );
3966            #[cfg(test)]
3967            #[allow(dead_code, unreachable_patterns)]
3968            fn _type_assertion(
3969                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3970            ) {
3971                match _t {
3972                    alloy_sol_types::private::AssertTypeEq::<
3973                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3974                    >(_) => {}
3975                }
3976            }
3977            #[automatically_derived]
3978            #[doc(hidden)]
3979            impl ::core::convert::From<burnableETHSharesReturn>
3980            for UnderlyingRustTuple<'_> {
3981                fn from(value: burnableETHSharesReturn) -> Self {
3982                    (value._0,)
3983                }
3984            }
3985            #[automatically_derived]
3986            #[doc(hidden)]
3987            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3988            for burnableETHSharesReturn {
3989                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3990                    Self { _0: tuple.0 }
3991                }
3992            }
3993        }
3994        #[automatically_derived]
3995        impl alloy_sol_types::SolCall for burnableETHSharesCall {
3996            type Parameters<'a> = ();
3997            type Token<'a> = <Self::Parameters<
3998                'a,
3999            > as alloy_sol_types::SolType>::Token<'a>;
4000            type Return = alloy::sol_types::private::primitives::aliases::U256;
4001            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4002            type ReturnToken<'a> = <Self::ReturnTuple<
4003                'a,
4004            > as alloy_sol_types::SolType>::Token<'a>;
4005            const SIGNATURE: &'static str = "burnableETHShares()";
4006            const SELECTOR: [u8; 4] = [245u8, 212u8, 254u8, 211u8];
4007            #[inline]
4008            fn new<'a>(
4009                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4010            ) -> Self {
4011                tuple.into()
4012            }
4013            #[inline]
4014            fn tokenize(&self) -> Self::Token<'_> {
4015                ()
4016            }
4017            #[inline]
4018            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4019                (
4020                    <alloy::sol_types::sol_data::Uint<
4021                        256,
4022                    > as alloy_sol_types::SolType>::tokenize(ret),
4023                )
4024            }
4025            #[inline]
4026            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4027                <Self::ReturnTuple<
4028                    '_,
4029                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4030                    .map(|r| {
4031                        let r: burnableETHSharesReturn = r.into();
4032                        r._0
4033                    })
4034            }
4035            #[inline]
4036            fn abi_decode_returns_validate(
4037                data: &[u8],
4038            ) -> alloy_sol_types::Result<Self::Return> {
4039                <Self::ReturnTuple<
4040                    '_,
4041                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4042                    .map(|r| {
4043                        let r: burnableETHSharesReturn = r.into();
4044                        r._0
4045                    })
4046            }
4047        }
4048    };
4049    #[derive(serde::Serialize, serde::Deserialize)]
4050    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4051    /**Function with signature `createPod()` and selector `0x84d81062`.
4052```solidity
4053function createPod() external returns (address);
4054```*/
4055    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4056    #[derive(Clone)]
4057    pub struct createPodCall;
4058    #[derive(serde::Serialize, serde::Deserialize)]
4059    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4060    ///Container type for the return parameters of the [`createPod()`](createPodCall) function.
4061    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4062    #[derive(Clone)]
4063    pub struct createPodReturn {
4064        #[allow(missing_docs)]
4065        pub _0: alloy::sol_types::private::Address,
4066    }
4067    #[allow(
4068        non_camel_case_types,
4069        non_snake_case,
4070        clippy::pub_underscore_fields,
4071        clippy::style
4072    )]
4073    const _: () = {
4074        use alloy::sol_types as alloy_sol_types;
4075        {
4076            #[doc(hidden)]
4077            type UnderlyingSolTuple<'a> = ();
4078            #[doc(hidden)]
4079            type UnderlyingRustTuple<'a> = ();
4080            #[cfg(test)]
4081            #[allow(dead_code, unreachable_patterns)]
4082            fn _type_assertion(
4083                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4084            ) {
4085                match _t {
4086                    alloy_sol_types::private::AssertTypeEq::<
4087                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4088                    >(_) => {}
4089                }
4090            }
4091            #[automatically_derived]
4092            #[doc(hidden)]
4093            impl ::core::convert::From<createPodCall> for UnderlyingRustTuple<'_> {
4094                fn from(value: createPodCall) -> Self {
4095                    ()
4096                }
4097            }
4098            #[automatically_derived]
4099            #[doc(hidden)]
4100            impl ::core::convert::From<UnderlyingRustTuple<'_>> for createPodCall {
4101                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4102                    Self
4103                }
4104            }
4105        }
4106        {
4107            #[doc(hidden)]
4108            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4109            #[doc(hidden)]
4110            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4111            #[cfg(test)]
4112            #[allow(dead_code, unreachable_patterns)]
4113            fn _type_assertion(
4114                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4115            ) {
4116                match _t {
4117                    alloy_sol_types::private::AssertTypeEq::<
4118                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4119                    >(_) => {}
4120                }
4121            }
4122            #[automatically_derived]
4123            #[doc(hidden)]
4124            impl ::core::convert::From<createPodReturn> for UnderlyingRustTuple<'_> {
4125                fn from(value: createPodReturn) -> Self {
4126                    (value._0,)
4127                }
4128            }
4129            #[automatically_derived]
4130            #[doc(hidden)]
4131            impl ::core::convert::From<UnderlyingRustTuple<'_>> for createPodReturn {
4132                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4133                    Self { _0: tuple.0 }
4134                }
4135            }
4136        }
4137        #[automatically_derived]
4138        impl alloy_sol_types::SolCall for createPodCall {
4139            type Parameters<'a> = ();
4140            type Token<'a> = <Self::Parameters<
4141                'a,
4142            > as alloy_sol_types::SolType>::Token<'a>;
4143            type Return = alloy::sol_types::private::Address;
4144            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4145            type ReturnToken<'a> = <Self::ReturnTuple<
4146                'a,
4147            > as alloy_sol_types::SolType>::Token<'a>;
4148            const SIGNATURE: &'static str = "createPod()";
4149            const SELECTOR: [u8; 4] = [132u8, 216u8, 16u8, 98u8];
4150            #[inline]
4151            fn new<'a>(
4152                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4153            ) -> Self {
4154                tuple.into()
4155            }
4156            #[inline]
4157            fn tokenize(&self) -> Self::Token<'_> {
4158                ()
4159            }
4160            #[inline]
4161            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4162                (
4163                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4164                        ret,
4165                    ),
4166                )
4167            }
4168            #[inline]
4169            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4170                <Self::ReturnTuple<
4171                    '_,
4172                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4173                    .map(|r| {
4174                        let r: createPodReturn = r.into();
4175                        r._0
4176                    })
4177            }
4178            #[inline]
4179            fn abi_decode_returns_validate(
4180                data: &[u8],
4181            ) -> alloy_sol_types::Result<Self::Return> {
4182                <Self::ReturnTuple<
4183                    '_,
4184                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4185                    .map(|r| {
4186                        let r: createPodReturn = r.into();
4187                        r._0
4188                    })
4189            }
4190        }
4191    };
4192    #[derive(serde::Serialize, serde::Deserialize)]
4193    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4194    /**Function with signature `delegationManager()` and selector `0xea4d3c9b`.
4195```solidity
4196function delegationManager() external view returns (address);
4197```*/
4198    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4199    #[derive(Clone)]
4200    pub struct delegationManagerCall;
4201    #[derive(serde::Serialize, serde::Deserialize)]
4202    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4203    ///Container type for the return parameters of the [`delegationManager()`](delegationManagerCall) function.
4204    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4205    #[derive(Clone)]
4206    pub struct delegationManagerReturn {
4207        #[allow(missing_docs)]
4208        pub _0: alloy::sol_types::private::Address,
4209    }
4210    #[allow(
4211        non_camel_case_types,
4212        non_snake_case,
4213        clippy::pub_underscore_fields,
4214        clippy::style
4215    )]
4216    const _: () = {
4217        use alloy::sol_types as alloy_sol_types;
4218        {
4219            #[doc(hidden)]
4220            type UnderlyingSolTuple<'a> = ();
4221            #[doc(hidden)]
4222            type UnderlyingRustTuple<'a> = ();
4223            #[cfg(test)]
4224            #[allow(dead_code, unreachable_patterns)]
4225            fn _type_assertion(
4226                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4227            ) {
4228                match _t {
4229                    alloy_sol_types::private::AssertTypeEq::<
4230                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4231                    >(_) => {}
4232                }
4233            }
4234            #[automatically_derived]
4235            #[doc(hidden)]
4236            impl ::core::convert::From<delegationManagerCall>
4237            for UnderlyingRustTuple<'_> {
4238                fn from(value: delegationManagerCall) -> Self {
4239                    ()
4240                }
4241            }
4242            #[automatically_derived]
4243            #[doc(hidden)]
4244            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4245            for delegationManagerCall {
4246                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4247                    Self
4248                }
4249            }
4250        }
4251        {
4252            #[doc(hidden)]
4253            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4254            #[doc(hidden)]
4255            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4256            #[cfg(test)]
4257            #[allow(dead_code, unreachable_patterns)]
4258            fn _type_assertion(
4259                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4260            ) {
4261                match _t {
4262                    alloy_sol_types::private::AssertTypeEq::<
4263                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4264                    >(_) => {}
4265                }
4266            }
4267            #[automatically_derived]
4268            #[doc(hidden)]
4269            impl ::core::convert::From<delegationManagerReturn>
4270            for UnderlyingRustTuple<'_> {
4271                fn from(value: delegationManagerReturn) -> Self {
4272                    (value._0,)
4273                }
4274            }
4275            #[automatically_derived]
4276            #[doc(hidden)]
4277            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4278            for delegationManagerReturn {
4279                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4280                    Self { _0: tuple.0 }
4281                }
4282            }
4283        }
4284        #[automatically_derived]
4285        impl alloy_sol_types::SolCall for delegationManagerCall {
4286            type Parameters<'a> = ();
4287            type Token<'a> = <Self::Parameters<
4288                'a,
4289            > as alloy_sol_types::SolType>::Token<'a>;
4290            type Return = alloy::sol_types::private::Address;
4291            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4292            type ReturnToken<'a> = <Self::ReturnTuple<
4293                'a,
4294            > as alloy_sol_types::SolType>::Token<'a>;
4295            const SIGNATURE: &'static str = "delegationManager()";
4296            const SELECTOR: [u8; 4] = [234u8, 77u8, 60u8, 155u8];
4297            #[inline]
4298            fn new<'a>(
4299                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4300            ) -> Self {
4301                tuple.into()
4302            }
4303            #[inline]
4304            fn tokenize(&self) -> Self::Token<'_> {
4305                ()
4306            }
4307            #[inline]
4308            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4309                (
4310                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4311                        ret,
4312                    ),
4313                )
4314            }
4315            #[inline]
4316            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4317                <Self::ReturnTuple<
4318                    '_,
4319                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4320                    .map(|r| {
4321                        let r: delegationManagerReturn = r.into();
4322                        r._0
4323                    })
4324            }
4325            #[inline]
4326            fn abi_decode_returns_validate(
4327                data: &[u8],
4328            ) -> alloy_sol_types::Result<Self::Return> {
4329                <Self::ReturnTuple<
4330                    '_,
4331                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4332                    .map(|r| {
4333                        let r: delegationManagerReturn = r.into();
4334                        r._0
4335                    })
4336            }
4337        }
4338    };
4339    #[derive(serde::Serialize, serde::Deserialize)]
4340    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4341    /**Function with signature `eigenPodBeacon()` and selector `0x292b7b2b`.
4342```solidity
4343function eigenPodBeacon() external view returns (address);
4344```*/
4345    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4346    #[derive(Clone)]
4347    pub struct eigenPodBeaconCall;
4348    #[derive(serde::Serialize, serde::Deserialize)]
4349    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4350    ///Container type for the return parameters of the [`eigenPodBeacon()`](eigenPodBeaconCall) function.
4351    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4352    #[derive(Clone)]
4353    pub struct eigenPodBeaconReturn {
4354        #[allow(missing_docs)]
4355        pub _0: alloy::sol_types::private::Address,
4356    }
4357    #[allow(
4358        non_camel_case_types,
4359        non_snake_case,
4360        clippy::pub_underscore_fields,
4361        clippy::style
4362    )]
4363    const _: () = {
4364        use alloy::sol_types as alloy_sol_types;
4365        {
4366            #[doc(hidden)]
4367            type UnderlyingSolTuple<'a> = ();
4368            #[doc(hidden)]
4369            type UnderlyingRustTuple<'a> = ();
4370            #[cfg(test)]
4371            #[allow(dead_code, unreachable_patterns)]
4372            fn _type_assertion(
4373                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4374            ) {
4375                match _t {
4376                    alloy_sol_types::private::AssertTypeEq::<
4377                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4378                    >(_) => {}
4379                }
4380            }
4381            #[automatically_derived]
4382            #[doc(hidden)]
4383            impl ::core::convert::From<eigenPodBeaconCall> for UnderlyingRustTuple<'_> {
4384                fn from(value: eigenPodBeaconCall) -> Self {
4385                    ()
4386                }
4387            }
4388            #[automatically_derived]
4389            #[doc(hidden)]
4390            impl ::core::convert::From<UnderlyingRustTuple<'_>> for eigenPodBeaconCall {
4391                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4392                    Self
4393                }
4394            }
4395        }
4396        {
4397            #[doc(hidden)]
4398            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4399            #[doc(hidden)]
4400            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4401            #[cfg(test)]
4402            #[allow(dead_code, unreachable_patterns)]
4403            fn _type_assertion(
4404                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4405            ) {
4406                match _t {
4407                    alloy_sol_types::private::AssertTypeEq::<
4408                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4409                    >(_) => {}
4410                }
4411            }
4412            #[automatically_derived]
4413            #[doc(hidden)]
4414            impl ::core::convert::From<eigenPodBeaconReturn>
4415            for UnderlyingRustTuple<'_> {
4416                fn from(value: eigenPodBeaconReturn) -> Self {
4417                    (value._0,)
4418                }
4419            }
4420            #[automatically_derived]
4421            #[doc(hidden)]
4422            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4423            for eigenPodBeaconReturn {
4424                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4425                    Self { _0: tuple.0 }
4426                }
4427            }
4428        }
4429        #[automatically_derived]
4430        impl alloy_sol_types::SolCall for eigenPodBeaconCall {
4431            type Parameters<'a> = ();
4432            type Token<'a> = <Self::Parameters<
4433                'a,
4434            > as alloy_sol_types::SolType>::Token<'a>;
4435            type Return = alloy::sol_types::private::Address;
4436            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4437            type ReturnToken<'a> = <Self::ReturnTuple<
4438                'a,
4439            > as alloy_sol_types::SolType>::Token<'a>;
4440            const SIGNATURE: &'static str = "eigenPodBeacon()";
4441            const SELECTOR: [u8; 4] = [41u8, 43u8, 123u8, 43u8];
4442            #[inline]
4443            fn new<'a>(
4444                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4445            ) -> Self {
4446                tuple.into()
4447            }
4448            #[inline]
4449            fn tokenize(&self) -> Self::Token<'_> {
4450                ()
4451            }
4452            #[inline]
4453            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4454                (
4455                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4456                        ret,
4457                    ),
4458                )
4459            }
4460            #[inline]
4461            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4462                <Self::ReturnTuple<
4463                    '_,
4464                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4465                    .map(|r| {
4466                        let r: eigenPodBeaconReturn = r.into();
4467                        r._0
4468                    })
4469            }
4470            #[inline]
4471            fn abi_decode_returns_validate(
4472                data: &[u8],
4473            ) -> alloy_sol_types::Result<Self::Return> {
4474                <Self::ReturnTuple<
4475                    '_,
4476                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4477                    .map(|r| {
4478                        let r: eigenPodBeaconReturn = r.into();
4479                        r._0
4480                    })
4481            }
4482        }
4483    };
4484    #[derive(serde::Serialize, serde::Deserialize)]
4485    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4486    /**Function with signature `ethPOS()` and selector `0x74cdd798`.
4487```solidity
4488function ethPOS() external view returns (address);
4489```*/
4490    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4491    #[derive(Clone)]
4492    pub struct ethPOSCall;
4493    #[derive(serde::Serialize, serde::Deserialize)]
4494    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4495    ///Container type for the return parameters of the [`ethPOS()`](ethPOSCall) function.
4496    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4497    #[derive(Clone)]
4498    pub struct ethPOSReturn {
4499        #[allow(missing_docs)]
4500        pub _0: alloy::sol_types::private::Address,
4501    }
4502    #[allow(
4503        non_camel_case_types,
4504        non_snake_case,
4505        clippy::pub_underscore_fields,
4506        clippy::style
4507    )]
4508    const _: () = {
4509        use alloy::sol_types as alloy_sol_types;
4510        {
4511            #[doc(hidden)]
4512            type UnderlyingSolTuple<'a> = ();
4513            #[doc(hidden)]
4514            type UnderlyingRustTuple<'a> = ();
4515            #[cfg(test)]
4516            #[allow(dead_code, unreachable_patterns)]
4517            fn _type_assertion(
4518                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4519            ) {
4520                match _t {
4521                    alloy_sol_types::private::AssertTypeEq::<
4522                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4523                    >(_) => {}
4524                }
4525            }
4526            #[automatically_derived]
4527            #[doc(hidden)]
4528            impl ::core::convert::From<ethPOSCall> for UnderlyingRustTuple<'_> {
4529                fn from(value: ethPOSCall) -> Self {
4530                    ()
4531                }
4532            }
4533            #[automatically_derived]
4534            #[doc(hidden)]
4535            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ethPOSCall {
4536                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4537                    Self
4538                }
4539            }
4540        }
4541        {
4542            #[doc(hidden)]
4543            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4544            #[doc(hidden)]
4545            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4546            #[cfg(test)]
4547            #[allow(dead_code, unreachable_patterns)]
4548            fn _type_assertion(
4549                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4550            ) {
4551                match _t {
4552                    alloy_sol_types::private::AssertTypeEq::<
4553                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4554                    >(_) => {}
4555                }
4556            }
4557            #[automatically_derived]
4558            #[doc(hidden)]
4559            impl ::core::convert::From<ethPOSReturn> for UnderlyingRustTuple<'_> {
4560                fn from(value: ethPOSReturn) -> Self {
4561                    (value._0,)
4562                }
4563            }
4564            #[automatically_derived]
4565            #[doc(hidden)]
4566            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ethPOSReturn {
4567                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4568                    Self { _0: tuple.0 }
4569                }
4570            }
4571        }
4572        #[automatically_derived]
4573        impl alloy_sol_types::SolCall for ethPOSCall {
4574            type Parameters<'a> = ();
4575            type Token<'a> = <Self::Parameters<
4576                'a,
4577            > as alloy_sol_types::SolType>::Token<'a>;
4578            type Return = alloy::sol_types::private::Address;
4579            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4580            type ReturnToken<'a> = <Self::ReturnTuple<
4581                'a,
4582            > as alloy_sol_types::SolType>::Token<'a>;
4583            const SIGNATURE: &'static str = "ethPOS()";
4584            const SELECTOR: [u8; 4] = [116u8, 205u8, 215u8, 152u8];
4585            #[inline]
4586            fn new<'a>(
4587                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4588            ) -> Self {
4589                tuple.into()
4590            }
4591            #[inline]
4592            fn tokenize(&self) -> Self::Token<'_> {
4593                ()
4594            }
4595            #[inline]
4596            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4597                (
4598                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4599                        ret,
4600                    ),
4601                )
4602            }
4603            #[inline]
4604            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4605                <Self::ReturnTuple<
4606                    '_,
4607                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4608                    .map(|r| {
4609                        let r: ethPOSReturn = r.into();
4610                        r._0
4611                    })
4612            }
4613            #[inline]
4614            fn abi_decode_returns_validate(
4615                data: &[u8],
4616            ) -> alloy_sol_types::Result<Self::Return> {
4617                <Self::ReturnTuple<
4618                    '_,
4619                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4620                    .map(|r| {
4621                        let r: ethPOSReturn = r.into();
4622                        r._0
4623                    })
4624            }
4625        }
4626    };
4627    #[derive(serde::Serialize, serde::Deserialize)]
4628    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4629    /**Function with signature `getPod(address)` and selector `0xa38406a3`.
4630```solidity
4631function getPod(address podOwner) external view returns (address);
4632```*/
4633    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4634    #[derive(Clone)]
4635    pub struct getPodCall {
4636        #[allow(missing_docs)]
4637        pub podOwner: alloy::sol_types::private::Address,
4638    }
4639    #[derive(serde::Serialize, serde::Deserialize)]
4640    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4641    ///Container type for the return parameters of the [`getPod(address)`](getPodCall) function.
4642    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4643    #[derive(Clone)]
4644    pub struct getPodReturn {
4645        #[allow(missing_docs)]
4646        pub _0: alloy::sol_types::private::Address,
4647    }
4648    #[allow(
4649        non_camel_case_types,
4650        non_snake_case,
4651        clippy::pub_underscore_fields,
4652        clippy::style
4653    )]
4654    const _: () = {
4655        use alloy::sol_types as alloy_sol_types;
4656        {
4657            #[doc(hidden)]
4658            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4659            #[doc(hidden)]
4660            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4661            #[cfg(test)]
4662            #[allow(dead_code, unreachable_patterns)]
4663            fn _type_assertion(
4664                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4665            ) {
4666                match _t {
4667                    alloy_sol_types::private::AssertTypeEq::<
4668                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4669                    >(_) => {}
4670                }
4671            }
4672            #[automatically_derived]
4673            #[doc(hidden)]
4674            impl ::core::convert::From<getPodCall> for UnderlyingRustTuple<'_> {
4675                fn from(value: getPodCall) -> Self {
4676                    (value.podOwner,)
4677                }
4678            }
4679            #[automatically_derived]
4680            #[doc(hidden)]
4681            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getPodCall {
4682                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4683                    Self { podOwner: tuple.0 }
4684                }
4685            }
4686        }
4687        {
4688            #[doc(hidden)]
4689            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4690            #[doc(hidden)]
4691            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4692            #[cfg(test)]
4693            #[allow(dead_code, unreachable_patterns)]
4694            fn _type_assertion(
4695                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4696            ) {
4697                match _t {
4698                    alloy_sol_types::private::AssertTypeEq::<
4699                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4700                    >(_) => {}
4701                }
4702            }
4703            #[automatically_derived]
4704            #[doc(hidden)]
4705            impl ::core::convert::From<getPodReturn> for UnderlyingRustTuple<'_> {
4706                fn from(value: getPodReturn) -> Self {
4707                    (value._0,)
4708                }
4709            }
4710            #[automatically_derived]
4711            #[doc(hidden)]
4712            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getPodReturn {
4713                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4714                    Self { _0: tuple.0 }
4715                }
4716            }
4717        }
4718        #[automatically_derived]
4719        impl alloy_sol_types::SolCall for getPodCall {
4720            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
4721            type Token<'a> = <Self::Parameters<
4722                'a,
4723            > as alloy_sol_types::SolType>::Token<'a>;
4724            type Return = alloy::sol_types::private::Address;
4725            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4726            type ReturnToken<'a> = <Self::ReturnTuple<
4727                'a,
4728            > as alloy_sol_types::SolType>::Token<'a>;
4729            const SIGNATURE: &'static str = "getPod(address)";
4730            const SELECTOR: [u8; 4] = [163u8, 132u8, 6u8, 163u8];
4731            #[inline]
4732            fn new<'a>(
4733                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4734            ) -> Self {
4735                tuple.into()
4736            }
4737            #[inline]
4738            fn tokenize(&self) -> Self::Token<'_> {
4739                (
4740                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4741                        &self.podOwner,
4742                    ),
4743                )
4744            }
4745            #[inline]
4746            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4747                (
4748                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4749                        ret,
4750                    ),
4751                )
4752            }
4753            #[inline]
4754            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4755                <Self::ReturnTuple<
4756                    '_,
4757                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4758                    .map(|r| {
4759                        let r: getPodReturn = r.into();
4760                        r._0
4761                    })
4762            }
4763            #[inline]
4764            fn abi_decode_returns_validate(
4765                data: &[u8],
4766            ) -> alloy_sol_types::Result<Self::Return> {
4767                <Self::ReturnTuple<
4768                    '_,
4769                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4770                    .map(|r| {
4771                        let r: getPodReturn = r.into();
4772                        r._0
4773                    })
4774            }
4775        }
4776    };
4777    #[derive(serde::Serialize, serde::Deserialize)]
4778    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4779    /**Function with signature `hasPod(address)` and selector `0xf6848d24`.
4780```solidity
4781function hasPod(address podOwner) external view returns (bool);
4782```*/
4783    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4784    #[derive(Clone)]
4785    pub struct hasPodCall {
4786        #[allow(missing_docs)]
4787        pub podOwner: alloy::sol_types::private::Address,
4788    }
4789    #[derive(serde::Serialize, serde::Deserialize)]
4790    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4791    ///Container type for the return parameters of the [`hasPod(address)`](hasPodCall) function.
4792    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4793    #[derive(Clone)]
4794    pub struct hasPodReturn {
4795        #[allow(missing_docs)]
4796        pub _0: bool,
4797    }
4798    #[allow(
4799        non_camel_case_types,
4800        non_snake_case,
4801        clippy::pub_underscore_fields,
4802        clippy::style
4803    )]
4804    const _: () = {
4805        use alloy::sol_types as alloy_sol_types;
4806        {
4807            #[doc(hidden)]
4808            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4809            #[doc(hidden)]
4810            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4811            #[cfg(test)]
4812            #[allow(dead_code, unreachable_patterns)]
4813            fn _type_assertion(
4814                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4815            ) {
4816                match _t {
4817                    alloy_sol_types::private::AssertTypeEq::<
4818                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4819                    >(_) => {}
4820                }
4821            }
4822            #[automatically_derived]
4823            #[doc(hidden)]
4824            impl ::core::convert::From<hasPodCall> for UnderlyingRustTuple<'_> {
4825                fn from(value: hasPodCall) -> Self {
4826                    (value.podOwner,)
4827                }
4828            }
4829            #[automatically_derived]
4830            #[doc(hidden)]
4831            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasPodCall {
4832                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4833                    Self { podOwner: tuple.0 }
4834                }
4835            }
4836        }
4837        {
4838            #[doc(hidden)]
4839            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
4840            #[doc(hidden)]
4841            type UnderlyingRustTuple<'a> = (bool,);
4842            #[cfg(test)]
4843            #[allow(dead_code, unreachable_patterns)]
4844            fn _type_assertion(
4845                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4846            ) {
4847                match _t {
4848                    alloy_sol_types::private::AssertTypeEq::<
4849                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4850                    >(_) => {}
4851                }
4852            }
4853            #[automatically_derived]
4854            #[doc(hidden)]
4855            impl ::core::convert::From<hasPodReturn> for UnderlyingRustTuple<'_> {
4856                fn from(value: hasPodReturn) -> Self {
4857                    (value._0,)
4858                }
4859            }
4860            #[automatically_derived]
4861            #[doc(hidden)]
4862            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasPodReturn {
4863                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4864                    Self { _0: tuple.0 }
4865                }
4866            }
4867        }
4868        #[automatically_derived]
4869        impl alloy_sol_types::SolCall for hasPodCall {
4870            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
4871            type Token<'a> = <Self::Parameters<
4872                'a,
4873            > as alloy_sol_types::SolType>::Token<'a>;
4874            type Return = bool;
4875            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
4876            type ReturnToken<'a> = <Self::ReturnTuple<
4877                'a,
4878            > as alloy_sol_types::SolType>::Token<'a>;
4879            const SIGNATURE: &'static str = "hasPod(address)";
4880            const SELECTOR: [u8; 4] = [246u8, 132u8, 141u8, 36u8];
4881            #[inline]
4882            fn new<'a>(
4883                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4884            ) -> Self {
4885                tuple.into()
4886            }
4887            #[inline]
4888            fn tokenize(&self) -> Self::Token<'_> {
4889                (
4890                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4891                        &self.podOwner,
4892                    ),
4893                )
4894            }
4895            #[inline]
4896            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4897                (
4898                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
4899                        ret,
4900                    ),
4901                )
4902            }
4903            #[inline]
4904            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4905                <Self::ReturnTuple<
4906                    '_,
4907                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4908                    .map(|r| {
4909                        let r: hasPodReturn = r.into();
4910                        r._0
4911                    })
4912            }
4913            #[inline]
4914            fn abi_decode_returns_validate(
4915                data: &[u8],
4916            ) -> alloy_sol_types::Result<Self::Return> {
4917                <Self::ReturnTuple<
4918                    '_,
4919                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4920                    .map(|r| {
4921                        let r: hasPodReturn = r.into();
4922                        r._0
4923                    })
4924            }
4925        }
4926    };
4927    #[derive(serde::Serialize, serde::Deserialize)]
4928    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4929    /**Function with signature `increaseBurnableShares(address,uint256)` and selector `0xdebe1eab`.
4930```solidity
4931function increaseBurnableShares(address, uint256 addedSharesToBurn) external;
4932```*/
4933    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4934    #[derive(Clone)]
4935    pub struct increaseBurnableSharesCall {
4936        #[allow(missing_docs)]
4937        pub _0: alloy::sol_types::private::Address,
4938        #[allow(missing_docs)]
4939        pub addedSharesToBurn: alloy::sol_types::private::primitives::aliases::U256,
4940    }
4941    ///Container type for the return parameters of the [`increaseBurnableShares(address,uint256)`](increaseBurnableSharesCall) function.
4942    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4943    #[derive(Clone)]
4944    pub struct increaseBurnableSharesReturn {}
4945    #[allow(
4946        non_camel_case_types,
4947        non_snake_case,
4948        clippy::pub_underscore_fields,
4949        clippy::style
4950    )]
4951    const _: () = {
4952        use alloy::sol_types as alloy_sol_types;
4953        {
4954            #[doc(hidden)]
4955            type UnderlyingSolTuple<'a> = (
4956                alloy::sol_types::sol_data::Address,
4957                alloy::sol_types::sol_data::Uint<256>,
4958            );
4959            #[doc(hidden)]
4960            type UnderlyingRustTuple<'a> = (
4961                alloy::sol_types::private::Address,
4962                alloy::sol_types::private::primitives::aliases::U256,
4963            );
4964            #[cfg(test)]
4965            #[allow(dead_code, unreachable_patterns)]
4966            fn _type_assertion(
4967                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4968            ) {
4969                match _t {
4970                    alloy_sol_types::private::AssertTypeEq::<
4971                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4972                    >(_) => {}
4973                }
4974            }
4975            #[automatically_derived]
4976            #[doc(hidden)]
4977            impl ::core::convert::From<increaseBurnableSharesCall>
4978            for UnderlyingRustTuple<'_> {
4979                fn from(value: increaseBurnableSharesCall) -> Self {
4980                    (value._0, value.addedSharesToBurn)
4981                }
4982            }
4983            #[automatically_derived]
4984            #[doc(hidden)]
4985            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4986            for increaseBurnableSharesCall {
4987                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4988                    Self {
4989                        _0: tuple.0,
4990                        addedSharesToBurn: tuple.1,
4991                    }
4992                }
4993            }
4994        }
4995        {
4996            #[doc(hidden)]
4997            type UnderlyingSolTuple<'a> = ();
4998            #[doc(hidden)]
4999            type UnderlyingRustTuple<'a> = ();
5000            #[cfg(test)]
5001            #[allow(dead_code, unreachable_patterns)]
5002            fn _type_assertion(
5003                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5004            ) {
5005                match _t {
5006                    alloy_sol_types::private::AssertTypeEq::<
5007                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5008                    >(_) => {}
5009                }
5010            }
5011            #[automatically_derived]
5012            #[doc(hidden)]
5013            impl ::core::convert::From<increaseBurnableSharesReturn>
5014            for UnderlyingRustTuple<'_> {
5015                fn from(value: increaseBurnableSharesReturn) -> Self {
5016                    ()
5017                }
5018            }
5019            #[automatically_derived]
5020            #[doc(hidden)]
5021            impl ::core::convert::From<UnderlyingRustTuple<'_>>
5022            for increaseBurnableSharesReturn {
5023                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5024                    Self {}
5025                }
5026            }
5027        }
5028        impl increaseBurnableSharesReturn {
5029            fn _tokenize(
5030                &self,
5031            ) -> <increaseBurnableSharesCall as alloy_sol_types::SolCall>::ReturnToken<
5032                '_,
5033            > {
5034                ()
5035            }
5036        }
5037        #[automatically_derived]
5038        impl alloy_sol_types::SolCall for increaseBurnableSharesCall {
5039            type Parameters<'a> = (
5040                alloy::sol_types::sol_data::Address,
5041                alloy::sol_types::sol_data::Uint<256>,
5042            );
5043            type Token<'a> = <Self::Parameters<
5044                'a,
5045            > as alloy_sol_types::SolType>::Token<'a>;
5046            type Return = increaseBurnableSharesReturn;
5047            type ReturnTuple<'a> = ();
5048            type ReturnToken<'a> = <Self::ReturnTuple<
5049                'a,
5050            > as alloy_sol_types::SolType>::Token<'a>;
5051            const SIGNATURE: &'static str = "increaseBurnableShares(address,uint256)";
5052            const SELECTOR: [u8; 4] = [222u8, 190u8, 30u8, 171u8];
5053            #[inline]
5054            fn new<'a>(
5055                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5056            ) -> Self {
5057                tuple.into()
5058            }
5059            #[inline]
5060            fn tokenize(&self) -> Self::Token<'_> {
5061                (
5062                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5063                        &self._0,
5064                    ),
5065                    <alloy::sol_types::sol_data::Uint<
5066                        256,
5067                    > as alloy_sol_types::SolType>::tokenize(&self.addedSharesToBurn),
5068                )
5069            }
5070            #[inline]
5071            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5072                increaseBurnableSharesReturn::_tokenize(ret)
5073            }
5074            #[inline]
5075            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5076                <Self::ReturnTuple<
5077                    '_,
5078                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5079                    .map(Into::into)
5080            }
5081            #[inline]
5082            fn abi_decode_returns_validate(
5083                data: &[u8],
5084            ) -> alloy_sol_types::Result<Self::Return> {
5085                <Self::ReturnTuple<
5086                    '_,
5087                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5088                    .map(Into::into)
5089            }
5090        }
5091    };
5092    #[derive(serde::Serialize, serde::Deserialize)]
5093    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5094    /**Function with signature `initialize(address,uint256)` and selector `0xcd6dc687`.
5095```solidity
5096function initialize(address initialOwner, uint256 _initPausedStatus) external;
5097```*/
5098    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5099    #[derive(Clone)]
5100    pub struct initializeCall {
5101        #[allow(missing_docs)]
5102        pub initialOwner: alloy::sol_types::private::Address,
5103        #[allow(missing_docs)]
5104        pub _initPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
5105    }
5106    ///Container type for the return parameters of the [`initialize(address,uint256)`](initializeCall) function.
5107    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5108    #[derive(Clone)]
5109    pub struct initializeReturn {}
5110    #[allow(
5111        non_camel_case_types,
5112        non_snake_case,
5113        clippy::pub_underscore_fields,
5114        clippy::style
5115    )]
5116    const _: () = {
5117        use alloy::sol_types as alloy_sol_types;
5118        {
5119            #[doc(hidden)]
5120            type UnderlyingSolTuple<'a> = (
5121                alloy::sol_types::sol_data::Address,
5122                alloy::sol_types::sol_data::Uint<256>,
5123            );
5124            #[doc(hidden)]
5125            type UnderlyingRustTuple<'a> = (
5126                alloy::sol_types::private::Address,
5127                alloy::sol_types::private::primitives::aliases::U256,
5128            );
5129            #[cfg(test)]
5130            #[allow(dead_code, unreachable_patterns)]
5131            fn _type_assertion(
5132                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5133            ) {
5134                match _t {
5135                    alloy_sol_types::private::AssertTypeEq::<
5136                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5137                    >(_) => {}
5138                }
5139            }
5140            #[automatically_derived]
5141            #[doc(hidden)]
5142            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
5143                fn from(value: initializeCall) -> Self {
5144                    (value.initialOwner, value._initPausedStatus)
5145                }
5146            }
5147            #[automatically_derived]
5148            #[doc(hidden)]
5149            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
5150                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5151                    Self {
5152                        initialOwner: tuple.0,
5153                        _initPausedStatus: tuple.1,
5154                    }
5155                }
5156            }
5157        }
5158        {
5159            #[doc(hidden)]
5160            type UnderlyingSolTuple<'a> = ();
5161            #[doc(hidden)]
5162            type UnderlyingRustTuple<'a> = ();
5163            #[cfg(test)]
5164            #[allow(dead_code, unreachable_patterns)]
5165            fn _type_assertion(
5166                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5167            ) {
5168                match _t {
5169                    alloy_sol_types::private::AssertTypeEq::<
5170                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5171                    >(_) => {}
5172                }
5173            }
5174            #[automatically_derived]
5175            #[doc(hidden)]
5176            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
5177                fn from(value: initializeReturn) -> Self {
5178                    ()
5179                }
5180            }
5181            #[automatically_derived]
5182            #[doc(hidden)]
5183            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
5184                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5185                    Self {}
5186                }
5187            }
5188        }
5189        impl initializeReturn {
5190            fn _tokenize(
5191                &self,
5192            ) -> <initializeCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
5193                ()
5194            }
5195        }
5196        #[automatically_derived]
5197        impl alloy_sol_types::SolCall for initializeCall {
5198            type Parameters<'a> = (
5199                alloy::sol_types::sol_data::Address,
5200                alloy::sol_types::sol_data::Uint<256>,
5201            );
5202            type Token<'a> = <Self::Parameters<
5203                'a,
5204            > as alloy_sol_types::SolType>::Token<'a>;
5205            type Return = initializeReturn;
5206            type ReturnTuple<'a> = ();
5207            type ReturnToken<'a> = <Self::ReturnTuple<
5208                'a,
5209            > as alloy_sol_types::SolType>::Token<'a>;
5210            const SIGNATURE: &'static str = "initialize(address,uint256)";
5211            const SELECTOR: [u8; 4] = [205u8, 109u8, 198u8, 135u8];
5212            #[inline]
5213            fn new<'a>(
5214                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5215            ) -> Self {
5216                tuple.into()
5217            }
5218            #[inline]
5219            fn tokenize(&self) -> Self::Token<'_> {
5220                (
5221                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5222                        &self.initialOwner,
5223                    ),
5224                    <alloy::sol_types::sol_data::Uint<
5225                        256,
5226                    > as alloy_sol_types::SolType>::tokenize(&self._initPausedStatus),
5227                )
5228            }
5229            #[inline]
5230            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5231                initializeReturn::_tokenize(ret)
5232            }
5233            #[inline]
5234            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5235                <Self::ReturnTuple<
5236                    '_,
5237                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5238                    .map(Into::into)
5239            }
5240            #[inline]
5241            fn abi_decode_returns_validate(
5242                data: &[u8],
5243            ) -> alloy_sol_types::Result<Self::Return> {
5244                <Self::ReturnTuple<
5245                    '_,
5246                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5247                    .map(Into::into)
5248            }
5249        }
5250    };
5251    #[derive(serde::Serialize, serde::Deserialize)]
5252    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5253    /**Function with signature `numPods()` and selector `0xa6a509be`.
5254```solidity
5255function numPods() external view returns (uint256);
5256```*/
5257    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5258    #[derive(Clone)]
5259    pub struct numPodsCall;
5260    #[derive(serde::Serialize, serde::Deserialize)]
5261    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5262    ///Container type for the return parameters of the [`numPods()`](numPodsCall) function.
5263    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5264    #[derive(Clone)]
5265    pub struct numPodsReturn {
5266        #[allow(missing_docs)]
5267        pub _0: alloy::sol_types::private::primitives::aliases::U256,
5268    }
5269    #[allow(
5270        non_camel_case_types,
5271        non_snake_case,
5272        clippy::pub_underscore_fields,
5273        clippy::style
5274    )]
5275    const _: () = {
5276        use alloy::sol_types as alloy_sol_types;
5277        {
5278            #[doc(hidden)]
5279            type UnderlyingSolTuple<'a> = ();
5280            #[doc(hidden)]
5281            type UnderlyingRustTuple<'a> = ();
5282            #[cfg(test)]
5283            #[allow(dead_code, unreachable_patterns)]
5284            fn _type_assertion(
5285                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5286            ) {
5287                match _t {
5288                    alloy_sol_types::private::AssertTypeEq::<
5289                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5290                    >(_) => {}
5291                }
5292            }
5293            #[automatically_derived]
5294            #[doc(hidden)]
5295            impl ::core::convert::From<numPodsCall> for UnderlyingRustTuple<'_> {
5296                fn from(value: numPodsCall) -> Self {
5297                    ()
5298                }
5299            }
5300            #[automatically_derived]
5301            #[doc(hidden)]
5302            impl ::core::convert::From<UnderlyingRustTuple<'_>> for numPodsCall {
5303                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5304                    Self
5305                }
5306            }
5307        }
5308        {
5309            #[doc(hidden)]
5310            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5311            #[doc(hidden)]
5312            type UnderlyingRustTuple<'a> = (
5313                alloy::sol_types::private::primitives::aliases::U256,
5314            );
5315            #[cfg(test)]
5316            #[allow(dead_code, unreachable_patterns)]
5317            fn _type_assertion(
5318                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5319            ) {
5320                match _t {
5321                    alloy_sol_types::private::AssertTypeEq::<
5322                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5323                    >(_) => {}
5324                }
5325            }
5326            #[automatically_derived]
5327            #[doc(hidden)]
5328            impl ::core::convert::From<numPodsReturn> for UnderlyingRustTuple<'_> {
5329                fn from(value: numPodsReturn) -> Self {
5330                    (value._0,)
5331                }
5332            }
5333            #[automatically_derived]
5334            #[doc(hidden)]
5335            impl ::core::convert::From<UnderlyingRustTuple<'_>> for numPodsReturn {
5336                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5337                    Self { _0: tuple.0 }
5338                }
5339            }
5340        }
5341        #[automatically_derived]
5342        impl alloy_sol_types::SolCall for numPodsCall {
5343            type Parameters<'a> = ();
5344            type Token<'a> = <Self::Parameters<
5345                'a,
5346            > as alloy_sol_types::SolType>::Token<'a>;
5347            type Return = alloy::sol_types::private::primitives::aliases::U256;
5348            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5349            type ReturnToken<'a> = <Self::ReturnTuple<
5350                'a,
5351            > as alloy_sol_types::SolType>::Token<'a>;
5352            const SIGNATURE: &'static str = "numPods()";
5353            const SELECTOR: [u8; 4] = [166u8, 165u8, 9u8, 190u8];
5354            #[inline]
5355            fn new<'a>(
5356                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5357            ) -> Self {
5358                tuple.into()
5359            }
5360            #[inline]
5361            fn tokenize(&self) -> Self::Token<'_> {
5362                ()
5363            }
5364            #[inline]
5365            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5366                (
5367                    <alloy::sol_types::sol_data::Uint<
5368                        256,
5369                    > as alloy_sol_types::SolType>::tokenize(ret),
5370                )
5371            }
5372            #[inline]
5373            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5374                <Self::ReturnTuple<
5375                    '_,
5376                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5377                    .map(|r| {
5378                        let r: numPodsReturn = r.into();
5379                        r._0
5380                    })
5381            }
5382            #[inline]
5383            fn abi_decode_returns_validate(
5384                data: &[u8],
5385            ) -> alloy_sol_types::Result<Self::Return> {
5386                <Self::ReturnTuple<
5387                    '_,
5388                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5389                    .map(|r| {
5390                        let r: numPodsReturn = r.into();
5391                        r._0
5392                    })
5393            }
5394        }
5395    };
5396    #[derive(serde::Serialize, serde::Deserialize)]
5397    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5398    /**Function with signature `owner()` and selector `0x8da5cb5b`.
5399```solidity
5400function owner() external view returns (address);
5401```*/
5402    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5403    #[derive(Clone)]
5404    pub struct ownerCall;
5405    #[derive(serde::Serialize, serde::Deserialize)]
5406    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5407    ///Container type for the return parameters of the [`owner()`](ownerCall) function.
5408    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5409    #[derive(Clone)]
5410    pub struct ownerReturn {
5411        #[allow(missing_docs)]
5412        pub _0: alloy::sol_types::private::Address,
5413    }
5414    #[allow(
5415        non_camel_case_types,
5416        non_snake_case,
5417        clippy::pub_underscore_fields,
5418        clippy::style
5419    )]
5420    const _: () = {
5421        use alloy::sol_types as alloy_sol_types;
5422        {
5423            #[doc(hidden)]
5424            type UnderlyingSolTuple<'a> = ();
5425            #[doc(hidden)]
5426            type UnderlyingRustTuple<'a> = ();
5427            #[cfg(test)]
5428            #[allow(dead_code, unreachable_patterns)]
5429            fn _type_assertion(
5430                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5431            ) {
5432                match _t {
5433                    alloy_sol_types::private::AssertTypeEq::<
5434                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5435                    >(_) => {}
5436                }
5437            }
5438            #[automatically_derived]
5439            #[doc(hidden)]
5440            impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
5441                fn from(value: ownerCall) -> Self {
5442                    ()
5443                }
5444            }
5445            #[automatically_derived]
5446            #[doc(hidden)]
5447            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
5448                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5449                    Self
5450                }
5451            }
5452        }
5453        {
5454            #[doc(hidden)]
5455            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5456            #[doc(hidden)]
5457            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5458            #[cfg(test)]
5459            #[allow(dead_code, unreachable_patterns)]
5460            fn _type_assertion(
5461                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5462            ) {
5463                match _t {
5464                    alloy_sol_types::private::AssertTypeEq::<
5465                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5466                    >(_) => {}
5467                }
5468            }
5469            #[automatically_derived]
5470            #[doc(hidden)]
5471            impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
5472                fn from(value: ownerReturn) -> Self {
5473                    (value._0,)
5474                }
5475            }
5476            #[automatically_derived]
5477            #[doc(hidden)]
5478            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
5479                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5480                    Self { _0: tuple.0 }
5481                }
5482            }
5483        }
5484        #[automatically_derived]
5485        impl alloy_sol_types::SolCall for ownerCall {
5486            type Parameters<'a> = ();
5487            type Token<'a> = <Self::Parameters<
5488                'a,
5489            > as alloy_sol_types::SolType>::Token<'a>;
5490            type Return = alloy::sol_types::private::Address;
5491            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5492            type ReturnToken<'a> = <Self::ReturnTuple<
5493                'a,
5494            > as alloy_sol_types::SolType>::Token<'a>;
5495            const SIGNATURE: &'static str = "owner()";
5496            const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
5497            #[inline]
5498            fn new<'a>(
5499                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5500            ) -> Self {
5501                tuple.into()
5502            }
5503            #[inline]
5504            fn tokenize(&self) -> Self::Token<'_> {
5505                ()
5506            }
5507            #[inline]
5508            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5509                (
5510                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5511                        ret,
5512                    ),
5513                )
5514            }
5515            #[inline]
5516            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5517                <Self::ReturnTuple<
5518                    '_,
5519                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5520                    .map(|r| {
5521                        let r: ownerReturn = r.into();
5522                        r._0
5523                    })
5524            }
5525            #[inline]
5526            fn abi_decode_returns_validate(
5527                data: &[u8],
5528            ) -> alloy_sol_types::Result<Self::Return> {
5529                <Self::ReturnTuple<
5530                    '_,
5531                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5532                    .map(|r| {
5533                        let r: ownerReturn = r.into();
5534                        r._0
5535                    })
5536            }
5537        }
5538    };
5539    #[derive(serde::Serialize, serde::Deserialize)]
5540    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5541    /**Function with signature `ownerToPod(address)` and selector `0x9ba06275`.
5542```solidity
5543function ownerToPod(address podOwner) external view returns (address);
5544```*/
5545    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5546    #[derive(Clone)]
5547    pub struct ownerToPodCall {
5548        #[allow(missing_docs)]
5549        pub podOwner: alloy::sol_types::private::Address,
5550    }
5551    #[derive(serde::Serialize, serde::Deserialize)]
5552    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5553    ///Container type for the return parameters of the [`ownerToPod(address)`](ownerToPodCall) function.
5554    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5555    #[derive(Clone)]
5556    pub struct ownerToPodReturn {
5557        #[allow(missing_docs)]
5558        pub _0: alloy::sol_types::private::Address,
5559    }
5560    #[allow(
5561        non_camel_case_types,
5562        non_snake_case,
5563        clippy::pub_underscore_fields,
5564        clippy::style
5565    )]
5566    const _: () = {
5567        use alloy::sol_types as alloy_sol_types;
5568        {
5569            #[doc(hidden)]
5570            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5571            #[doc(hidden)]
5572            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5573            #[cfg(test)]
5574            #[allow(dead_code, unreachable_patterns)]
5575            fn _type_assertion(
5576                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5577            ) {
5578                match _t {
5579                    alloy_sol_types::private::AssertTypeEq::<
5580                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5581                    >(_) => {}
5582                }
5583            }
5584            #[automatically_derived]
5585            #[doc(hidden)]
5586            impl ::core::convert::From<ownerToPodCall> for UnderlyingRustTuple<'_> {
5587                fn from(value: ownerToPodCall) -> Self {
5588                    (value.podOwner,)
5589                }
5590            }
5591            #[automatically_derived]
5592            #[doc(hidden)]
5593            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerToPodCall {
5594                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5595                    Self { podOwner: tuple.0 }
5596                }
5597            }
5598        }
5599        {
5600            #[doc(hidden)]
5601            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5602            #[doc(hidden)]
5603            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5604            #[cfg(test)]
5605            #[allow(dead_code, unreachable_patterns)]
5606            fn _type_assertion(
5607                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5608            ) {
5609                match _t {
5610                    alloy_sol_types::private::AssertTypeEq::<
5611                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5612                    >(_) => {}
5613                }
5614            }
5615            #[automatically_derived]
5616            #[doc(hidden)]
5617            impl ::core::convert::From<ownerToPodReturn> for UnderlyingRustTuple<'_> {
5618                fn from(value: ownerToPodReturn) -> Self {
5619                    (value._0,)
5620                }
5621            }
5622            #[automatically_derived]
5623            #[doc(hidden)]
5624            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerToPodReturn {
5625                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5626                    Self { _0: tuple.0 }
5627                }
5628            }
5629        }
5630        #[automatically_derived]
5631        impl alloy_sol_types::SolCall for ownerToPodCall {
5632            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
5633            type Token<'a> = <Self::Parameters<
5634                'a,
5635            > as alloy_sol_types::SolType>::Token<'a>;
5636            type Return = alloy::sol_types::private::Address;
5637            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5638            type ReturnToken<'a> = <Self::ReturnTuple<
5639                'a,
5640            > as alloy_sol_types::SolType>::Token<'a>;
5641            const SIGNATURE: &'static str = "ownerToPod(address)";
5642            const SELECTOR: [u8; 4] = [155u8, 160u8, 98u8, 117u8];
5643            #[inline]
5644            fn new<'a>(
5645                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5646            ) -> Self {
5647                tuple.into()
5648            }
5649            #[inline]
5650            fn tokenize(&self) -> Self::Token<'_> {
5651                (
5652                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5653                        &self.podOwner,
5654                    ),
5655                )
5656            }
5657            #[inline]
5658            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5659                (
5660                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5661                        ret,
5662                    ),
5663                )
5664            }
5665            #[inline]
5666            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5667                <Self::ReturnTuple<
5668                    '_,
5669                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5670                    .map(|r| {
5671                        let r: ownerToPodReturn = r.into();
5672                        r._0
5673                    })
5674            }
5675            #[inline]
5676            fn abi_decode_returns_validate(
5677                data: &[u8],
5678            ) -> alloy_sol_types::Result<Self::Return> {
5679                <Self::ReturnTuple<
5680                    '_,
5681                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5682                    .map(|r| {
5683                        let r: ownerToPodReturn = r.into();
5684                        r._0
5685                    })
5686            }
5687        }
5688    };
5689    #[derive(serde::Serialize, serde::Deserialize)]
5690    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5691    /**Function with signature `pause(uint256)` and selector `0x136439dd`.
5692```solidity
5693function pause(uint256 newPausedStatus) external;
5694```*/
5695    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5696    #[derive(Clone)]
5697    pub struct pauseCall {
5698        #[allow(missing_docs)]
5699        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
5700    }
5701    ///Container type for the return parameters of the [`pause(uint256)`](pauseCall) function.
5702    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5703    #[derive(Clone)]
5704    pub struct pauseReturn {}
5705    #[allow(
5706        non_camel_case_types,
5707        non_snake_case,
5708        clippy::pub_underscore_fields,
5709        clippy::style
5710    )]
5711    const _: () = {
5712        use alloy::sol_types as alloy_sol_types;
5713        {
5714            #[doc(hidden)]
5715            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5716            #[doc(hidden)]
5717            type UnderlyingRustTuple<'a> = (
5718                alloy::sol_types::private::primitives::aliases::U256,
5719            );
5720            #[cfg(test)]
5721            #[allow(dead_code, unreachable_patterns)]
5722            fn _type_assertion(
5723                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5724            ) {
5725                match _t {
5726                    alloy_sol_types::private::AssertTypeEq::<
5727                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5728                    >(_) => {}
5729                }
5730            }
5731            #[automatically_derived]
5732            #[doc(hidden)]
5733            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
5734                fn from(value: pauseCall) -> Self {
5735                    (value.newPausedStatus,)
5736                }
5737            }
5738            #[automatically_derived]
5739            #[doc(hidden)]
5740            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
5741                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5742                    Self { newPausedStatus: tuple.0 }
5743                }
5744            }
5745        }
5746        {
5747            #[doc(hidden)]
5748            type UnderlyingSolTuple<'a> = ();
5749            #[doc(hidden)]
5750            type UnderlyingRustTuple<'a> = ();
5751            #[cfg(test)]
5752            #[allow(dead_code, unreachable_patterns)]
5753            fn _type_assertion(
5754                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5755            ) {
5756                match _t {
5757                    alloy_sol_types::private::AssertTypeEq::<
5758                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5759                    >(_) => {}
5760                }
5761            }
5762            #[automatically_derived]
5763            #[doc(hidden)]
5764            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
5765                fn from(value: pauseReturn) -> Self {
5766                    ()
5767                }
5768            }
5769            #[automatically_derived]
5770            #[doc(hidden)]
5771            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
5772                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5773                    Self {}
5774                }
5775            }
5776        }
5777        impl pauseReturn {
5778            fn _tokenize(
5779                &self,
5780            ) -> <pauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
5781                ()
5782            }
5783        }
5784        #[automatically_derived]
5785        impl alloy_sol_types::SolCall for pauseCall {
5786            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5787            type Token<'a> = <Self::Parameters<
5788                'a,
5789            > as alloy_sol_types::SolType>::Token<'a>;
5790            type Return = pauseReturn;
5791            type ReturnTuple<'a> = ();
5792            type ReturnToken<'a> = <Self::ReturnTuple<
5793                'a,
5794            > as alloy_sol_types::SolType>::Token<'a>;
5795            const SIGNATURE: &'static str = "pause(uint256)";
5796            const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
5797            #[inline]
5798            fn new<'a>(
5799                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5800            ) -> Self {
5801                tuple.into()
5802            }
5803            #[inline]
5804            fn tokenize(&self) -> Self::Token<'_> {
5805                (
5806                    <alloy::sol_types::sol_data::Uint<
5807                        256,
5808                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
5809                )
5810            }
5811            #[inline]
5812            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5813                pauseReturn::_tokenize(ret)
5814            }
5815            #[inline]
5816            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5817                <Self::ReturnTuple<
5818                    '_,
5819                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5820                    .map(Into::into)
5821            }
5822            #[inline]
5823            fn abi_decode_returns_validate(
5824                data: &[u8],
5825            ) -> alloy_sol_types::Result<Self::Return> {
5826                <Self::ReturnTuple<
5827                    '_,
5828                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5829                    .map(Into::into)
5830            }
5831        }
5832    };
5833    #[derive(serde::Serialize, serde::Deserialize)]
5834    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5835    /**Function with signature `pauseAll()` and selector `0x595c6a67`.
5836```solidity
5837function pauseAll() external;
5838```*/
5839    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5840    #[derive(Clone)]
5841    pub struct pauseAllCall;
5842    ///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
5843    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5844    #[derive(Clone)]
5845    pub struct pauseAllReturn {}
5846    #[allow(
5847        non_camel_case_types,
5848        non_snake_case,
5849        clippy::pub_underscore_fields,
5850        clippy::style
5851    )]
5852    const _: () = {
5853        use alloy::sol_types as alloy_sol_types;
5854        {
5855            #[doc(hidden)]
5856            type UnderlyingSolTuple<'a> = ();
5857            #[doc(hidden)]
5858            type UnderlyingRustTuple<'a> = ();
5859            #[cfg(test)]
5860            #[allow(dead_code, unreachable_patterns)]
5861            fn _type_assertion(
5862                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5863            ) {
5864                match _t {
5865                    alloy_sol_types::private::AssertTypeEq::<
5866                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5867                    >(_) => {}
5868                }
5869            }
5870            #[automatically_derived]
5871            #[doc(hidden)]
5872            impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
5873                fn from(value: pauseAllCall) -> Self {
5874                    ()
5875                }
5876            }
5877            #[automatically_derived]
5878            #[doc(hidden)]
5879            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
5880                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5881                    Self
5882                }
5883            }
5884        }
5885        {
5886            #[doc(hidden)]
5887            type UnderlyingSolTuple<'a> = ();
5888            #[doc(hidden)]
5889            type UnderlyingRustTuple<'a> = ();
5890            #[cfg(test)]
5891            #[allow(dead_code, unreachable_patterns)]
5892            fn _type_assertion(
5893                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5894            ) {
5895                match _t {
5896                    alloy_sol_types::private::AssertTypeEq::<
5897                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5898                    >(_) => {}
5899                }
5900            }
5901            #[automatically_derived]
5902            #[doc(hidden)]
5903            impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
5904                fn from(value: pauseAllReturn) -> Self {
5905                    ()
5906                }
5907            }
5908            #[automatically_derived]
5909            #[doc(hidden)]
5910            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
5911                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5912                    Self {}
5913                }
5914            }
5915        }
5916        impl pauseAllReturn {
5917            fn _tokenize(
5918                &self,
5919            ) -> <pauseAllCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
5920                ()
5921            }
5922        }
5923        #[automatically_derived]
5924        impl alloy_sol_types::SolCall for pauseAllCall {
5925            type Parameters<'a> = ();
5926            type Token<'a> = <Self::Parameters<
5927                'a,
5928            > as alloy_sol_types::SolType>::Token<'a>;
5929            type Return = pauseAllReturn;
5930            type ReturnTuple<'a> = ();
5931            type ReturnToken<'a> = <Self::ReturnTuple<
5932                'a,
5933            > as alloy_sol_types::SolType>::Token<'a>;
5934            const SIGNATURE: &'static str = "pauseAll()";
5935            const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
5936            #[inline]
5937            fn new<'a>(
5938                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5939            ) -> Self {
5940                tuple.into()
5941            }
5942            #[inline]
5943            fn tokenize(&self) -> Self::Token<'_> {
5944                ()
5945            }
5946            #[inline]
5947            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5948                pauseAllReturn::_tokenize(ret)
5949            }
5950            #[inline]
5951            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5952                <Self::ReturnTuple<
5953                    '_,
5954                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5955                    .map(Into::into)
5956            }
5957            #[inline]
5958            fn abi_decode_returns_validate(
5959                data: &[u8],
5960            ) -> alloy_sol_types::Result<Self::Return> {
5961                <Self::ReturnTuple<
5962                    '_,
5963                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5964                    .map(Into::into)
5965            }
5966        }
5967    };
5968    #[derive(serde::Serialize, serde::Deserialize)]
5969    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5970    /**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
5971```solidity
5972function paused(uint8 index) external view returns (bool);
5973```*/
5974    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5975    #[derive(Clone)]
5976    pub struct paused_0Call {
5977        #[allow(missing_docs)]
5978        pub index: u8,
5979    }
5980    #[derive(serde::Serialize, serde::Deserialize)]
5981    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5982    ///Container type for the return parameters of the [`paused(uint8)`](paused_0Call) function.
5983    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5984    #[derive(Clone)]
5985    pub struct paused_0Return {
5986        #[allow(missing_docs)]
5987        pub _0: bool,
5988    }
5989    #[allow(
5990        non_camel_case_types,
5991        non_snake_case,
5992        clippy::pub_underscore_fields,
5993        clippy::style
5994    )]
5995    const _: () = {
5996        use alloy::sol_types as alloy_sol_types;
5997        {
5998            #[doc(hidden)]
5999            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
6000            #[doc(hidden)]
6001            type UnderlyingRustTuple<'a> = (u8,);
6002            #[cfg(test)]
6003            #[allow(dead_code, unreachable_patterns)]
6004            fn _type_assertion(
6005                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6006            ) {
6007                match _t {
6008                    alloy_sol_types::private::AssertTypeEq::<
6009                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6010                    >(_) => {}
6011                }
6012            }
6013            #[automatically_derived]
6014            #[doc(hidden)]
6015            impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
6016                fn from(value: paused_0Call) -> Self {
6017                    (value.index,)
6018                }
6019            }
6020            #[automatically_derived]
6021            #[doc(hidden)]
6022            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
6023                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6024                    Self { index: tuple.0 }
6025                }
6026            }
6027        }
6028        {
6029            #[doc(hidden)]
6030            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6031            #[doc(hidden)]
6032            type UnderlyingRustTuple<'a> = (bool,);
6033            #[cfg(test)]
6034            #[allow(dead_code, unreachable_patterns)]
6035            fn _type_assertion(
6036                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6037            ) {
6038                match _t {
6039                    alloy_sol_types::private::AssertTypeEq::<
6040                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6041                    >(_) => {}
6042                }
6043            }
6044            #[automatically_derived]
6045            #[doc(hidden)]
6046            impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
6047                fn from(value: paused_0Return) -> Self {
6048                    (value._0,)
6049                }
6050            }
6051            #[automatically_derived]
6052            #[doc(hidden)]
6053            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Return {
6054                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6055                    Self { _0: tuple.0 }
6056                }
6057            }
6058        }
6059        #[automatically_derived]
6060        impl alloy_sol_types::SolCall for paused_0Call {
6061            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
6062            type Token<'a> = <Self::Parameters<
6063                'a,
6064            > as alloy_sol_types::SolType>::Token<'a>;
6065            type Return = bool;
6066            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6067            type ReturnToken<'a> = <Self::ReturnTuple<
6068                'a,
6069            > as alloy_sol_types::SolType>::Token<'a>;
6070            const SIGNATURE: &'static str = "paused(uint8)";
6071            const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
6072            #[inline]
6073            fn new<'a>(
6074                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6075            ) -> Self {
6076                tuple.into()
6077            }
6078            #[inline]
6079            fn tokenize(&self) -> Self::Token<'_> {
6080                (
6081                    <alloy::sol_types::sol_data::Uint<
6082                        8,
6083                    > as alloy_sol_types::SolType>::tokenize(&self.index),
6084                )
6085            }
6086            #[inline]
6087            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6088                (
6089                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
6090                        ret,
6091                    ),
6092                )
6093            }
6094            #[inline]
6095            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6096                <Self::ReturnTuple<
6097                    '_,
6098                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6099                    .map(|r| {
6100                        let r: paused_0Return = r.into();
6101                        r._0
6102                    })
6103            }
6104            #[inline]
6105            fn abi_decode_returns_validate(
6106                data: &[u8],
6107            ) -> alloy_sol_types::Result<Self::Return> {
6108                <Self::ReturnTuple<
6109                    '_,
6110                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6111                    .map(|r| {
6112                        let r: paused_0Return = r.into();
6113                        r._0
6114                    })
6115            }
6116        }
6117    };
6118    #[derive(serde::Serialize, serde::Deserialize)]
6119    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6120    /**Function with signature `paused()` and selector `0x5c975abb`.
6121```solidity
6122function paused() external view returns (uint256);
6123```*/
6124    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6125    #[derive(Clone)]
6126    pub struct paused_1Call;
6127    #[derive(serde::Serialize, serde::Deserialize)]
6128    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6129    ///Container type for the return parameters of the [`paused()`](paused_1Call) function.
6130    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6131    #[derive(Clone)]
6132    pub struct paused_1Return {
6133        #[allow(missing_docs)]
6134        pub _0: alloy::sol_types::private::primitives::aliases::U256,
6135    }
6136    #[allow(
6137        non_camel_case_types,
6138        non_snake_case,
6139        clippy::pub_underscore_fields,
6140        clippy::style
6141    )]
6142    const _: () = {
6143        use alloy::sol_types as alloy_sol_types;
6144        {
6145            #[doc(hidden)]
6146            type UnderlyingSolTuple<'a> = ();
6147            #[doc(hidden)]
6148            type UnderlyingRustTuple<'a> = ();
6149            #[cfg(test)]
6150            #[allow(dead_code, unreachable_patterns)]
6151            fn _type_assertion(
6152                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6153            ) {
6154                match _t {
6155                    alloy_sol_types::private::AssertTypeEq::<
6156                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6157                    >(_) => {}
6158                }
6159            }
6160            #[automatically_derived]
6161            #[doc(hidden)]
6162            impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
6163                fn from(value: paused_1Call) -> Self {
6164                    ()
6165                }
6166            }
6167            #[automatically_derived]
6168            #[doc(hidden)]
6169            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
6170                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6171                    Self
6172                }
6173            }
6174        }
6175        {
6176            #[doc(hidden)]
6177            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6178            #[doc(hidden)]
6179            type UnderlyingRustTuple<'a> = (
6180                alloy::sol_types::private::primitives::aliases::U256,
6181            );
6182            #[cfg(test)]
6183            #[allow(dead_code, unreachable_patterns)]
6184            fn _type_assertion(
6185                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6186            ) {
6187                match _t {
6188                    alloy_sol_types::private::AssertTypeEq::<
6189                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6190                    >(_) => {}
6191                }
6192            }
6193            #[automatically_derived]
6194            #[doc(hidden)]
6195            impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
6196                fn from(value: paused_1Return) -> Self {
6197                    (value._0,)
6198                }
6199            }
6200            #[automatically_derived]
6201            #[doc(hidden)]
6202            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Return {
6203                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6204                    Self { _0: tuple.0 }
6205                }
6206            }
6207        }
6208        #[automatically_derived]
6209        impl alloy_sol_types::SolCall for paused_1Call {
6210            type Parameters<'a> = ();
6211            type Token<'a> = <Self::Parameters<
6212                'a,
6213            > as alloy_sol_types::SolType>::Token<'a>;
6214            type Return = alloy::sol_types::private::primitives::aliases::U256;
6215            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6216            type ReturnToken<'a> = <Self::ReturnTuple<
6217                'a,
6218            > as alloy_sol_types::SolType>::Token<'a>;
6219            const SIGNATURE: &'static str = "paused()";
6220            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
6221            #[inline]
6222            fn new<'a>(
6223                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6224            ) -> Self {
6225                tuple.into()
6226            }
6227            #[inline]
6228            fn tokenize(&self) -> Self::Token<'_> {
6229                ()
6230            }
6231            #[inline]
6232            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6233                (
6234                    <alloy::sol_types::sol_data::Uint<
6235                        256,
6236                    > as alloy_sol_types::SolType>::tokenize(ret),
6237                )
6238            }
6239            #[inline]
6240            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6241                <Self::ReturnTuple<
6242                    '_,
6243                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6244                    .map(|r| {
6245                        let r: paused_1Return = r.into();
6246                        r._0
6247                    })
6248            }
6249            #[inline]
6250            fn abi_decode_returns_validate(
6251                data: &[u8],
6252            ) -> alloy_sol_types::Result<Self::Return> {
6253                <Self::ReturnTuple<
6254                    '_,
6255                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6256                    .map(|r| {
6257                        let r: paused_1Return = r.into();
6258                        r._0
6259                    })
6260            }
6261        }
6262    };
6263    #[derive(serde::Serialize, serde::Deserialize)]
6264    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6265    /**Function with signature `pauserRegistry()` and selector `0x886f1195`.
6266```solidity
6267function pauserRegistry() external view returns (address);
6268```*/
6269    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6270    #[derive(Clone)]
6271    pub struct pauserRegistryCall;
6272    #[derive(serde::Serialize, serde::Deserialize)]
6273    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6274    ///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
6275    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6276    #[derive(Clone)]
6277    pub struct pauserRegistryReturn {
6278        #[allow(missing_docs)]
6279        pub _0: alloy::sol_types::private::Address,
6280    }
6281    #[allow(
6282        non_camel_case_types,
6283        non_snake_case,
6284        clippy::pub_underscore_fields,
6285        clippy::style
6286    )]
6287    const _: () = {
6288        use alloy::sol_types as alloy_sol_types;
6289        {
6290            #[doc(hidden)]
6291            type UnderlyingSolTuple<'a> = ();
6292            #[doc(hidden)]
6293            type UnderlyingRustTuple<'a> = ();
6294            #[cfg(test)]
6295            #[allow(dead_code, unreachable_patterns)]
6296            fn _type_assertion(
6297                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6298            ) {
6299                match _t {
6300                    alloy_sol_types::private::AssertTypeEq::<
6301                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6302                    >(_) => {}
6303                }
6304            }
6305            #[automatically_derived]
6306            #[doc(hidden)]
6307            impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
6308                fn from(value: pauserRegistryCall) -> Self {
6309                    ()
6310                }
6311            }
6312            #[automatically_derived]
6313            #[doc(hidden)]
6314            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
6315                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6316                    Self
6317                }
6318            }
6319        }
6320        {
6321            #[doc(hidden)]
6322            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6323            #[doc(hidden)]
6324            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6325            #[cfg(test)]
6326            #[allow(dead_code, unreachable_patterns)]
6327            fn _type_assertion(
6328                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6329            ) {
6330                match _t {
6331                    alloy_sol_types::private::AssertTypeEq::<
6332                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6333                    >(_) => {}
6334                }
6335            }
6336            #[automatically_derived]
6337            #[doc(hidden)]
6338            impl ::core::convert::From<pauserRegistryReturn>
6339            for UnderlyingRustTuple<'_> {
6340                fn from(value: pauserRegistryReturn) -> Self {
6341                    (value._0,)
6342                }
6343            }
6344            #[automatically_derived]
6345            #[doc(hidden)]
6346            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6347            for pauserRegistryReturn {
6348                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6349                    Self { _0: tuple.0 }
6350                }
6351            }
6352        }
6353        #[automatically_derived]
6354        impl alloy_sol_types::SolCall for pauserRegistryCall {
6355            type Parameters<'a> = ();
6356            type Token<'a> = <Self::Parameters<
6357                'a,
6358            > as alloy_sol_types::SolType>::Token<'a>;
6359            type Return = alloy::sol_types::private::Address;
6360            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
6361            type ReturnToken<'a> = <Self::ReturnTuple<
6362                'a,
6363            > as alloy_sol_types::SolType>::Token<'a>;
6364            const SIGNATURE: &'static str = "pauserRegistry()";
6365            const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
6366            #[inline]
6367            fn new<'a>(
6368                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6369            ) -> Self {
6370                tuple.into()
6371            }
6372            #[inline]
6373            fn tokenize(&self) -> Self::Token<'_> {
6374                ()
6375            }
6376            #[inline]
6377            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6378                (
6379                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6380                        ret,
6381                    ),
6382                )
6383            }
6384            #[inline]
6385            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6386                <Self::ReturnTuple<
6387                    '_,
6388                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6389                    .map(|r| {
6390                        let r: pauserRegistryReturn = r.into();
6391                        r._0
6392                    })
6393            }
6394            #[inline]
6395            fn abi_decode_returns_validate(
6396                data: &[u8],
6397            ) -> alloy_sol_types::Result<Self::Return> {
6398                <Self::ReturnTuple<
6399                    '_,
6400                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6401                    .map(|r| {
6402                        let r: pauserRegistryReturn = r.into();
6403                        r._0
6404                    })
6405            }
6406        }
6407    };
6408    #[derive(serde::Serialize, serde::Deserialize)]
6409    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6410    /**Function with signature `podOwnerDepositShares(address)` and selector `0xd48e8894`.
6411```solidity
6412function podOwnerDepositShares(address podOwner) external view returns (int256 shares);
6413```*/
6414    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6415    #[derive(Clone)]
6416    pub struct podOwnerDepositSharesCall {
6417        #[allow(missing_docs)]
6418        pub podOwner: alloy::sol_types::private::Address,
6419    }
6420    #[derive(serde::Serialize, serde::Deserialize)]
6421    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6422    ///Container type for the return parameters of the [`podOwnerDepositShares(address)`](podOwnerDepositSharesCall) function.
6423    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6424    #[derive(Clone)]
6425    pub struct podOwnerDepositSharesReturn {
6426        #[allow(missing_docs)]
6427        pub shares: alloy::sol_types::private::primitives::aliases::I256,
6428    }
6429    #[allow(
6430        non_camel_case_types,
6431        non_snake_case,
6432        clippy::pub_underscore_fields,
6433        clippy::style
6434    )]
6435    const _: () = {
6436        use alloy::sol_types as alloy_sol_types;
6437        {
6438            #[doc(hidden)]
6439            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6440            #[doc(hidden)]
6441            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6442            #[cfg(test)]
6443            #[allow(dead_code, unreachable_patterns)]
6444            fn _type_assertion(
6445                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6446            ) {
6447                match _t {
6448                    alloy_sol_types::private::AssertTypeEq::<
6449                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6450                    >(_) => {}
6451                }
6452            }
6453            #[automatically_derived]
6454            #[doc(hidden)]
6455            impl ::core::convert::From<podOwnerDepositSharesCall>
6456            for UnderlyingRustTuple<'_> {
6457                fn from(value: podOwnerDepositSharesCall) -> Self {
6458                    (value.podOwner,)
6459                }
6460            }
6461            #[automatically_derived]
6462            #[doc(hidden)]
6463            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6464            for podOwnerDepositSharesCall {
6465                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6466                    Self { podOwner: tuple.0 }
6467                }
6468            }
6469        }
6470        {
6471            #[doc(hidden)]
6472            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
6473            #[doc(hidden)]
6474            type UnderlyingRustTuple<'a> = (
6475                alloy::sol_types::private::primitives::aliases::I256,
6476            );
6477            #[cfg(test)]
6478            #[allow(dead_code, unreachable_patterns)]
6479            fn _type_assertion(
6480                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6481            ) {
6482                match _t {
6483                    alloy_sol_types::private::AssertTypeEq::<
6484                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6485                    >(_) => {}
6486                }
6487            }
6488            #[automatically_derived]
6489            #[doc(hidden)]
6490            impl ::core::convert::From<podOwnerDepositSharesReturn>
6491            for UnderlyingRustTuple<'_> {
6492                fn from(value: podOwnerDepositSharesReturn) -> Self {
6493                    (value.shares,)
6494                }
6495            }
6496            #[automatically_derived]
6497            #[doc(hidden)]
6498            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6499            for podOwnerDepositSharesReturn {
6500                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6501                    Self { shares: tuple.0 }
6502                }
6503            }
6504        }
6505        #[automatically_derived]
6506        impl alloy_sol_types::SolCall for podOwnerDepositSharesCall {
6507            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
6508            type Token<'a> = <Self::Parameters<
6509                'a,
6510            > as alloy_sol_types::SolType>::Token<'a>;
6511            type Return = alloy::sol_types::private::primitives::aliases::I256;
6512            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
6513            type ReturnToken<'a> = <Self::ReturnTuple<
6514                'a,
6515            > as alloy_sol_types::SolType>::Token<'a>;
6516            const SIGNATURE: &'static str = "podOwnerDepositShares(address)";
6517            const SELECTOR: [u8; 4] = [212u8, 142u8, 136u8, 148u8];
6518            #[inline]
6519            fn new<'a>(
6520                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6521            ) -> Self {
6522                tuple.into()
6523            }
6524            #[inline]
6525            fn tokenize(&self) -> Self::Token<'_> {
6526                (
6527                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6528                        &self.podOwner,
6529                    ),
6530                )
6531            }
6532            #[inline]
6533            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6534                (
6535                    <alloy::sol_types::sol_data::Int<
6536                        256,
6537                    > as alloy_sol_types::SolType>::tokenize(ret),
6538                )
6539            }
6540            #[inline]
6541            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6542                <Self::ReturnTuple<
6543                    '_,
6544                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6545                    .map(|r| {
6546                        let r: podOwnerDepositSharesReturn = r.into();
6547                        r.shares
6548                    })
6549            }
6550            #[inline]
6551            fn abi_decode_returns_validate(
6552                data: &[u8],
6553            ) -> alloy_sol_types::Result<Self::Return> {
6554                <Self::ReturnTuple<
6555                    '_,
6556                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6557                    .map(|r| {
6558                        let r: podOwnerDepositSharesReturn = r.into();
6559                        r.shares
6560                    })
6561            }
6562        }
6563    };
6564    #[derive(serde::Serialize, serde::Deserialize)]
6565    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6566    /**Function with signature `recordBeaconChainETHBalanceUpdate(address,uint256,int256)` and selector `0xa1ca780b`.
6567```solidity
6568function recordBeaconChainETHBalanceUpdate(address podOwner, uint256 prevRestakedBalanceWei, int256 balanceDeltaWei) external;
6569```*/
6570    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6571    #[derive(Clone)]
6572    pub struct recordBeaconChainETHBalanceUpdateCall {
6573        #[allow(missing_docs)]
6574        pub podOwner: alloy::sol_types::private::Address,
6575        #[allow(missing_docs)]
6576        pub prevRestakedBalanceWei: alloy::sol_types::private::primitives::aliases::U256,
6577        #[allow(missing_docs)]
6578        pub balanceDeltaWei: alloy::sol_types::private::primitives::aliases::I256,
6579    }
6580    ///Container type for the return parameters of the [`recordBeaconChainETHBalanceUpdate(address,uint256,int256)`](recordBeaconChainETHBalanceUpdateCall) function.
6581    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6582    #[derive(Clone)]
6583    pub struct recordBeaconChainETHBalanceUpdateReturn {}
6584    #[allow(
6585        non_camel_case_types,
6586        non_snake_case,
6587        clippy::pub_underscore_fields,
6588        clippy::style
6589    )]
6590    const _: () = {
6591        use alloy::sol_types as alloy_sol_types;
6592        {
6593            #[doc(hidden)]
6594            type UnderlyingSolTuple<'a> = (
6595                alloy::sol_types::sol_data::Address,
6596                alloy::sol_types::sol_data::Uint<256>,
6597                alloy::sol_types::sol_data::Int<256>,
6598            );
6599            #[doc(hidden)]
6600            type UnderlyingRustTuple<'a> = (
6601                alloy::sol_types::private::Address,
6602                alloy::sol_types::private::primitives::aliases::U256,
6603                alloy::sol_types::private::primitives::aliases::I256,
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<recordBeaconChainETHBalanceUpdateCall>
6619            for UnderlyingRustTuple<'_> {
6620                fn from(value: recordBeaconChainETHBalanceUpdateCall) -> Self {
6621                    (value.podOwner, value.prevRestakedBalanceWei, value.balanceDeltaWei)
6622                }
6623            }
6624            #[automatically_derived]
6625            #[doc(hidden)]
6626            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6627            for recordBeaconChainETHBalanceUpdateCall {
6628                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6629                    Self {
6630                        podOwner: tuple.0,
6631                        prevRestakedBalanceWei: tuple.1,
6632                        balanceDeltaWei: tuple.2,
6633                    }
6634                }
6635            }
6636        }
6637        {
6638            #[doc(hidden)]
6639            type UnderlyingSolTuple<'a> = ();
6640            #[doc(hidden)]
6641            type UnderlyingRustTuple<'a> = ();
6642            #[cfg(test)]
6643            #[allow(dead_code, unreachable_patterns)]
6644            fn _type_assertion(
6645                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6646            ) {
6647                match _t {
6648                    alloy_sol_types::private::AssertTypeEq::<
6649                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6650                    >(_) => {}
6651                }
6652            }
6653            #[automatically_derived]
6654            #[doc(hidden)]
6655            impl ::core::convert::From<recordBeaconChainETHBalanceUpdateReturn>
6656            for UnderlyingRustTuple<'_> {
6657                fn from(value: recordBeaconChainETHBalanceUpdateReturn) -> Self {
6658                    ()
6659                }
6660            }
6661            #[automatically_derived]
6662            #[doc(hidden)]
6663            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6664            for recordBeaconChainETHBalanceUpdateReturn {
6665                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6666                    Self {}
6667                }
6668            }
6669        }
6670        impl recordBeaconChainETHBalanceUpdateReturn {
6671            fn _tokenize(
6672                &self,
6673            ) -> <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::ReturnToken<
6674                '_,
6675            > {
6676                ()
6677            }
6678        }
6679        #[automatically_derived]
6680        impl alloy_sol_types::SolCall for recordBeaconChainETHBalanceUpdateCall {
6681            type Parameters<'a> = (
6682                alloy::sol_types::sol_data::Address,
6683                alloy::sol_types::sol_data::Uint<256>,
6684                alloy::sol_types::sol_data::Int<256>,
6685            );
6686            type Token<'a> = <Self::Parameters<
6687                'a,
6688            > as alloy_sol_types::SolType>::Token<'a>;
6689            type Return = recordBeaconChainETHBalanceUpdateReturn;
6690            type ReturnTuple<'a> = ();
6691            type ReturnToken<'a> = <Self::ReturnTuple<
6692                'a,
6693            > as alloy_sol_types::SolType>::Token<'a>;
6694            const SIGNATURE: &'static str = "recordBeaconChainETHBalanceUpdate(address,uint256,int256)";
6695            const SELECTOR: [u8; 4] = [161u8, 202u8, 120u8, 11u8];
6696            #[inline]
6697            fn new<'a>(
6698                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6699            ) -> Self {
6700                tuple.into()
6701            }
6702            #[inline]
6703            fn tokenize(&self) -> Self::Token<'_> {
6704                (
6705                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6706                        &self.podOwner,
6707                    ),
6708                    <alloy::sol_types::sol_data::Uint<
6709                        256,
6710                    > as alloy_sol_types::SolType>::tokenize(
6711                        &self.prevRestakedBalanceWei,
6712                    ),
6713                    <alloy::sol_types::sol_data::Int<
6714                        256,
6715                    > as alloy_sol_types::SolType>::tokenize(&self.balanceDeltaWei),
6716                )
6717            }
6718            #[inline]
6719            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6720                recordBeaconChainETHBalanceUpdateReturn::_tokenize(ret)
6721            }
6722            #[inline]
6723            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6724                <Self::ReturnTuple<
6725                    '_,
6726                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6727                    .map(Into::into)
6728            }
6729            #[inline]
6730            fn abi_decode_returns_validate(
6731                data: &[u8],
6732            ) -> alloy_sol_types::Result<Self::Return> {
6733                <Self::ReturnTuple<
6734                    '_,
6735                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6736                    .map(Into::into)
6737            }
6738        }
6739    };
6740    #[derive(serde::Serialize, serde::Deserialize)]
6741    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6742    /**Function with signature `removeDepositShares(address,address,uint256)` and selector `0x724af423`.
6743```solidity
6744function removeDepositShares(address staker, address strategy, uint256 depositSharesToRemove) external returns (uint256);
6745```*/
6746    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6747    #[derive(Clone)]
6748    pub struct removeDepositSharesCall {
6749        #[allow(missing_docs)]
6750        pub staker: alloy::sol_types::private::Address,
6751        #[allow(missing_docs)]
6752        pub strategy: alloy::sol_types::private::Address,
6753        #[allow(missing_docs)]
6754        pub depositSharesToRemove: alloy::sol_types::private::primitives::aliases::U256,
6755    }
6756    #[derive(serde::Serialize, serde::Deserialize)]
6757    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6758    ///Container type for the return parameters of the [`removeDepositShares(address,address,uint256)`](removeDepositSharesCall) function.
6759    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6760    #[derive(Clone)]
6761    pub struct removeDepositSharesReturn {
6762        #[allow(missing_docs)]
6763        pub _0: alloy::sol_types::private::primitives::aliases::U256,
6764    }
6765    #[allow(
6766        non_camel_case_types,
6767        non_snake_case,
6768        clippy::pub_underscore_fields,
6769        clippy::style
6770    )]
6771    const _: () = {
6772        use alloy::sol_types as alloy_sol_types;
6773        {
6774            #[doc(hidden)]
6775            type UnderlyingSolTuple<'a> = (
6776                alloy::sol_types::sol_data::Address,
6777                alloy::sol_types::sol_data::Address,
6778                alloy::sol_types::sol_data::Uint<256>,
6779            );
6780            #[doc(hidden)]
6781            type UnderlyingRustTuple<'a> = (
6782                alloy::sol_types::private::Address,
6783                alloy::sol_types::private::Address,
6784                alloy::sol_types::private::primitives::aliases::U256,
6785            );
6786            #[cfg(test)]
6787            #[allow(dead_code, unreachable_patterns)]
6788            fn _type_assertion(
6789                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6790            ) {
6791                match _t {
6792                    alloy_sol_types::private::AssertTypeEq::<
6793                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6794                    >(_) => {}
6795                }
6796            }
6797            #[automatically_derived]
6798            #[doc(hidden)]
6799            impl ::core::convert::From<removeDepositSharesCall>
6800            for UnderlyingRustTuple<'_> {
6801                fn from(value: removeDepositSharesCall) -> Self {
6802                    (value.staker, value.strategy, value.depositSharesToRemove)
6803                }
6804            }
6805            #[automatically_derived]
6806            #[doc(hidden)]
6807            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6808            for removeDepositSharesCall {
6809                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6810                    Self {
6811                        staker: tuple.0,
6812                        strategy: tuple.1,
6813                        depositSharesToRemove: tuple.2,
6814                    }
6815                }
6816            }
6817        }
6818        {
6819            #[doc(hidden)]
6820            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6821            #[doc(hidden)]
6822            type UnderlyingRustTuple<'a> = (
6823                alloy::sol_types::private::primitives::aliases::U256,
6824            );
6825            #[cfg(test)]
6826            #[allow(dead_code, unreachable_patterns)]
6827            fn _type_assertion(
6828                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6829            ) {
6830                match _t {
6831                    alloy_sol_types::private::AssertTypeEq::<
6832                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6833                    >(_) => {}
6834                }
6835            }
6836            #[automatically_derived]
6837            #[doc(hidden)]
6838            impl ::core::convert::From<removeDepositSharesReturn>
6839            for UnderlyingRustTuple<'_> {
6840                fn from(value: removeDepositSharesReturn) -> Self {
6841                    (value._0,)
6842                }
6843            }
6844            #[automatically_derived]
6845            #[doc(hidden)]
6846            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6847            for removeDepositSharesReturn {
6848                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6849                    Self { _0: tuple.0 }
6850                }
6851            }
6852        }
6853        #[automatically_derived]
6854        impl alloy_sol_types::SolCall for removeDepositSharesCall {
6855            type Parameters<'a> = (
6856                alloy::sol_types::sol_data::Address,
6857                alloy::sol_types::sol_data::Address,
6858                alloy::sol_types::sol_data::Uint<256>,
6859            );
6860            type Token<'a> = <Self::Parameters<
6861                'a,
6862            > as alloy_sol_types::SolType>::Token<'a>;
6863            type Return = alloy::sol_types::private::primitives::aliases::U256;
6864            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6865            type ReturnToken<'a> = <Self::ReturnTuple<
6866                'a,
6867            > as alloy_sol_types::SolType>::Token<'a>;
6868            const SIGNATURE: &'static str = "removeDepositShares(address,address,uint256)";
6869            const SELECTOR: [u8; 4] = [114u8, 74u8, 244u8, 35u8];
6870            #[inline]
6871            fn new<'a>(
6872                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6873            ) -> Self {
6874                tuple.into()
6875            }
6876            #[inline]
6877            fn tokenize(&self) -> Self::Token<'_> {
6878                (
6879                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6880                        &self.staker,
6881                    ),
6882                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6883                        &self.strategy,
6884                    ),
6885                    <alloy::sol_types::sol_data::Uint<
6886                        256,
6887                    > as alloy_sol_types::SolType>::tokenize(&self.depositSharesToRemove),
6888                )
6889            }
6890            #[inline]
6891            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6892                (
6893                    <alloy::sol_types::sol_data::Uint<
6894                        256,
6895                    > as alloy_sol_types::SolType>::tokenize(ret),
6896                )
6897            }
6898            #[inline]
6899            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6900                <Self::ReturnTuple<
6901                    '_,
6902                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6903                    .map(|r| {
6904                        let r: removeDepositSharesReturn = r.into();
6905                        r._0
6906                    })
6907            }
6908            #[inline]
6909            fn abi_decode_returns_validate(
6910                data: &[u8],
6911            ) -> alloy_sol_types::Result<Self::Return> {
6912                <Self::ReturnTuple<
6913                    '_,
6914                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6915                    .map(|r| {
6916                        let r: removeDepositSharesReturn = r.into();
6917                        r._0
6918                    })
6919            }
6920        }
6921    };
6922    #[derive(serde::Serialize, serde::Deserialize)]
6923    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6924    /**Function with signature `renounceOwnership()` and selector `0x715018a6`.
6925```solidity
6926function renounceOwnership() external;
6927```*/
6928    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6929    #[derive(Clone)]
6930    pub struct renounceOwnershipCall;
6931    ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
6932    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6933    #[derive(Clone)]
6934    pub struct renounceOwnershipReturn {}
6935    #[allow(
6936        non_camel_case_types,
6937        non_snake_case,
6938        clippy::pub_underscore_fields,
6939        clippy::style
6940    )]
6941    const _: () = {
6942        use alloy::sol_types as alloy_sol_types;
6943        {
6944            #[doc(hidden)]
6945            type UnderlyingSolTuple<'a> = ();
6946            #[doc(hidden)]
6947            type UnderlyingRustTuple<'a> = ();
6948            #[cfg(test)]
6949            #[allow(dead_code, unreachable_patterns)]
6950            fn _type_assertion(
6951                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6952            ) {
6953                match _t {
6954                    alloy_sol_types::private::AssertTypeEq::<
6955                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6956                    >(_) => {}
6957                }
6958            }
6959            #[automatically_derived]
6960            #[doc(hidden)]
6961            impl ::core::convert::From<renounceOwnershipCall>
6962            for UnderlyingRustTuple<'_> {
6963                fn from(value: renounceOwnershipCall) -> Self {
6964                    ()
6965                }
6966            }
6967            #[automatically_derived]
6968            #[doc(hidden)]
6969            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6970            for renounceOwnershipCall {
6971                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6972                    Self
6973                }
6974            }
6975        }
6976        {
6977            #[doc(hidden)]
6978            type UnderlyingSolTuple<'a> = ();
6979            #[doc(hidden)]
6980            type UnderlyingRustTuple<'a> = ();
6981            #[cfg(test)]
6982            #[allow(dead_code, unreachable_patterns)]
6983            fn _type_assertion(
6984                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6985            ) {
6986                match _t {
6987                    alloy_sol_types::private::AssertTypeEq::<
6988                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6989                    >(_) => {}
6990                }
6991            }
6992            #[automatically_derived]
6993            #[doc(hidden)]
6994            impl ::core::convert::From<renounceOwnershipReturn>
6995            for UnderlyingRustTuple<'_> {
6996                fn from(value: renounceOwnershipReturn) -> Self {
6997                    ()
6998                }
6999            }
7000            #[automatically_derived]
7001            #[doc(hidden)]
7002            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7003            for renounceOwnershipReturn {
7004                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7005                    Self {}
7006                }
7007            }
7008        }
7009        impl renounceOwnershipReturn {
7010            fn _tokenize(
7011                &self,
7012            ) -> <renounceOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7013                ()
7014            }
7015        }
7016        #[automatically_derived]
7017        impl alloy_sol_types::SolCall for renounceOwnershipCall {
7018            type Parameters<'a> = ();
7019            type Token<'a> = <Self::Parameters<
7020                'a,
7021            > as alloy_sol_types::SolType>::Token<'a>;
7022            type Return = renounceOwnershipReturn;
7023            type ReturnTuple<'a> = ();
7024            type ReturnToken<'a> = <Self::ReturnTuple<
7025                'a,
7026            > as alloy_sol_types::SolType>::Token<'a>;
7027            const SIGNATURE: &'static str = "renounceOwnership()";
7028            const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
7029            #[inline]
7030            fn new<'a>(
7031                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7032            ) -> Self {
7033                tuple.into()
7034            }
7035            #[inline]
7036            fn tokenize(&self) -> Self::Token<'_> {
7037                ()
7038            }
7039            #[inline]
7040            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7041                renounceOwnershipReturn::_tokenize(ret)
7042            }
7043            #[inline]
7044            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7045                <Self::ReturnTuple<
7046                    '_,
7047                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7048                    .map(Into::into)
7049            }
7050            #[inline]
7051            fn abi_decode_returns_validate(
7052                data: &[u8],
7053            ) -> alloy_sol_types::Result<Self::Return> {
7054                <Self::ReturnTuple<
7055                    '_,
7056                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7057                    .map(Into::into)
7058            }
7059        }
7060    };
7061    #[derive(serde::Serialize, serde::Deserialize)]
7062    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7063    /**Function with signature `stake(bytes,bytes,bytes32)` and selector `0x9b4e4634`.
7064```solidity
7065function stake(bytes memory pubkey, bytes memory signature, bytes32 depositDataRoot) external payable;
7066```*/
7067    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7068    #[derive(Clone)]
7069    pub struct stakeCall {
7070        #[allow(missing_docs)]
7071        pub pubkey: alloy::sol_types::private::Bytes,
7072        #[allow(missing_docs)]
7073        pub signature: alloy::sol_types::private::Bytes,
7074        #[allow(missing_docs)]
7075        pub depositDataRoot: alloy::sol_types::private::FixedBytes<32>,
7076    }
7077    ///Container type for the return parameters of the [`stake(bytes,bytes,bytes32)`](stakeCall) function.
7078    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7079    #[derive(Clone)]
7080    pub struct stakeReturn {}
7081    #[allow(
7082        non_camel_case_types,
7083        non_snake_case,
7084        clippy::pub_underscore_fields,
7085        clippy::style
7086    )]
7087    const _: () = {
7088        use alloy::sol_types as alloy_sol_types;
7089        {
7090            #[doc(hidden)]
7091            type UnderlyingSolTuple<'a> = (
7092                alloy::sol_types::sol_data::Bytes,
7093                alloy::sol_types::sol_data::Bytes,
7094                alloy::sol_types::sol_data::FixedBytes<32>,
7095            );
7096            #[doc(hidden)]
7097            type UnderlyingRustTuple<'a> = (
7098                alloy::sol_types::private::Bytes,
7099                alloy::sol_types::private::Bytes,
7100                alloy::sol_types::private::FixedBytes<32>,
7101            );
7102            #[cfg(test)]
7103            #[allow(dead_code, unreachable_patterns)]
7104            fn _type_assertion(
7105                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7106            ) {
7107                match _t {
7108                    alloy_sol_types::private::AssertTypeEq::<
7109                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7110                    >(_) => {}
7111                }
7112            }
7113            #[automatically_derived]
7114            #[doc(hidden)]
7115            impl ::core::convert::From<stakeCall> for UnderlyingRustTuple<'_> {
7116                fn from(value: stakeCall) -> Self {
7117                    (value.pubkey, value.signature, value.depositDataRoot)
7118                }
7119            }
7120            #[automatically_derived]
7121            #[doc(hidden)]
7122            impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeCall {
7123                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7124                    Self {
7125                        pubkey: tuple.0,
7126                        signature: tuple.1,
7127                        depositDataRoot: tuple.2,
7128                    }
7129                }
7130            }
7131        }
7132        {
7133            #[doc(hidden)]
7134            type UnderlyingSolTuple<'a> = ();
7135            #[doc(hidden)]
7136            type UnderlyingRustTuple<'a> = ();
7137            #[cfg(test)]
7138            #[allow(dead_code, unreachable_patterns)]
7139            fn _type_assertion(
7140                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7141            ) {
7142                match _t {
7143                    alloy_sol_types::private::AssertTypeEq::<
7144                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7145                    >(_) => {}
7146                }
7147            }
7148            #[automatically_derived]
7149            #[doc(hidden)]
7150            impl ::core::convert::From<stakeReturn> for UnderlyingRustTuple<'_> {
7151                fn from(value: stakeReturn) -> Self {
7152                    ()
7153                }
7154            }
7155            #[automatically_derived]
7156            #[doc(hidden)]
7157            impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeReturn {
7158                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7159                    Self {}
7160                }
7161            }
7162        }
7163        impl stakeReturn {
7164            fn _tokenize(
7165                &self,
7166            ) -> <stakeCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7167                ()
7168            }
7169        }
7170        #[automatically_derived]
7171        impl alloy_sol_types::SolCall for stakeCall {
7172            type Parameters<'a> = (
7173                alloy::sol_types::sol_data::Bytes,
7174                alloy::sol_types::sol_data::Bytes,
7175                alloy::sol_types::sol_data::FixedBytes<32>,
7176            );
7177            type Token<'a> = <Self::Parameters<
7178                'a,
7179            > as alloy_sol_types::SolType>::Token<'a>;
7180            type Return = stakeReturn;
7181            type ReturnTuple<'a> = ();
7182            type ReturnToken<'a> = <Self::ReturnTuple<
7183                'a,
7184            > as alloy_sol_types::SolType>::Token<'a>;
7185            const SIGNATURE: &'static str = "stake(bytes,bytes,bytes32)";
7186            const SELECTOR: [u8; 4] = [155u8, 78u8, 70u8, 52u8];
7187            #[inline]
7188            fn new<'a>(
7189                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7190            ) -> Self {
7191                tuple.into()
7192            }
7193            #[inline]
7194            fn tokenize(&self) -> Self::Token<'_> {
7195                (
7196                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
7197                        &self.pubkey,
7198                    ),
7199                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
7200                        &self.signature,
7201                    ),
7202                    <alloy::sol_types::sol_data::FixedBytes<
7203                        32,
7204                    > as alloy_sol_types::SolType>::tokenize(&self.depositDataRoot),
7205                )
7206            }
7207            #[inline]
7208            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7209                stakeReturn::_tokenize(ret)
7210            }
7211            #[inline]
7212            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7213                <Self::ReturnTuple<
7214                    '_,
7215                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7216                    .map(Into::into)
7217            }
7218            #[inline]
7219            fn abi_decode_returns_validate(
7220                data: &[u8],
7221            ) -> alloy_sol_types::Result<Self::Return> {
7222                <Self::ReturnTuple<
7223                    '_,
7224                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7225                    .map(Into::into)
7226            }
7227        }
7228    };
7229    #[derive(serde::Serialize, serde::Deserialize)]
7230    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7231    /**Function with signature `stakerDepositShares(address,address)` and selector `0xfe243a17`.
7232```solidity
7233function stakerDepositShares(address user, address strategy) external view returns (uint256 depositShares);
7234```*/
7235    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7236    #[derive(Clone)]
7237    pub struct stakerDepositSharesCall {
7238        #[allow(missing_docs)]
7239        pub user: alloy::sol_types::private::Address,
7240        #[allow(missing_docs)]
7241        pub strategy: alloy::sol_types::private::Address,
7242    }
7243    #[derive(serde::Serialize, serde::Deserialize)]
7244    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7245    ///Container type for the return parameters of the [`stakerDepositShares(address,address)`](stakerDepositSharesCall) function.
7246    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7247    #[derive(Clone)]
7248    pub struct stakerDepositSharesReturn {
7249        #[allow(missing_docs)]
7250        pub depositShares: alloy::sol_types::private::primitives::aliases::U256,
7251    }
7252    #[allow(
7253        non_camel_case_types,
7254        non_snake_case,
7255        clippy::pub_underscore_fields,
7256        clippy::style
7257    )]
7258    const _: () = {
7259        use alloy::sol_types as alloy_sol_types;
7260        {
7261            #[doc(hidden)]
7262            type UnderlyingSolTuple<'a> = (
7263                alloy::sol_types::sol_data::Address,
7264                alloy::sol_types::sol_data::Address,
7265            );
7266            #[doc(hidden)]
7267            type UnderlyingRustTuple<'a> = (
7268                alloy::sol_types::private::Address,
7269                alloy::sol_types::private::Address,
7270            );
7271            #[cfg(test)]
7272            #[allow(dead_code, unreachable_patterns)]
7273            fn _type_assertion(
7274                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7275            ) {
7276                match _t {
7277                    alloy_sol_types::private::AssertTypeEq::<
7278                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7279                    >(_) => {}
7280                }
7281            }
7282            #[automatically_derived]
7283            #[doc(hidden)]
7284            impl ::core::convert::From<stakerDepositSharesCall>
7285            for UnderlyingRustTuple<'_> {
7286                fn from(value: stakerDepositSharesCall) -> Self {
7287                    (value.user, value.strategy)
7288                }
7289            }
7290            #[automatically_derived]
7291            #[doc(hidden)]
7292            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7293            for stakerDepositSharesCall {
7294                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7295                    Self {
7296                        user: tuple.0,
7297                        strategy: tuple.1,
7298                    }
7299                }
7300            }
7301        }
7302        {
7303            #[doc(hidden)]
7304            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7305            #[doc(hidden)]
7306            type UnderlyingRustTuple<'a> = (
7307                alloy::sol_types::private::primitives::aliases::U256,
7308            );
7309            #[cfg(test)]
7310            #[allow(dead_code, unreachable_patterns)]
7311            fn _type_assertion(
7312                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7313            ) {
7314                match _t {
7315                    alloy_sol_types::private::AssertTypeEq::<
7316                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7317                    >(_) => {}
7318                }
7319            }
7320            #[automatically_derived]
7321            #[doc(hidden)]
7322            impl ::core::convert::From<stakerDepositSharesReturn>
7323            for UnderlyingRustTuple<'_> {
7324                fn from(value: stakerDepositSharesReturn) -> Self {
7325                    (value.depositShares,)
7326                }
7327            }
7328            #[automatically_derived]
7329            #[doc(hidden)]
7330            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7331            for stakerDepositSharesReturn {
7332                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7333                    Self { depositShares: tuple.0 }
7334                }
7335            }
7336        }
7337        #[automatically_derived]
7338        impl alloy_sol_types::SolCall for stakerDepositSharesCall {
7339            type Parameters<'a> = (
7340                alloy::sol_types::sol_data::Address,
7341                alloy::sol_types::sol_data::Address,
7342            );
7343            type Token<'a> = <Self::Parameters<
7344                'a,
7345            > as alloy_sol_types::SolType>::Token<'a>;
7346            type Return = alloy::sol_types::private::primitives::aliases::U256;
7347            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7348            type ReturnToken<'a> = <Self::ReturnTuple<
7349                'a,
7350            > as alloy_sol_types::SolType>::Token<'a>;
7351            const SIGNATURE: &'static str = "stakerDepositShares(address,address)";
7352            const SELECTOR: [u8; 4] = [254u8, 36u8, 58u8, 23u8];
7353            #[inline]
7354            fn new<'a>(
7355                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7356            ) -> Self {
7357                tuple.into()
7358            }
7359            #[inline]
7360            fn tokenize(&self) -> Self::Token<'_> {
7361                (
7362                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7363                        &self.user,
7364                    ),
7365                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7366                        &self.strategy,
7367                    ),
7368                )
7369            }
7370            #[inline]
7371            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7372                (
7373                    <alloy::sol_types::sol_data::Uint<
7374                        256,
7375                    > as alloy_sol_types::SolType>::tokenize(ret),
7376                )
7377            }
7378            #[inline]
7379            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7380                <Self::ReturnTuple<
7381                    '_,
7382                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7383                    .map(|r| {
7384                        let r: stakerDepositSharesReturn = r.into();
7385                        r.depositShares
7386                    })
7387            }
7388            #[inline]
7389            fn abi_decode_returns_validate(
7390                data: &[u8],
7391            ) -> alloy_sol_types::Result<Self::Return> {
7392                <Self::ReturnTuple<
7393                    '_,
7394                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7395                    .map(|r| {
7396                        let r: stakerDepositSharesReturn = r.into();
7397                        r.depositShares
7398                    })
7399            }
7400        }
7401    };
7402    #[derive(serde::Serialize, serde::Deserialize)]
7403    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7404    /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
7405```solidity
7406function transferOwnership(address newOwner) external;
7407```*/
7408    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7409    #[derive(Clone)]
7410    pub struct transferOwnershipCall {
7411        #[allow(missing_docs)]
7412        pub newOwner: alloy::sol_types::private::Address,
7413    }
7414    ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
7415    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7416    #[derive(Clone)]
7417    pub struct transferOwnershipReturn {}
7418    #[allow(
7419        non_camel_case_types,
7420        non_snake_case,
7421        clippy::pub_underscore_fields,
7422        clippy::style
7423    )]
7424    const _: () = {
7425        use alloy::sol_types as alloy_sol_types;
7426        {
7427            #[doc(hidden)]
7428            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
7429            #[doc(hidden)]
7430            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
7431            #[cfg(test)]
7432            #[allow(dead_code, unreachable_patterns)]
7433            fn _type_assertion(
7434                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7435            ) {
7436                match _t {
7437                    alloy_sol_types::private::AssertTypeEq::<
7438                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7439                    >(_) => {}
7440                }
7441            }
7442            #[automatically_derived]
7443            #[doc(hidden)]
7444            impl ::core::convert::From<transferOwnershipCall>
7445            for UnderlyingRustTuple<'_> {
7446                fn from(value: transferOwnershipCall) -> Self {
7447                    (value.newOwner,)
7448                }
7449            }
7450            #[automatically_derived]
7451            #[doc(hidden)]
7452            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7453            for transferOwnershipCall {
7454                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7455                    Self { newOwner: tuple.0 }
7456                }
7457            }
7458        }
7459        {
7460            #[doc(hidden)]
7461            type UnderlyingSolTuple<'a> = ();
7462            #[doc(hidden)]
7463            type UnderlyingRustTuple<'a> = ();
7464            #[cfg(test)]
7465            #[allow(dead_code, unreachable_patterns)]
7466            fn _type_assertion(
7467                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7468            ) {
7469                match _t {
7470                    alloy_sol_types::private::AssertTypeEq::<
7471                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7472                    >(_) => {}
7473                }
7474            }
7475            #[automatically_derived]
7476            #[doc(hidden)]
7477            impl ::core::convert::From<transferOwnershipReturn>
7478            for UnderlyingRustTuple<'_> {
7479                fn from(value: transferOwnershipReturn) -> Self {
7480                    ()
7481                }
7482            }
7483            #[automatically_derived]
7484            #[doc(hidden)]
7485            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7486            for transferOwnershipReturn {
7487                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7488                    Self {}
7489                }
7490            }
7491        }
7492        impl transferOwnershipReturn {
7493            fn _tokenize(
7494                &self,
7495            ) -> <transferOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7496                ()
7497            }
7498        }
7499        #[automatically_derived]
7500        impl alloy_sol_types::SolCall for transferOwnershipCall {
7501            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
7502            type Token<'a> = <Self::Parameters<
7503                'a,
7504            > as alloy_sol_types::SolType>::Token<'a>;
7505            type Return = transferOwnershipReturn;
7506            type ReturnTuple<'a> = ();
7507            type ReturnToken<'a> = <Self::ReturnTuple<
7508                'a,
7509            > as alloy_sol_types::SolType>::Token<'a>;
7510            const SIGNATURE: &'static str = "transferOwnership(address)";
7511            const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
7512            #[inline]
7513            fn new<'a>(
7514                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7515            ) -> Self {
7516                tuple.into()
7517            }
7518            #[inline]
7519            fn tokenize(&self) -> Self::Token<'_> {
7520                (
7521                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7522                        &self.newOwner,
7523                    ),
7524                )
7525            }
7526            #[inline]
7527            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7528                transferOwnershipReturn::_tokenize(ret)
7529            }
7530            #[inline]
7531            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7532                <Self::ReturnTuple<
7533                    '_,
7534                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7535                    .map(Into::into)
7536            }
7537            #[inline]
7538            fn abi_decode_returns_validate(
7539                data: &[u8],
7540            ) -> alloy_sol_types::Result<Self::Return> {
7541                <Self::ReturnTuple<
7542                    '_,
7543                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7544                    .map(Into::into)
7545            }
7546        }
7547    };
7548    #[derive(serde::Serialize, serde::Deserialize)]
7549    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7550    /**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
7551```solidity
7552function unpause(uint256 newPausedStatus) external;
7553```*/
7554    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7555    #[derive(Clone)]
7556    pub struct unpauseCall {
7557        #[allow(missing_docs)]
7558        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7559    }
7560    ///Container type for the return parameters of the [`unpause(uint256)`](unpauseCall) function.
7561    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7562    #[derive(Clone)]
7563    pub struct unpauseReturn {}
7564    #[allow(
7565        non_camel_case_types,
7566        non_snake_case,
7567        clippy::pub_underscore_fields,
7568        clippy::style
7569    )]
7570    const _: () = {
7571        use alloy::sol_types as alloy_sol_types;
7572        {
7573            #[doc(hidden)]
7574            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7575            #[doc(hidden)]
7576            type UnderlyingRustTuple<'a> = (
7577                alloy::sol_types::private::primitives::aliases::U256,
7578            );
7579            #[cfg(test)]
7580            #[allow(dead_code, unreachable_patterns)]
7581            fn _type_assertion(
7582                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7583            ) {
7584                match _t {
7585                    alloy_sol_types::private::AssertTypeEq::<
7586                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7587                    >(_) => {}
7588                }
7589            }
7590            #[automatically_derived]
7591            #[doc(hidden)]
7592            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
7593                fn from(value: unpauseCall) -> Self {
7594                    (value.newPausedStatus,)
7595                }
7596            }
7597            #[automatically_derived]
7598            #[doc(hidden)]
7599            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
7600                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7601                    Self { newPausedStatus: tuple.0 }
7602                }
7603            }
7604        }
7605        {
7606            #[doc(hidden)]
7607            type UnderlyingSolTuple<'a> = ();
7608            #[doc(hidden)]
7609            type UnderlyingRustTuple<'a> = ();
7610            #[cfg(test)]
7611            #[allow(dead_code, unreachable_patterns)]
7612            fn _type_assertion(
7613                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7614            ) {
7615                match _t {
7616                    alloy_sol_types::private::AssertTypeEq::<
7617                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7618                    >(_) => {}
7619                }
7620            }
7621            #[automatically_derived]
7622            #[doc(hidden)]
7623            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
7624                fn from(value: unpauseReturn) -> Self {
7625                    ()
7626                }
7627            }
7628            #[automatically_derived]
7629            #[doc(hidden)]
7630            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
7631                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7632                    Self {}
7633                }
7634            }
7635        }
7636        impl unpauseReturn {
7637            fn _tokenize(
7638                &self,
7639            ) -> <unpauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7640                ()
7641            }
7642        }
7643        #[automatically_derived]
7644        impl alloy_sol_types::SolCall for unpauseCall {
7645            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7646            type Token<'a> = <Self::Parameters<
7647                'a,
7648            > as alloy_sol_types::SolType>::Token<'a>;
7649            type Return = unpauseReturn;
7650            type ReturnTuple<'a> = ();
7651            type ReturnToken<'a> = <Self::ReturnTuple<
7652                'a,
7653            > as alloy_sol_types::SolType>::Token<'a>;
7654            const SIGNATURE: &'static str = "unpause(uint256)";
7655            const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
7656            #[inline]
7657            fn new<'a>(
7658                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7659            ) -> Self {
7660                tuple.into()
7661            }
7662            #[inline]
7663            fn tokenize(&self) -> Self::Token<'_> {
7664                (
7665                    <alloy::sol_types::sol_data::Uint<
7666                        256,
7667                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7668                )
7669            }
7670            #[inline]
7671            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7672                unpauseReturn::_tokenize(ret)
7673            }
7674            #[inline]
7675            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7676                <Self::ReturnTuple<
7677                    '_,
7678                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7679                    .map(Into::into)
7680            }
7681            #[inline]
7682            fn abi_decode_returns_validate(
7683                data: &[u8],
7684            ) -> alloy_sol_types::Result<Self::Return> {
7685                <Self::ReturnTuple<
7686                    '_,
7687                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7688                    .map(Into::into)
7689            }
7690        }
7691    };
7692    #[derive(serde::Serialize, serde::Deserialize)]
7693    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7694    /**Function with signature `version()` and selector `0x54fd4d50`.
7695```solidity
7696function version() external view returns (string memory);
7697```*/
7698    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7699    #[derive(Clone)]
7700    pub struct versionCall;
7701    #[derive(serde::Serialize, serde::Deserialize)]
7702    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7703    ///Container type for the return parameters of the [`version()`](versionCall) function.
7704    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7705    #[derive(Clone)]
7706    pub struct versionReturn {
7707        #[allow(missing_docs)]
7708        pub _0: alloy::sol_types::private::String,
7709    }
7710    #[allow(
7711        non_camel_case_types,
7712        non_snake_case,
7713        clippy::pub_underscore_fields,
7714        clippy::style
7715    )]
7716    const _: () = {
7717        use alloy::sol_types as alloy_sol_types;
7718        {
7719            #[doc(hidden)]
7720            type UnderlyingSolTuple<'a> = ();
7721            #[doc(hidden)]
7722            type UnderlyingRustTuple<'a> = ();
7723            #[cfg(test)]
7724            #[allow(dead_code, unreachable_patterns)]
7725            fn _type_assertion(
7726                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7727            ) {
7728                match _t {
7729                    alloy_sol_types::private::AssertTypeEq::<
7730                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7731                    >(_) => {}
7732                }
7733            }
7734            #[automatically_derived]
7735            #[doc(hidden)]
7736            impl ::core::convert::From<versionCall> for UnderlyingRustTuple<'_> {
7737                fn from(value: versionCall) -> Self {
7738                    ()
7739                }
7740            }
7741            #[automatically_derived]
7742            #[doc(hidden)]
7743            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionCall {
7744                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7745                    Self
7746                }
7747            }
7748        }
7749        {
7750            #[doc(hidden)]
7751            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
7752            #[doc(hidden)]
7753            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
7754            #[cfg(test)]
7755            #[allow(dead_code, unreachable_patterns)]
7756            fn _type_assertion(
7757                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7758            ) {
7759                match _t {
7760                    alloy_sol_types::private::AssertTypeEq::<
7761                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7762                    >(_) => {}
7763                }
7764            }
7765            #[automatically_derived]
7766            #[doc(hidden)]
7767            impl ::core::convert::From<versionReturn> for UnderlyingRustTuple<'_> {
7768                fn from(value: versionReturn) -> Self {
7769                    (value._0,)
7770                }
7771            }
7772            #[automatically_derived]
7773            #[doc(hidden)]
7774            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionReturn {
7775                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7776                    Self { _0: tuple.0 }
7777                }
7778            }
7779        }
7780        #[automatically_derived]
7781        impl alloy_sol_types::SolCall for versionCall {
7782            type Parameters<'a> = ();
7783            type Token<'a> = <Self::Parameters<
7784                'a,
7785            > as alloy_sol_types::SolType>::Token<'a>;
7786            type Return = alloy::sol_types::private::String;
7787            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
7788            type ReturnToken<'a> = <Self::ReturnTuple<
7789                'a,
7790            > as alloy_sol_types::SolType>::Token<'a>;
7791            const SIGNATURE: &'static str = "version()";
7792            const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8];
7793            #[inline]
7794            fn new<'a>(
7795                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7796            ) -> Self {
7797                tuple.into()
7798            }
7799            #[inline]
7800            fn tokenize(&self) -> Self::Token<'_> {
7801                ()
7802            }
7803            #[inline]
7804            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7805                (
7806                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
7807                        ret,
7808                    ),
7809                )
7810            }
7811            #[inline]
7812            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7813                <Self::ReturnTuple<
7814                    '_,
7815                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7816                    .map(|r| {
7817                        let r: versionReturn = r.into();
7818                        r._0
7819                    })
7820            }
7821            #[inline]
7822            fn abi_decode_returns_validate(
7823                data: &[u8],
7824            ) -> alloy_sol_types::Result<Self::Return> {
7825                <Self::ReturnTuple<
7826                    '_,
7827                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7828                    .map(|r| {
7829                        let r: versionReturn = r.into();
7830                        r._0
7831                    })
7832            }
7833        }
7834    };
7835    #[derive(serde::Serialize, serde::Deserialize)]
7836    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7837    /**Function with signature `withdrawSharesAsTokens(address,address,address,uint256)` and selector `0x2eae418c`.
7838```solidity
7839function withdrawSharesAsTokens(address staker, address strategy, address, uint256 shares) external;
7840```*/
7841    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7842    #[derive(Clone)]
7843    pub struct withdrawSharesAsTokensCall {
7844        #[allow(missing_docs)]
7845        pub staker: alloy::sol_types::private::Address,
7846        #[allow(missing_docs)]
7847        pub strategy: alloy::sol_types::private::Address,
7848        #[allow(missing_docs)]
7849        pub _2: alloy::sol_types::private::Address,
7850        #[allow(missing_docs)]
7851        pub shares: alloy::sol_types::private::primitives::aliases::U256,
7852    }
7853    ///Container type for the return parameters of the [`withdrawSharesAsTokens(address,address,address,uint256)`](withdrawSharesAsTokensCall) function.
7854    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7855    #[derive(Clone)]
7856    pub struct withdrawSharesAsTokensReturn {}
7857    #[allow(
7858        non_camel_case_types,
7859        non_snake_case,
7860        clippy::pub_underscore_fields,
7861        clippy::style
7862    )]
7863    const _: () = {
7864        use alloy::sol_types as alloy_sol_types;
7865        {
7866            #[doc(hidden)]
7867            type UnderlyingSolTuple<'a> = (
7868                alloy::sol_types::sol_data::Address,
7869                alloy::sol_types::sol_data::Address,
7870                alloy::sol_types::sol_data::Address,
7871                alloy::sol_types::sol_data::Uint<256>,
7872            );
7873            #[doc(hidden)]
7874            type UnderlyingRustTuple<'a> = (
7875                alloy::sol_types::private::Address,
7876                alloy::sol_types::private::Address,
7877                alloy::sol_types::private::Address,
7878                alloy::sol_types::private::primitives::aliases::U256,
7879            );
7880            #[cfg(test)]
7881            #[allow(dead_code, unreachable_patterns)]
7882            fn _type_assertion(
7883                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7884            ) {
7885                match _t {
7886                    alloy_sol_types::private::AssertTypeEq::<
7887                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7888                    >(_) => {}
7889                }
7890            }
7891            #[automatically_derived]
7892            #[doc(hidden)]
7893            impl ::core::convert::From<withdrawSharesAsTokensCall>
7894            for UnderlyingRustTuple<'_> {
7895                fn from(value: withdrawSharesAsTokensCall) -> Self {
7896                    (value.staker, value.strategy, value._2, value.shares)
7897                }
7898            }
7899            #[automatically_derived]
7900            #[doc(hidden)]
7901            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7902            for withdrawSharesAsTokensCall {
7903                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7904                    Self {
7905                        staker: tuple.0,
7906                        strategy: tuple.1,
7907                        _2: tuple.2,
7908                        shares: tuple.3,
7909                    }
7910                }
7911            }
7912        }
7913        {
7914            #[doc(hidden)]
7915            type UnderlyingSolTuple<'a> = ();
7916            #[doc(hidden)]
7917            type UnderlyingRustTuple<'a> = ();
7918            #[cfg(test)]
7919            #[allow(dead_code, unreachable_patterns)]
7920            fn _type_assertion(
7921                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7922            ) {
7923                match _t {
7924                    alloy_sol_types::private::AssertTypeEq::<
7925                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7926                    >(_) => {}
7927                }
7928            }
7929            #[automatically_derived]
7930            #[doc(hidden)]
7931            impl ::core::convert::From<withdrawSharesAsTokensReturn>
7932            for UnderlyingRustTuple<'_> {
7933                fn from(value: withdrawSharesAsTokensReturn) -> Self {
7934                    ()
7935                }
7936            }
7937            #[automatically_derived]
7938            #[doc(hidden)]
7939            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7940            for withdrawSharesAsTokensReturn {
7941                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7942                    Self {}
7943                }
7944            }
7945        }
7946        impl withdrawSharesAsTokensReturn {
7947            fn _tokenize(
7948                &self,
7949            ) -> <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::ReturnToken<
7950                '_,
7951            > {
7952                ()
7953            }
7954        }
7955        #[automatically_derived]
7956        impl alloy_sol_types::SolCall for withdrawSharesAsTokensCall {
7957            type Parameters<'a> = (
7958                alloy::sol_types::sol_data::Address,
7959                alloy::sol_types::sol_data::Address,
7960                alloy::sol_types::sol_data::Address,
7961                alloy::sol_types::sol_data::Uint<256>,
7962            );
7963            type Token<'a> = <Self::Parameters<
7964                'a,
7965            > as alloy_sol_types::SolType>::Token<'a>;
7966            type Return = withdrawSharesAsTokensReturn;
7967            type ReturnTuple<'a> = ();
7968            type ReturnToken<'a> = <Self::ReturnTuple<
7969                'a,
7970            > as alloy_sol_types::SolType>::Token<'a>;
7971            const SIGNATURE: &'static str = "withdrawSharesAsTokens(address,address,address,uint256)";
7972            const SELECTOR: [u8; 4] = [46u8, 174u8, 65u8, 140u8];
7973            #[inline]
7974            fn new<'a>(
7975                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7976            ) -> Self {
7977                tuple.into()
7978            }
7979            #[inline]
7980            fn tokenize(&self) -> Self::Token<'_> {
7981                (
7982                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7983                        &self.staker,
7984                    ),
7985                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7986                        &self.strategy,
7987                    ),
7988                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7989                        &self._2,
7990                    ),
7991                    <alloy::sol_types::sol_data::Uint<
7992                        256,
7993                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
7994                )
7995            }
7996            #[inline]
7997            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7998                withdrawSharesAsTokensReturn::_tokenize(ret)
7999            }
8000            #[inline]
8001            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8002                <Self::ReturnTuple<
8003                    '_,
8004                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8005                    .map(Into::into)
8006            }
8007            #[inline]
8008            fn abi_decode_returns_validate(
8009                data: &[u8],
8010            ) -> alloy_sol_types::Result<Self::Return> {
8011                <Self::ReturnTuple<
8012                    '_,
8013                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8014                    .map(Into::into)
8015            }
8016        }
8017    };
8018    ///Container for all the [`EigenPodManager`](self) function calls.
8019    #[derive(serde::Serialize, serde::Deserialize)]
8020    #[derive()]
8021    pub enum EigenPodManagerCalls {
8022        #[allow(missing_docs)]
8023        addShares(addSharesCall),
8024        #[allow(missing_docs)]
8025        beaconChainETHStrategy(beaconChainETHStrategyCall),
8026        #[allow(missing_docs)]
8027        beaconChainSlashingFactor(beaconChainSlashingFactorCall),
8028        #[allow(missing_docs)]
8029        burnableETHShares(burnableETHSharesCall),
8030        #[allow(missing_docs)]
8031        createPod(createPodCall),
8032        #[allow(missing_docs)]
8033        delegationManager(delegationManagerCall),
8034        #[allow(missing_docs)]
8035        eigenPodBeacon(eigenPodBeaconCall),
8036        #[allow(missing_docs)]
8037        ethPOS(ethPOSCall),
8038        #[allow(missing_docs)]
8039        getPod(getPodCall),
8040        #[allow(missing_docs)]
8041        hasPod(hasPodCall),
8042        #[allow(missing_docs)]
8043        increaseBurnableShares(increaseBurnableSharesCall),
8044        #[allow(missing_docs)]
8045        initialize(initializeCall),
8046        #[allow(missing_docs)]
8047        numPods(numPodsCall),
8048        #[allow(missing_docs)]
8049        owner(ownerCall),
8050        #[allow(missing_docs)]
8051        ownerToPod(ownerToPodCall),
8052        #[allow(missing_docs)]
8053        pause(pauseCall),
8054        #[allow(missing_docs)]
8055        pauseAll(pauseAllCall),
8056        #[allow(missing_docs)]
8057        paused_0(paused_0Call),
8058        #[allow(missing_docs)]
8059        paused_1(paused_1Call),
8060        #[allow(missing_docs)]
8061        pauserRegistry(pauserRegistryCall),
8062        #[allow(missing_docs)]
8063        podOwnerDepositShares(podOwnerDepositSharesCall),
8064        #[allow(missing_docs)]
8065        recordBeaconChainETHBalanceUpdate(recordBeaconChainETHBalanceUpdateCall),
8066        #[allow(missing_docs)]
8067        removeDepositShares(removeDepositSharesCall),
8068        #[allow(missing_docs)]
8069        renounceOwnership(renounceOwnershipCall),
8070        #[allow(missing_docs)]
8071        stake(stakeCall),
8072        #[allow(missing_docs)]
8073        stakerDepositShares(stakerDepositSharesCall),
8074        #[allow(missing_docs)]
8075        transferOwnership(transferOwnershipCall),
8076        #[allow(missing_docs)]
8077        unpause(unpauseCall),
8078        #[allow(missing_docs)]
8079        version(versionCall),
8080        #[allow(missing_docs)]
8081        withdrawSharesAsTokens(withdrawSharesAsTokensCall),
8082    }
8083    #[automatically_derived]
8084    impl EigenPodManagerCalls {
8085        /// All the selectors of this enum.
8086        ///
8087        /// Note that the selectors might not be in the same order as the variants.
8088        /// No guarantees are made about the order of the selectors.
8089        ///
8090        /// Prefer using `SolInterface` methods instead.
8091        pub const SELECTORS: &'static [[u8; 4usize]] = &[
8092            [19u8, 100u8, 57u8, 221u8],
8093            [41u8, 43u8, 123u8, 43u8],
8094            [46u8, 174u8, 65u8, 140u8],
8095            [80u8, 255u8, 114u8, 37u8],
8096            [84u8, 253u8, 77u8, 80u8],
8097            [89u8, 92u8, 106u8, 103u8],
8098            [90u8, 200u8, 106u8, 183u8],
8099            [92u8, 151u8, 90u8, 187u8],
8100            [113u8, 80u8, 24u8, 166u8],
8101            [114u8, 74u8, 244u8, 35u8],
8102            [116u8, 205u8, 215u8, 152u8],
8103            [132u8, 216u8, 16u8, 98u8],
8104            [136u8, 111u8, 17u8, 149u8],
8105            [141u8, 165u8, 203u8, 91u8],
8106            [145u8, 4u8, 195u8, 25u8],
8107            [155u8, 78u8, 70u8, 52u8],
8108            [155u8, 160u8, 98u8, 117u8],
8109            [161u8, 202u8, 120u8, 11u8],
8110            [163u8, 132u8, 6u8, 163u8],
8111            [163u8, 215u8, 94u8, 9u8],
8112            [166u8, 165u8, 9u8, 190u8],
8113            [205u8, 109u8, 198u8, 135u8],
8114            [212u8, 142u8, 136u8, 148u8],
8115            [222u8, 190u8, 30u8, 171u8],
8116            [234u8, 77u8, 60u8, 155u8],
8117            [242u8, 253u8, 227u8, 139u8],
8118            [245u8, 212u8, 254u8, 211u8],
8119            [246u8, 132u8, 141u8, 36u8],
8120            [250u8, 188u8, 28u8, 188u8],
8121            [254u8, 36u8, 58u8, 23u8],
8122        ];
8123    }
8124    #[automatically_derived]
8125    impl alloy_sol_types::SolInterface for EigenPodManagerCalls {
8126        const NAME: &'static str = "EigenPodManagerCalls";
8127        const MIN_DATA_LENGTH: usize = 0usize;
8128        const COUNT: usize = 30usize;
8129        #[inline]
8130        fn selector(&self) -> [u8; 4] {
8131            match self {
8132                Self::addShares(_) => {
8133                    <addSharesCall as alloy_sol_types::SolCall>::SELECTOR
8134                }
8135                Self::beaconChainETHStrategy(_) => {
8136                    <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::SELECTOR
8137                }
8138                Self::beaconChainSlashingFactor(_) => {
8139                    <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::SELECTOR
8140                }
8141                Self::burnableETHShares(_) => {
8142                    <burnableETHSharesCall as alloy_sol_types::SolCall>::SELECTOR
8143                }
8144                Self::createPod(_) => {
8145                    <createPodCall as alloy_sol_types::SolCall>::SELECTOR
8146                }
8147                Self::delegationManager(_) => {
8148                    <delegationManagerCall as alloy_sol_types::SolCall>::SELECTOR
8149                }
8150                Self::eigenPodBeacon(_) => {
8151                    <eigenPodBeaconCall as alloy_sol_types::SolCall>::SELECTOR
8152                }
8153                Self::ethPOS(_) => <ethPOSCall as alloy_sol_types::SolCall>::SELECTOR,
8154                Self::getPod(_) => <getPodCall as alloy_sol_types::SolCall>::SELECTOR,
8155                Self::hasPod(_) => <hasPodCall as alloy_sol_types::SolCall>::SELECTOR,
8156                Self::increaseBurnableShares(_) => {
8157                    <increaseBurnableSharesCall as alloy_sol_types::SolCall>::SELECTOR
8158                }
8159                Self::initialize(_) => {
8160                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
8161                }
8162                Self::numPods(_) => <numPodsCall as alloy_sol_types::SolCall>::SELECTOR,
8163                Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
8164                Self::ownerToPod(_) => {
8165                    <ownerToPodCall as alloy_sol_types::SolCall>::SELECTOR
8166                }
8167                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
8168                Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
8169                Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
8170                Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
8171                Self::pauserRegistry(_) => {
8172                    <pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
8173                }
8174                Self::podOwnerDepositShares(_) => {
8175                    <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
8176                }
8177                Self::recordBeaconChainETHBalanceUpdate(_) => {
8178                    <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::SELECTOR
8179                }
8180                Self::removeDepositShares(_) => {
8181                    <removeDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
8182                }
8183                Self::renounceOwnership(_) => {
8184                    <renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
8185                }
8186                Self::stake(_) => <stakeCall as alloy_sol_types::SolCall>::SELECTOR,
8187                Self::stakerDepositShares(_) => {
8188                    <stakerDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
8189                }
8190                Self::transferOwnership(_) => {
8191                    <transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
8192                }
8193                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
8194                Self::version(_) => <versionCall as alloy_sol_types::SolCall>::SELECTOR,
8195                Self::withdrawSharesAsTokens(_) => {
8196                    <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::SELECTOR
8197                }
8198            }
8199        }
8200        #[inline]
8201        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
8202            Self::SELECTORS.get(i).copied()
8203        }
8204        #[inline]
8205        fn valid_selector(selector: [u8; 4]) -> bool {
8206            Self::SELECTORS.binary_search(&selector).is_ok()
8207        }
8208        #[inline]
8209        #[allow(non_snake_case)]
8210        fn abi_decode_raw(
8211            selector: [u8; 4],
8212            data: &[u8],
8213        ) -> alloy_sol_types::Result<Self> {
8214            static DECODE_SHIMS: &[fn(
8215                &[u8],
8216            ) -> alloy_sol_types::Result<EigenPodManagerCalls>] = &[
8217                {
8218                    fn pause(
8219                        data: &[u8],
8220                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8221                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8222                            .map(EigenPodManagerCalls::pause)
8223                    }
8224                    pause
8225                },
8226                {
8227                    fn eigenPodBeacon(
8228                        data: &[u8],
8229                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8230                        <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_decode_raw(
8231                                data,
8232                            )
8233                            .map(EigenPodManagerCalls::eigenPodBeacon)
8234                    }
8235                    eigenPodBeacon
8236                },
8237                {
8238                    fn withdrawSharesAsTokens(
8239                        data: &[u8],
8240                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8241                        <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_decode_raw(
8242                                data,
8243                            )
8244                            .map(EigenPodManagerCalls::withdrawSharesAsTokens)
8245                    }
8246                    withdrawSharesAsTokens
8247                },
8248                {
8249                    fn addShares(
8250                        data: &[u8],
8251                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8252                        <addSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8253                            .map(EigenPodManagerCalls::addShares)
8254                    }
8255                    addShares
8256                },
8257                {
8258                    fn version(
8259                        data: &[u8],
8260                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8261                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8262                            .map(EigenPodManagerCalls::version)
8263                    }
8264                    version
8265                },
8266                {
8267                    fn pauseAll(
8268                        data: &[u8],
8269                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8270                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8271                            .map(EigenPodManagerCalls::pauseAll)
8272                    }
8273                    pauseAll
8274                },
8275                {
8276                    fn paused_0(
8277                        data: &[u8],
8278                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8279                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
8280                            .map(EigenPodManagerCalls::paused_0)
8281                    }
8282                    paused_0
8283                },
8284                {
8285                    fn paused_1(
8286                        data: &[u8],
8287                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8288                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
8289                            .map(EigenPodManagerCalls::paused_1)
8290                    }
8291                    paused_1
8292                },
8293                {
8294                    fn renounceOwnership(
8295                        data: &[u8],
8296                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8297                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
8298                                data,
8299                            )
8300                            .map(EigenPodManagerCalls::renounceOwnership)
8301                    }
8302                    renounceOwnership
8303                },
8304                {
8305                    fn removeDepositShares(
8306                        data: &[u8],
8307                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8308                        <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8309                                data,
8310                            )
8311                            .map(EigenPodManagerCalls::removeDepositShares)
8312                    }
8313                    removeDepositShares
8314                },
8315                {
8316                    fn ethPOS(
8317                        data: &[u8],
8318                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8319                        <ethPOSCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8320                            .map(EigenPodManagerCalls::ethPOS)
8321                    }
8322                    ethPOS
8323                },
8324                {
8325                    fn createPod(
8326                        data: &[u8],
8327                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8328                        <createPodCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8329                            .map(EigenPodManagerCalls::createPod)
8330                    }
8331                    createPod
8332                },
8333                {
8334                    fn pauserRegistry(
8335                        data: &[u8],
8336                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8337                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
8338                                data,
8339                            )
8340                            .map(EigenPodManagerCalls::pauserRegistry)
8341                    }
8342                    pauserRegistry
8343                },
8344                {
8345                    fn owner(
8346                        data: &[u8],
8347                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8348                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8349                            .map(EigenPodManagerCalls::owner)
8350                    }
8351                    owner
8352                },
8353                {
8354                    fn beaconChainETHStrategy(
8355                        data: &[u8],
8356                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8357                        <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_decode_raw(
8358                                data,
8359                            )
8360                            .map(EigenPodManagerCalls::beaconChainETHStrategy)
8361                    }
8362                    beaconChainETHStrategy
8363                },
8364                {
8365                    fn stake(
8366                        data: &[u8],
8367                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8368                        <stakeCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8369                            .map(EigenPodManagerCalls::stake)
8370                    }
8371                    stake
8372                },
8373                {
8374                    fn ownerToPod(
8375                        data: &[u8],
8376                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8377                        <ownerToPodCall as alloy_sol_types::SolCall>::abi_decode_raw(
8378                                data,
8379                            )
8380                            .map(EigenPodManagerCalls::ownerToPod)
8381                    }
8382                    ownerToPod
8383                },
8384                {
8385                    fn recordBeaconChainETHBalanceUpdate(
8386                        data: &[u8],
8387                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8388                        <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_decode_raw(
8389                                data,
8390                            )
8391                            .map(EigenPodManagerCalls::recordBeaconChainETHBalanceUpdate)
8392                    }
8393                    recordBeaconChainETHBalanceUpdate
8394                },
8395                {
8396                    fn getPod(
8397                        data: &[u8],
8398                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8399                        <getPodCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8400                            .map(EigenPodManagerCalls::getPod)
8401                    }
8402                    getPod
8403                },
8404                {
8405                    fn beaconChainSlashingFactor(
8406                        data: &[u8],
8407                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8408                        <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_decode_raw(
8409                                data,
8410                            )
8411                            .map(EigenPodManagerCalls::beaconChainSlashingFactor)
8412                    }
8413                    beaconChainSlashingFactor
8414                },
8415                {
8416                    fn numPods(
8417                        data: &[u8],
8418                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8419                        <numPodsCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8420                            .map(EigenPodManagerCalls::numPods)
8421                    }
8422                    numPods
8423                },
8424                {
8425                    fn initialize(
8426                        data: &[u8],
8427                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8428                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(
8429                                data,
8430                            )
8431                            .map(EigenPodManagerCalls::initialize)
8432                    }
8433                    initialize
8434                },
8435                {
8436                    fn podOwnerDepositShares(
8437                        data: &[u8],
8438                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8439                        <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8440                                data,
8441                            )
8442                            .map(EigenPodManagerCalls::podOwnerDepositShares)
8443                    }
8444                    podOwnerDepositShares
8445                },
8446                {
8447                    fn increaseBurnableShares(
8448                        data: &[u8],
8449                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8450                        <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8451                                data,
8452                            )
8453                            .map(EigenPodManagerCalls::increaseBurnableShares)
8454                    }
8455                    increaseBurnableShares
8456                },
8457                {
8458                    fn delegationManager(
8459                        data: &[u8],
8460                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8461                        <delegationManagerCall as alloy_sol_types::SolCall>::abi_decode_raw(
8462                                data,
8463                            )
8464                            .map(EigenPodManagerCalls::delegationManager)
8465                    }
8466                    delegationManager
8467                },
8468                {
8469                    fn transferOwnership(
8470                        data: &[u8],
8471                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8472                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
8473                                data,
8474                            )
8475                            .map(EigenPodManagerCalls::transferOwnership)
8476                    }
8477                    transferOwnership
8478                },
8479                {
8480                    fn burnableETHShares(
8481                        data: &[u8],
8482                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8483                        <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8484                                data,
8485                            )
8486                            .map(EigenPodManagerCalls::burnableETHShares)
8487                    }
8488                    burnableETHShares
8489                },
8490                {
8491                    fn hasPod(
8492                        data: &[u8],
8493                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8494                        <hasPodCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8495                            .map(EigenPodManagerCalls::hasPod)
8496                    }
8497                    hasPod
8498                },
8499                {
8500                    fn unpause(
8501                        data: &[u8],
8502                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8503                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8504                            .map(EigenPodManagerCalls::unpause)
8505                    }
8506                    unpause
8507                },
8508                {
8509                    fn stakerDepositShares(
8510                        data: &[u8],
8511                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8512                        <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8513                                data,
8514                            )
8515                            .map(EigenPodManagerCalls::stakerDepositShares)
8516                    }
8517                    stakerDepositShares
8518                },
8519            ];
8520            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
8521                return Err(
8522                    alloy_sol_types::Error::unknown_selector(
8523                        <Self as alloy_sol_types::SolInterface>::NAME,
8524                        selector,
8525                    ),
8526                );
8527            };
8528            DECODE_SHIMS[idx](data)
8529        }
8530        #[inline]
8531        #[allow(non_snake_case)]
8532        fn abi_decode_raw_validate(
8533            selector: [u8; 4],
8534            data: &[u8],
8535        ) -> alloy_sol_types::Result<Self> {
8536            static DECODE_VALIDATE_SHIMS: &[fn(
8537                &[u8],
8538            ) -> alloy_sol_types::Result<EigenPodManagerCalls>] = &[
8539                {
8540                    fn pause(
8541                        data: &[u8],
8542                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8543                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8544                                data,
8545                            )
8546                            .map(EigenPodManagerCalls::pause)
8547                    }
8548                    pause
8549                },
8550                {
8551                    fn eigenPodBeacon(
8552                        data: &[u8],
8553                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8554                        <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8555                                data,
8556                            )
8557                            .map(EigenPodManagerCalls::eigenPodBeacon)
8558                    }
8559                    eigenPodBeacon
8560                },
8561                {
8562                    fn withdrawSharesAsTokens(
8563                        data: &[u8],
8564                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8565                        <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8566                                data,
8567                            )
8568                            .map(EigenPodManagerCalls::withdrawSharesAsTokens)
8569                    }
8570                    withdrawSharesAsTokens
8571                },
8572                {
8573                    fn addShares(
8574                        data: &[u8],
8575                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8576                        <addSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8577                                data,
8578                            )
8579                            .map(EigenPodManagerCalls::addShares)
8580                    }
8581                    addShares
8582                },
8583                {
8584                    fn version(
8585                        data: &[u8],
8586                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8587                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8588                                data,
8589                            )
8590                            .map(EigenPodManagerCalls::version)
8591                    }
8592                    version
8593                },
8594                {
8595                    fn pauseAll(
8596                        data: &[u8],
8597                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8598                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8599                                data,
8600                            )
8601                            .map(EigenPodManagerCalls::pauseAll)
8602                    }
8603                    pauseAll
8604                },
8605                {
8606                    fn paused_0(
8607                        data: &[u8],
8608                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8609                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8610                                data,
8611                            )
8612                            .map(EigenPodManagerCalls::paused_0)
8613                    }
8614                    paused_0
8615                },
8616                {
8617                    fn paused_1(
8618                        data: &[u8],
8619                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8620                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8621                                data,
8622                            )
8623                            .map(EigenPodManagerCalls::paused_1)
8624                    }
8625                    paused_1
8626                },
8627                {
8628                    fn renounceOwnership(
8629                        data: &[u8],
8630                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8631                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8632                                data,
8633                            )
8634                            .map(EigenPodManagerCalls::renounceOwnership)
8635                    }
8636                    renounceOwnership
8637                },
8638                {
8639                    fn removeDepositShares(
8640                        data: &[u8],
8641                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8642                        <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8643                                data,
8644                            )
8645                            .map(EigenPodManagerCalls::removeDepositShares)
8646                    }
8647                    removeDepositShares
8648                },
8649                {
8650                    fn ethPOS(
8651                        data: &[u8],
8652                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8653                        <ethPOSCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8654                                data,
8655                            )
8656                            .map(EigenPodManagerCalls::ethPOS)
8657                    }
8658                    ethPOS
8659                },
8660                {
8661                    fn createPod(
8662                        data: &[u8],
8663                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8664                        <createPodCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8665                                data,
8666                            )
8667                            .map(EigenPodManagerCalls::createPod)
8668                    }
8669                    createPod
8670                },
8671                {
8672                    fn pauserRegistry(
8673                        data: &[u8],
8674                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8675                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8676                                data,
8677                            )
8678                            .map(EigenPodManagerCalls::pauserRegistry)
8679                    }
8680                    pauserRegistry
8681                },
8682                {
8683                    fn owner(
8684                        data: &[u8],
8685                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8686                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8687                                data,
8688                            )
8689                            .map(EigenPodManagerCalls::owner)
8690                    }
8691                    owner
8692                },
8693                {
8694                    fn beaconChainETHStrategy(
8695                        data: &[u8],
8696                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8697                        <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8698                                data,
8699                            )
8700                            .map(EigenPodManagerCalls::beaconChainETHStrategy)
8701                    }
8702                    beaconChainETHStrategy
8703                },
8704                {
8705                    fn stake(
8706                        data: &[u8],
8707                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8708                        <stakeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8709                                data,
8710                            )
8711                            .map(EigenPodManagerCalls::stake)
8712                    }
8713                    stake
8714                },
8715                {
8716                    fn ownerToPod(
8717                        data: &[u8],
8718                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8719                        <ownerToPodCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8720                                data,
8721                            )
8722                            .map(EigenPodManagerCalls::ownerToPod)
8723                    }
8724                    ownerToPod
8725                },
8726                {
8727                    fn recordBeaconChainETHBalanceUpdate(
8728                        data: &[u8],
8729                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8730                        <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8731                                data,
8732                            )
8733                            .map(EigenPodManagerCalls::recordBeaconChainETHBalanceUpdate)
8734                    }
8735                    recordBeaconChainETHBalanceUpdate
8736                },
8737                {
8738                    fn getPod(
8739                        data: &[u8],
8740                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8741                        <getPodCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8742                                data,
8743                            )
8744                            .map(EigenPodManagerCalls::getPod)
8745                    }
8746                    getPod
8747                },
8748                {
8749                    fn beaconChainSlashingFactor(
8750                        data: &[u8],
8751                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8752                        <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8753                                data,
8754                            )
8755                            .map(EigenPodManagerCalls::beaconChainSlashingFactor)
8756                    }
8757                    beaconChainSlashingFactor
8758                },
8759                {
8760                    fn numPods(
8761                        data: &[u8],
8762                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8763                        <numPodsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8764                                data,
8765                            )
8766                            .map(EigenPodManagerCalls::numPods)
8767                    }
8768                    numPods
8769                },
8770                {
8771                    fn initialize(
8772                        data: &[u8],
8773                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8774                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8775                                data,
8776                            )
8777                            .map(EigenPodManagerCalls::initialize)
8778                    }
8779                    initialize
8780                },
8781                {
8782                    fn podOwnerDepositShares(
8783                        data: &[u8],
8784                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8785                        <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8786                                data,
8787                            )
8788                            .map(EigenPodManagerCalls::podOwnerDepositShares)
8789                    }
8790                    podOwnerDepositShares
8791                },
8792                {
8793                    fn increaseBurnableShares(
8794                        data: &[u8],
8795                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8796                        <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8797                                data,
8798                            )
8799                            .map(EigenPodManagerCalls::increaseBurnableShares)
8800                    }
8801                    increaseBurnableShares
8802                },
8803                {
8804                    fn delegationManager(
8805                        data: &[u8],
8806                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8807                        <delegationManagerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8808                                data,
8809                            )
8810                            .map(EigenPodManagerCalls::delegationManager)
8811                    }
8812                    delegationManager
8813                },
8814                {
8815                    fn transferOwnership(
8816                        data: &[u8],
8817                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8818                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8819                                data,
8820                            )
8821                            .map(EigenPodManagerCalls::transferOwnership)
8822                    }
8823                    transferOwnership
8824                },
8825                {
8826                    fn burnableETHShares(
8827                        data: &[u8],
8828                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8829                        <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8830                                data,
8831                            )
8832                            .map(EigenPodManagerCalls::burnableETHShares)
8833                    }
8834                    burnableETHShares
8835                },
8836                {
8837                    fn hasPod(
8838                        data: &[u8],
8839                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8840                        <hasPodCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8841                                data,
8842                            )
8843                            .map(EigenPodManagerCalls::hasPod)
8844                    }
8845                    hasPod
8846                },
8847                {
8848                    fn unpause(
8849                        data: &[u8],
8850                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8851                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8852                                data,
8853                            )
8854                            .map(EigenPodManagerCalls::unpause)
8855                    }
8856                    unpause
8857                },
8858                {
8859                    fn stakerDepositShares(
8860                        data: &[u8],
8861                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8862                        <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8863                                data,
8864                            )
8865                            .map(EigenPodManagerCalls::stakerDepositShares)
8866                    }
8867                    stakerDepositShares
8868                },
8869            ];
8870            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
8871                return Err(
8872                    alloy_sol_types::Error::unknown_selector(
8873                        <Self as alloy_sol_types::SolInterface>::NAME,
8874                        selector,
8875                    ),
8876                );
8877            };
8878            DECODE_VALIDATE_SHIMS[idx](data)
8879        }
8880        #[inline]
8881        fn abi_encoded_size(&self) -> usize {
8882            match self {
8883                Self::addShares(inner) => {
8884                    <addSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8885                }
8886                Self::beaconChainETHStrategy(inner) => {
8887                    <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_encoded_size(
8888                        inner,
8889                    )
8890                }
8891                Self::beaconChainSlashingFactor(inner) => {
8892                    <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_encoded_size(
8893                        inner,
8894                    )
8895                }
8896                Self::burnableETHShares(inner) => {
8897                    <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8898                        inner,
8899                    )
8900                }
8901                Self::createPod(inner) => {
8902                    <createPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8903                }
8904                Self::delegationManager(inner) => {
8905                    <delegationManagerCall as alloy_sol_types::SolCall>::abi_encoded_size(
8906                        inner,
8907                    )
8908                }
8909                Self::eigenPodBeacon(inner) => {
8910                    <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_encoded_size(
8911                        inner,
8912                    )
8913                }
8914                Self::ethPOS(inner) => {
8915                    <ethPOSCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8916                }
8917                Self::getPod(inner) => {
8918                    <getPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8919                }
8920                Self::hasPod(inner) => {
8921                    <hasPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8922                }
8923                Self::increaseBurnableShares(inner) => {
8924                    <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8925                        inner,
8926                    )
8927                }
8928                Self::initialize(inner) => {
8929                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8930                }
8931                Self::numPods(inner) => {
8932                    <numPodsCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8933                }
8934                Self::owner(inner) => {
8935                    <ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8936                }
8937                Self::ownerToPod(inner) => {
8938                    <ownerToPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8939                }
8940                Self::pause(inner) => {
8941                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8942                }
8943                Self::pauseAll(inner) => {
8944                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8945                }
8946                Self::paused_0(inner) => {
8947                    <paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8948                }
8949                Self::paused_1(inner) => {
8950                    <paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8951                }
8952                Self::pauserRegistry(inner) => {
8953                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
8954                        inner,
8955                    )
8956                }
8957                Self::podOwnerDepositShares(inner) => {
8958                    <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8959                        inner,
8960                    )
8961                }
8962                Self::recordBeaconChainETHBalanceUpdate(inner) => {
8963                    <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_encoded_size(
8964                        inner,
8965                    )
8966                }
8967                Self::removeDepositShares(inner) => {
8968                    <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8969                        inner,
8970                    )
8971                }
8972                Self::renounceOwnership(inner) => {
8973                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
8974                        inner,
8975                    )
8976                }
8977                Self::stake(inner) => {
8978                    <stakeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8979                }
8980                Self::stakerDepositShares(inner) => {
8981                    <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8982                        inner,
8983                    )
8984                }
8985                Self::transferOwnership(inner) => {
8986                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
8987                        inner,
8988                    )
8989                }
8990                Self::unpause(inner) => {
8991                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8992                }
8993                Self::version(inner) => {
8994                    <versionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8995                }
8996                Self::withdrawSharesAsTokens(inner) => {
8997                    <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_encoded_size(
8998                        inner,
8999                    )
9000                }
9001            }
9002        }
9003        #[inline]
9004        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
9005            match self {
9006                Self::addShares(inner) => {
9007                    <addSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9008                        inner,
9009                        out,
9010                    )
9011                }
9012                Self::beaconChainETHStrategy(inner) => {
9013                    <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_encode_raw(
9014                        inner,
9015                        out,
9016                    )
9017                }
9018                Self::beaconChainSlashingFactor(inner) => {
9019                    <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_encode_raw(
9020                        inner,
9021                        out,
9022                    )
9023                }
9024                Self::burnableETHShares(inner) => {
9025                    <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9026                        inner,
9027                        out,
9028                    )
9029                }
9030                Self::createPod(inner) => {
9031                    <createPodCall as alloy_sol_types::SolCall>::abi_encode_raw(
9032                        inner,
9033                        out,
9034                    )
9035                }
9036                Self::delegationManager(inner) => {
9037                    <delegationManagerCall as alloy_sol_types::SolCall>::abi_encode_raw(
9038                        inner,
9039                        out,
9040                    )
9041                }
9042                Self::eigenPodBeacon(inner) => {
9043                    <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_encode_raw(
9044                        inner,
9045                        out,
9046                    )
9047                }
9048                Self::ethPOS(inner) => {
9049                    <ethPOSCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9050                }
9051                Self::getPod(inner) => {
9052                    <getPodCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9053                }
9054                Self::hasPod(inner) => {
9055                    <hasPodCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9056                }
9057                Self::increaseBurnableShares(inner) => {
9058                    <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9059                        inner,
9060                        out,
9061                    )
9062                }
9063                Self::initialize(inner) => {
9064                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
9065                        inner,
9066                        out,
9067                    )
9068                }
9069                Self::numPods(inner) => {
9070                    <numPodsCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9071                }
9072                Self::owner(inner) => {
9073                    <ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9074                }
9075                Self::ownerToPod(inner) => {
9076                    <ownerToPodCall as alloy_sol_types::SolCall>::abi_encode_raw(
9077                        inner,
9078                        out,
9079                    )
9080                }
9081                Self::pause(inner) => {
9082                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9083                }
9084                Self::pauseAll(inner) => {
9085                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
9086                        inner,
9087                        out,
9088                    )
9089                }
9090                Self::paused_0(inner) => {
9091                    <paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
9092                        inner,
9093                        out,
9094                    )
9095                }
9096                Self::paused_1(inner) => {
9097                    <paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
9098                        inner,
9099                        out,
9100                    )
9101                }
9102                Self::pauserRegistry(inner) => {
9103                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
9104                        inner,
9105                        out,
9106                    )
9107                }
9108                Self::podOwnerDepositShares(inner) => {
9109                    <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9110                        inner,
9111                        out,
9112                    )
9113                }
9114                Self::recordBeaconChainETHBalanceUpdate(inner) => {
9115                    <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_encode_raw(
9116                        inner,
9117                        out,
9118                    )
9119                }
9120                Self::removeDepositShares(inner) => {
9121                    <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9122                        inner,
9123                        out,
9124                    )
9125                }
9126                Self::renounceOwnership(inner) => {
9127                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
9128                        inner,
9129                        out,
9130                    )
9131                }
9132                Self::stake(inner) => {
9133                    <stakeCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9134                }
9135                Self::stakerDepositShares(inner) => {
9136                    <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9137                        inner,
9138                        out,
9139                    )
9140                }
9141                Self::transferOwnership(inner) => {
9142                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
9143                        inner,
9144                        out,
9145                    )
9146                }
9147                Self::unpause(inner) => {
9148                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9149                }
9150                Self::version(inner) => {
9151                    <versionCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9152                }
9153                Self::withdrawSharesAsTokens(inner) => {
9154                    <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_encode_raw(
9155                        inner,
9156                        out,
9157                    )
9158                }
9159            }
9160        }
9161    }
9162    ///Container for all the [`EigenPodManager`](self) custom errors.
9163    #[derive(serde::Serialize, serde::Deserialize)]
9164    #[derive(Debug, PartialEq, Eq, Hash)]
9165    pub enum EigenPodManagerErrors {
9166        #[allow(missing_docs)]
9167        CurrentlyPaused(CurrentlyPaused),
9168        #[allow(missing_docs)]
9169        EigenPodAlreadyExists(EigenPodAlreadyExists),
9170        #[allow(missing_docs)]
9171        InputAddressZero(InputAddressZero),
9172        #[allow(missing_docs)]
9173        InvalidNewPausedStatus(InvalidNewPausedStatus),
9174        #[allow(missing_docs)]
9175        InvalidShortString(InvalidShortString),
9176        #[allow(missing_docs)]
9177        InvalidStrategy(InvalidStrategy),
9178        #[allow(missing_docs)]
9179        LegacyWithdrawalsNotCompleted(LegacyWithdrawalsNotCompleted),
9180        #[allow(missing_docs)]
9181        OnlyDelegationManager(OnlyDelegationManager),
9182        #[allow(missing_docs)]
9183        OnlyEigenPod(OnlyEigenPod),
9184        #[allow(missing_docs)]
9185        OnlyPauser(OnlyPauser),
9186        #[allow(missing_docs)]
9187        OnlyUnpauser(OnlyUnpauser),
9188        #[allow(missing_docs)]
9189        SharesNegative(SharesNegative),
9190        #[allow(missing_docs)]
9191        SharesNotMultipleOfGwei(SharesNotMultipleOfGwei),
9192        #[allow(missing_docs)]
9193        StringTooLong(StringTooLong),
9194    }
9195    #[automatically_derived]
9196    impl EigenPodManagerErrors {
9197        /// All the selectors of this enum.
9198        ///
9199        /// Note that the selectors might not be in the same order as the variants.
9200        /// No guarantees are made about the order of the selectors.
9201        ///
9202        /// Prefer using `SolInterface` methods instead.
9203        pub const SELECTORS: &'static [[u8; 4usize]] = &[
9204            [12u8, 106u8, 20u8, 132u8],
9205            [37u8, 194u8, 218u8, 226u8],
9206            [48u8, 90u8, 39u8, 169u8],
9207            [75u8, 105u8, 43u8, 207u8],
9208            [78u8, 35u8, 110u8, 154u8],
9209            [115u8, 99u8, 33u8, 118u8],
9210            [117u8, 223u8, 81u8, 220u8],
9211            [121u8, 72u8, 33u8, 255u8],
9212            [132u8, 10u8, 72u8, 213u8],
9213            [143u8, 160u8, 229u8, 118u8],
9214            [179u8, 81u8, 43u8, 12u8],
9215            [198u8, 29u8, 202u8, 93u8],
9216            [239u8, 20u8, 125u8, 225u8],
9217            [247u8, 57u8, 88u8, 155u8],
9218        ];
9219    }
9220    #[automatically_derived]
9221    impl alloy_sol_types::SolInterface for EigenPodManagerErrors {
9222        const NAME: &'static str = "EigenPodManagerErrors";
9223        const MIN_DATA_LENGTH: usize = 0usize;
9224        const COUNT: usize = 14usize;
9225        #[inline]
9226        fn selector(&self) -> [u8; 4] {
9227            match self {
9228                Self::CurrentlyPaused(_) => {
9229                    <CurrentlyPaused as alloy_sol_types::SolError>::SELECTOR
9230                }
9231                Self::EigenPodAlreadyExists(_) => {
9232                    <EigenPodAlreadyExists as alloy_sol_types::SolError>::SELECTOR
9233                }
9234                Self::InputAddressZero(_) => {
9235                    <InputAddressZero as alloy_sol_types::SolError>::SELECTOR
9236                }
9237                Self::InvalidNewPausedStatus(_) => {
9238                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::SELECTOR
9239                }
9240                Self::InvalidShortString(_) => {
9241                    <InvalidShortString as alloy_sol_types::SolError>::SELECTOR
9242                }
9243                Self::InvalidStrategy(_) => {
9244                    <InvalidStrategy as alloy_sol_types::SolError>::SELECTOR
9245                }
9246                Self::LegacyWithdrawalsNotCompleted(_) => {
9247                    <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::SELECTOR
9248                }
9249                Self::OnlyDelegationManager(_) => {
9250                    <OnlyDelegationManager as alloy_sol_types::SolError>::SELECTOR
9251                }
9252                Self::OnlyEigenPod(_) => {
9253                    <OnlyEigenPod as alloy_sol_types::SolError>::SELECTOR
9254                }
9255                Self::OnlyPauser(_) => {
9256                    <OnlyPauser as alloy_sol_types::SolError>::SELECTOR
9257                }
9258                Self::OnlyUnpauser(_) => {
9259                    <OnlyUnpauser as alloy_sol_types::SolError>::SELECTOR
9260                }
9261                Self::SharesNegative(_) => {
9262                    <SharesNegative as alloy_sol_types::SolError>::SELECTOR
9263                }
9264                Self::SharesNotMultipleOfGwei(_) => {
9265                    <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::SELECTOR
9266                }
9267                Self::StringTooLong(_) => {
9268                    <StringTooLong as alloy_sol_types::SolError>::SELECTOR
9269                }
9270            }
9271        }
9272        #[inline]
9273        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
9274            Self::SELECTORS.get(i).copied()
9275        }
9276        #[inline]
9277        fn valid_selector(selector: [u8; 4]) -> bool {
9278            Self::SELECTORS.binary_search(&selector).is_ok()
9279        }
9280        #[inline]
9281        #[allow(non_snake_case)]
9282        fn abi_decode_raw(
9283            selector: [u8; 4],
9284            data: &[u8],
9285        ) -> alloy_sol_types::Result<Self> {
9286            static DECODE_SHIMS: &[fn(
9287                &[u8],
9288            ) -> alloy_sol_types::Result<EigenPodManagerErrors>] = &[
9289                {
9290                    fn EigenPodAlreadyExists(
9291                        data: &[u8],
9292                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9293                        <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_decode_raw(
9294                                data,
9295                            )
9296                            .map(EigenPodManagerErrors::EigenPodAlreadyExists)
9297                    }
9298                    EigenPodAlreadyExists
9299                },
9300                {
9301                    fn OnlyEigenPod(
9302                        data: &[u8],
9303                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9304                        <OnlyEigenPod as alloy_sol_types::SolError>::abi_decode_raw(data)
9305                            .map(EigenPodManagerErrors::OnlyEigenPod)
9306                    }
9307                    OnlyEigenPod
9308                },
9309                {
9310                    fn StringTooLong(
9311                        data: &[u8],
9312                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9313                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw(
9314                                data,
9315                            )
9316                            .map(EigenPodManagerErrors::StringTooLong)
9317                    }
9318                    StringTooLong
9319                },
9320                {
9321                    fn LegacyWithdrawalsNotCompleted(
9322                        data: &[u8],
9323                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9324                        <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_decode_raw(
9325                                data,
9326                            )
9327                            .map(EigenPodManagerErrors::LegacyWithdrawalsNotCompleted)
9328                    }
9329                    LegacyWithdrawalsNotCompleted
9330                },
9331                {
9332                    fn InvalidStrategy(
9333                        data: &[u8],
9334                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9335                        <InvalidStrategy as alloy_sol_types::SolError>::abi_decode_raw(
9336                                data,
9337                            )
9338                            .map(EigenPodManagerErrors::InvalidStrategy)
9339                    }
9340                    InvalidStrategy
9341                },
9342                {
9343                    fn InputAddressZero(
9344                        data: &[u8],
9345                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9346                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw(
9347                                data,
9348                            )
9349                            .map(EigenPodManagerErrors::InputAddressZero)
9350                    }
9351                    InputAddressZero
9352                },
9353                {
9354                    fn OnlyPauser(
9355                        data: &[u8],
9356                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9357                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw(data)
9358                            .map(EigenPodManagerErrors::OnlyPauser)
9359                    }
9360                    OnlyPauser
9361                },
9362                {
9363                    fn OnlyUnpauser(
9364                        data: &[u8],
9365                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9366                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw(data)
9367                            .map(EigenPodManagerErrors::OnlyUnpauser)
9368                    }
9369                    OnlyUnpauser
9370                },
9371                {
9372                    fn CurrentlyPaused(
9373                        data: &[u8],
9374                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9375                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw(
9376                                data,
9377                            )
9378                            .map(EigenPodManagerErrors::CurrentlyPaused)
9379                    }
9380                    CurrentlyPaused
9381                },
9382                {
9383                    fn SharesNotMultipleOfGwei(
9384                        data: &[u8],
9385                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9386                        <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_decode_raw(
9387                                data,
9388                            )
9389                            .map(EigenPodManagerErrors::SharesNotMultipleOfGwei)
9390                    }
9391                    SharesNotMultipleOfGwei
9392                },
9393                {
9394                    fn InvalidShortString(
9395                        data: &[u8],
9396                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9397                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw(
9398                                data,
9399                            )
9400                            .map(EigenPodManagerErrors::InvalidShortString)
9401                    }
9402                    InvalidShortString
9403                },
9404                {
9405                    fn InvalidNewPausedStatus(
9406                        data: &[u8],
9407                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9408                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw(
9409                                data,
9410                            )
9411                            .map(EigenPodManagerErrors::InvalidNewPausedStatus)
9412                    }
9413                    InvalidNewPausedStatus
9414                },
9415                {
9416                    fn SharesNegative(
9417                        data: &[u8],
9418                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9419                        <SharesNegative as alloy_sol_types::SolError>::abi_decode_raw(
9420                                data,
9421                            )
9422                            .map(EigenPodManagerErrors::SharesNegative)
9423                    }
9424                    SharesNegative
9425                },
9426                {
9427                    fn OnlyDelegationManager(
9428                        data: &[u8],
9429                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9430                        <OnlyDelegationManager as alloy_sol_types::SolError>::abi_decode_raw(
9431                                data,
9432                            )
9433                            .map(EigenPodManagerErrors::OnlyDelegationManager)
9434                    }
9435                    OnlyDelegationManager
9436                },
9437            ];
9438            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
9439                return Err(
9440                    alloy_sol_types::Error::unknown_selector(
9441                        <Self as alloy_sol_types::SolInterface>::NAME,
9442                        selector,
9443                    ),
9444                );
9445            };
9446            DECODE_SHIMS[idx](data)
9447        }
9448        #[inline]
9449        #[allow(non_snake_case)]
9450        fn abi_decode_raw_validate(
9451            selector: [u8; 4],
9452            data: &[u8],
9453        ) -> alloy_sol_types::Result<Self> {
9454            static DECODE_VALIDATE_SHIMS: &[fn(
9455                &[u8],
9456            ) -> alloy_sol_types::Result<EigenPodManagerErrors>] = &[
9457                {
9458                    fn EigenPodAlreadyExists(
9459                        data: &[u8],
9460                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9461                        <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_decode_raw_validate(
9462                                data,
9463                            )
9464                            .map(EigenPodManagerErrors::EigenPodAlreadyExists)
9465                    }
9466                    EigenPodAlreadyExists
9467                },
9468                {
9469                    fn OnlyEigenPod(
9470                        data: &[u8],
9471                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9472                        <OnlyEigenPod as alloy_sol_types::SolError>::abi_decode_raw_validate(
9473                                data,
9474                            )
9475                            .map(EigenPodManagerErrors::OnlyEigenPod)
9476                    }
9477                    OnlyEigenPod
9478                },
9479                {
9480                    fn StringTooLong(
9481                        data: &[u8],
9482                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9483                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw_validate(
9484                                data,
9485                            )
9486                            .map(EigenPodManagerErrors::StringTooLong)
9487                    }
9488                    StringTooLong
9489                },
9490                {
9491                    fn LegacyWithdrawalsNotCompleted(
9492                        data: &[u8],
9493                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9494                        <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_decode_raw_validate(
9495                                data,
9496                            )
9497                            .map(EigenPodManagerErrors::LegacyWithdrawalsNotCompleted)
9498                    }
9499                    LegacyWithdrawalsNotCompleted
9500                },
9501                {
9502                    fn InvalidStrategy(
9503                        data: &[u8],
9504                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9505                        <InvalidStrategy as alloy_sol_types::SolError>::abi_decode_raw_validate(
9506                                data,
9507                            )
9508                            .map(EigenPodManagerErrors::InvalidStrategy)
9509                    }
9510                    InvalidStrategy
9511                },
9512                {
9513                    fn InputAddressZero(
9514                        data: &[u8],
9515                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9516                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
9517                                data,
9518                            )
9519                            .map(EigenPodManagerErrors::InputAddressZero)
9520                    }
9521                    InputAddressZero
9522                },
9523                {
9524                    fn OnlyPauser(
9525                        data: &[u8],
9526                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9527                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw_validate(
9528                                data,
9529                            )
9530                            .map(EigenPodManagerErrors::OnlyPauser)
9531                    }
9532                    OnlyPauser
9533                },
9534                {
9535                    fn OnlyUnpauser(
9536                        data: &[u8],
9537                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9538                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw_validate(
9539                                data,
9540                            )
9541                            .map(EigenPodManagerErrors::OnlyUnpauser)
9542                    }
9543                    OnlyUnpauser
9544                },
9545                {
9546                    fn CurrentlyPaused(
9547                        data: &[u8],
9548                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9549                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw_validate(
9550                                data,
9551                            )
9552                            .map(EigenPodManagerErrors::CurrentlyPaused)
9553                    }
9554                    CurrentlyPaused
9555                },
9556                {
9557                    fn SharesNotMultipleOfGwei(
9558                        data: &[u8],
9559                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9560                        <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_decode_raw_validate(
9561                                data,
9562                            )
9563                            .map(EigenPodManagerErrors::SharesNotMultipleOfGwei)
9564                    }
9565                    SharesNotMultipleOfGwei
9566                },
9567                {
9568                    fn InvalidShortString(
9569                        data: &[u8],
9570                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9571                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw_validate(
9572                                data,
9573                            )
9574                            .map(EigenPodManagerErrors::InvalidShortString)
9575                    }
9576                    InvalidShortString
9577                },
9578                {
9579                    fn InvalidNewPausedStatus(
9580                        data: &[u8],
9581                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9582                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw_validate(
9583                                data,
9584                            )
9585                            .map(EigenPodManagerErrors::InvalidNewPausedStatus)
9586                    }
9587                    InvalidNewPausedStatus
9588                },
9589                {
9590                    fn SharesNegative(
9591                        data: &[u8],
9592                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9593                        <SharesNegative as alloy_sol_types::SolError>::abi_decode_raw_validate(
9594                                data,
9595                            )
9596                            .map(EigenPodManagerErrors::SharesNegative)
9597                    }
9598                    SharesNegative
9599                },
9600                {
9601                    fn OnlyDelegationManager(
9602                        data: &[u8],
9603                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9604                        <OnlyDelegationManager as alloy_sol_types::SolError>::abi_decode_raw_validate(
9605                                data,
9606                            )
9607                            .map(EigenPodManagerErrors::OnlyDelegationManager)
9608                    }
9609                    OnlyDelegationManager
9610                },
9611            ];
9612            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
9613                return Err(
9614                    alloy_sol_types::Error::unknown_selector(
9615                        <Self as alloy_sol_types::SolInterface>::NAME,
9616                        selector,
9617                    ),
9618                );
9619            };
9620            DECODE_VALIDATE_SHIMS[idx](data)
9621        }
9622        #[inline]
9623        fn abi_encoded_size(&self) -> usize {
9624            match self {
9625                Self::CurrentlyPaused(inner) => {
9626                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encoded_size(
9627                        inner,
9628                    )
9629                }
9630                Self::EigenPodAlreadyExists(inner) => {
9631                    <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_encoded_size(
9632                        inner,
9633                    )
9634                }
9635                Self::InputAddressZero(inner) => {
9636                    <InputAddressZero as alloy_sol_types::SolError>::abi_encoded_size(
9637                        inner,
9638                    )
9639                }
9640                Self::InvalidNewPausedStatus(inner) => {
9641                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encoded_size(
9642                        inner,
9643                    )
9644                }
9645                Self::InvalidShortString(inner) => {
9646                    <InvalidShortString as alloy_sol_types::SolError>::abi_encoded_size(
9647                        inner,
9648                    )
9649                }
9650                Self::InvalidStrategy(inner) => {
9651                    <InvalidStrategy as alloy_sol_types::SolError>::abi_encoded_size(
9652                        inner,
9653                    )
9654                }
9655                Self::LegacyWithdrawalsNotCompleted(inner) => {
9656                    <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_encoded_size(
9657                        inner,
9658                    )
9659                }
9660                Self::OnlyDelegationManager(inner) => {
9661                    <OnlyDelegationManager as alloy_sol_types::SolError>::abi_encoded_size(
9662                        inner,
9663                    )
9664                }
9665                Self::OnlyEigenPod(inner) => {
9666                    <OnlyEigenPod as alloy_sol_types::SolError>::abi_encoded_size(inner)
9667                }
9668                Self::OnlyPauser(inner) => {
9669                    <OnlyPauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
9670                }
9671                Self::OnlyUnpauser(inner) => {
9672                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
9673                }
9674                Self::SharesNegative(inner) => {
9675                    <SharesNegative as alloy_sol_types::SolError>::abi_encoded_size(
9676                        inner,
9677                    )
9678                }
9679                Self::SharesNotMultipleOfGwei(inner) => {
9680                    <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_encoded_size(
9681                        inner,
9682                    )
9683                }
9684                Self::StringTooLong(inner) => {
9685                    <StringTooLong as alloy_sol_types::SolError>::abi_encoded_size(inner)
9686                }
9687            }
9688        }
9689        #[inline]
9690        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
9691            match self {
9692                Self::CurrentlyPaused(inner) => {
9693                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encode_raw(
9694                        inner,
9695                        out,
9696                    )
9697                }
9698                Self::EigenPodAlreadyExists(inner) => {
9699                    <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_encode_raw(
9700                        inner,
9701                        out,
9702                    )
9703                }
9704                Self::InputAddressZero(inner) => {
9705                    <InputAddressZero as alloy_sol_types::SolError>::abi_encode_raw(
9706                        inner,
9707                        out,
9708                    )
9709                }
9710                Self::InvalidNewPausedStatus(inner) => {
9711                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encode_raw(
9712                        inner,
9713                        out,
9714                    )
9715                }
9716                Self::InvalidShortString(inner) => {
9717                    <InvalidShortString as alloy_sol_types::SolError>::abi_encode_raw(
9718                        inner,
9719                        out,
9720                    )
9721                }
9722                Self::InvalidStrategy(inner) => {
9723                    <InvalidStrategy as alloy_sol_types::SolError>::abi_encode_raw(
9724                        inner,
9725                        out,
9726                    )
9727                }
9728                Self::LegacyWithdrawalsNotCompleted(inner) => {
9729                    <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_encode_raw(
9730                        inner,
9731                        out,
9732                    )
9733                }
9734                Self::OnlyDelegationManager(inner) => {
9735                    <OnlyDelegationManager as alloy_sol_types::SolError>::abi_encode_raw(
9736                        inner,
9737                        out,
9738                    )
9739                }
9740                Self::OnlyEigenPod(inner) => {
9741                    <OnlyEigenPod as alloy_sol_types::SolError>::abi_encode_raw(
9742                        inner,
9743                        out,
9744                    )
9745                }
9746                Self::OnlyPauser(inner) => {
9747                    <OnlyPauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
9748                }
9749                Self::OnlyUnpauser(inner) => {
9750                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encode_raw(
9751                        inner,
9752                        out,
9753                    )
9754                }
9755                Self::SharesNegative(inner) => {
9756                    <SharesNegative as alloy_sol_types::SolError>::abi_encode_raw(
9757                        inner,
9758                        out,
9759                    )
9760                }
9761                Self::SharesNotMultipleOfGwei(inner) => {
9762                    <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_encode_raw(
9763                        inner,
9764                        out,
9765                    )
9766                }
9767                Self::StringTooLong(inner) => {
9768                    <StringTooLong as alloy_sol_types::SolError>::abi_encode_raw(
9769                        inner,
9770                        out,
9771                    )
9772                }
9773            }
9774        }
9775    }
9776    ///Container for all the [`EigenPodManager`](self) events.
9777    #[derive(serde::Serialize, serde::Deserialize)]
9778    #[derive(Debug, PartialEq, Eq, Hash)]
9779    pub enum EigenPodManagerEvents {
9780        #[allow(missing_docs)]
9781        BeaconChainETHDeposited(BeaconChainETHDeposited),
9782        #[allow(missing_docs)]
9783        BeaconChainETHWithdrawalCompleted(BeaconChainETHWithdrawalCompleted),
9784        #[allow(missing_docs)]
9785        BeaconChainSlashingFactorDecreased(BeaconChainSlashingFactorDecreased),
9786        #[allow(missing_docs)]
9787        BurnableETHSharesIncreased(BurnableETHSharesIncreased),
9788        #[allow(missing_docs)]
9789        Initialized(Initialized),
9790        #[allow(missing_docs)]
9791        NewTotalShares(NewTotalShares),
9792        #[allow(missing_docs)]
9793        OwnershipTransferred(OwnershipTransferred),
9794        #[allow(missing_docs)]
9795        Paused(Paused),
9796        #[allow(missing_docs)]
9797        PodDeployed(PodDeployed),
9798        #[allow(missing_docs)]
9799        PodSharesUpdated(PodSharesUpdated),
9800        #[allow(missing_docs)]
9801        Unpaused(Unpaused),
9802    }
9803    #[automatically_derived]
9804    impl EigenPodManagerEvents {
9805        /// All the selectors of this enum.
9806        ///
9807        /// Note that the selectors might not be in the same order as the variants.
9808        /// No guarantees are made about the order of the selectors.
9809        ///
9810        /// Prefer using `SolInterface` methods instead.
9811        pub const SELECTORS: &'static [[u8; 32usize]] = &[
9812            [
9813                30u8, 208u8, 75u8, 127u8, 210u8, 98u8, 192u8, 217u8, 229u8, 15u8, 160u8,
9814                41u8, 87u8, 243u8, 42u8, 129u8, 161u8, 81u8, 240u8, 59u8, 170u8, 163u8,
9815                103u8, 250u8, 238u8, 220u8, 117u8, 33u8, 176u8, 1u8, 196u8, 164u8,
9816            ],
9817            [
9818                33u8, 201u8, 157u8, 13u8, 176u8, 34u8, 19u8, 195u8, 47u8, 255u8, 91u8,
9819                5u8, 207u8, 10u8, 113u8, 138u8, 181u8, 248u8, 88u8, 128u8, 43u8, 145u8,
9820                73u8, 143u8, 128u8, 216u8, 34u8, 112u8, 40u8, 157u8, 133u8, 106u8,
9821            ],
9822            [
9823                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
9824                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
9825                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
9826            ],
9827            [
9828                53u8, 168u8, 92u8, 171u8, 198u8, 3u8, 244u8, 138u8, 187u8, 43u8, 113u8,
9829                217u8, 251u8, 216u8, 173u8, 234u8, 124u8, 68u8, 157u8, 127u8, 11u8,
9830                233u8, 0u8, 174u8, 122u8, 41u8, 134u8, 234u8, 54u8, 156u8, 61u8, 13u8,
9831            ],
9832            [
9833                78u8, 43u8, 121u8, 29u8, 237u8, 204u8, 217u8, 251u8, 48u8, 20u8, 27u8,
9834                8u8, 140u8, 171u8, 245u8, 193u8, 74u8, 137u8, 18u8, 181u8, 47u8, 89u8,
9835                55u8, 92u8, 149u8, 192u8, 16u8, 112u8, 11u8, 140u8, 97u8, 147u8,
9836            ],
9837            [
9838                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
9839                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
9840                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
9841            ],
9842            [
9843                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
9844                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
9845                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
9846            ],
9847            [
9848                166u8, 186u8, 177u8, 213u8, 90u8, 54u8, 31u8, 206u8, 162u8, 238u8, 226u8,
9849                188u8, 148u8, 145u8, 228u8, 240u8, 30u8, 108u8, 243u8, 51u8, 223u8, 3u8,
9850                201u8, 196u8, 242u8, 193u8, 68u8, 70u8, 100u8, 41u8, 247u8, 214u8,
9851            ],
9852            [
9853                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
9854                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
9855                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
9856            ],
9857            [
9858                177u8, 96u8, 171u8, 133u8, 137u8, 191u8, 71u8, 220u8, 4u8, 234u8, 17u8,
9859                181u8, 13u8, 70u8, 103u8, 141u8, 33u8, 89u8, 12u8, 234u8, 46u8, 211u8,
9860                228u8, 84u8, 231u8, 189u8, 62u8, 65u8, 81u8, 15u8, 152u8, 207u8,
9861            ],
9862            [
9863                212u8, 222u8, 247u8, 109u8, 109u8, 43u8, 237u8, 111u8, 20u8, 213u8,
9864                205u8, 154u8, 247u8, 60u8, 194u8, 145u8, 61u8, 97u8, 141u8, 0u8, 237u8,
9865                222u8, 66u8, 67u8, 46u8, 129u8, 192u8, 155u8, 254u8, 7u8, 112u8, 152u8,
9866            ],
9867        ];
9868    }
9869    #[automatically_derived]
9870    impl alloy_sol_types::SolEventInterface for EigenPodManagerEvents {
9871        const NAME: &'static str = "EigenPodManagerEvents";
9872        const COUNT: usize = 11usize;
9873        fn decode_raw_log(
9874            topics: &[alloy_sol_types::Word],
9875            data: &[u8],
9876        ) -> alloy_sol_types::Result<Self> {
9877            match topics.first().copied() {
9878                Some(
9879                    <BeaconChainETHDeposited as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9880                ) => {
9881                    <BeaconChainETHDeposited as alloy_sol_types::SolEvent>::decode_raw_log(
9882                            topics,
9883                            data,
9884                        )
9885                        .map(Self::BeaconChainETHDeposited)
9886                }
9887                Some(
9888                    <BeaconChainETHWithdrawalCompleted as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9889                ) => {
9890                    <BeaconChainETHWithdrawalCompleted as alloy_sol_types::SolEvent>::decode_raw_log(
9891                            topics,
9892                            data,
9893                        )
9894                        .map(Self::BeaconChainETHWithdrawalCompleted)
9895                }
9896                Some(
9897                    <BeaconChainSlashingFactorDecreased as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9898                ) => {
9899                    <BeaconChainSlashingFactorDecreased as alloy_sol_types::SolEvent>::decode_raw_log(
9900                            topics,
9901                            data,
9902                        )
9903                        .map(Self::BeaconChainSlashingFactorDecreased)
9904                }
9905                Some(
9906                    <BurnableETHSharesIncreased as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9907                ) => {
9908                    <BurnableETHSharesIncreased as alloy_sol_types::SolEvent>::decode_raw_log(
9909                            topics,
9910                            data,
9911                        )
9912                        .map(Self::BurnableETHSharesIncreased)
9913                }
9914                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9915                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
9916                            topics,
9917                            data,
9918                        )
9919                        .map(Self::Initialized)
9920                }
9921                Some(<NewTotalShares as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9922                    <NewTotalShares as alloy_sol_types::SolEvent>::decode_raw_log(
9923                            topics,
9924                            data,
9925                        )
9926                        .map(Self::NewTotalShares)
9927                }
9928                Some(
9929                    <OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9930                ) => {
9931                    <OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
9932                            topics,
9933                            data,
9934                        )
9935                        .map(Self::OwnershipTransferred)
9936                }
9937                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9938                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
9939                        .map(Self::Paused)
9940                }
9941                Some(<PodDeployed as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9942                    <PodDeployed as alloy_sol_types::SolEvent>::decode_raw_log(
9943                            topics,
9944                            data,
9945                        )
9946                        .map(Self::PodDeployed)
9947                }
9948                Some(<PodSharesUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9949                    <PodSharesUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
9950                            topics,
9951                            data,
9952                        )
9953                        .map(Self::PodSharesUpdated)
9954                }
9955                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9956                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
9957                        .map(Self::Unpaused)
9958                }
9959                _ => {
9960                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
9961                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
9962                        log: alloy_sol_types::private::Box::new(
9963                            alloy_sol_types::private::LogData::new_unchecked(
9964                                topics.to_vec(),
9965                                data.to_vec().into(),
9966                            ),
9967                        ),
9968                    })
9969                }
9970            }
9971        }
9972    }
9973    #[automatically_derived]
9974    impl alloy_sol_types::private::IntoLogData for EigenPodManagerEvents {
9975        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
9976            match self {
9977                Self::BeaconChainETHDeposited(inner) => {
9978                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9979                }
9980                Self::BeaconChainETHWithdrawalCompleted(inner) => {
9981                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9982                }
9983                Self::BeaconChainSlashingFactorDecreased(inner) => {
9984                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9985                }
9986                Self::BurnableETHSharesIncreased(inner) => {
9987                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9988                }
9989                Self::Initialized(inner) => {
9990                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9991                }
9992                Self::NewTotalShares(inner) => {
9993                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9994                }
9995                Self::OwnershipTransferred(inner) => {
9996                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9997                }
9998                Self::Paused(inner) => {
9999                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10000                }
10001                Self::PodDeployed(inner) => {
10002                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10003                }
10004                Self::PodSharesUpdated(inner) => {
10005                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10006                }
10007                Self::Unpaused(inner) => {
10008                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10009                }
10010            }
10011        }
10012        fn into_log_data(self) -> alloy_sol_types::private::LogData {
10013            match self {
10014                Self::BeaconChainETHDeposited(inner) => {
10015                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10016                }
10017                Self::BeaconChainETHWithdrawalCompleted(inner) => {
10018                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10019                }
10020                Self::BeaconChainSlashingFactorDecreased(inner) => {
10021                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10022                }
10023                Self::BurnableETHSharesIncreased(inner) => {
10024                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10025                }
10026                Self::Initialized(inner) => {
10027                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10028                }
10029                Self::NewTotalShares(inner) => {
10030                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10031                }
10032                Self::OwnershipTransferred(inner) => {
10033                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10034                }
10035                Self::Paused(inner) => {
10036                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10037                }
10038                Self::PodDeployed(inner) => {
10039                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10040                }
10041                Self::PodSharesUpdated(inner) => {
10042                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10043                }
10044                Self::Unpaused(inner) => {
10045                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10046                }
10047            }
10048        }
10049    }
10050    use alloy::contract as alloy_contract;
10051    /**Creates a new wrapper around an on-chain [`EigenPodManager`](self) contract instance.
10052
10053See the [wrapper's documentation](`EigenPodManagerInstance`) for more details.*/
10054    #[inline]
10055    pub const fn new<
10056        P: alloy_contract::private::Provider<N>,
10057        N: alloy_contract::private::Network,
10058    >(
10059        address: alloy_sol_types::private::Address,
10060        provider: P,
10061    ) -> EigenPodManagerInstance<P, N> {
10062        EigenPodManagerInstance::<P, N>::new(address, provider)
10063    }
10064    /**Deploys this contract using the given `provider` and constructor arguments, if any.
10065
10066Returns a new instance of the contract, if the deployment was successful.
10067
10068For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
10069    #[inline]
10070    pub fn deploy<
10071        P: alloy_contract::private::Provider<N>,
10072        N: alloy_contract::private::Network,
10073    >(
10074        provider: P,
10075        _ethPOS: alloy::sol_types::private::Address,
10076        _eigenPodBeacon: alloy::sol_types::private::Address,
10077        _delegationManager: alloy::sol_types::private::Address,
10078        _pauserRegistry: alloy::sol_types::private::Address,
10079        _version: alloy::sol_types::private::String,
10080    ) -> impl ::core::future::Future<
10081        Output = alloy_contract::Result<EigenPodManagerInstance<P, N>>,
10082    > {
10083        EigenPodManagerInstance::<
10084            P,
10085            N,
10086        >::deploy(
10087            provider,
10088            _ethPOS,
10089            _eigenPodBeacon,
10090            _delegationManager,
10091            _pauserRegistry,
10092            _version,
10093        )
10094    }
10095    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
10096and constructor arguments, if any.
10097
10098This is a simple wrapper around creating a `RawCallBuilder` with the data set to
10099the bytecode concatenated with the constructor's ABI-encoded arguments.*/
10100    #[inline]
10101    pub fn deploy_builder<
10102        P: alloy_contract::private::Provider<N>,
10103        N: alloy_contract::private::Network,
10104    >(
10105        provider: P,
10106        _ethPOS: alloy::sol_types::private::Address,
10107        _eigenPodBeacon: alloy::sol_types::private::Address,
10108        _delegationManager: alloy::sol_types::private::Address,
10109        _pauserRegistry: alloy::sol_types::private::Address,
10110        _version: alloy::sol_types::private::String,
10111    ) -> alloy_contract::RawCallBuilder<P, N> {
10112        EigenPodManagerInstance::<
10113            P,
10114            N,
10115        >::deploy_builder(
10116            provider,
10117            _ethPOS,
10118            _eigenPodBeacon,
10119            _delegationManager,
10120            _pauserRegistry,
10121            _version,
10122        )
10123    }
10124    /**A [`EigenPodManager`](self) instance.
10125
10126Contains type-safe methods for interacting with an on-chain instance of the
10127[`EigenPodManager`](self) contract located at a given `address`, using a given
10128provider `P`.
10129
10130If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
10131documentation on how to provide it), the `deploy` and `deploy_builder` methods can
10132be used to deploy a new instance of the contract.
10133
10134See the [module-level documentation](self) for all the available methods.*/
10135    #[derive(Clone)]
10136    pub struct EigenPodManagerInstance<P, N = alloy_contract::private::Ethereum> {
10137        address: alloy_sol_types::private::Address,
10138        provider: P,
10139        _network: ::core::marker::PhantomData<N>,
10140    }
10141    #[automatically_derived]
10142    impl<P, N> ::core::fmt::Debug for EigenPodManagerInstance<P, N> {
10143        #[inline]
10144        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10145            f.debug_tuple("EigenPodManagerInstance").field(&self.address).finish()
10146        }
10147    }
10148    /// Instantiation and getters/setters.
10149    #[automatically_derived]
10150    impl<
10151        P: alloy_contract::private::Provider<N>,
10152        N: alloy_contract::private::Network,
10153    > EigenPodManagerInstance<P, N> {
10154        /**Creates a new wrapper around an on-chain [`EigenPodManager`](self) contract instance.
10155
10156See the [wrapper's documentation](`EigenPodManagerInstance`) for more details.*/
10157        #[inline]
10158        pub const fn new(
10159            address: alloy_sol_types::private::Address,
10160            provider: P,
10161        ) -> Self {
10162            Self {
10163                address,
10164                provider,
10165                _network: ::core::marker::PhantomData,
10166            }
10167        }
10168        /**Deploys this contract using the given `provider` and constructor arguments, if any.
10169
10170Returns a new instance of the contract, if the deployment was successful.
10171
10172For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
10173        #[inline]
10174        pub async fn deploy(
10175            provider: P,
10176            _ethPOS: alloy::sol_types::private::Address,
10177            _eigenPodBeacon: alloy::sol_types::private::Address,
10178            _delegationManager: alloy::sol_types::private::Address,
10179            _pauserRegistry: alloy::sol_types::private::Address,
10180            _version: alloy::sol_types::private::String,
10181        ) -> alloy_contract::Result<EigenPodManagerInstance<P, N>> {
10182            let call_builder = Self::deploy_builder(
10183                provider,
10184                _ethPOS,
10185                _eigenPodBeacon,
10186                _delegationManager,
10187                _pauserRegistry,
10188                _version,
10189            );
10190            let contract_address = call_builder.deploy().await?;
10191            Ok(Self::new(contract_address, call_builder.provider))
10192        }
10193        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
10194and constructor arguments, if any.
10195
10196This is a simple wrapper around creating a `RawCallBuilder` with the data set to
10197the bytecode concatenated with the constructor's ABI-encoded arguments.*/
10198        #[inline]
10199        pub fn deploy_builder(
10200            provider: P,
10201            _ethPOS: alloy::sol_types::private::Address,
10202            _eigenPodBeacon: alloy::sol_types::private::Address,
10203            _delegationManager: alloy::sol_types::private::Address,
10204            _pauserRegistry: alloy::sol_types::private::Address,
10205            _version: alloy::sol_types::private::String,
10206        ) -> alloy_contract::RawCallBuilder<P, N> {
10207            alloy_contract::RawCallBuilder::new_raw_deploy(
10208                provider,
10209                [
10210                    &BYTECODE[..],
10211                    &alloy_sol_types::SolConstructor::abi_encode(
10212                        &constructorCall {
10213                            _ethPOS,
10214                            _eigenPodBeacon,
10215                            _delegationManager,
10216                            _pauserRegistry,
10217                            _version,
10218                        },
10219                    )[..],
10220                ]
10221                    .concat()
10222                    .into(),
10223            )
10224        }
10225        /// Returns a reference to the address.
10226        #[inline]
10227        pub const fn address(&self) -> &alloy_sol_types::private::Address {
10228            &self.address
10229        }
10230        /// Sets the address.
10231        #[inline]
10232        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
10233            self.address = address;
10234        }
10235        /// Sets the address and returns `self`.
10236        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
10237            self.set_address(address);
10238            self
10239        }
10240        /// Returns a reference to the provider.
10241        #[inline]
10242        pub const fn provider(&self) -> &P {
10243            &self.provider
10244        }
10245    }
10246    impl<P: ::core::clone::Clone, N> EigenPodManagerInstance<&P, N> {
10247        /// Clones the provider and returns a new instance with the cloned provider.
10248        #[inline]
10249        pub fn with_cloned_provider(self) -> EigenPodManagerInstance<P, N> {
10250            EigenPodManagerInstance {
10251                address: self.address,
10252                provider: ::core::clone::Clone::clone(&self.provider),
10253                _network: ::core::marker::PhantomData,
10254            }
10255        }
10256    }
10257    /// Function calls.
10258    #[automatically_derived]
10259    impl<
10260        P: alloy_contract::private::Provider<N>,
10261        N: alloy_contract::private::Network,
10262    > EigenPodManagerInstance<P, N> {
10263        /// Creates a new call builder using this contract instance's provider and address.
10264        ///
10265        /// Note that the call can be any function call, not just those defined in this
10266        /// contract. Prefer using the other methods for building type-safe contract calls.
10267        pub fn call_builder<C: alloy_sol_types::SolCall>(
10268            &self,
10269            call: &C,
10270        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
10271            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
10272        }
10273        ///Creates a new call builder for the [`addShares`] function.
10274        pub fn addShares(
10275            &self,
10276            staker: alloy::sol_types::private::Address,
10277            strategy: alloy::sol_types::private::Address,
10278            shares: alloy::sol_types::private::primitives::aliases::U256,
10279        ) -> alloy_contract::SolCallBuilder<&P, addSharesCall, N> {
10280            self.call_builder(
10281                &addSharesCall {
10282                    staker,
10283                    strategy,
10284                    shares,
10285                },
10286            )
10287        }
10288        ///Creates a new call builder for the [`beaconChainETHStrategy`] function.
10289        pub fn beaconChainETHStrategy(
10290            &self,
10291        ) -> alloy_contract::SolCallBuilder<&P, beaconChainETHStrategyCall, N> {
10292            self.call_builder(&beaconChainETHStrategyCall)
10293        }
10294        ///Creates a new call builder for the [`beaconChainSlashingFactor`] function.
10295        pub fn beaconChainSlashingFactor(
10296            &self,
10297            podOwner: alloy::sol_types::private::Address,
10298        ) -> alloy_contract::SolCallBuilder<&P, beaconChainSlashingFactorCall, N> {
10299            self.call_builder(
10300                &beaconChainSlashingFactorCall {
10301                    podOwner,
10302                },
10303            )
10304        }
10305        ///Creates a new call builder for the [`burnableETHShares`] function.
10306        pub fn burnableETHShares(
10307            &self,
10308        ) -> alloy_contract::SolCallBuilder<&P, burnableETHSharesCall, N> {
10309            self.call_builder(&burnableETHSharesCall)
10310        }
10311        ///Creates a new call builder for the [`createPod`] function.
10312        pub fn createPod(&self) -> alloy_contract::SolCallBuilder<&P, createPodCall, N> {
10313            self.call_builder(&createPodCall)
10314        }
10315        ///Creates a new call builder for the [`delegationManager`] function.
10316        pub fn delegationManager(
10317            &self,
10318        ) -> alloy_contract::SolCallBuilder<&P, delegationManagerCall, N> {
10319            self.call_builder(&delegationManagerCall)
10320        }
10321        ///Creates a new call builder for the [`eigenPodBeacon`] function.
10322        pub fn eigenPodBeacon(
10323            &self,
10324        ) -> alloy_contract::SolCallBuilder<&P, eigenPodBeaconCall, N> {
10325            self.call_builder(&eigenPodBeaconCall)
10326        }
10327        ///Creates a new call builder for the [`ethPOS`] function.
10328        pub fn ethPOS(&self) -> alloy_contract::SolCallBuilder<&P, ethPOSCall, N> {
10329            self.call_builder(&ethPOSCall)
10330        }
10331        ///Creates a new call builder for the [`getPod`] function.
10332        pub fn getPod(
10333            &self,
10334            podOwner: alloy::sol_types::private::Address,
10335        ) -> alloy_contract::SolCallBuilder<&P, getPodCall, N> {
10336            self.call_builder(&getPodCall { podOwner })
10337        }
10338        ///Creates a new call builder for the [`hasPod`] function.
10339        pub fn hasPod(
10340            &self,
10341            podOwner: alloy::sol_types::private::Address,
10342        ) -> alloy_contract::SolCallBuilder<&P, hasPodCall, N> {
10343            self.call_builder(&hasPodCall { podOwner })
10344        }
10345        ///Creates a new call builder for the [`increaseBurnableShares`] function.
10346        pub fn increaseBurnableShares(
10347            &self,
10348            _0: alloy::sol_types::private::Address,
10349            addedSharesToBurn: alloy::sol_types::private::primitives::aliases::U256,
10350        ) -> alloy_contract::SolCallBuilder<&P, increaseBurnableSharesCall, N> {
10351            self.call_builder(
10352                &increaseBurnableSharesCall {
10353                    _0,
10354                    addedSharesToBurn,
10355                },
10356            )
10357        }
10358        ///Creates a new call builder for the [`initialize`] function.
10359        pub fn initialize(
10360            &self,
10361            initialOwner: alloy::sol_types::private::Address,
10362            _initPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
10363        ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> {
10364            self.call_builder(
10365                &initializeCall {
10366                    initialOwner,
10367                    _initPausedStatus,
10368                },
10369            )
10370        }
10371        ///Creates a new call builder for the [`numPods`] function.
10372        pub fn numPods(&self) -> alloy_contract::SolCallBuilder<&P, numPodsCall, N> {
10373            self.call_builder(&numPodsCall)
10374        }
10375        ///Creates a new call builder for the [`owner`] function.
10376        pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> {
10377            self.call_builder(&ownerCall)
10378        }
10379        ///Creates a new call builder for the [`ownerToPod`] function.
10380        pub fn ownerToPod(
10381            &self,
10382            podOwner: alloy::sol_types::private::Address,
10383        ) -> alloy_contract::SolCallBuilder<&P, ownerToPodCall, N> {
10384            self.call_builder(&ownerToPodCall { podOwner })
10385        }
10386        ///Creates a new call builder for the [`pause`] function.
10387        pub fn pause(
10388            &self,
10389            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
10390        ) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> {
10391            self.call_builder(&pauseCall { newPausedStatus })
10392        }
10393        ///Creates a new call builder for the [`pauseAll`] function.
10394        pub fn pauseAll(&self) -> alloy_contract::SolCallBuilder<&P, pauseAllCall, N> {
10395            self.call_builder(&pauseAllCall)
10396        }
10397        ///Creates a new call builder for the [`paused_0`] function.
10398        pub fn paused_0(
10399            &self,
10400            index: u8,
10401        ) -> alloy_contract::SolCallBuilder<&P, paused_0Call, N> {
10402            self.call_builder(&paused_0Call { index })
10403        }
10404        ///Creates a new call builder for the [`paused_1`] function.
10405        pub fn paused_1(&self) -> alloy_contract::SolCallBuilder<&P, paused_1Call, N> {
10406            self.call_builder(&paused_1Call)
10407        }
10408        ///Creates a new call builder for the [`pauserRegistry`] function.
10409        pub fn pauserRegistry(
10410            &self,
10411        ) -> alloy_contract::SolCallBuilder<&P, pauserRegistryCall, N> {
10412            self.call_builder(&pauserRegistryCall)
10413        }
10414        ///Creates a new call builder for the [`podOwnerDepositShares`] function.
10415        pub fn podOwnerDepositShares(
10416            &self,
10417            podOwner: alloy::sol_types::private::Address,
10418        ) -> alloy_contract::SolCallBuilder<&P, podOwnerDepositSharesCall, N> {
10419            self.call_builder(
10420                &podOwnerDepositSharesCall {
10421                    podOwner,
10422                },
10423            )
10424        }
10425        ///Creates a new call builder for the [`recordBeaconChainETHBalanceUpdate`] function.
10426        pub fn recordBeaconChainETHBalanceUpdate(
10427            &self,
10428            podOwner: alloy::sol_types::private::Address,
10429            prevRestakedBalanceWei: alloy::sol_types::private::primitives::aliases::U256,
10430            balanceDeltaWei: alloy::sol_types::private::primitives::aliases::I256,
10431        ) -> alloy_contract::SolCallBuilder<
10432            &P,
10433            recordBeaconChainETHBalanceUpdateCall,
10434            N,
10435        > {
10436            self.call_builder(
10437                &recordBeaconChainETHBalanceUpdateCall {
10438                    podOwner,
10439                    prevRestakedBalanceWei,
10440                    balanceDeltaWei,
10441                },
10442            )
10443        }
10444        ///Creates a new call builder for the [`removeDepositShares`] function.
10445        pub fn removeDepositShares(
10446            &self,
10447            staker: alloy::sol_types::private::Address,
10448            strategy: alloy::sol_types::private::Address,
10449            depositSharesToRemove: alloy::sol_types::private::primitives::aliases::U256,
10450        ) -> alloy_contract::SolCallBuilder<&P, removeDepositSharesCall, N> {
10451            self.call_builder(
10452                &removeDepositSharesCall {
10453                    staker,
10454                    strategy,
10455                    depositSharesToRemove,
10456                },
10457            )
10458        }
10459        ///Creates a new call builder for the [`renounceOwnership`] function.
10460        pub fn renounceOwnership(
10461            &self,
10462        ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> {
10463            self.call_builder(&renounceOwnershipCall)
10464        }
10465        ///Creates a new call builder for the [`stake`] function.
10466        pub fn stake(
10467            &self,
10468            pubkey: alloy::sol_types::private::Bytes,
10469            signature: alloy::sol_types::private::Bytes,
10470            depositDataRoot: alloy::sol_types::private::FixedBytes<32>,
10471        ) -> alloy_contract::SolCallBuilder<&P, stakeCall, N> {
10472            self.call_builder(
10473                &stakeCall {
10474                    pubkey,
10475                    signature,
10476                    depositDataRoot,
10477                },
10478            )
10479        }
10480        ///Creates a new call builder for the [`stakerDepositShares`] function.
10481        pub fn stakerDepositShares(
10482            &self,
10483            user: alloy::sol_types::private::Address,
10484            strategy: alloy::sol_types::private::Address,
10485        ) -> alloy_contract::SolCallBuilder<&P, stakerDepositSharesCall, N> {
10486            self.call_builder(
10487                &stakerDepositSharesCall {
10488                    user,
10489                    strategy,
10490                },
10491            )
10492        }
10493        ///Creates a new call builder for the [`transferOwnership`] function.
10494        pub fn transferOwnership(
10495            &self,
10496            newOwner: alloy::sol_types::private::Address,
10497        ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> {
10498            self.call_builder(&transferOwnershipCall { newOwner })
10499        }
10500        ///Creates a new call builder for the [`unpause`] function.
10501        pub fn unpause(
10502            &self,
10503            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
10504        ) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> {
10505            self.call_builder(&unpauseCall { newPausedStatus })
10506        }
10507        ///Creates a new call builder for the [`version`] function.
10508        pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> {
10509            self.call_builder(&versionCall)
10510        }
10511        ///Creates a new call builder for the [`withdrawSharesAsTokens`] function.
10512        pub fn withdrawSharesAsTokens(
10513            &self,
10514            staker: alloy::sol_types::private::Address,
10515            strategy: alloy::sol_types::private::Address,
10516            _2: alloy::sol_types::private::Address,
10517            shares: alloy::sol_types::private::primitives::aliases::U256,
10518        ) -> alloy_contract::SolCallBuilder<&P, withdrawSharesAsTokensCall, N> {
10519            self.call_builder(
10520                &withdrawSharesAsTokensCall {
10521                    staker,
10522                    strategy,
10523                    _2,
10524                    shares,
10525                },
10526            )
10527        }
10528    }
10529    /// Event filters.
10530    #[automatically_derived]
10531    impl<
10532        P: alloy_contract::private::Provider<N>,
10533        N: alloy_contract::private::Network,
10534    > EigenPodManagerInstance<P, N> {
10535        /// Creates a new event filter using this contract instance's provider and address.
10536        ///
10537        /// Note that the type can be any event, not just those defined in this contract.
10538        /// Prefer using the other methods for building type-safe event filters.
10539        pub fn event_filter<E: alloy_sol_types::SolEvent>(
10540            &self,
10541        ) -> alloy_contract::Event<&P, E, N> {
10542            alloy_contract::Event::new_sol(&self.provider, &self.address)
10543        }
10544        ///Creates a new event filter for the [`BeaconChainETHDeposited`] event.
10545        pub fn BeaconChainETHDeposited_filter(
10546            &self,
10547        ) -> alloy_contract::Event<&P, BeaconChainETHDeposited, N> {
10548            self.event_filter::<BeaconChainETHDeposited>()
10549        }
10550        ///Creates a new event filter for the [`BeaconChainETHWithdrawalCompleted`] event.
10551        pub fn BeaconChainETHWithdrawalCompleted_filter(
10552            &self,
10553        ) -> alloy_contract::Event<&P, BeaconChainETHWithdrawalCompleted, N> {
10554            self.event_filter::<BeaconChainETHWithdrawalCompleted>()
10555        }
10556        ///Creates a new event filter for the [`BeaconChainSlashingFactorDecreased`] event.
10557        pub fn BeaconChainSlashingFactorDecreased_filter(
10558            &self,
10559        ) -> alloy_contract::Event<&P, BeaconChainSlashingFactorDecreased, N> {
10560            self.event_filter::<BeaconChainSlashingFactorDecreased>()
10561        }
10562        ///Creates a new event filter for the [`BurnableETHSharesIncreased`] event.
10563        pub fn BurnableETHSharesIncreased_filter(
10564            &self,
10565        ) -> alloy_contract::Event<&P, BurnableETHSharesIncreased, N> {
10566            self.event_filter::<BurnableETHSharesIncreased>()
10567        }
10568        ///Creates a new event filter for the [`Initialized`] event.
10569        pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> {
10570            self.event_filter::<Initialized>()
10571        }
10572        ///Creates a new event filter for the [`NewTotalShares`] event.
10573        pub fn NewTotalShares_filter(
10574            &self,
10575        ) -> alloy_contract::Event<&P, NewTotalShares, N> {
10576            self.event_filter::<NewTotalShares>()
10577        }
10578        ///Creates a new event filter for the [`OwnershipTransferred`] event.
10579        pub fn OwnershipTransferred_filter(
10580            &self,
10581        ) -> alloy_contract::Event<&P, OwnershipTransferred, N> {
10582            self.event_filter::<OwnershipTransferred>()
10583        }
10584        ///Creates a new event filter for the [`Paused`] event.
10585        pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> {
10586            self.event_filter::<Paused>()
10587        }
10588        ///Creates a new event filter for the [`PodDeployed`] event.
10589        pub fn PodDeployed_filter(&self) -> alloy_contract::Event<&P, PodDeployed, N> {
10590            self.event_filter::<PodDeployed>()
10591        }
10592        ///Creates a new event filter for the [`PodSharesUpdated`] event.
10593        pub fn PodSharesUpdated_filter(
10594            &self,
10595        ) -> alloy_contract::Event<&P, PodSharesUpdated, N> {
10596            self.event_filter::<PodSharesUpdated>()
10597        }
10598        ///Creates a new event filter for the [`Unpaused`] event.
10599        pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> {
10600            self.event_filter::<Unpaused>()
10601        }
10602    }
10603}