{"abi":[{"type":"constructor","inputs":[{"name":"_endpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"data","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_nativeFee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"receipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NativeTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x610100604052601560c09081527f4e6f7468696e67207265636569766564207965742e000000000000000000000060e0526002906200003f9082620002a3565b503480156200004c575f80fd5b5060405162001b2738038062001b278339810160408190526200006f916200038b565b81818181806001600160a01b038116620000a257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000ad81620001b6565b506001600160a01b038083166080528116620000dc57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b15801562000121575f80fd5b505af115801562000134573d5f803e3d5ffd5b5050505050506080516001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000179573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019f9190620003c1565b6001600160a01b031660a05250620003e492505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200022e57607f821691505b6020821081036200024d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200029e57805f5260205f20601f840160051c810160208510156200027a5750805b601f840160051c820191505b818110156200029b575f815560010162000286565b50505b505050565b81516001600160401b03811115620002bf57620002bf62000205565b620002d781620002d0845462000219565b8462000253565b602080601f8311600181146200030d575f8415620002f55750858301515b5f19600386901b1c1916600185901b17855562000367565b5f85815260208120601f198616915b828110156200033d578886015182559484019460019091019084016200031c565b50858210156200035b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b80516001600160a01b038116811462000386575f80fd5b919050565b5f80604083850312156200039d575f80fd5b620003a8836200036f565b9150620003b8602084016200036f565b90509250929050565b5f60208284031215620003d2575f80fd5b620003dd826200036f565b9392505050565b60805160a0516116e2620004455f395f818161030f01528181610b080152610b8d01525f818161015e0152818161039d0152818161064a0152818161094501528181610a2f01528181610bb001528181610bdc0152610cd301526116e25ff3fe6080604052600436106100ef575f3560e01c80638da5cb5b11610087578063e1758bd811610057578063e1758bd8146102fe578063f2fde38b14610331578063f77e5dd314610350578063ff7bd03d1461037c575f80fd5b80638da5cb5b1461025d578063b4ab5dd114610286578063bb0b6a53146102a6578063ca5eb5e1146102df575f80fd5b8063715018a6116100c2578063715018a6146101a557806373d4a13a146101b95780637d25a05e146101da57806382413eac14610212575f80fd5b806313137d65146100f357806317442b70146101085780633400288b1461012e5780635e280f111461014d575b5f80fd5b610106610101366004610eee565b61039b565b005b348015610113575f80fd5b50604080516001815260026020820152015b60405180910390f35b348015610139575f80fd5b50610106610148366004610f9f565b61049a565b348015610158575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610125565b3480156101b0575f80fd5b506101066104b0565b3480156101c4575f80fd5b506101cd6104c3565b6040516101259190611028565b3480156101e5575f80fd5b506101f96101f4366004610f9f565b61054f565b60405167ffffffffffffffff9091168152602001610125565b34801561021d575f80fd5b5061024d61022c366004611041565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b6040519015158152602001610125565b348015610268575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610180565b610299610294366004611180565b610557565b60405161012591906111f9565b3480156102b1575f80fd5b506102d16102c036600461123b565b60016020525f908152604090205481565b604051908152602001610125565b3480156102ea575f80fd5b506101066102f9366004611254565b6105fd565b348015610309575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b34801561033c575f80fd5b5061010661034b366004611254565b6106a4565b34801561035b575f80fd5b5061036f61036a36600461126f565b610707565b60405161012591906112fd565b348015610387575f80fd5b5061024d610396366004611314565b610753565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610411576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061042b90610426908a61123b565b610787565b146104825761043d602088018861123b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610408565b610491878787878787876107db565b50505050505050565b6104a26107fe565b6104ac8282610850565b5050565b6104b86107fe565b6104c15f6108a4565b565b600280546104d09061132e565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc9061132e565b80156105475780601f1061051e57610100808354040283529160200191610547565b820191905f5260205f20905b81548152906001019060200180831161052a57829003601f168201915b505050505081565b5f5b92915050565b61055f610e2e565b5f856040516020016105719190611028565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020601f880181900481028401810190925286835292506105f291899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506109189050565b979650505050505050565b6106056107fe565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561068b575f80fd5b505af115801561069d573d5f803e3d5ffd5b5050505050565b6106ac6107fe565b73ffffffffffffffffffffffffffffffffffffffff81166106fb576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610408565b610704816108a4565b50565b604080518082019091525f80825260208201525f8460405160200161072c9190611028565b604051602081830303815290604052905061074986828686610a1a565b9695505050505050565b5f60208201803590600190839061076a908661123b565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f9081526001602052604081205480610551576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610408565b6107e784860186611379565b6002906107f490826113fc565b5050505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146104c1576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610408565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610920610e2e565b825161092b90610b05565b50602083015115610943576109438360200151610bd9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a4506040518060a001604052808963ffffffff16815260200161099f8a610787565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b81526004016109da929190611518565b6080604051808303815f875af11580156109f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107499190611608565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001610a8989610787565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401610abe929190611518565b6040805180830381865afa158015610ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afc9190611677565b95945050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b73576040517f8dce522700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085610cf4565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190611691565b905073ffffffffffffffffffffffffffffffffffffffff8116610cb6576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ac73ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000855b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610d89908590610d8f565b50505050565b5f8060205f8451602086015f885af180610dae576040513d5f823e3d81fd5b50505f513d91508115610dc5578060011415610ddf565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15610d89576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610408565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001610e6d60405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610e82575f80fd5b50919050565b5f8083601f840112610e98575f80fd5b50813567ffffffffffffffff811115610eaf575f80fd5b602083019150836020828501011115610ec6575f80fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610704575f80fd5b5f805f805f805f60e0888a031215610f04575f80fd5b610f0e8989610e72565b965060608801359550608088013567ffffffffffffffff80821115610f31575f80fd5b610f3d8b838c01610e88565b909750955060a08a01359150610f5282610ecd565b90935060c08901359080821115610f67575f80fd5b50610f748a828b01610e88565b989b979a50959850939692959293505050565b803563ffffffff81168114610f9a575f80fd5b919050565b5f8060408385031215610fb0575f80fd5b610fb983610f87565b946020939093013593505050565b5f81518084525f5b81811015610feb57602081850181015186830182015201610fcf565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61103a6020830184610fc7565b9392505050565b5f805f8060a08587031215611054575f80fd5b61105e8686610e72565b9350606085013567ffffffffffffffff811115611079575f80fd5b61108587828801610e88565b909450925050608085013561109981610ecd565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f67ffffffffffffffff808411156110eb576110eb6110a4565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611131576111316110a4565b81604052809350858152868686011115611149575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112611171575f80fd5b61103a838335602085016110d1565b5f805f805f60808688031215611194575f80fd5b61119d86610f87565b9450602086013567ffffffffffffffff808211156111b9575f80fd5b6111c589838a01611162565b955060408801359150808211156111da575f80fd5b506111e788828901610e88565b96999598509660600135949350505050565b5f6080820190508251825267ffffffffffffffff60208401511660208301526040830151611234604084018280518252602090810151910152565b5092915050565b5f6020828403121561124b575f80fd5b61103a82610f87565b5f60208284031215611264575f80fd5b813561103a81610ecd565b5f805f8060808587031215611282575f80fd5b61128b85610f87565b9350602085013567ffffffffffffffff808211156112a7575f80fd5b6112b388838901611162565b945060408701359150808211156112c8575f80fd5b508501601f810187136112d9575f80fd5b6112e8878235602084016110d1565b92505060608501358015158114611099575f80fd5b815181526020808301519082015260408101610551565b5f60608284031215611324575f80fd5b61103a8383610e72565b600181811c9082168061134257607f821691505b602082108103610e82577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215611389575f80fd5b813567ffffffffffffffff81111561139f575f80fd5b6113ab84828501611162565b949350505050565b601f8211156113f757805f5260205f20601f840160051c810160208510156113d85750805b601f840160051c820191505b8181101561069d575f81556001016113e4565b505050565b815167ffffffffffffffff811115611416576114166110a4565b61142a81611424845461132e565b846113b3565b602080601f83116001811461147c575f84156114465750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611510565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156114c8578886015182559484019460019091019084016114a9565b508582101561150457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261154d60e0840182610fc7565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526115888282610fc7565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156115cb575f80fd5b6040516040810181811067ffffffffffffffff821117156115ee576115ee6110a4565b604052825181526020928301519281019290925250919050565b5f60808284031215611618575f80fd5b6040516060810167ffffffffffffffff828210818311171561163c5761163c6110a4565b8160405284518352602085015191508082168214611658575f80fd5b50602082015261166b84604085016115bb565b60408201529392505050565b5f60408284031215611687575f80fd5b61103a83836115bb565b5f602082840312156116a1575f80fd5b815161103a81610ecd56fea264697066735822122058a5d1db4a3021da207c8d27434f623ddcca52c84230c6cb3a2de84acd6e170f64736f6c63430008160033","sourceMap":"470:44:125:-:0;327:2776;470:44;;327:2776;470:44;;;;;;;;;;;;:::i;:::-;;363:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;421:9;432;421;432;;-1:-1:-1;;;;;1273:26:104;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:104;;1350:1;1322:31;;;3327:51:126;3300:18;;1322:31:104;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:57;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:57;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:57;;-1:-1:-1;;;;;3345:32:126;;;1163:31:57;;;3327:51:126;1163:20:57;;;;;;3300:18:126;;1163:31:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;823:8:3;;-1:-1:-1;;;;;823:20:3;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;809:36:3;;;-1:-1:-1;327:2776:125;;-1:-1:-1;;;327:2776:125;2912:187:104;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:104;;;-1:-1:-1;;;;;;3020:17:104;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:126:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:126;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1345::-;1471:10;;-1:-1:-1;;;;;1493:30:126;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1707:4;;1764:2;1753:14;;1781:1;1776:663;;;;2483:1;2500:6;2497:89;;;-1:-1:-1;2552:19:126;;;2546:26;2497:89;-1:-1:-1;;1308:1:126;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2599:81;;1746:944;;1776:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1812:20:126;;;1930:236;1944:7;1941:1;1938:14;1930:236;;;2033:19;;;2027:26;2012:42;;2125:27;;;;2093:1;2081:14;;;;1960:19;;1930:236;;;1934:3;2194:6;2185:7;2182:19;2179:201;;;2255:19;;;2249:26;-1:-1:-1;;2338:1:126;2334:14;;;2350:3;2330:24;2326:37;2322:42;2307:58;2292:74;;2179:201;;;2426:1;2417:6;2414:1;2410:14;2406:22;2400:4;2393:36;1746:944;;;;;1351:1345;;:::o;2701:177::-;2780:13;;-1:-1:-1;;;;;2822:31:126;;2812:42;;2802:70;;2868:1;2865;2858:12;2802:70;2701:177;;;:::o;2883:293::-;2962:6;2970;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;3062:40;3092:9;3062:40;:::i;:::-;3052:50;;3121:49;3166:2;3155:9;3151:18;3121:49;:::i;:::-;3111:59;;2883:293;;;;;:::o;3389:208::-;3459:6;3512:2;3500:9;3491:7;3487:23;3483:32;3480:52;;;3528:1;3525;3518:12;3480:52;3551:40;3581:9;3551:40;:::i;:::-;3541:50;3389:208;-1:-1:-1;;;3389:208:126:o;:::-;327:2776:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100ef575f3560e01c80638da5cb5b11610087578063e1758bd811610057578063e1758bd8146102fe578063f2fde38b14610331578063f77e5dd314610350578063ff7bd03d1461037c575f80fd5b80638da5cb5b1461025d578063b4ab5dd114610286578063bb0b6a53146102a6578063ca5eb5e1146102df575f80fd5b8063715018a6116100c2578063715018a6146101a557806373d4a13a146101b95780637d25a05e146101da57806382413eac14610212575f80fd5b806313137d65146100f357806317442b70146101085780633400288b1461012e5780635e280f111461014d575b5f80fd5b610106610101366004610eee565b61039b565b005b348015610113575f80fd5b50604080516001815260026020820152015b60405180910390f35b348015610139575f80fd5b50610106610148366004610f9f565b61049a565b348015610158575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610125565b3480156101b0575f80fd5b506101066104b0565b3480156101c4575f80fd5b506101cd6104c3565b6040516101259190611028565b3480156101e5575f80fd5b506101f96101f4366004610f9f565b61054f565b60405167ffffffffffffffff9091168152602001610125565b34801561021d575f80fd5b5061024d61022c366004611041565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b6040519015158152602001610125565b348015610268575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610180565b610299610294366004611180565b610557565b60405161012591906111f9565b3480156102b1575f80fd5b506102d16102c036600461123b565b60016020525f908152604090205481565b604051908152602001610125565b3480156102ea575f80fd5b506101066102f9366004611254565b6105fd565b348015610309575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b34801561033c575f80fd5b5061010661034b366004611254565b6106a4565b34801561035b575f80fd5b5061036f61036a36600461126f565b610707565b60405161012591906112fd565b348015610387575f80fd5b5061024d610396366004611314565b610753565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610411576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061042b90610426908a61123b565b610787565b146104825761043d602088018861123b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610408565b610491878787878787876107db565b50505050505050565b6104a26107fe565b6104ac8282610850565b5050565b6104b86107fe565b6104c15f6108a4565b565b600280546104d09061132e565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc9061132e565b80156105475780601f1061051e57610100808354040283529160200191610547565b820191905f5260205f20905b81548152906001019060200180831161052a57829003601f168201915b505050505081565b5f5b92915050565b61055f610e2e565b5f856040516020016105719190611028565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020601f880181900481028401810190925286835292506105f291899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506109189050565b979650505050505050565b6106056107fe565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561068b575f80fd5b505af115801561069d573d5f803e3d5ffd5b5050505050565b6106ac6107fe565b73ffffffffffffffffffffffffffffffffffffffff81166106fb576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610408565b610704816108a4565b50565b604080518082019091525f80825260208201525f8460405160200161072c9190611028565b604051602081830303815290604052905061074986828686610a1a565b9695505050505050565b5f60208201803590600190839061076a908661123b565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f9081526001602052604081205480610551576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610408565b6107e784860186611379565b6002906107f490826113fc565b5050505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146104c1576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610408565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610920610e2e565b825161092b90610b05565b50602083015115610943576109438360200151610bd9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a4506040518060a001604052808963ffffffff16815260200161099f8a610787565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b81526004016109da929190611518565b6080604051808303815f875af11580156109f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107499190611608565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001610a8989610787565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401610abe929190611518565b6040805180830381865afa158015610ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afc9190611677565b95945050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b73576040517f8dce522700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085610cf4565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190611691565b905073ffffffffffffffffffffffffffffffffffffffff8116610cb6576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ac73ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000855b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610d89908590610d8f565b50505050565b5f8060205f8451602086015f885af180610dae576040513d5f823e3d81fd5b50505f513d91508115610dc5578060011415610ddf565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15610d89576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610408565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001610e6d60405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610e82575f80fd5b50919050565b5f8083601f840112610e98575f80fd5b50813567ffffffffffffffff811115610eaf575f80fd5b602083019150836020828501011115610ec6575f80fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610704575f80fd5b5f805f805f805f60e0888a031215610f04575f80fd5b610f0e8989610e72565b965060608801359550608088013567ffffffffffffffff80821115610f31575f80fd5b610f3d8b838c01610e88565b909750955060a08a01359150610f5282610ecd565b90935060c08901359080821115610f67575f80fd5b50610f748a828b01610e88565b989b979a50959850939692959293505050565b803563ffffffff81168114610f9a575f80fd5b919050565b5f8060408385031215610fb0575f80fd5b610fb983610f87565b946020939093013593505050565b5f81518084525f5b81811015610feb57602081850181015186830182015201610fcf565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61103a6020830184610fc7565b9392505050565b5f805f8060a08587031215611054575f80fd5b61105e8686610e72565b9350606085013567ffffffffffffffff811115611079575f80fd5b61108587828801610e88565b909450925050608085013561109981610ecd565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f67ffffffffffffffff808411156110eb576110eb6110a4565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611131576111316110a4565b81604052809350858152868686011115611149575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112611171575f80fd5b61103a838335602085016110d1565b5f805f805f60808688031215611194575f80fd5b61119d86610f87565b9450602086013567ffffffffffffffff808211156111b9575f80fd5b6111c589838a01611162565b955060408801359150808211156111da575f80fd5b506111e788828901610e88565b96999598509660600135949350505050565b5f6080820190508251825267ffffffffffffffff60208401511660208301526040830151611234604084018280518252602090810151910152565b5092915050565b5f6020828403121561124b575f80fd5b61103a82610f87565b5f60208284031215611264575f80fd5b813561103a81610ecd565b5f805f8060808587031215611282575f80fd5b61128b85610f87565b9350602085013567ffffffffffffffff808211156112a7575f80fd5b6112b388838901611162565b945060408701359150808211156112c8575f80fd5b508501601f810187136112d9575f80fd5b6112e8878235602084016110d1565b92505060608501358015158114611099575f80fd5b815181526020808301519082015260408101610551565b5f60608284031215611324575f80fd5b61103a8383610e72565b600181811c9082168061134257607f821691505b602082108103610e82577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215611389575f80fd5b813567ffffffffffffffff81111561139f575f80fd5b6113ab84828501611162565b949350505050565b601f8211156113f757805f5260205f20601f840160051c810160208510156113d85750805b601f840160051c820191505b8181101561069d575f81556001016113e4565b505050565b815167ffffffffffffffff811115611416576114166110a4565b61142a81611424845461132e565b846113b3565b602080601f83116001811461147c575f84156114465750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611510565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156114c8578886015182559484019460019091019084016114a9565b508582101561150457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261154d60e0840182610fc7565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526115888282610fc7565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156115cb575f80fd5b6040516040810181811067ffffffffffffffff821117156115ee576115ee6110a4565b604052825181526020928301519281019290925250919050565b5f60808284031215611618575f80fd5b6040516060810167ffffffffffffffff828210818311171561163c5761163c6110a4565b8160405284518352602085015191508082168214611658575f80fd5b50602082015261166b84604085016115bb565b60408201529392505050565b5f60408284031215611687575f80fd5b61103a83836115bb565b5f602082840312156116a1575f80fd5b815161103a81610ecd56fea264697066735822122058a5d1db4a3021da207c8d27434f623ddcca52c84230c6cb3a2de84acd6e170f64736f6c63430008160033","sourceMap":"327:2776:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4368:708:58;;;;;;:::i;:::-;;:::i;:::-;;1587:235:2;;;;;;;;;;-1:-1:-1;1587:235:2;;;843:1:59;1944:34:126;;678:1:58;2009:2:126;1994:18;;1987:43;1880:18;1587:235:2;;;;;;;;1724:108:57;;;;;;;;;;-1:-1:-1;1724:108:57;;;;;:::i;:::-;;:::i;446:46::-;;;;;;;;;;;;;;;;;;2671:42:126;2659:55;;;2641:74;;2629:2;2614:18;446:46:57;2466:255:126;2293:101:104;;;;;;;;;;;;;:::i;470:44:125:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3507:128:58:-;;;;;;;;;;-1:-1:-1;3507:128:58;;;;;:::i;:::-;;:::i;:::-;;;3612:18:126;3600:31;;;3582:50;;3570:2;3555:18;3507:128:58;3438:200:126;2013:216:58;;;;;;;;;;-1:-1:-1;2013:216:58;;;;;:::i;:::-;2198:24;;;2217:4;2198:24;2013:216;;;;;;;;;;4483:14:126;;4476:22;4458:41;;4446:2;4431:18;2013:216:58;4318:187:126;1638:85:104;;;;;;;;;;-1:-1:-1;1684:7:104;1710:6;;;1638:85;;981:363:125;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;569:48:57:-;;;;;;;;;;-1:-1:-1;569:48:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7596:25:126;;;7584:2;7569:18;569:48:57;7450:177:126;3252:105:57;;;;;;;;;;-1:-1:-1;3252:105:57;;;;;:::i;:::-;;:::i;742:36:3:-;;;;;;;;;;;;;;;2543:215:104;;;;;;;;;;-1:-1:-1;2543:215:104;;;;;:::i;:::-;;:::i;1835:307:125:-;;;;;;;;;;-1:-1:-1;1835:307:125;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2771:149:58:-;;;;;;;;;;-1:-1:-1;2771:149:58;;;;;:::i;:::-;;:::i;4368:708::-;4681:8;4673:31;;4694:10;4673:31;4669:68;;4713:24;;;;;4726:10;4713:24;;;2641:74:126;2614:18;;4713:24:58;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;;;;9503:10:126;9491:23;;;4896:40:58;;;9473:42:126;4921:14:58;;;;9531:18:126;;;9524:34;9446:18;;4896:40:58;9301:263:126;4833:103:58;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;1724:108:57:-;1531:13:104;:11;:13::i;:::-;1804:21:57::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;2293:101:104:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;470:44:125:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3507:128:58:-;3596:12;3507:128;;;;;:::o;981:363:125:-;1144:31;;:::i;:::-;1187:21;1222:8;1211:20;;;;;;;;:::i;:::-;;;;;;;;;;;;1251:86;;;;;;;;;;;;;;;;;;1211:20;-1:-1:-1;1251:86:125;;1259:7;;1211:20;;;1278:8;;;;;;1251:86;;1278:8;;;;1251:86;;;;;;;;-1:-1:-1;1288:27:125;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1325:10:125;;-1:-1:-1;1251:7:125;;-1:-1:-1;1251:86:125:i;:::-;1241:96;981:363;-1:-1:-1;;;;;;;981:363:125:o;3252:105:57:-;1531:13:104;:11;:13::i;:::-;3319:31:57::1;::::0;;;;:20:::1;2659:55:126::0;;;3319:31:57::1;::::0;::::1;2641:74:126::0;3319:8:57::1;:20;::::0;::::1;::::0;2614:18:126;;3319:31:57::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;2543:215:104:-;1531:13;:11;:13::i;:::-;2627:22:::1;::::0;::::1;2623:91;;2672:31;::::0;::::1;::::0;;2700:1:::1;2672:31;::::0;::::1;2641:74:126::0;2614:18;;2672:31:104::1;2466:255:126::0;2623:91:104::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1835:307:125:-;-1:-1:-1;;;;;;;;;;;;;;;;;2027:20:125;2061:8;2050:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2027:43;;2086:49;2093:7;2102;2111:8;2121:13;2086:6;:49::i;:::-;2080:55;1835:307;-1:-1:-1;;;;;;1835:307:125:o;2771:149:58:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:58;;:37;;2771:149;-1:-1:-1;;2771:149:58:o;2718:196:57:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;;;;10185:10:126;10173:23;;2874:12:57;;;10155:42:126;10128:18;;2874:12:57;10011:192:126;2838:263:125;3065:29;;;;3076:7;3065:29;:::i;:::-;3058:4;;:36;;:4;:36;:::i;:::-;;2838:263;;;;;;;:::o;1796:162:104:-;1684:7;1710:6;1855:23;1710:6;735:10:114;1855:23:104;1851:101;;1901:40;;;;;735:10:114;1901:40:104;;;2641:74:126;2614:18;;1901:40:104;2466:255:126;2286:134:57;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;9473:42:126;;;9531:18;;9524:34;;;2393:20:57;;9446:18:126;2393:20:57;;;;;;;2286:134;;:::o;2912:187:104:-;2985:16;3004:6;;;3020:17;;;;;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1658:721:3:-;1860:31;;:::i;:::-;2036:14;;2025:26;;:10;:26::i;:::-;-1:-1:-1;2065:15:3;;;;:19;2061:53;;2086:28;2098:4;:15;;;2086:11;:28::i;:::-;2203:8;:13;;;2234:92;;;;;;;;2250:7;2234:92;;;;;;2259:25;2276:7;2259:16;:25::i;:::-;2234:92;;;;2286:8;2234:92;;;;2296:8;2234:92;;;;2324:1;2306:4;:15;;;:19;2234:92;;;;;2344:14;2203:169;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2038:391:59:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:59;:14;;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:182;2038:391;-1:-1:-1;;;;;2038:391:59:o;3014:350:3:-;3081:17;3114:11;:25;;3110:62;;3148:24;;;;;;;;;;;;;;3110:62;3250:79;:36;3257:11;3250:36;3287:10;3307:8;3318:10;3250:36;:79::i;:::-;-1:-1:-1;3347:10:3;3014:350::o;5218:410:59:-;5371:15;5389:8;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;5421:21:59;;;5417:54;;5451:20;;;;;;;;;;;;;;5417:54;5545:76;:32;;;5578:10;5598:8;5609:11;1670:188:112;1797:53;;;1812:18;15878:15:126;;;1797:53:112;;;15860:34:126;15930:15;;15910:18;;;15903:43;15962:18;;;;15955:34;;;1797:53:112;;;;;;;;;;15772:18:126;;;;1797:53:112;;;;;;;;;;;;;;1770:81;;1790:5;;1770:19;:81::i;:::-;1670:188;;;;:::o;7738:720::-;7818:18;7846:19;7984:4;7981:1;7974:4;7968:11;7961:4;7955;7951:15;7948:1;7941:5;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:112;8278:8;8234:16;;-1:-1:-1;8310:15:112;;:68;;8362:11;8377:1;8362:16;;8310:68;;;8328:26;;;;:31;8310:68;8306:146;;;8401:40;;;;;2671:42:126;2659:55;;8401:40:112;;;2641:74:126;2614:18;;8401:40:112;2466:255:126;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:126:-;73:5;118:2;109:6;104:3;100:16;96:25;93:45;;;134:1;131;124:12;93:45;-1:-1:-1;156:6:126;14:154;-1:-1:-1;14:154:126:o;173:347::-;224:8;234:6;288:3;281:4;273:6;269:17;265:27;255:55;;306:1;303;296:12;255:55;-1:-1:-1;329:20:126;;372:18;361:30;;358:50;;;404:1;401;394:12;358:50;441:4;433:6;429:17;417:29;;493:3;486:4;477:6;469;465:19;461:30;458:39;455:59;;;510:1;507;500:12;455:59;173:347;;;;;:::o;525:154::-;611:42;604:5;600:54;593:5;590:65;580:93;;669:1;666;659:12;684:1048;827:6;835;843;851;859;867;875;928:3;916:9;907:7;903:23;899:33;896:53;;;945:1;942;935:12;896:53;968;1013:7;1002:9;968:53;:::i;:::-;958:63;;1068:2;1057:9;1053:18;1040:32;1030:42;;1123:3;1112:9;1108:19;1095:33;1147:18;1188:2;1180:6;1177:14;1174:34;;;1204:1;1201;1194:12;1174:34;1243:58;1293:7;1284:6;1273:9;1269:22;1243:58;:::i;:::-;1320:8;;-1:-1:-1;1217:84:126;-1:-1:-1;1405:3:126;1390:19;;1377:33;;-1:-1:-1;1419:31:126;1377:33;1419:31;:::i;:::-;1469:5;;-1:-1:-1;1527:3:126;1512:19;;1499:33;;1544:16;;;1541:36;;;1573:1;1570;1563:12;1541:36;;1612:60;1664:7;1653:8;1642:9;1638:24;1612:60;:::i;:::-;684:1048;;;;-1:-1:-1;684:1048:126;;-1:-1:-1;684:1048:126;;;;1586:86;;-1:-1:-1;;;684:1048:126:o;2041:163::-;2108:20;;2168:10;2157:22;;2147:33;;2137:61;;2194:1;2191;2184:12;2137:61;2041:163;;;:::o;2209:252::-;2276:6;2284;2337:2;2325:9;2316:7;2312:23;2308:32;2305:52;;;2353:1;2350;2343:12;2305:52;2376:28;2394:9;2376:28;:::i;:::-;2366:38;2451:2;2436:18;;;;2423:32;;-1:-1:-1;;;2209:252:126:o;2726:482::-;2768:3;2806:5;2800:12;2833:6;2828:3;2821:19;2858:1;2868:162;2882:6;2879:1;2876:13;2868:162;;;2944:4;3000:13;;;2996:22;;2990:29;2972:11;;;2968:20;;2961:59;2897:12;2868:162;;;2872:3;3075:1;3068:4;3059:6;3054:3;3050:16;3046:27;3039:38;3197:4;3127:66;3122:2;3114:6;3110:15;3106:88;3101:3;3097:98;3093:109;3086:116;;;2726:482;;;;:::o;3213:220::-;3362:2;3351:9;3344:21;3325:4;3382:45;3423:2;3412:9;3408:18;3400:6;3382:45;:::i;:::-;3374:53;3213:220;-1:-1:-1;;;3213:220:126:o;3643:670::-;3757:6;3765;3773;3781;3834:3;3822:9;3813:7;3809:23;3805:33;3802:53;;;3851:1;3848;3841:12;3802:53;3874;3919:7;3908:9;3874:53;:::i;:::-;3864:63;;3978:2;3967:9;3963:18;3950:32;4005:18;3997:6;3994:30;3991:50;;;4037:1;4034;4027:12;3991:50;4076:58;4126:7;4117:6;4106:9;4102:22;4076:58;:::i;:::-;4153:8;;-1:-1:-1;4050:84:126;-1:-1:-1;;4238:3:126;4223:19;;4210:33;4252:31;4210:33;4252:31;:::i;:::-;3643:670;;;;-1:-1:-1;3643:670:126;;-1:-1:-1;;3643:670:126:o;4741:184::-;4793:77;4790:1;4783:88;4890:4;4887:1;4880:15;4914:4;4911:1;4904:15;4930:691;4995:5;5025:18;5066:2;5058:6;5055:14;5052:40;;;5072:18;;:::i;:::-;5206:2;5200:9;5272:2;5260:15;;5111:66;5256:24;;;5282:2;5252:33;5248:42;5236:55;;;5306:18;;;5326:22;;;5303:46;5300:72;;;5352:18;;:::i;:::-;5392:10;5388:2;5381:22;5421:6;5412:15;;5451:6;5443;5436:22;5491:3;5482:6;5477:3;5473:16;5470:25;5467:45;;;5508:1;5505;5498:12;5467:45;5558:6;5553:3;5546:4;5538:6;5534:17;5521:44;5613:1;5606:4;5597:6;5589;5585:19;5581:30;5574:41;;;;4930:691;;;;;:::o;5626:222::-;5669:5;5722:3;5715:4;5707:6;5703:17;5699:27;5689:55;;5740:1;5737;5730:12;5689:55;5762:80;5838:3;5829:6;5816:20;5809:4;5801:6;5797:17;5762:80;:::i;5853:771::-;5959:6;5967;5975;5983;5991;6044:3;6032:9;6023:7;6019:23;6015:33;6012:53;;;6061:1;6058;6051:12;6012:53;6084:28;6102:9;6084:28;:::i;:::-;6074:38;;6163:2;6152:9;6148:18;6135:32;6186:18;6227:2;6219:6;6216:14;6213:34;;;6243:1;6240;6233:12;6213:34;6266:50;6308:7;6299:6;6288:9;6284:22;6266:50;:::i;:::-;6256:60;;6369:2;6358:9;6354:18;6341:32;6325:48;;6398:2;6388:8;6385:16;6382:36;;;6414:1;6411;6404:12;6382:36;;6453:60;6505:7;6494:8;6483:9;6479:24;6453:60;:::i;:::-;5853:771;;;;-1:-1:-1;6532:8:126;6614:2;6599:18;6586:32;;5853:771;-1:-1:-1;;;;5853:771:126:o;6787:469::-;6947:4;6989:3;6978:9;6974:19;6966:27;;7026:6;7020:13;7009:9;7002:32;7102:18;7094:4;7086:6;7082:17;7076:24;7072:49;7065:4;7054:9;7050:20;7043:79;7169:4;7161:6;7157:17;7151:24;7184:66;7244:4;7233:9;7229:20;7215:12;6707;;6695:25;;6769:4;6758:16;;;6752:23;6736:14;;6729:47;6629:153;7184:66;;6787:469;;;;:::o;7261:184::-;7319:6;7372:2;7360:9;7351:7;7347:23;7343:32;7340:52;;;7388:1;7385;7378:12;7340:52;7411:28;7429:9;7411:28;:::i;7632:247::-;7691:6;7744:2;7732:9;7723:7;7719:23;7715:32;7712:52;;;7760:1;7757;7750:12;7712:52;7799:9;7786:23;7818:31;7843:5;7818:31;:::i;7884:905::-;7985:6;7993;8001;8009;8062:3;8050:9;8041:7;8037:23;8033:33;8030:53;;;8079:1;8076;8069:12;8030:53;8102:28;8120:9;8102:28;:::i;:::-;8092:38;;8181:2;8170:9;8166:18;8153:32;8204:18;8245:2;8237:6;8234:14;8231:34;;;8261:1;8258;8251:12;8231:34;8284:50;8326:7;8317:6;8306:9;8302:22;8284:50;:::i;:::-;8274:60;;8387:2;8376:9;8372:18;8359:32;8343:48;;8416:2;8406:8;8403:16;8400:36;;;8432:1;8429;8422:12;8400:36;-1:-1:-1;8455:24:126;;8510:4;8502:13;;8498:27;-1:-1:-1;8488:55:126;;8539:1;8536;8529:12;8488:55;8562:74;8628:7;8623:2;8610:16;8605:2;8601;8597:11;8562:74;:::i;:::-;8552:84;;;8686:2;8675:9;8671:18;8658:32;8733:5;8726:13;8719:21;8712:5;8709:32;8699:60;;8755:1;8752;8745:12;8794:261;6707:12;;6695:25;;6769:4;6758:16;;;6752:23;6736:14;;;6729:47;8988:2;8973:18;;9000:49;6629:153;9060:236;9145:6;9198:2;9186:9;9177:7;9173:23;9169:32;9166:52;;;9214:1;9211;9204:12;9166:52;9237:53;9282:7;9271:9;9237:53;:::i;9569:437::-;9648:1;9644:12;;;;9691;;;9712:61;;9766:4;9758:6;9754:17;9744:27;;9712:61;9819:2;9811:6;9808:14;9788:18;9785:38;9782:218;;9856:77;9853:1;9846:88;9957:4;9954:1;9947:15;9985:4;9982:1;9975:15;10208:322;10277:6;10330:2;10318:9;10309:7;10305:23;10301:32;10298:52;;;10346:1;10343;10336:12;10298:52;10386:9;10373:23;10419:18;10411:6;10408:30;10405:50;;;10451:1;10448;10441:12;10405:50;10474;10516:7;10507:6;10496:9;10492:22;10474:50;:::i;:::-;10464:60;10208:322;-1:-1:-1;;;;10208:322:126:o;10661:518::-;10763:2;10758:3;10755:11;10752:421;;;10799:5;10796:1;10789:16;10843:4;10840:1;10830:18;10913:2;10901:10;10897:19;10894:1;10890:27;10884:4;10880:38;10949:4;10937:10;10934:20;10931:47;;;-1:-1:-1;10972:4:126;10931:47;11027:2;11022:3;11018:12;11015:1;11011:20;11005:4;11001:31;10991:41;;11082:81;11100:2;11093:5;11090:13;11082:81;;;11159:1;11145:16;;11126:1;11115:13;11082:81;;10752:421;10661:518;;;:::o;11415:1464::-;11541:3;11535:10;11568:18;11560:6;11557:30;11554:56;;;11590:18;;:::i;:::-;11619:97;11709:6;11669:38;11701:4;11695:11;11669:38;:::i;:::-;11663:4;11619:97;:::i;:::-;11771:4;;11828:2;11817:14;;11845:1;11840:782;;;;12666:1;12683:6;12680:89;;;-1:-1:-1;12735:19:126;;;12729:26;12680:89;11321:66;11312:1;11308:11;;;11304:84;11300:89;11290:100;11396:1;11392:11;;;11287:117;12782:81;;11810:1063;;11840:782;10608:1;10601:14;;;10645:4;10632:18;;11888:66;11876:79;;;12053:236;12067:7;12064:1;12061:14;12053:236;;;12156:19;;;12150:26;12135:42;;12248:27;;;;12216:1;12204:14;;;;12083:19;;12053:236;;;12057:3;12317:6;12308:7;12305:19;12302:261;;;12378:19;;;12372:26;12479:66;12461:1;12457:14;;;12473:3;12453:24;12449:97;12445:102;12430:118;12415:134;;12302:261;;;12609:1;12600:6;12597:1;12593:14;12589:22;12583:4;12576:36;11810:1063;;;;;11415:1464;;:::o;12884:973::-;13107:2;13096:9;13089:21;13165:10;13156:6;13150:13;13146:30;13141:2;13130:9;13126:18;13119:58;13231:4;13223:6;13219:17;13213:24;13208:2;13197:9;13193:18;13186:52;13070:4;13285:2;13277:6;13273:15;13267:22;13326:4;13320:3;13309:9;13305:19;13298:33;13354:52;13401:3;13390:9;13386:19;13372:12;13354:52;:::i;:::-;13340:66;;13455:2;13447:6;13443:15;13437:22;13525:66;13513:9;13505:6;13501:22;13497:95;13490:4;13479:9;13475:20;13468:125;13616:41;13650:6;13634:14;13616:41;:::i;:::-;13726:3;13714:16;;;;13708:23;13701:31;13694:39;13688:3;13673:19;;13666:68;-1:-1:-1;;;13807:42:126;13795:55;;;;13788:4;13773:20;;;13766:85;13602:55;12884:973::o;13862:478::-;13932:5;13980:4;13968:9;13963:3;13959:19;13955:30;13952:50;;;13998:1;13995;13988:12;13952:50;14031:4;14025:11;14075:4;14067:6;14063:17;14146:6;14134:10;14131:22;14110:18;14098:10;14095:34;14092:62;14089:88;;;14157:18;;:::i;:::-;14193:4;14186:24;14258:16;;14243:32;;14329:2;14314:18;;;14308:25;14291:15;;;14284:50;;;;-1:-1:-1;14228:6:126;13862:478;-1:-1:-1;13862:478:126:o;14345:727::-;14449:6;14502:3;14490:9;14481:7;14477:23;14473:33;14470:53;;;14519:1;14516;14509:12;14470:53;14552:2;14546:9;14594:4;14586:6;14582:17;14618:18;14686:6;14674:10;14671:22;14666:2;14654:10;14651:18;14648:46;14645:72;;;14697:18;;:::i;:::-;14737:10;14733:2;14726:22;14778:9;14772:16;14764:6;14757:32;14832:2;14821:9;14817:18;14811:25;14798:38;;14876:2;14869:5;14865:14;14858:5;14855:25;14845:53;;14894:1;14891;14884:12;14845:53;-1:-1:-1;14926:2:126;14914:15;;14907:30;14970:70;15032:7;15027:2;15012:18;;14970:70;:::i;:::-;14965:2;14953:15;;14946:95;14957:6;14345:727;-1:-1:-1;;;14345:727:126:o;15077:259::-;15177:6;15230:2;15218:9;15209:7;15205:23;15201:32;15198:52;;;15246:1;15243;15236:12;15198:52;15269:61;15322:7;15311:9;15269:61;:::i;15341:251::-;15411:6;15464:2;15452:9;15443:7;15439:23;15435:32;15432:52;;;15480:1;15477;15470:12;15432:52;15512:9;15506:16;15531:31;15556:5;15531:31;:::i","linkReferences":{},"immutableReferences":{"11250":[{"start":350,"length":32},{"start":925,"length":32},{"start":1610,"length":32},{"start":2373,"length":32},{"start":2607,"length":32},{"start":2992,"length":32},{"start":3036,"length":32},{"start":3283,"length":32}],"281":[{"start":783,"length":32},{"start":2824,"length":32},{"start":2957,"length":32}]}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","data()":"73d4a13a","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nativeToken()":"e1758bd8","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","quote(uint32,string,bytes,bool)":"f77e5dd3","renounceOwnership()":"715018a6","send(uint32,string,bytes,uint256)":"b4ab5dd1","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"data\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_nativeFee\",\"type\":\"uint256\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"receipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSenderAlt.sol implementation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quote(uint32,string,bytes,bool)\":{\"params\":{\"_dstEid\":\"Destination chain's endpoint ID.\",\"_message\":\"The message.\",\"_options\":\"Message execution options (e.g., for sending gas to destination).\",\"_payInLzToken\":\"Whether to return fee in ZRO token.\"},\"returns\":{\"fee\":\"A `MessagingFee` struct containing the calculated gas fee in either the native token or ZRO token.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send(uint32,string,bytes,uint256)\":{\"details\":\"Encodes the message as bytes and sends it using the `_lzSend` internal function.\",\"params\":{\"_dstEid\":\"The endpoint ID of the destination chain.\",\"_message\":\"The message string to be sent.\",\"_options\":\"Additional options for message execution.\"},\"returns\":{\"receipt\":\"A `MessagingReceipt` struct containing details of the message sent.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OAppAlt version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quote(uint32,string,bytes,bool)\":{\"notice\":\"Quotes the gas needed to pay for the full omnichain transaction in native gas or ZRO token.\"},\"send(uint32,string,bytes,uint256)\":{\"notice\":\"Sends a message from the source chain to a destination chain.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/OAppAltMock.sol\":\"MyOAppAlt\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/oapp/OAppAlt.sol\":{\"keccak256\":\"0xbe02609f15066d507c857389271a1bc0935a201a91adc4402eac957a353975f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df92bda5b2954f96f8055a6f2abc5aa08ae4811eea2fd4516d539352230dbcea\",\"dweb:/ipfs/QmdX84h7wvKZ3aN5HPRPZTr8vwXXTVR6RY79KbiDSdModG\"]},\"contracts/oapp/OAppSenderAlt.sol\":{\"keccak256\":\"0x11529dbd763b4747456acf675c8f654917191b76c6a268d546156e1dae3c455c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://965be92eb9f5a6aa531cad66c8142c42a3e08b9a0b2ad6f8c443af8d4919d642\",\"dweb:/ipfs/QmXwCTxzn7Xcs8qQSfvGLwc1iPZ1LUn3deeu4m8cmdodsR\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"test/mocks/OAppAltMock.sol\":{\"keccak256\":\"0xcdd26c32056e31bde3f48d11db365c4e3aa8e4e76ee6b966218a8682e150787c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ecb5da2324869af5e386c1c21abe1744d06ed7ea571612987217fedd1dee66\",\"dweb:/ipfs/QmVbDb8iU5ciDEbS2zFVZs7PnyGzLbgg4WqStAZ8WpkgaB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_endpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[],"type":"error","name":"NativeTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"data","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_nativeFee","type":"uint256"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"receipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSenderAlt.sol implementation."}},"owner()":{"details":"Returns the address of the current owner."},"quote(uint32,string,bytes,bool)":{"params":{"_dstEid":"Destination chain's endpoint ID.","_message":"The message.","_options":"Message execution options (e.g., for sending gas to destination).","_payInLzToken":"Whether to return fee in ZRO token."},"returns":{"fee":"A `MessagingFee` struct containing the calculated gas fee in either the native token or ZRO token."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send(uint32,string,bytes,uint256)":{"details":"Encodes the message as bytes and sends it using the `_lzSend` internal function.","params":{"_dstEid":"The endpoint ID of the destination chain.","_message":"The message string to be sent.","_options":"Additional options for message execution."},"returns":{"receipt":"A `MessagingReceipt` struct containing details of the message sent."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OAppAlt version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quote(uint32,string,bytes,bool)":{"notice":"Quotes the gas needed to pay for the full omnichain transaction in native gas or ZRO token."},"send(uint32,string,bytes,uint256)":{"notice":"Sends a message from the source chain to a destination chain."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/OAppAltMock.sol":"MyOAppAlt"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/oapp/OAppAlt.sol":{"keccak256":"0xbe02609f15066d507c857389271a1bc0935a201a91adc4402eac957a353975f7","urls":["bzz-raw://df92bda5b2954f96f8055a6f2abc5aa08ae4811eea2fd4516d539352230dbcea","dweb:/ipfs/QmdX84h7wvKZ3aN5HPRPZTr8vwXXTVR6RY79KbiDSdModG"],"license":"MIT"},"contracts/oapp/OAppSenderAlt.sol":{"keccak256":"0x11529dbd763b4747456acf675c8f654917191b76c6a268d546156e1dae3c455c","urls":["bzz-raw://965be92eb9f5a6aa531cad66c8142c42a3e08b9a0b2ad6f8c443af8d4919d642","dweb:/ipfs/QmXwCTxzn7Xcs8qQSfvGLwc1iPZ1LUn3deeu4m8cmdodsR"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"test/mocks/OAppAltMock.sol":{"keccak256":"0xcdd26c32056e31bde3f48d11db365c4e3aa8e4e76ee6b966218a8682e150787c","urls":["bzz-raw://d0ecb5da2324869af5e386c1c21abe1744d06ed7ea571612987217fedd1dee66","dweb:/ipfs/QmVbDb8iU5ciDEbS2zFVZs7PnyGzLbgg4WqStAZ8WpkgaB"],"license":"MIT"}},"version":1},"id":125}