{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"addOwnerWithThreshold","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveHash","inputs":[{"name":"hashToApprove","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approvedHashes","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"changeThreshold","inputs":[{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkNSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"requiredSignatures","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"checkSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"disableModule","inputs":[{"name":"prevModule","type":"address","internalType":"address"},{"name":"module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"enableModule","inputs":[{"name":"module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"encodeTransactionData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"execTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address payable"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"execTransactionFromModule","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execTransactionFromModuleReturnData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getModulesPaginated","inputs":[{"name":"start","type":"address","internalType":"address"},{"name":"pageSize","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"array","type":"address[]","internalType":"address[]"},{"name":"next","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getStorageAt","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTransactionHash","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isModuleEnabled","inputs":[{"name":"module","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"removeOwner","inputs":[{"name":"prevOwner","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requiredTxGas","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setFallbackHandler","inputs":[{"name":"handler","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGuard","inputs":[{"name":"guard","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setup","inputs":[{"name":"_owners","type":"address[]","internalType":"address[]"},{"name":"_threshold","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fallbackHandler","type":"address","internalType":"address"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"payment","type":"uint256","internalType":"uint256"},{"name":"paymentReceiver","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"simulateAndRevert","inputs":[{"name":"targetContract","type":"address","internalType":"address"},{"name":"calldataPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapOwner","inputs":[{"name":"prevOwner","type":"address","internalType":"address"},{"name":"oldOwner","type":"address","internalType":"address"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddedOwner","inputs":[{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ApproveHash","inputs":[{"name":"approvedHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedFallbackHandler","inputs":[{"name":"handler","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedGuard","inputs":[{"name":"guard","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedThreshold","inputs":[{"name":"threshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DisabledModule","inputs":[{"name":"module","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EnabledModule","inputs":[{"name":"module","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionFailure","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payment","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecutionFromModuleFailure","inputs":[{"name":"module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionFromModuleSuccess","inputs":[{"name":"module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionSuccess","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payment","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RemovedOwner","inputs":[{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SafeReceived","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SafeSetup","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"owners","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"threshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"initializer","type":"address","indexed":false,"internalType":"address"},{"name":"fallbackHandler","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SignMsg","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506001600455613e76806100225f395ff3fe6080604052600436106101db575f3560e01c8063affed0e011610101578063e19a9dd911610094578063f08a032311610063578063f08a0323146105fc578063f698da251461061b578063f8dc5dd914610680578063ffa1ad741461069f57610217565b8063e19a9dd91461058b578063e318b52b146105aa578063e75235b8146105c9578063e86637db146105dd57610217565b8063cc2f8452116100d0578063cc2f845214610501578063d4d9bdcd1461052e578063d8d11f781461054d578063e009cfde1461056c57610217565b8063affed0e01461048f578063b4faba09146104a4578063b63e800d146104c3578063c4ca3a9c146104e257610217565b80635624b25b116101795780636a761202116101485780636a761202146104065780637d83297414610419578063934f3a111461044f578063a0e67e2b1461046e57610217565b80635624b25b146103715780635ae6bd371461039d578063610b5925146103c8578063694e80c3146103e757610217565b80632f54bf6e116101b55780632f54bf6e146102ea5780633408e47014610309578063468721a7146103255780635229073f1461034457610217565b80630d582f131461027657806312fb68e0146102975780632d9ad53d146102b657610217565b366102175760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b348015610222575f80fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d580548061024d57005b365f80373360601b36525f80601436015f80855af190503d5f803e80610271573d5ffd5b503d5ff35b348015610281575f80fd5b5061029561029036600461323a565b6106e7565b005b3480156102a2575f80fd5b506102956102b1366004613338565b61093b565b3480156102c1575f80fd5b506102d56102d03660046133a8565b610f82565b60405190151581526020015b60405180910390f35b3480156102f5575f80fd5b506102d56103043660046133a8565b610fd5565b348015610314575f80fd5b50465b6040519081526020016102e1565b348015610330575f80fd5b506102d561033f3660046133d1565b611025565b34801561034f575f80fd5b5061036361035e3660046133d1565b611137565b6040516102e1929190613498565b34801561037c575f80fd5b5061039061038b3660046134b2565b61116b565b6040516102e191906134d2565b3480156103a8575f80fd5b506103176103b73660046134e4565b60076020525f908152604090205481565b3480156103d3575f80fd5b506102956103e23660046133a8565b6111ef565b3480156103f2575f80fd5b506102956104013660046134e4565b6113df565b6102d5610414366004613540565b6114f3565b348015610424575f80fd5b5061031761043336600461323a565b600860209081525f928352604080842090915290825290205481565b34801561045a575f80fd5b50610295610469366004613610565b6118db565b348015610479575f80fd5b50610482611957565b6040516102e191906136c7565b34801561049a575f80fd5b5061031760055481565b3480156104af575f80fd5b506102956104be3660046136d9565b611a6c565b3480156104ce575f80fd5b506102956104dd366004613726565b611a8b565b3480156104ed575f80fd5b506103176104fc366004613810565b611bc3565b34801561050c575f80fd5b5061052061051b36600461323a565b611c91565b6040516102e192919061387c565b348015610539575f80fd5b506102956105483660046134e4565b611dbc565b348015610558575f80fd5b506103176105673660046138b3565b611e8e565b348015610577575f80fd5b5061029561058636600461396c565b611eba565b348015610596575f80fd5b506102956105a53660046133a8565b612097565b3480156105b5575f80fd5b506102956105c43660046139a3565b612109565b3480156105d4575f80fd5b50600454610317565b3480156105e8575f80fd5b506103906105f73660046138b3565b612492565b348015610607575f80fd5b506102956106163660046133a8565b612628565b348015610626575f80fd5b506103175f7f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b34801561068b575f80fd5b5061029561069a3660046139eb565b61269e565b3480156106aa575f80fd5b506103906040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b6106ef61292e565b73ffffffffffffffffffffffffffffffffffffffff82161580159061072b575073ffffffffffffffffffffffffffffffffffffffff8216600114155b801561074d575073ffffffffffffffffffffffffffffffffffffffff82163014155b6107b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8281165f908152600260205260409020541615610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107af565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805473ffffffffffffffffffffffffffffffffffffffff8481165f818152604081208054939094167fffffffffffffffffffffffff0000000000000000000000000000000000000000938416179093556001835283549091161790915560038054916108d783613a56565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1806004541461093757610937816113df565b5050565b610946816041612999565b825110156109b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323000000000000000000000000000000000000000000000000000000060448201526064016107af565b5f80805f805f5b86811015610f76576041818102890160208101516040820151919092015160ff16955090935091505f849003610c8b5791935083916109f7876041612999565b821015610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323100000000000000000000000000000000000000000000000000000060448201526064016107af565b8751610a6d8360206129d0565b1115610ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323200000000000000000000000000000000000000000000000000000060448201526064016107af565b602082890181015189519091610af8908390610af29087906129d0565b906129d0565b1115610b60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323300000000000000000000000000000000000000000000000000000060448201526064016107af565b6040517f20c13b0b000000000000000000000000000000000000000000000000000000008082528a85016020019173ffffffffffffffffffffffffffffffffffffffff8916906320c13b0b90610bbc908f908690600401613a8d565b602060405180830381865afa158015610bd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfb9190613ab1565b7fffffffff000000000000000000000000000000000000000000000000000000001614610c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323400000000000000000000000000000000000000000000000000000060448201526064016107af565b5050610e77565b8360ff16600103610d585791935083913373ffffffffffffffffffffffffffffffffffffffff84161480610ced575073ffffffffffffffffffffffffffffffffffffffff85165f9081526008602090815260408083208d845290915290205415155b610d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323500000000000000000000000000000000000000000000000000000060448201526064016107af565b610e77565b601e8460ff161115610e1a576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610dbd9190613af0565b604080515f8152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e09573d5f803e3d5ffd5b505050602060405103519450610e77565b604080515f8152602081018083528c905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610e6a573d5f803e3d5ffd5b5050506020604051035194505b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16118015610ed7575073ffffffffffffffffffffffffffffffffffffffff8581165f908152600260205260409020541615155b8015610efa575073ffffffffffffffffffffffffffffffffffffffff8516600114155b610f60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323600000000000000000000000000000000000000000000000000000060448201526064016107af565b8495508080610f6e90613a56565b9150506109b7565b50505050505050505050565b5f600173ffffffffffffffffffffffffffffffffffffffff831614801590610fcf575073ffffffffffffffffffffffffffffffffffffffff8281165f908152600160205260409020541615155b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff8216600114801590610fcf57505073ffffffffffffffffffffffffffffffffffffffff9081165f9081526002602052604090205416151590565b5f3360011480159061105a5750335f9081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b6110c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064016107af565b6110cd858585855a6129ea565b905080156111045760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8905f90a261112f565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375905f90a25b949350505050565b5f606061114686868686611025565b915060405160203d0181016040523d81523d5f602083013e8091505094509492505050565b60605f611179836020613b09565b67ffffffffffffffff81111561119157611191613264565b6040519080825280601f01601f1916602001820160405280156111bb576020820181803683370190505b5090505f5b838110156111e75784810154602080830284010152806111df81613a56565b9150506111c0565b509392505050565b6111f761292e565b73ffffffffffffffffffffffffffffffffffffffff811615801590611233575073ffffffffffffffffffffffffffffffffffffffff8116600114155b611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600160205260409020541615611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303200000000000000000000000000000000000000000000000000000060448201526064016107af565b600160208181527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805473ffffffffffffffffffffffffffffffffffffffff8581165f81815260408082208054949095167fffffffffffffffffffffffff000000000000000000000000000000000000000094851617909455959095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091015b60405180910390a150565b6113e761292e565b600354811115611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107af565b60018110156114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107af565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c93906020016113d4565b5f805f61150b8e8e8e8e8e8e8e8e8e8e600554612492565b600580549192505f61151c83613a56565b90915550508051602082012091506115358282866118db565b505f61155f7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b905073ffffffffffffffffffffffffffffffffffffffff8116156115fa578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b81526004016115cc9c9b9a99989796959493929190613b86565b5f604051808303815f87803b1580156115e3575f80fd5b505af11580156115f5573d5f803e3d5ffd5b505050505b6116266116098a6109c4613c9a565b603f6116168c6040613b09565b6116209190613cad565b90612a2e565b611632906101f4613c9a565b5a101561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313000000000000000000000000000000000000000000000000000000060448201526064016107af565b5f5a90506117098f8f8f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508e8c5f146116f6578e6129ea565b6109c45a6117049190613ce5565b6129ea565b93506117165a8290612a44565b9050838061172357508915155b8061172d57508715155b611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313300000000000000000000000000000000000000000000000000000060448201526064016107af565b5f88156117aa576117a7828b8b8b8b612a5c565b90505b84156117ee5760408051858152602081018390527f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e910160405180910390a1611828565b60408051858152602081018390527f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23910160405180910390a15b505073ffffffffffffffffffffffffffffffffffffffff8116156118ca576040517f9327136800000000000000000000000000000000000000000000000000000000815260048101839052831515602482015273ffffffffffffffffffffffffffffffffffffffff8216906393271368906044015f604051808303815f87803b1580156118b3575f80fd5b505af11580156118c5573d5f803e3d5ffd5b505050505b50509b9a5050505050505050505050565b60045480611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303100000000000000000000000000000000000000000000000000000060448201526064016107af565b6119518484848461093b565b50505050565b60605f60035467ffffffffffffffff81111561197557611975613264565b60405190808252806020026020018201604052801561199e578160200160208202803683370190505b5060015f90815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0549192509073ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8116600114611a645780838381518110611a1857611a18613cf8565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091529181165f90815260029092526040909120541681611a5c81613a56565b9250506119e7565b509092915050565b5f80825160208401855af4805f52503d6020523d5f60403e60403d015ffd5b611ac88a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c9250612beb915050565b73ffffffffffffffffffffffffffffffffffffffff841615611b0c57611b0c847f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b611b4b8787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612fb292505050565b8115611b6157611b5f825f60018685612a5c565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611baf959493929190613d25565b60405180910390a250505050505050505050565b5f805a9050611c0a878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925050505a6129ea565b611c12575f80fd5b5f5a611c1e9083613ce5565b905080604051602001611c3391815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526107af916004016134d2565b60605f8267ffffffffffffffff811115611cad57611cad613264565b604051908082528060200260200182016040528015611cd6578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8086165f9081526001602052604081205492945091165b73ffffffffffffffffffffffffffffffffffffffff811615801590611d3f575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015611d4a57508482105b15611dae5780848381518110611d6257611d62613cf8565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091529181165f90815260019092526040909120541681611da681613a56565b925050611d03565b908352919491935090915050565b335f9081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16611e47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333000000000000000000000000000000000000000000000000000000060448201526064016107af565b335f818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b5f611ea28c8c8c8c8c8c8c8c8c8c8c612492565b8051906020012090509b9a5050505050505050505050565b611ec261292e565b73ffffffffffffffffffffffffffffffffffffffff811615801590611efe575073ffffffffffffffffffffffffffffffffffffffff8116600114155b611f64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8281165f90815260016020526040902054811690821614611ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f818152600160209081526040808320805488871685528285208054919097167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427691015b60405180910390a15050565b61209f61292e565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c881815560405173ffffffffffffffffffffffffffffffffffffffff831681527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29060200161208b565b61211161292e565b73ffffffffffffffffffffffffffffffffffffffff81161580159061214d575073ffffffffffffffffffffffffffffffffffffffff8116600114155b801561216f575073ffffffffffffffffffffffffffffffffffffffff81163014155b6121d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600260205260409020541615612263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff82161580159061229f575073ffffffffffffffffffffffffffffffffffffffff8216600114155b612305576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8381165f90815260026020526040902054811690831614612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8281165f818152600260209081526040808320805487871680865283862080549289167fffffffffffffffffffffffff0000000000000000000000000000000000000000938416179055968a1685528285208054821690971790965592849052825490941690915591519081527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf910160405180910390a160405173ffffffffffffffffffffffffffffffffffffffff821681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1505050565b60605f7fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d85f1b8d8d8d8d6040516124ca929190613daa565b6040519081900381206124f0949392918e908e908e908e908e908e908e90602001613db9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090507f19000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000006125c35f7f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b6040517fff0000000000000000000000000000000000000000000000000000000000000093841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b61263061292e565b612658817f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60405173ffffffffffffffffffffffffffffffffffffffff821681527f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b0906020016113d4565b6126a661292e565b8060016003546126b69190613ce5565b101561271e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff82161580159061275a575073ffffffffffffffffffffffffffffffffffffffff8216600114155b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8381165f90815260026020526040902054811690831614612852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8281165f81815260026020526040808220805488861684529183208054929095167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909455918152825490911690915560038054916128c983613e35565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9060200160405180910390a1806004541461292957612929816113df565b505050565b333014612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333100000000000000000000000000000000000000000000000000000060448201526064016107af565b565b5f825f036129a857505f610fcf565b5f6129b38385613b09565b9050826129c08583613cad565b146129c9575f80fd5b9392505050565b5f806129dc8385613c9a565b9050838110156129c9575f80fd5b5f60018360018111156129ff576129ff613b20565b03612a16575f808551602087018986f49050612a25565b5f80855160208701888a87f190505b95945050505050565b5f81831015612a3d57816129c9565b5090919050565b5f82821115612a51575f80fd5b5f61112f8385613ce5565b5f8073ffffffffffffffffffffffffffffffffffffffff831615612a805782612a82565b325b905073ffffffffffffffffffffffffffffffffffffffff8416612b6057612ac13a8610612aaf573a612ab1565b855b612abb89896129d0565b90612999565b60405190925073ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084905f818181858888f19350505050612b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313100000000000000000000000000000000000000000000000000000060448201526064016107af565b612be1565b612b6e85612abb89896129d0565b9150612b7b84828461313f565b612be1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313200000000000000000000000000000000000000000000000000000060448201526064016107af565b5095945050505050565b60045415612c55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303000000000000000000000000000000000000000000000000000000060448201526064016107af565b8151811115612cc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107af565b6001811015612d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107af565b60015f5b8351811015612f5b575f848281518110612d4b57612d4b613cf8565b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612da8575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015612dca575073ffffffffffffffffffffffffffffffffffffffff81163014155b8015612e0257508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600260205260409020541615612ef6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff9283165f90815260026020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169382169390931790925580612f5381613a56565b915050612d2f565b5073ffffffffffffffffffffffffffffffffffffffff165f90815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001660011790559051600355600455565b60015f8190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5473ffffffffffffffffffffffffffffffffffffffff161561305a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303000000000000000000000000000000000000000000000000000000060448201526064016107af565b60015f81905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016909117905573ffffffffffffffffffffffffffffffffffffffff821615610937576130d9825f8360015a6129ea565b610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303000000000000000000000000000000000000000000000000000000060448201526064016107af565b6040805173ffffffffffffffffffffffffffffffffffffffff841660248201526044808201849052825180830390910181526064909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017815282515f93929184919082896127105a03f13d80156131ea57602081146131f2575f93506131fc565b8193506131fc565b5f51158215171593505b5050509392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114613227575f80fd5b50565b803561323581613206565b919050565b5f806040838503121561324b575f80fd5b823561325681613206565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126132a0575f80fd5b813567ffffffffffffffff808211156132bb576132bb613264565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561330157613301613264565b81604052838152866020858801011115613319575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f806080858703121561334b575f80fd5b84359350602085013567ffffffffffffffff80821115613369575f80fd5b61337588838901613291565b9450604087013591508082111561338a575f80fd5b5061339787828801613291565b949793965093946060013593505050565b5f602082840312156133b8575f80fd5b81356129c981613206565b803560028110613235575f80fd5b5f805f80608085870312156133e4575f80fd5b84356133ef81613206565b935060208501359250604085013567ffffffffffffffff811115613411575f80fd5b61341d87828801613291565b92505061342c606086016133c3565b905092959194509250565b5f81518084525f5b8181101561345b5760208185018101518683018201520161343f565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b8215158152604060208201525f61112f6040830184613437565b5f80604083850312156134c3575f80fd5b50508035926020909101359150565b602081525f6129c96020830184613437565b5f602082840312156134f4575f80fd5b5035919050565b5f8083601f84011261350b575f80fd5b50813567ffffffffffffffff811115613522575f80fd5b602083019150836020828501011115613539575f80fd5b9250929050565b5f805f805f805f805f805f6101408c8e03121561355b575f80fd5b6135648c61322a565b9a5060208c0135995067ffffffffffffffff8060408e01351115613586575f80fd5b6135968e60408f01358f016134fb565b909a5098506135a760608e016133c3565b975060808d0135965060a08d0135955060c08d013594506135ca60e08e0161322a565b93506135d96101008e0161322a565b9250806101208e013511156135ec575f80fd5b506135fe8d6101208e01358e01613291565b90509295989b509295989b9093969950565b5f805f60608486031215613622575f80fd5b83359250602084013567ffffffffffffffff80821115613640575f80fd5b61364c87838801613291565b93506040860135915080821115613661575f80fd5b5061366e86828701613291565b9150509250925092565b5f8151808452602080850194508084015f5b838110156136bc57815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161368a565b509495945050505050565b602081525f6129c96020830184613678565b5f80604083850312156136ea575f80fd5b82356136f581613206565b9150602083013567ffffffffffffffff811115613710575f80fd5b61371c85828601613291565b9150509250929050565b5f805f805f805f805f806101008b8d031215613740575f80fd5b8a3567ffffffffffffffff80821115613757575f80fd5b818d0191508d601f83011261376a575f80fd5b813581811115613778575f80fd5b8e60208260051b850101111561378c575f80fd5b60208381019d50909b508d013599506137a760408e0161322a565b985060608d01359150808211156137bc575f80fd5b506137c98d828e016134fb565b90975095506137dc905060808c0161322a565b93506137ea60a08c0161322a565b925060c08b013591506137ff60e08c0161322a565b90509295989b9194979a5092959850565b5f805f805f60808688031215613824575f80fd5b853561382f81613206565b945060208601359350604086013567ffffffffffffffff811115613851575f80fd5b61385d888289016134fb565b90945092506138709050606087016133c3565b90509295509295909350565b604081525f61388e6040830185613678565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b5f805f805f805f805f805f6101408c8e0312156138ce575f80fd5b8b356138d981613206565b9a5060208c0135995060408c013567ffffffffffffffff8111156138fb575f80fd5b6139078e828f016134fb565b909a50985061391a905060608d016133c3565b965060808c0135955060a08c0135945060c08c0135935060e08c013561393f81613206565b92506101008c013561395081613206565b809250506101208c013590509295989b509295989b9093969950565b5f806040838503121561397d575f80fd5b823561398881613206565b9150602083013561399881613206565b809150509250929050565b5f805f606084860312156139b5575f80fd5b83356139c081613206565b925060208401356139d081613206565b915060408401356139e081613206565b809150509250925092565b5f805f606084860312156139fd575f80fd5b8335613a0881613206565b92506020840135613a1881613206565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a8657613a86613a29565b5060010190565b604081525f613a9f6040830185613437565b8281036020840152612a258185613437565b5f60208284031215613ac1575f80fd5b81517fffffffff00000000000000000000000000000000000000000000000000000000811681146129c9575f80fd5b60ff8281168282160390811115610fcf57610fcf613a29565b8082028115828204841417610fcf57610fcf613a29565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110613b82577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b5f61016073ffffffffffffffffffffffffffffffffffffffff8f1683528d60208401528060408401528b81840152506101808b8d828501375f818d850101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8d01168301613bfa606085018d613b4d565b8a60808501528960a08501528860c0850152613c2e60e085018973ffffffffffffffffffffffffffffffffffffffff169052565b73ffffffffffffffffffffffffffffffffffffffff87166101008501528184820301610120850152613c6282820187613437565b92505050613c8961014083018473ffffffffffffffffffffffffffffffffffffffff169052565b9d9c50505050505050505050505050565b80820180821115610fcf57610fcf613a29565b5f82613ce0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610fcf57610fcf613a29565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b608080825281018590525f8660a08301825b88811015613d74578235613d4a81613206565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101613d37565b506020840196909652505073ffffffffffffffffffffffffffffffffffffffff9283166040820152911660609091015292915050565b818382375f9101908152919050565b5f610160820190508c825273ffffffffffffffffffffffffffffffffffffffff808d1660208401528b60408401528a6060840152613dfa608084018b613b4d565b60a083019890985260c082019690965260e0810194909452918516610100840152909316610120820152610140019190915295945050505050565b5f81613e4357613e43613a29565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c6343000814000a","sourceMap":"722:19528:40:-:0;;;2490:247;;;;;;;;;-1:-1:-1;2729:1:40;2717:9;:13;722:19528;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101db575f3560e01c8063affed0e011610101578063e19a9dd911610094578063f08a032311610063578063f08a0323146105fc578063f698da251461061b578063f8dc5dd914610680578063ffa1ad741461069f57610217565b8063e19a9dd91461058b578063e318b52b146105aa578063e75235b8146105c9578063e86637db146105dd57610217565b8063cc2f8452116100d0578063cc2f845214610501578063d4d9bdcd1461052e578063d8d11f781461054d578063e009cfde1461056c57610217565b8063affed0e01461048f578063b4faba09146104a4578063b63e800d146104c3578063c4ca3a9c146104e257610217565b80635624b25b116101795780636a761202116101485780636a761202146104065780637d83297414610419578063934f3a111461044f578063a0e67e2b1461046e57610217565b80635624b25b146103715780635ae6bd371461039d578063610b5925146103c8578063694e80c3146103e757610217565b80632f54bf6e116101b55780632f54bf6e146102ea5780633408e47014610309578063468721a7146103255780635229073f1461034457610217565b80630d582f131461027657806312fb68e0146102975780632d9ad53d146102b657610217565b366102175760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b348015610222575f80fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d580548061024d57005b365f80373360601b36525f80601436015f80855af190503d5f803e80610271573d5ffd5b503d5ff35b348015610281575f80fd5b5061029561029036600461323a565b6106e7565b005b3480156102a2575f80fd5b506102956102b1366004613338565b61093b565b3480156102c1575f80fd5b506102d56102d03660046133a8565b610f82565b60405190151581526020015b60405180910390f35b3480156102f5575f80fd5b506102d56103043660046133a8565b610fd5565b348015610314575f80fd5b50465b6040519081526020016102e1565b348015610330575f80fd5b506102d561033f3660046133d1565b611025565b34801561034f575f80fd5b5061036361035e3660046133d1565b611137565b6040516102e1929190613498565b34801561037c575f80fd5b5061039061038b3660046134b2565b61116b565b6040516102e191906134d2565b3480156103a8575f80fd5b506103176103b73660046134e4565b60076020525f908152604090205481565b3480156103d3575f80fd5b506102956103e23660046133a8565b6111ef565b3480156103f2575f80fd5b506102956104013660046134e4565b6113df565b6102d5610414366004613540565b6114f3565b348015610424575f80fd5b5061031761043336600461323a565b600860209081525f928352604080842090915290825290205481565b34801561045a575f80fd5b50610295610469366004613610565b6118db565b348015610479575f80fd5b50610482611957565b6040516102e191906136c7565b34801561049a575f80fd5b5061031760055481565b3480156104af575f80fd5b506102956104be3660046136d9565b611a6c565b3480156104ce575f80fd5b506102956104dd366004613726565b611a8b565b3480156104ed575f80fd5b506103176104fc366004613810565b611bc3565b34801561050c575f80fd5b5061052061051b36600461323a565b611c91565b6040516102e192919061387c565b348015610539575f80fd5b506102956105483660046134e4565b611dbc565b348015610558575f80fd5b506103176105673660046138b3565b611e8e565b348015610577575f80fd5b5061029561058636600461396c565b611eba565b348015610596575f80fd5b506102956105a53660046133a8565b612097565b3480156105b5575f80fd5b506102956105c43660046139a3565b612109565b3480156105d4575f80fd5b50600454610317565b3480156105e8575f80fd5b506103906105f73660046138b3565b612492565b348015610607575f80fd5b506102956106163660046133a8565b612628565b348015610626575f80fd5b506103175f7f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b34801561068b575f80fd5b5061029561069a3660046139eb565b61269e565b3480156106aa575f80fd5b506103906040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b6106ef61292e565b73ffffffffffffffffffffffffffffffffffffffff82161580159061072b575073ffffffffffffffffffffffffffffffffffffffff8216600114155b801561074d575073ffffffffffffffffffffffffffffffffffffffff82163014155b6107b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8281165f908152600260205260409020541615610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107af565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805473ffffffffffffffffffffffffffffffffffffffff8481165f818152604081208054939094167fffffffffffffffffffffffff0000000000000000000000000000000000000000938416179093556001835283549091161790915560038054916108d783613a56565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1806004541461093757610937816113df565b5050565b610946816041612999565b825110156109b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323000000000000000000000000000000000000000000000000000000060448201526064016107af565b5f80805f805f5b86811015610f76576041818102890160208101516040820151919092015160ff16955090935091505f849003610c8b5791935083916109f7876041612999565b821015610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323100000000000000000000000000000000000000000000000000000060448201526064016107af565b8751610a6d8360206129d0565b1115610ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323200000000000000000000000000000000000000000000000000000060448201526064016107af565b602082890181015189519091610af8908390610af29087906129d0565b906129d0565b1115610b60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323300000000000000000000000000000000000000000000000000000060448201526064016107af565b6040517f20c13b0b000000000000000000000000000000000000000000000000000000008082528a85016020019173ffffffffffffffffffffffffffffffffffffffff8916906320c13b0b90610bbc908f908690600401613a8d565b602060405180830381865afa158015610bd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfb9190613ab1565b7fffffffff000000000000000000000000000000000000000000000000000000001614610c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323400000000000000000000000000000000000000000000000000000060448201526064016107af565b5050610e77565b8360ff16600103610d585791935083913373ffffffffffffffffffffffffffffffffffffffff84161480610ced575073ffffffffffffffffffffffffffffffffffffffff85165f9081526008602090815260408083208d845290915290205415155b610d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323500000000000000000000000000000000000000000000000000000060448201526064016107af565b610e77565b601e8460ff161115610e1a576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610dbd9190613af0565b604080515f8152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e09573d5f803e3d5ffd5b505050602060405103519450610e77565b604080515f8152602081018083528c905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610e6a573d5f803e3d5ffd5b5050506020604051035194505b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16118015610ed7575073ffffffffffffffffffffffffffffffffffffffff8581165f908152600260205260409020541615155b8015610efa575073ffffffffffffffffffffffffffffffffffffffff8516600114155b610f60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323600000000000000000000000000000000000000000000000000000060448201526064016107af565b8495508080610f6e90613a56565b9150506109b7565b50505050505050505050565b5f600173ffffffffffffffffffffffffffffffffffffffff831614801590610fcf575073ffffffffffffffffffffffffffffffffffffffff8281165f908152600160205260409020541615155b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff8216600114801590610fcf57505073ffffffffffffffffffffffffffffffffffffffff9081165f9081526002602052604090205416151590565b5f3360011480159061105a5750335f9081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b6110c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064016107af565b6110cd858585855a6129ea565b905080156111045760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8905f90a261112f565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375905f90a25b949350505050565b5f606061114686868686611025565b915060405160203d0181016040523d81523d5f602083013e8091505094509492505050565b60605f611179836020613b09565b67ffffffffffffffff81111561119157611191613264565b6040519080825280601f01601f1916602001820160405280156111bb576020820181803683370190505b5090505f5b838110156111e75784810154602080830284010152806111df81613a56565b9150506111c0565b509392505050565b6111f761292e565b73ffffffffffffffffffffffffffffffffffffffff811615801590611233575073ffffffffffffffffffffffffffffffffffffffff8116600114155b611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600160205260409020541615611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303200000000000000000000000000000000000000000000000000000060448201526064016107af565b600160208181527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805473ffffffffffffffffffffffffffffffffffffffff8581165f81815260408082208054949095167fffffffffffffffffffffffff000000000000000000000000000000000000000094851617909455959095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091015b60405180910390a150565b6113e761292e565b600354811115611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107af565b60018110156114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107af565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c93906020016113d4565b5f805f61150b8e8e8e8e8e8e8e8e8e8e600554612492565b600580549192505f61151c83613a56565b90915550508051602082012091506115358282866118db565b505f61155f7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b905073ffffffffffffffffffffffffffffffffffffffff8116156115fa578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b81526004016115cc9c9b9a99989796959493929190613b86565b5f604051808303815f87803b1580156115e3575f80fd5b505af11580156115f5573d5f803e3d5ffd5b505050505b6116266116098a6109c4613c9a565b603f6116168c6040613b09565b6116209190613cad565b90612a2e565b611632906101f4613c9a565b5a101561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313000000000000000000000000000000000000000000000000000000060448201526064016107af565b5f5a90506117098f8f8f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508e8c5f146116f6578e6129ea565b6109c45a6117049190613ce5565b6129ea565b93506117165a8290612a44565b9050838061172357508915155b8061172d57508715155b611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313300000000000000000000000000000000000000000000000000000060448201526064016107af565b5f88156117aa576117a7828b8b8b8b612a5c565b90505b84156117ee5760408051858152602081018390527f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e910160405180910390a1611828565b60408051858152602081018390527f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23910160405180910390a15b505073ffffffffffffffffffffffffffffffffffffffff8116156118ca576040517f9327136800000000000000000000000000000000000000000000000000000000815260048101839052831515602482015273ffffffffffffffffffffffffffffffffffffffff8216906393271368906044015f604051808303815f87803b1580156118b3575f80fd5b505af11580156118c5573d5f803e3d5ffd5b505050505b50509b9a5050505050505050505050565b60045480611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303100000000000000000000000000000000000000000000000000000060448201526064016107af565b6119518484848461093b565b50505050565b60605f60035467ffffffffffffffff81111561197557611975613264565b60405190808252806020026020018201604052801561199e578160200160208202803683370190505b5060015f90815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0549192509073ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8116600114611a645780838381518110611a1857611a18613cf8565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091529181165f90815260029092526040909120541681611a5c81613a56565b9250506119e7565b509092915050565b5f80825160208401855af4805f52503d6020523d5f60403e60403d015ffd5b611ac88a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c9250612beb915050565b73ffffffffffffffffffffffffffffffffffffffff841615611b0c57611b0c847f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b611b4b8787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612fb292505050565b8115611b6157611b5f825f60018685612a5c565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611baf959493929190613d25565b60405180910390a250505050505050505050565b5f805a9050611c0a878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925050505a6129ea565b611c12575f80fd5b5f5a611c1e9083613ce5565b905080604051602001611c3391815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526107af916004016134d2565b60605f8267ffffffffffffffff811115611cad57611cad613264565b604051908082528060200260200182016040528015611cd6578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8086165f9081526001602052604081205492945091165b73ffffffffffffffffffffffffffffffffffffffff811615801590611d3f575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015611d4a57508482105b15611dae5780848381518110611d6257611d62613cf8565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091529181165f90815260019092526040909120541681611da681613a56565b925050611d03565b908352919491935090915050565b335f9081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16611e47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333000000000000000000000000000000000000000000000000000000060448201526064016107af565b335f818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b5f611ea28c8c8c8c8c8c8c8c8c8c8c612492565b8051906020012090509b9a5050505050505050505050565b611ec261292e565b73ffffffffffffffffffffffffffffffffffffffff811615801590611efe575073ffffffffffffffffffffffffffffffffffffffff8116600114155b611f64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8281165f90815260016020526040902054811690821614611ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f818152600160209081526040808320805488871685528285208054919097167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427691015b60405180910390a15050565b61209f61292e565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c881815560405173ffffffffffffffffffffffffffffffffffffffff831681527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29060200161208b565b61211161292e565b73ffffffffffffffffffffffffffffffffffffffff81161580159061214d575073ffffffffffffffffffffffffffffffffffffffff8116600114155b801561216f575073ffffffffffffffffffffffffffffffffffffffff81163014155b6121d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600260205260409020541615612263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff82161580159061229f575073ffffffffffffffffffffffffffffffffffffffff8216600114155b612305576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8381165f90815260026020526040902054811690831614612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8281165f818152600260209081526040808320805487871680865283862080549289167fffffffffffffffffffffffff0000000000000000000000000000000000000000938416179055968a1685528285208054821690971790965592849052825490941690915591519081527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf910160405180910390a160405173ffffffffffffffffffffffffffffffffffffffff821681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1505050565b60605f7fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d85f1b8d8d8d8d6040516124ca929190613daa565b6040519081900381206124f0949392918e908e908e908e908e908e908e90602001613db9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090507f19000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000006125c35f7f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b6040517fff0000000000000000000000000000000000000000000000000000000000000093841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b61263061292e565b612658817f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60405173ffffffffffffffffffffffffffffffffffffffff821681527f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b0906020016113d4565b6126a661292e565b8060016003546126b69190613ce5565b101561271e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff82161580159061275a575073ffffffffffffffffffffffffffffffffffffffff8216600114155b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8381165f90815260026020526040902054811690831614612852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8281165f81815260026020526040808220805488861684529183208054929095167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909455918152825490911690915560038054916128c983613e35565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9060200160405180910390a1806004541461292957612929816113df565b505050565b333014612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333100000000000000000000000000000000000000000000000000000060448201526064016107af565b565b5f825f036129a857505f610fcf565b5f6129b38385613b09565b9050826129c08583613cad565b146129c9575f80fd5b9392505050565b5f806129dc8385613c9a565b9050838110156129c9575f80fd5b5f60018360018111156129ff576129ff613b20565b03612a16575f808551602087018986f49050612a25565b5f80855160208701888a87f190505b95945050505050565b5f81831015612a3d57816129c9565b5090919050565b5f82821115612a51575f80fd5b5f61112f8385613ce5565b5f8073ffffffffffffffffffffffffffffffffffffffff831615612a805782612a82565b325b905073ffffffffffffffffffffffffffffffffffffffff8416612b6057612ac13a8610612aaf573a612ab1565b855b612abb89896129d0565b90612999565b60405190925073ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084905f818181858888f19350505050612b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313100000000000000000000000000000000000000000000000000000060448201526064016107af565b612be1565b612b6e85612abb89896129d0565b9150612b7b84828461313f565b612be1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313200000000000000000000000000000000000000000000000000000060448201526064016107af565b5095945050505050565b60045415612c55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303000000000000000000000000000000000000000000000000000000060448201526064016107af565b8151811115612cc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107af565b6001811015612d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107af565b60015f5b8351811015612f5b575f848281518110612d4b57612d4b613cf8565b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612da8575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015612dca575073ffffffffffffffffffffffffffffffffffffffff81163014155b8015612e0257508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600260205260409020541615612ef6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107af565b73ffffffffffffffffffffffffffffffffffffffff9283165f90815260026020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169382169390931790925580612f5381613a56565b915050612d2f565b5073ffffffffffffffffffffffffffffffffffffffff165f90815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001660011790559051600355600455565b60015f8190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5473ffffffffffffffffffffffffffffffffffffffff161561305a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303000000000000000000000000000000000000000000000000000000060448201526064016107af565b60015f81905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016909117905573ffffffffffffffffffffffffffffffffffffffff821615610937576130d9825f8360015a6129ea565b610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303000000000000000000000000000000000000000000000000000000060448201526064016107af565b6040805173ffffffffffffffffffffffffffffffffffffffff841660248201526044808201849052825180830390910181526064909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017815282515f93929184919082896127105a03f13d80156131ea57602081146131f2575f93506131fc565b8193506131fc565b5f51158215171593505b5050509392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114613227575f80fd5b50565b803561323581613206565b919050565b5f806040838503121561324b575f80fd5b823561325681613206565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126132a0575f80fd5b813567ffffffffffffffff808211156132bb576132bb613264565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561330157613301613264565b81604052838152866020858801011115613319575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f806080858703121561334b575f80fd5b84359350602085013567ffffffffffffffff80821115613369575f80fd5b61337588838901613291565b9450604087013591508082111561338a575f80fd5b5061339787828801613291565b949793965093946060013593505050565b5f602082840312156133b8575f80fd5b81356129c981613206565b803560028110613235575f80fd5b5f805f80608085870312156133e4575f80fd5b84356133ef81613206565b935060208501359250604085013567ffffffffffffffff811115613411575f80fd5b61341d87828801613291565b92505061342c606086016133c3565b905092959194509250565b5f81518084525f5b8181101561345b5760208185018101518683018201520161343f565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b8215158152604060208201525f61112f6040830184613437565b5f80604083850312156134c3575f80fd5b50508035926020909101359150565b602081525f6129c96020830184613437565b5f602082840312156134f4575f80fd5b5035919050565b5f8083601f84011261350b575f80fd5b50813567ffffffffffffffff811115613522575f80fd5b602083019150836020828501011115613539575f80fd5b9250929050565b5f805f805f805f805f805f6101408c8e03121561355b575f80fd5b6135648c61322a565b9a5060208c0135995067ffffffffffffffff8060408e01351115613586575f80fd5b6135968e60408f01358f016134fb565b909a5098506135a760608e016133c3565b975060808d0135965060a08d0135955060c08d013594506135ca60e08e0161322a565b93506135d96101008e0161322a565b9250806101208e013511156135ec575f80fd5b506135fe8d6101208e01358e01613291565b90509295989b509295989b9093969950565b5f805f60608486031215613622575f80fd5b83359250602084013567ffffffffffffffff80821115613640575f80fd5b61364c87838801613291565b93506040860135915080821115613661575f80fd5b5061366e86828701613291565b9150509250925092565b5f8151808452602080850194508084015f5b838110156136bc57815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161368a565b509495945050505050565b602081525f6129c96020830184613678565b5f80604083850312156136ea575f80fd5b82356136f581613206565b9150602083013567ffffffffffffffff811115613710575f80fd5b61371c85828601613291565b9150509250929050565b5f805f805f805f805f806101008b8d031215613740575f80fd5b8a3567ffffffffffffffff80821115613757575f80fd5b818d0191508d601f83011261376a575f80fd5b813581811115613778575f80fd5b8e60208260051b850101111561378c575f80fd5b60208381019d50909b508d013599506137a760408e0161322a565b985060608d01359150808211156137bc575f80fd5b506137c98d828e016134fb565b90975095506137dc905060808c0161322a565b93506137ea60a08c0161322a565b925060c08b013591506137ff60e08c0161322a565b90509295989b9194979a5092959850565b5f805f805f60808688031215613824575f80fd5b853561382f81613206565b945060208601359350604086013567ffffffffffffffff811115613851575f80fd5b61385d888289016134fb565b90945092506138709050606087016133c3565b90509295509295909350565b604081525f61388e6040830185613678565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b5f805f805f805f805f805f6101408c8e0312156138ce575f80fd5b8b356138d981613206565b9a5060208c0135995060408c013567ffffffffffffffff8111156138fb575f80fd5b6139078e828f016134fb565b909a50985061391a905060608d016133c3565b965060808c0135955060a08c0135945060c08c0135935060e08c013561393f81613206565b92506101008c013561395081613206565b809250506101208c013590509295989b509295989b9093969950565b5f806040838503121561397d575f80fd5b823561398881613206565b9150602083013561399881613206565b809150509250929050565b5f805f606084860312156139b5575f80fd5b83356139c081613206565b925060208401356139d081613206565b915060408401356139e081613206565b809150509250925092565b5f805f606084860312156139fd575f80fd5b8335613a0881613206565b92506020840135613a1881613206565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a8657613a86613a29565b5060010190565b604081525f613a9f6040830185613437565b8281036020840152612a258185613437565b5f60208284031215613ac1575f80fd5b81517fffffffff00000000000000000000000000000000000000000000000000000000811681146129c9575f80fd5b60ff8281168282160390811115610fcf57610fcf613a29565b8082028115828204841417610fcf57610fcf613a29565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110613b82577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b5f61016073ffffffffffffffffffffffffffffffffffffffff8f1683528d60208401528060408401528b81840152506101808b8d828501375f818d850101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8d01168301613bfa606085018d613b4d565b8a60808501528960a08501528860c0850152613c2e60e085018973ffffffffffffffffffffffffffffffffffffffff169052565b73ffffffffffffffffffffffffffffffffffffffff87166101008501528184820301610120850152613c6282820187613437565b92505050613c8961014083018473ffffffffffffffffffffffffffffffffffffffff169052565b9d9c50505050505050505050505050565b80820180821115610fcf57610fcf613a29565b5f82613ce0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610fcf57610fcf613a29565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b608080825281018590525f8660a08301825b88811015613d74578235613d4a81613206565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101613d37565b506020840196909652505073ffffffffffffffffffffffffffffffffffffffff9283166040820152911660609091015292915050565b818382375f9101908152919050565b5f610160820190508c825273ffffffffffffffffffffffffffffffffffffffff808d1660208401528b60408401528a6060840152613dfa608084018b613b4d565b60a083019890985260c082019690965260e0810194909452918516610100840152909316610120820152610140019190915295945050505050565b5f81613e4357613e43613a29565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c6343000814000a","sourceMap":"722:19528:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:35:47;;442:9;160:25:96;;430:10:47;;417:35;;148:2:96;133:18;417:35:47;;;;;;;722:19528:40;;;;;;;;;;;-1:-1:-1;469:66:42;1467:11;;;1491:63;;1528:12;1491:63;1586:14;1583:1;1580;1567:34;1823:8;1819:2;1815:17;1799:14;1792:41;1981:1;1978;1973:2;1957:14;1953:23;1950:1;1947;1938:7;1931:5;1926:57;1911:72;;2017:16;2014:1;2011;1996:38;2057:7;2047:78;;2094:16;2091:1;2084:27;2047:78;;2148:16;2145:1;2138:27;2305:625:45;;;;;;;;;;-1:-1:-1;2305:625:45;;;;;:::i;:::-;;:::i;:::-;;11349:3812:40;;;;;;;;;;-1:-1:-1;11349:3812:40;;;;;:::i;:::-;;:::i;4861:151:44:-;;;;;;;;;;-1:-1:-1;4861:151:44;;;;;:::i;:::-;;:::i;:::-;;;2883:14:96;;2876:22;2858:41;;2846:2;2831:18;4861:151:44;;;;;;;;6048:138:45;;;;;;;;;;-1:-1:-1;6048:138:45;;;;;:::i;:::-;;:::i;17041:211:40:-;;;;;;;;;;-1:-1:-1;17208:9:40;17041:211;;;160:25:96;;;148:2;133:18;17041:211:40;14:177:96;2868:586:44;;;;;;;;;;-1:-1:-1;2868:586:44;;;;;:::i;:::-;;:::i;3805:959::-;;;;;;;;;;-1:-1:-1;3805:959:44;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;643:464:52:-;;;;;;;;;;-1:-1:-1;643:464:52;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2149:49:40:-;;;;;;;;;;-1:-1:-1;2149:49:40;;;;;:::i;:::-;;;;;;;;;;;;;;1363:426:44;;;;;;;;;;-1:-1:-1;1363:426:44;;;;;:::i;:::-;;:::i;5589:360:45:-;;;;;;;;;;-1:-1:-1;5589:360:45;;;;;:::i;:::-;;:::i;5531:3628:40:-;;;;;;:::i;:::-;;:::i;2309:69::-;;;;;;;;;;-1:-1:-1;2309:69:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10441:383;;;;;;;;;;-1:-1:-1;10441:383:40;;;;;:::i;:::-;;:::i;6268:437:45:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1978:20:40:-;;;;;;;;;;;;;;;;1740:486:52;;;;;;;;;;-1:-1:-1;1740:486:52;;;;;:::i;:::-;;:::i;3353:1151:40:-;;;;;;;;;;-1:-1:-1;3353:1151:40;;;;;:::i;:::-;;:::i;15970:533::-;;;;;;;;;;-1:-1:-1;15970:533:40;;;;;:::i;:::-;;:::i;5257:775:44:-;;;;;;;;;;-1:-1:-1;5257:775:44;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;16750:228:40:-;;;;;;;;;;-1:-1:-1;16750:228:40;;;;;:::i;:::-;;:::i;19770:478::-;;;;;;;;;;-1:-1:-1;19770:478:40;;;;;:::i;:::-;;:::i;2109:423:44:-;;;;;;;;;;-1:-1:-1;2109:423:44;;;;;:::i;:::-;;:::i;1150:254:43:-;;;;;;;;;;-1:-1:-1;1150:254:43;;;;;:::i;:::-;;:::i;4507:826:45:-;;;;;;;;;;-1:-1:-1;4507:826:45;;;;;:::i;:::-;;:::i;5955:87::-;;;;;;;;;;-1:-1:-1;6026:9:45;;5955:87;;18194:890:40;;;;;;;;;;-1:-1:-1;18194:890:40;;;;;:::i;:::-;;:::i;1052:161:42:-;;;;;;;;;;-1:-1:-1;1052:161:42;;;;;:::i;:::-;;:::i;17258:149:40:-;;;;;;;;;;;;17306:7;1208:66;17208:9;17342:57;;;;;;30233:25:96;;;;30274:18;;30267:34;17394:4:40;30317:18:96;;;30310:83;30206:18;;17342:57:40;;;;;;;;;;;;17332:68;;;;;;17325:75;;17258:149;;3371:727:45;;;;;;;;;;-1:-1:-1;3371:727:45;;;;;:::i;:::-;;:::i;1011:40:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2305:625:45;440:17:49;:15;:17::i;:::-;2481:19:45::1;::::0;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;2504:24:45::1;::::0;::::1;520:3;2504:24;;2481:47;:73;;;;-1:-1:-1::0;2532:22:45::1;::::0;::::1;2549:4;2532:22;;2481:73;2473:91;;;::::0;::::1;::::0;;14914:2:96;2473:91:45::1;::::0;::::1;14896:21:96::0;14953:1;14933:18;;;14926:29;14991:7;14971:18;;;14964:35;15016:18;;2473:91:45::1;;;;;;;;;2622:27;:13:::0;;::::1;2647:1;2622:13:::0;;;:6:::1;:13;::::0;;;;;::::1;:27:::0;2614:45:::1;;;::::0;::::1;::::0;;15247:2:96;2614:45:45::1;::::0;::::1;15229:21:96::0;15286:1;15266:18;;;15259:29;15324:7;15304:18;;;15297:35;15349:18;;2614:45:45::1;15045:328:96::0;2614:45:45::1;2685:6;:23;::::0;;;;::::1;2669:13:::0;;::::1;2685:23;2669:13:::0;;;2685:23;2669:13;;:39;;2685:23;;;::::1;2669:39:::0;;;::::1;;::::0;;;-1:-1:-1;2718:23:45;;:31;;;;::::1;;::::0;;;2759:10:::1;:12:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;2786:17:45::1;::::0;15943:42:96;15931:55;;15913:74;;2786:17:45::1;::::0;15901:2:96;15886:18;2786:17:45::1;;;;;;;2884:10;2871:9;;:23;2867:56;;2896:27;2912:10;2896:15;:27::i;:::-;2305:625:::0;;:::o;11349:3812:40:-;11621:26;:18;11644:2;11621:22;:26::i;:::-;11600:10;:17;:47;;11592:65;;;;;;;16200:2:96;11592:65:40;;;16182:21:96;16239:1;16219:18;;;16212:29;16277:7;16257:18;;;16250:35;16302:18;;11592:65:40;15998:328:96;11592:65:40;11719:17;11759:20;11789:7;11806:9;11825;11844;11863:3292;11879:18;11875:1;:22;11863:3292;;;1073:4:50;1069:14;;;1107:40;;1141:4;1107:40;;1101:47;1206:4;1172:40;;1166:47;1507:40;;;;1501:47;1550:4;1497:58;;-1:-1:-1;1101:47:50;;-1:-1:-1;1166:47:50;-1:-1:-1;11982:1:40;11977:6;;;11973:3005;;12202:1;;-1:-1:-1;12202:1:40;;12607:26;:18;12630:2;12607:22;:26::i;:::-;12593:40;;;12585:58;;;;;;;16533:2:96;12585:58:40;;;16515:21:96;16572:1;16552:18;;;16545:29;16610:7;16590:18;;;16583:35;16635:18;;12585:58:40;16331:328:96;12585:58:40;12805:17;;12783:18;12791:1;12798:2;12783:14;:18::i;:::-;:39;;12775:57;;;;;;;16866:2:96;12775:57:40;;;16848:21:96;16905:1;16885:18;;;16878:29;16943:7;16923:18;;;16916:35;16968:18;;12775:57:40;16664:328:96;12775:57:40;13171:4;13151:18;;;13147:29;;13141:36;13268:17;;13141:36;;13220:44;;13141:36;;13220:18;;13151;;13220:14;:18::i;:::-;:22;;:44::i;:::-;:65;;13212:83;;;;;;;17199:2:96;13212:83:40;;;17181:21:96;17238:1;17218:18;;;17211:29;17276:7;17256:18;;;17249:35;17301:18;;13212:83:40;16997:328:96;13212:83:40;13724:75;;13803:19;13724:75;;;13656:18;;;13676:4;13652:29;;13724:50;;;;223:10:60;;13724:75:40;;13775:4;;13652:29;;13724:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:98;;;13716:116;;;;;;;18255:2:96;13716:116:40;;;18237:21:96;18294:1;18274:18;;;18267:29;18332:7;18312:18;;;18305:35;18357:18;;13716:116:40;18053:328:96;13716:116:40;11985:1862;;11973:3005;;;13857:1;:6;;13862:1;13857:6;13853:1125;;14074:1;;-1:-1:-1;14074:1:40;;14249:10;:26;;;;;:73;;-1:-1:-1;14279:28:40;;;;;;;:14;:28;;;;;;;;:38;;;;;;;;;:43;;14249:73;14241:91;;;;;;;18588:2:96;14241:91:40;;;18570:21:96;18627:1;18607:18;;;18600:29;18665:7;18645:18;;;18638:35;18690:18;;14241:91:40;18386:328:96;14241:91:40;13853:1125;;;14361:2;14357:1;:6;;;14353:625;;;14654:62;;18961:66:96;14654:62:40;;;18949:79:96;19044:12;;;19037:28;;;14634:97:40;;19081:12:96;;14654:62:40;;;;;;;;;;;;14644:73;;;;;;14723:1;14719;:5;;;;:::i;:::-;14634:97;;;;;;;;;;;;19487:25:96;;;;19560:4;19548:17;;;19528:18;;;19521:45;19582:18;;;19575:34;;;19625:18;;;19618:34;;;19459:19;;14634:97:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14619:112;;14353:625;;;14935:28;;;;;;;;;;;;19487:25:96;;;19560:4;19548:17;;19528:18;;;19521:45;;;;19582:18;;;19575:34;;;19625:18;;;19618:34;;;14935:28:40;;19459:19:96;;14935:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14920:43;;14353:625;15014:9;14999:24;;:12;:24;;;:62;;;;-1:-1:-1;15027:34:40;:20;;;15059:1;15027:20;;;:6;:20;;;;;;;:34;;14999:62;:97;;;;-1:-1:-1;15065:31:40;;;520:3:45;15065:31:40;;14999:97;14991:115;;;;;;;19865:2:96;14991:115:40;;;19847:21:96;19904:1;19884:18;;;19877:29;19942:7;19922:18;;;19915:35;19967:18;;14991:115:40;19663:328:96;14991:115:40;15132:12;15120:24;;11899:3;;;;;:::i;:::-;;;;11863:3292;;;11515:3646;;;;;;11349:3812;;;;:::o;4861:151:44:-;4923:4;692:3;4946:26;;;;;;;:59;;-1:-1:-1;4976:29:44;:15;;;5003:1;4976:15;;;:7;:15;;;;;;;:29;;4946:59;4939:66;4861:151;-1:-1:-1;;4861:151:44:o;6048:138:45:-;6101:4;6124:24;;;520:3;6124:24;;;;:55;;-1:-1:-1;;6152:27:45;:13;;;6177:1;6152:13;;;:6;:13;;;;;;;:27;;;6048:138::o;2868:586:44:-;3037:12;3118:10;692:3;3118:30;;;;:67;;-1:-1:-1;3160:10:44;3183:1;3152:19;;;:7;:19;;;;;;:33;:19;:33;;3118:67;3110:85;;;;;;;20198:2:96;3110:85:44;;;20180:21:96;20237:1;20217:18;;;20210:29;20275:7;20255:18;;;20248:35;20300:18;;3110:85:44;19996:328:96;3110:85:44;3277:46;3285:2;3289:5;3296:4;3302:9;3313;3277:7;:46::i;:::-;3267:56;;3337:7;3333:114;;;3351:38;;3378:10;;3351:38;;;;;3333:114;;;3409:38;;3436:10;;3409:38;;;;;3333:114;2868:586;;;;;;:::o;3805:959::-;3976:12;3990:23;4035:53;4061:2;4065:5;4072:4;4078:9;4035:25;:53::i;:::-;4025:63;;4235:4;4229:11;4477:4;4459:16;4455:27;4450:3;4446:37;4440:4;4433:51;4539:16;4534:3;4527:29;4633:16;4630:1;4623:4;4618:3;4614:14;4599:51;4745:3;4731:17;;;3805:959;;;;;;;:::o;643:464:52:-;718:12;742:19;774:11;:6;783:2;774:11;:::i;:::-;764:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;764:22:52;;742:44;;801:13;796:282;828:6;820:5;:14;796:282;;;964:18;;;958:25;1041:4;1030:16;;;1007:40;;;1000:54;976:5;836:7;976:5;836:7;:::i;:::-;;;;796:282;;;-1:-1:-1;1094:6:52;643:464;-1:-1:-1;;;643:464:52:o;1363:426:44:-;440:17:49;:15;:17::i;:::-;1491:20:44::1;::::0;::::1;::::0;;::::1;::::0;:50:::1;;-1:-1:-1::0;1515:26:44::1;::::0;::::1;692:3;1515:26;;1491:50;1483:68;;;::::0;::::1;::::0;;20704:2:96;1483:68:44::1;::::0;::::1;20686:21:96::0;20743:1;20723:18;;;20716:29;20781:7;20761:18;;;20754:35;20806:18;;1483:68:44::1;20502:328:96::0;1483:68:44::1;1610:29;:15:::0;;::::1;1637:1;1610:15:::0;;;:7:::1;:15;::::0;;;;;::::1;:29:::0;1602:47:::1;;;::::0;::::1;::::0;;21037:2:96;1602:47:44::1;::::0;::::1;21019:21:96::0;21076:1;21056:18;;;21049:29;21114:7;21094:18;;;21087:35;21139:18;;1602:47:44::1;20835:328:96::0;1602:47:44::1;1677:7;:25;::::0;;;;;;::::1;1659:15:::0;;::::1;1677:25;1659:15:::0;;;1677:25;1659:15;;;:43;;1677:25;;;::::1;1659:43:::0;;;::::1;;::::0;;;1712:25;;;;:34;;::::1;::::0;::::1;::::0;;;1761:21;15913:74:96;;;1761:21:44::1;::::0;15886:18:96;1761:21:44::1;;;;;;;;1363:426:::0;:::o;5589:360:45:-;440:17:49;:15;:17::i;:::-;5753:10:45::1;;5739;:24;;5731:42;;;::::0;::::1;::::0;;21370:2:96;5731:42:45::1;::::0;::::1;21352:21:96::0;21409:1;21389:18;;;21382:29;21447:7;21427:18;;;21420:35;21472:18;;5731:42:45::1;21168:328:96::0;5731:42:45::1;5857:1;5843:10;:15;;5835:33;;;::::0;::::1;::::0;;21703:2:96;5835:33:45::1;::::0;::::1;21685:21:96::0;21742:1;21722:18;;;21715:29;21780:7;21760:18;;;21753:35;21805:18;;5835:33:45::1;21501:328:96::0;5835:33:45::1;5878:9;:22:::0;;;5915:27:::1;::::0;160:25:96;;;5915:27:45::1;::::0;148:2:96;133:18;5915:27:45::1;14:177:96::0;5531:3628:40;5877:12;5901:14;6028:23;6070:444;6153:2;6177:5;6204:4;;6230:9;6261;6328:7;6357:8;6387;6417:14;6491:5;;6070:21;:444::i;:::-;6583:5;:7;;6028:486;;-1:-1:-1;6583:5:40;:7;;;:::i;:::-;;;;-1:-1:-1;;6613:21:40;;;;;;;-1:-1:-1;6648:47:40;6613:21;6623:10;6684;6648:15;:47::i;:::-;6014:692;6715:13;6731:10;915:66:43;1609:11;;1410:226;6731:10:40;6715:26;-1:-1:-1;6769:19:40;;;;6765:547;;6814:5;6808:29;;;6899:2;6923:5;6950:4;;6976:9;7007;7074:7;7103:8;7133;7163:14;7237:10;7269;6808:489;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6765:547;7626:45;7654:16;:9;7666:4;7654:16;:::i;:::-;7646:2;7628:14;:9;7640:2;7628:14;:::i;:::-;7627:21;;;;:::i;:::-;7626:27;;:45::i;:::-;:51;;7674:3;7626:51;:::i;:::-;7613:9;:64;;7605:82;;;;;;;24369:2:96;7605:82:40;;;24351:21:96;24408:1;24388:18;;;24381:29;24446:7;24426:18;;;24419:35;24471:18;;7605:82:40;24167:328:96;7605:82:40;7800:15;7818:9;7800:27;;8106:83;8114:2;8118:5;8125:4;;8106:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8131:9;8142:8;8154:1;8142:13;:46;;8179:9;8106:7;:83::i;8142:46::-;8171:4;8159:9;:16;;;;:::i;:::-;8106:7;:83::i;:::-;8096:93;;8213:22;8225:9;8213:7;;:11;:22::i;:::-;8203:32;;8519:7;:25;;;-1:-1:-1;8530:14:40;;;8519:25;:42;;;-1:-1:-1;8548:13:40;;;8519:42;8511:60;;;;;;;24835:2:96;8511:60:40;;;24817:21:96;24874:1;24854:18;;;24847:29;24912:7;24892:18;;;24885:35;24937:18;;8511:60:40;24633:328:96;8511:60:40;8720:15;8757:12;;8753:128;;8799:67;8813:7;8822;8831:8;8841;8851:14;8799:13;:67::i;:::-;8789:77;;8753:128;8898:7;8894:108;;;8912:33;;;25140:25:96;;;25196:2;25181:18;;25174:34;;;8912:33:40;;25113:18:96;8912:33:40;;;;;;;8894:108;;;8969:33;;;25140:25:96;;;25196:2;25181:18;;25174:34;;;8969:33:40;;25113:18:96;8969:33:40;;;;;;;8894:108;-1:-1:-1;;9040:19:40;;;;9036:107;;9079:49;;;;;;;;25387:25:96;;;25455:14;;25448:22;25428:18;;;25421:50;9079:32:40;;;;;;25360:18:96;;9079:49:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9036:107;5891:3268;;5531:3628;;;;;;;;;;;;;:::o;10441:383::-;10659:9;;10727:14;10719:32;;;;;;;25684:2:96;10719:32:40;;;25666:21:96;25723:1;25703:18;;;25696:29;25761:7;25741:18;;;25734:35;25786:18;;10719:32:40;25482:328:96;10719:32:40;10761:56;10778:8;10788:4;10794:10;10806;10761:16;:56::i;:::-;10570:254;10441:383;;;:::o;6268:437:45:-;6310:16;6338:22;6377:10;;6363:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6363:25:45;-1:-1:-1;520:3:45;6432:13;6482:23;;;:6;:23;;;;6338:50;;-1:-1:-1;6432:13:45;6482:23;;6515:162;6522:31;;;520:3;6522:31;6515:162;;6584:12;6569:5;6575;6569:12;;;;;;;;:::i;:::-;:27;;;;:12;;;;;;;;;;:27;;;;6625:20;;;;;;;:6;:20;;;;;;;;;6659:7;;;;:::i;:::-;;;;6515:162;;;-1:-1:-1;6693:5:45;;6268:437;-1:-1:-1;;6268:437:45:o;1740:486:52:-;2025:1;2022;2004:15;1998:22;1991:4;1974:15;1970:26;1954:14;1947:5;1934:93;2054:7;2048:4;2041:21;;2088:16;2082:4;2075:30;2142:16;2139:1;2133:4;2118:41;2204:4;2186:16;2182:27;2179:1;2172:38;3353:1151:40;3752:32;3764:7;;3752:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3773:10:40;;-1:-1:-1;3752:11:40;;-1:-1:-1;;3752:32:40:i;:::-;3798:29;;;;3794:78;;3829:43;3856:15;469:66:42;747:21;542:242;3829:43:40;4007:22;4020:2;4024:4;;4007:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4007:12:40;;-1:-1:-1;;;4007:22:40:i;:::-;4044:11;;4040:380;;4350:59;4364:7;4373:1;4376;4379:12;4393:15;4350:13;:59::i;:::-;;4040:380;4444:10;4434:63;;;4456:7;;4465:10;4477:2;4481:15;4434:63;;;;;;;;;;:::i;:::-;;;;;;;;3353:1151;;;;;;;;;;:::o;15970:533::-;16123:7;16142:16;16161:9;16142:28;;16275:46;16283:2;16287:5;16294:4;;16275:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16300:9:40;;-1:-1:-1;;;16311:9:40;16275:7;:46::i;:::-;16267:55;;;;;;16332:19;16365:9;16354:20;;:8;:20;:::i;:::-;16332:42;;16482:11;16465:29;;;;;;27169:19:96;;27213:2;27204:12;;27040:182;16465:29:40;;;;;;;;;;;;;;;16451:45;;;;;;;;:::i;5257:775:44:-;5342:22;5366:12;5453:8;5439:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5439:23:44;-1:-1:-1;5563:14:44;;;;5506:19;5563:14;;;:7;:14;;;;;;5431:31;;-1:-1:-1;5506:19:44;5563:14;5587:239;5594:29;;;;;;;:66;;-1:-1:-1;5627:33:44;;;692:3;5627:33;;5594:66;:92;;;;;5678:8;5664:11;:22;5594:92;5587:239;;;5723:13;5702:5;5708:11;5702:18;;;;;;;;:::i;:::-;:34;;;;:18;;;;;;;;;;:34;;;;5766:22;;;;;;;:7;:22;;;;;;;;;5802:13;;;;:::i;:::-;;;;5587:239;;;5990:26;;;5997:5;;5842:13;;-1:-1:-1;5257:775:44;;-1:-1:-1;;5257:775:44:o;16750:228:40:-;16828:10;16851:1;16821:18;;;:6;:18;;;;;;:32;:18;16813:50;;;;;;;27429:2:96;16813:50:40;;;27411:21:96;27468:1;27448:18;;;27441:29;27506:7;27486:18;;;27479:35;27531:18;;16813:50:40;27227:328:96;16813:50:40;16888:10;16873:26;;;;:14;:26;;;;;;;;:41;;;;;;;;;16917:1;16873:45;;16933:38;16900:13;;16933:38;;;16750:228;:::o;19770:478::-;20091:7;20127:113;20149:2;20153:5;20160:4;;20166:9;20177;20188:7;20197:8;20207;20217:14;20233:6;20127:21;:113::i;:::-;20117:124;;;;;;20110:131;;19770:478;;;;;;;;;;;;;:::o;2109:423:44:-;440:17:49;:15;:17::i;:::-;2286:20:44::1;::::0;::::1;::::0;;::::1;::::0;:50:::1;;-1:-1:-1::0;2310:26:44::1;::::0;::::1;692:3;2310:26;;2286:50;2278:68;;;::::0;::::1;::::0;;20704:2:96;2278:68:44::1;::::0;::::1;20686:21:96::0;20743:1;20723:18;;;20716:29;20781:7;20761:18;;;20754:35;20806:18;;2278:68:44::1;20502:328:96::0;2278:68:44::1;2364:29;:19:::0;;::::1;;::::0;;;:7:::1;:19;::::0;;;;;;::::1;:29:::0;;::::1;;2356:47;;;::::0;::::1;::::0;;27762:2:96;2356:47:44::1;::::0;::::1;27744:21:96::0;27801:1;27781:18;;;27774:29;27839:7;27819:18;;;27812:35;27864:18;;2356:47:44::1;27560:328:96::0;2356:47:44::1;2435:15;::::0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;;;;;2413:19;;::::1;::::0;;;;;:37;;2435:15;;;::::1;2413:37:::0;;;::::1;;::::0;;;2460:15;;;;:28;;;;::::1;::::0;;;2503:22;;15913:74:96;;;2503:22:44::1;::::0;15886:18:96;2503:22:44::1;;;;;;;;2109:423:::0;;:::o;1150:254:43:-;440:17:49;:15;:17::i;:::-;915:66:43::1;1335:19:::0;;;1378::::1;::::0;15943:42:96;15931:55;;15913:74;;1378:19:43::1;::::0;15901:2:96;15886:18;1378:19:43::1;15767:226:96::0;4507:826:45;440:17:49;:15;:17::i;:::-;4721:22:45::1;::::0;::::1;::::0;;::::1;::::0;:53:::1;;-1:-1:-1::0;4747:27:45::1;::::0;::::1;520:3;4747:27;;4721:53;:82;;;;-1:-1:-1::0;4778:25:45::1;::::0;::::1;4798:4;4778:25;;4721:82;4713:100;;;::::0;::::1;::::0;;14914:2:96;4713:100:45::1;::::0;::::1;14896:21:96::0;14953:1;14933:18;;;14926:29;14991:7;14971:18;;;14964:35;15016:18;;4713:100:45::1;14712:328:96::0;4713:100:45::1;4871:30;:16:::0;;::::1;4899:1;4871:16:::0;;;:6:::1;:16;::::0;;;;;::::1;:30:::0;4863:48:::1;;;::::0;::::1;::::0;;15247:2:96;4863:48:45::1;::::0;::::1;15229:21:96::0;15286:1;15266:18;;;15259:29;15324:7;15304:18;;;15297:35;15349:18;;4863:48:45::1;15045:328:96::0;4863:48:45::1;5012:22;::::0;::::1;::::0;;::::1;::::0;:53:::1;;-1:-1:-1::0;5038:27:45::1;::::0;::::1;520:3;5038:27;;5012:53;5004:71;;;::::0;::::1;::::0;;14914:2:96;5004:71:45::1;::::0;::::1;14896:21:96::0;14953:1;14933:18;;;14926:29;14991:7;14971:18;;;14964:35;15016:18;;5004:71:45::1;14712:328:96::0;5004:71:45::1;5093:29;:17:::0;;::::1;;::::0;;;:6:::1;:17;::::0;;;;;;::::1;:29:::0;;::::1;;5085:47;;;::::0;::::1;::::0;;28095:2:96;5085:47:45::1;::::0;::::1;28077:21:96::0;28134:1;28114:18;;;28107:29;28172:7;28152:18;;;28145:35;28197:18;;5085:47:45::1;27893:328:96::0;5085:47:45::1;5161:16;::::0;;::::1;;::::0;;;:6:::1;:16;::::0;;;;;;;;;5142;;::::1;::::0;;;;;;:35;;5161:16;;::::1;5142:35:::0;;;::::1;;::::0;;5187:17;;::::1;::::0;;;;;:28;;;::::1;::::0;;::::1;::::0;;;5225:16;;;;:29;;;;::::1;::::0;;;5269:22;;15913:74:96;;;5269:22:45::1;::::0;15886:18:96;5269:22:45::1;;;;;;;5306:20;::::0;15943:42:96;15931:55;;15913:74;;5306:20:45::1;::::0;15901:2:96;15886:18;5306:20:45::1;;;;;;;4507:826:::0;;;:::o;18194:890:40:-;18518:12;18542:18;1531:66;18634:16;;18672:2;18696:5;18733:4;;18723:15;;;;;;;:::i;:::-;;;;;;;;;18602:369;;;;;18760:9;;18791;;18822:7;;18851:8;;18881;;18911:14;;18947:6;;18602:369;;;:::i;:::-;;;;;;;;;;;;;;18575:410;;18602:369;18575:410;;;;;-1:-1:-1;19019:12:40;19033;19047:17;17306:7;1208:66;17208:9;17342:57;;;;;;30233:25:96;;;;30274:18;;30267:34;17394:4:40;30317:18:96;;;30310:83;30206:18;;17342:57:40;;;;;;;;;;;;17332:68;;;;;;17325:75;;17258:149;;19047:17;19002:75;;29743:66:96;29830:15;;;19002:75:40;;;29818:28:96;29875:15;;;;29862:11;;;29855:36;29907:11;;;29900:27;29943:12;;;29936:28;;;29980:12;;19002:75:40;;;;;;;;;;;;18995:82;;;18194:890;;;;;;;;;;;;;:::o;1052:161:42:-;440:17:49;:15;:17::i;:::-;1125:35:42::1;1152:7;469:66:::0;747:21;542:242;1125:35:::1;1175:31;::::0;15943:42:96;15931:55;;15913:74;;1175:31:42::1;::::0;15901:2:96;15886:18;1175:31:42::1;15767:226:96::0;3371:727:45;440:17:49;:15;:17::i;:::-;3607:10:45::1;3602:1;3589:10;;:14;;;;:::i;:::-;:28;;3581:46;;;::::0;::::1;::::0;;21370:2:96;3581:46:45::1;::::0;::::1;21352:21:96::0;21409:1;21389:18;;;21382:29;21447:7;21427:18;;;21420:35;21472:18;;3581:46:45::1;21168:328:96::0;3581:46:45::1;3725:19;::::0;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;3748:24:45::1;::::0;::::1;520:3;3748:24;;3725:47;3717:65;;;::::0;::::1;::::0;;14914:2:96;3717:65:45::1;::::0;::::1;14896:21:96::0;14953:1;14933:18;;;14926:29;14991:7;14971:18;;;14964:35;15016:18;;3717:65:45::1;14712:328:96::0;3717:65:45::1;3800:26;:17:::0;;::::1;;::::0;;;:6:::1;:17;::::0;;;;;;::::1;:26:::0;;::::1;;3792:44;;;::::0;::::1;::::0;;28095:2:96;3792:44:45::1;::::0;::::1;28077:21:96::0;28134:1;28114:18;;;28107:29;28172:7;28152:18;;;28145:35;28197:18;;3792:44:45::1;27893:328:96::0;3792:44:45::1;3866:13;::::0;;::::1;;::::0;;;:6:::1;:13;::::0;;;;;;;3846:17;;::::1;::::0;;;;;:33;;3866:13;;;::::1;3846:33:::0;;;::::1;;::::0;;;3889:13;;;:26;;;;::::1;::::0;;;3925:10:::1;:12:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;3952:19:45::1;::::0;15943:42:96;15931:55;;15913:74;;3952:19:45::1;::::0;15901:2:96;15886:18;3952:19:45::1;;;;;;;4052:10;4039:9;;:23;4035:56;;4064:27;4080:10;4064:15;:27::i;:::-;3371:727:::0;;;:::o;231:102:49:-;289:10;311:4;289:27;281:45;;;;;;;30807:2:96;281:45:49;;;30789:21:96;30846:1;30826:18;;;30819:29;30884:7;30864:18;;;30857:35;30909:18;;281:45:49;30605:328:96;281:45:49;231:102::o;392:421:55:-;450:7;690:1;695;690:6;686:45;;-1:-1:-1;719:1:55;712:8;;686:45;741:9;753:5;757:1;753;:5;:::i;:::-;741:17;-1:-1:-1;785:1:55;776:5;780:1;741:17;776:5;:::i;:::-;:10;768:19;;;;;;805:1;392:421;-1:-1:-1;;;392:421:55:o;1154:145::-;1212:7;;1243:5;1247:1;1243;:5;:::i;:::-;1231:17;;1271:1;1266;:6;;1258:15;;;;;242:639:41;410:12;451:27;438:9;:40;;;;;;;;:::i;:::-;;434:441;;649:1;646;639:4;633:11;626:4;620;616:15;612:2;605:5;592:59;581:70;;434:441;;;849:1;846;839:4;833:11;826:4;820;816:15;809:5;805:2;798:5;793:58;782:69;;434:441;242:639;;;;;;;:::o;1369:105:55:-;1427:7;1458:1;1453;:6;;:14;;1466:1;1453:14;;;-1:-1:-1;1462:1:55;;1446:21;-1:-1:-1;1369:105:55:o;936:145::-;994:7;1026:1;1021;:6;;1013:15;;;;;;1038:9;1050:5;1054:1;1050;:5;:::i;9165:821:40:-;9353:15;;9460:28;;;;:66;;9512:14;9460:66;;;9499:9;9460:66;9433:93;-1:-1:-1;9540:22:40;;;9536:444;;9693:73;9729:11;9718:8;:22;:47;;9754:11;9718:47;;;9743:8;9718:47;9693:20;:7;9705;9693:11;:20::i;:::-;:24;;:73::i;:::-;9788:22;;9683:83;;-1:-1:-1;9788:13:40;;;;:22;;;;;9683:83;;9788:22;;;;9683:83;9788:13;:22;;;;;;;9780:40;;;;;;;31140:2:96;9780:40:40;;;31122:21:96;31179:1;31159:18;;;31152:29;31217:7;31197:18;;;31190:35;31242:18;;9780:40:40;30938:328:96;9780:40:40;9536:444;;;9861:34;9886:8;9861:20;:7;9873;9861:11;:20::i;:34::-;9851:44;;9917:42;9931:8;9941;9951:7;9917:13;:42::i;:::-;9909:60;;;;;;;31473:2:96;9909:60:40;;;31455:21:96;31512:1;31492:18;;;31485:29;31550:7;31530:18;;;31523:35;31575:18;;9909:60:40;31271:328:96;9909:60:40;9370:616;9165:821;;;;;;;:::o;835:1136:45:-;1053:9;;:14;1045:32;;;;;;;31806:2:96;1045:32:45;;;31788:21:96;31845:1;31825:18;;;31818:29;31883:7;31863:18;;;31856:35;31908:18;;1045:32:45;31604:328:96;1045:32:45;1184:7;:14;1170:10;:28;;1162:46;;;;;;;21370:2:96;1162:46:45;;;21352:21:96;21409:1;21389:18;;;21382:29;21447:7;21427:18;;;21420:35;21472:18;;1162:46:45;21168:328:96;1162:46:45;1292:1;1278:10;:15;;1270:33;;;;;;;21703:2:96;1270:33:45;;;21685:21:96;21742:1;21722:18;;;21715:29;21780:7;21760:18;;;21753:35;21805:18;;1270:33:45;21501:328:96;1270:33:45;520:3;1350:20;1398:450;1422:7;:14;1418:1;:18;1398:450;;;1502:13;1518:7;1526:1;1518:10;;;;;;;;:::i;:::-;;;;;;;1502:26;;1567:1;1550:19;;:5;:19;;;;:47;;;;-1:-1:-1;1573:24:45;;;520:3;1573:24;;1550:47;:73;;;;-1:-1:-1;1601:22:45;;;1618:4;1601:22;;1550:73;:98;;;;;1643:5;1627:21;;:12;:21;;;;1550:98;1542:116;;;;;;;14914:2:96;1542:116:45;;;14896:21:96;14953:1;14933:18;;;14926:29;14991:7;14971:18;;;14964:35;15016:18;;1542:116:45;14712:328:96;1542:116:45;1724:27;:13;;;1749:1;1724:13;;;:6;:13;;;;;;;:27;1716:45;;;;;;;15247:2:96;1716:45:45;;;15229:21:96;15286:1;15266:18;;;15259:29;15324:7;15304:18;;;15297:35;15349:18;;1716:45:45;15045:328:96;1716:45:45;1775:20;;;;;;;;:6;:20;;;;;:28;;;;;;;;;;;;;;1438:3;;;;:::i;:::-;;;;1398:450;;;-1:-1:-1;1857:20:45;;;;;;:6;:20;;;;;:38;;;;520:3;1857:38;;;1918:14;;1905:10;:27;1942:9;:22;835:1136::o;754:384:44:-;834:7;871:1;834:25;;;;;;;:39;:25;:39;826:57;;;;;;;32139:2:96;826:57:44;;;32121:21:96;32178:1;32158:18;;;32151:29;32216:7;32196:18;;;32189:35;32241:18;;826:57:44;31937:328:96;826:57:44;692:3;893:25;;;;;;;;;:44;;;;;;;;;:25;951:16;;;947:184;;1061:60;1069:2;1073:1;1076:4;1082:27;1111:9;1061:7;:60::i;:::-;1053:78;;;;;;;32472:2:96;1053:78:44;;;32454:21:96;32511:1;32491:18;;;32484:29;32549:7;32529:18;;;32522:35;32574:18;;1053:78:44;32270:328:96;478:970:48;707:52;;;32807:42:96;32795:55;;707:52:48;;;32777:74:96;32867:18;;;;32860:34;;;707:52:48;;;;;;;;;;32750:18:96;;;;707:52:48;;;;;;;;;;;;;;;1081:11;;-1:-1:-1;;707:52:48;;-1:-1:-1;;1081:11:48;-1:-1:-1;1054:5:48;1046;1039;1035:17;1030:72;1122:16;1155:69;;;;1246:4;1241:110;;;;1413:1;1398:16;;1115:317;;1155:69;1199:7;1184:22;;1155:69;;1241:110;1328:1;1322:8;1315:16;1305:7;1298:15;1295:37;1288:45;1273:60;;1115:317;;;834:608;478:970;;;;;:::o;196:154:96:-;282:42;275:5;271:54;264:5;261:65;251:93;;340:1;337;330:12;251:93;196:154;:::o;355:134::-;423:20;;452:31;423:20;452:31;:::i;:::-;355:134;;;:::o;494:315::-;562:6;570;623:2;611:9;602:7;598:23;594:32;591:52;;;639:1;636;629:12;591:52;678:9;665:23;697:31;722:5;697:31;:::i;:::-;747:5;799:2;784:18;;;;771:32;;-1:-1:-1;;;494:315:96:o;814:184::-;866:77;863:1;856:88;963:4;960:1;953:15;987:4;984:1;977:15;1003:777;1045:5;1098:3;1091:4;1083:6;1079:17;1075:27;1065:55;;1116:1;1113;1106:12;1065:55;1152:6;1139:20;1178:18;1215:2;1211;1208:10;1205:36;;;1221:18;;:::i;:::-;1355:2;1349:9;1417:4;1409:13;;1260:66;1405:22;;;1429:2;1401:31;1397:40;1385:53;;;1453:18;;;1473:22;;;1450:46;1447:72;;;1499:18;;:::i;:::-;1539:10;1535:2;1528:22;1574:2;1566:6;1559:18;1620:3;1613:4;1608:2;1600:6;1596:15;1592:26;1589:35;1586:55;;;1637:1;1634;1627:12;1586:55;1701:2;1694:4;1686:6;1682:17;1675:4;1667:6;1663:17;1650:54;1748:1;1741:4;1736:2;1728:6;1724:15;1720:26;1713:37;1768:6;1759:15;;;;;;1003:777;;;;:::o;1785:676::-;1889:6;1897;1905;1913;1966:3;1954:9;1945:7;1941:23;1937:33;1934:53;;;1983:1;1980;1973:12;1934:53;2019:9;2006:23;1996:33;;2080:2;2069:9;2065:18;2052:32;2103:18;2144:2;2136:6;2133:14;2130:34;;;2160:1;2157;2150:12;2130:34;2183:49;2224:7;2215:6;2204:9;2200:22;2183:49;:::i;:::-;2173:59;;2285:2;2274:9;2270:18;2257:32;2241:48;;2314:2;2304:8;2301:16;2298:36;;;2330:1;2327;2320:12;2298:36;;2353:51;2396:7;2385:8;2374:9;2370:24;2353:51;:::i;:::-;1785:676;;;;-1:-1:-1;2343:61:96;;2451:2;2436:18;2423:32;;-1:-1:-1;;;1785:676:96:o;2466:247::-;2525:6;2578:2;2566:9;2557:7;2553:23;2549:32;2546:52;;;2594:1;2591;2584:12;2546:52;2633:9;2620:23;2652:31;2677:5;2652:31;:::i;2910:150::-;2985:20;;3034:1;3024:12;;3014:40;;3050:1;3047;3040:12;3065:620;3175:6;3183;3191;3199;3252:3;3240:9;3231:7;3227:23;3223:33;3220:53;;;3269:1;3266;3259:12;3220:53;3308:9;3295:23;3327:31;3352:5;3327:31;:::i;:::-;3377:5;-1:-1:-1;3429:2:96;3414:18;;3401:32;;-1:-1:-1;3484:2:96;3469:18;;3456:32;3511:18;3500:30;;3497:50;;;3543:1;3540;3533:12;3497:50;3566:49;3607:7;3598:6;3587:9;3583:22;3566:49;:::i;:::-;3556:59;;;3634:45;3675:2;3664:9;3660:18;3634:45;:::i;:::-;3624:55;;3065:620;;;;;;;:::o;3690:481::-;3731:3;3769:5;3763:12;3796:6;3791:3;3784:19;3821:1;3831:162;3845:6;3842:1;3839:13;3831:162;;;3907:4;3963:13;;;3959:22;;3953:29;3935:11;;;3931:20;;3924:59;3860:12;3831:162;;;3835:3;4038:1;4031:4;4022:6;4017:3;4013:16;4009:27;4002:38;4160:4;4090:66;4085:2;4077:6;4073:15;4069:88;4064:3;4060:98;4056:109;4049:116;;;3690:481;;;;:::o;4176:298::-;4359:6;4352:14;4345:22;4334:9;4327:41;4404:2;4399;4388:9;4384:18;4377:30;4308:4;4424:44;4464:2;4453:9;4449:18;4441:6;4424:44;:::i;4479:248::-;4547:6;4555;4608:2;4596:9;4587:7;4583:23;4579:32;4576:52;;;4624:1;4621;4614:12;4576:52;-1:-1:-1;;4647:23:96;;;4717:2;4702:18;;;4689:32;;-1:-1:-1;4479:248:96:o;4732:217::-;4879:2;4868:9;4861:21;4842:4;4899:44;4939:2;4928:9;4924:18;4916:6;4899:44;:::i;4954:180::-;5013:6;5066:2;5054:9;5045:7;5041:23;5037:32;5034:52;;;5082:1;5079;5072:12;5034:52;-1:-1:-1;5105:23:96;;4954:180;-1:-1:-1;4954:180:96:o;5324:347::-;5375:8;5385:6;5439:3;5432:4;5424:6;5420:17;5416:27;5406:55;;5457:1;5454;5447:12;5406:55;-1:-1:-1;5480:20:96;;5523:18;5512:30;;5509:50;;;5555:1;5552;5545:12;5509:50;5592:4;5584:6;5580:17;5568:29;;5644:3;5637:4;5628:6;5620;5616:19;5612:30;5609:39;5606:59;;;5661:1;5658;5651:12;5606:59;5324:347;;;;;:::o;5676:1224::-;5859:6;5867;5875;5883;5891;5899;5907;5915;5923;5931;5939:7;5993:3;5981:9;5972:7;5968:23;5964:33;5961:53;;;6010:1;6007;6000:12;5961:53;6033:29;6052:9;6033:29;:::i;:::-;6023:39;;6109:2;6098:9;6094:18;6081:32;6071:42;;6132:18;6199:2;6193;6182:9;6178:18;6165:32;6162:40;6159:60;;;6215:1;6212;6205:12;6159:60;6254:84;6330:7;6323:2;6312:9;6308:18;6295:32;6284:9;6280:48;6254:84;:::i;:::-;6357:8;;-1:-1:-1;6384:8:96;-1:-1:-1;6411:45:96;6452:2;6437:18;;6411:45;:::i;:::-;6401:55;;6503:3;6492:9;6488:19;6475:33;6465:43;;6555:3;6544:9;6540:19;6527:33;6517:43;;6607:3;6596:9;6592:19;6579:33;6569:43;;6631:39;6665:3;6654:9;6650:19;6631:39;:::i;:::-;6621:49;;6689:39;6723:3;6712:9;6708:19;6689:39;:::i;:::-;6679:49;;6778:2;6771:3;6760:9;6756:19;6743:33;6740:41;6737:61;;;6794:1;6791;6784:12;6737:61;;6818:76;6886:7;6878:3;6867:9;6863:19;6850:33;6839:9;6835:49;6818:76;:::i;:::-;6807:87;;5676:1224;;;;;;;;;;;;;;:::o;7225:607::-;7320:6;7328;7336;7389:2;7377:9;7368:7;7364:23;7360:32;7357:52;;;7405:1;7402;7395:12;7357:52;7441:9;7428:23;7418:33;;7502:2;7491:9;7487:18;7474:32;7525:18;7566:2;7558:6;7555:14;7552:34;;;7582:1;7579;7572:12;7552:34;7605:49;7646:7;7637:6;7626:9;7622:22;7605:49;:::i;:::-;7595:59;;7707:2;7696:9;7692:18;7679:32;7663:48;;7736:2;7726:8;7723:16;7720:36;;;7752:1;7749;7742:12;7720:36;;7775:51;7818:7;7807:8;7796:9;7792:24;7775:51;:::i;:::-;7765:61;;;7225:607;;;;;:::o;7969:484::-;8022:3;8060:5;8054:12;8087:6;8082:3;8075:19;8113:4;8142:2;8137:3;8133:12;8126:19;;8179:2;8172:5;8168:14;8200:1;8210:218;8224:6;8221:1;8218:13;8210:218;;;8289:13;;8304:42;8285:62;8273:75;;8368:12;;;;8403:15;;;;8246:1;8239:9;8210:218;;;-1:-1:-1;8444:3:96;;7969:484;-1:-1:-1;;;;;7969:484:96:o;8458:261::-;8637:2;8626:9;8619:21;8600:4;8657:56;8709:2;8698:9;8694:18;8686:6;8657:56;:::i;8724:455::-;8801:6;8809;8862:2;8850:9;8841:7;8837:23;8833:32;8830:52;;;8878:1;8875;8868:12;8830:52;8917:9;8904:23;8936:31;8961:5;8936:31;:::i;:::-;8986:5;-1:-1:-1;9042:2:96;9027:18;;9014:32;9069:18;9058:30;;9055:50;;;9101:1;9098;9091:12;9055:50;9124:49;9165:7;9156:6;9145:9;9141:22;9124:49;:::i;:::-;9114:59;;;8724:455;;;;;:::o;9184:1353::-;9352:6;9360;9368;9376;9384;9392;9400;9408;9416;9424;9477:3;9465:9;9456:7;9452:23;9448:33;9445:53;;;9494:1;9491;9484:12;9445:53;9534:9;9521:23;9563:18;9604:2;9596:6;9593:14;9590:34;;;9620:1;9617;9610:12;9590:34;9658:6;9647:9;9643:22;9633:32;;9703:7;9696:4;9692:2;9688:13;9684:27;9674:55;;9725:1;9722;9715:12;9674:55;9765:2;9752:16;9791:2;9783:6;9780:14;9777:34;;;9807:1;9804;9797:12;9777:34;9862:7;9855:4;9845:6;9842:1;9838:14;9834:2;9830:23;9826:34;9823:47;9820:67;;;9883:1;9880;9873:12;9820:67;9914:4;9906:13;;;;-1:-1:-1;9938:6:96;;-1:-1:-1;9976:20:96;;9963:34;;-1:-1:-1;10016:38:96;10050:2;10035:18;;10016:38;:::i;:::-;10006:48;;10107:2;10096:9;10092:18;10079:32;10063:48;;10136:2;10126:8;10123:16;10120:36;;;10152:1;10149;10142:12;10120:36;;10191:60;10243:7;10232:8;10221:9;10217:24;10191:60;:::i;:::-;10270:8;;-1:-1:-1;10165:86:96;-1:-1:-1;10324:39:96;;-1:-1:-1;10358:3:96;10343:19;;10324:39;:::i;:::-;10314:49;;10382:39;10416:3;10405:9;10401:19;10382:39;:::i;:::-;10372:49;;10468:3;10457:9;10453:19;10440:33;10430:43;;10492:39;10526:3;10515:9;10511:19;10492:39;:::i;:::-;10482:49;;9184:1353;;;;;;;;;;;;;:::o;10542:709::-;10654:6;10662;10670;10678;10686;10739:3;10727:9;10718:7;10714:23;10710:33;10707:53;;;10756:1;10753;10746:12;10707:53;10795:9;10782:23;10814:31;10839:5;10814:31;:::i;:::-;10864:5;-1:-1:-1;10916:2:96;10901:18;;10888:32;;-1:-1:-1;10971:2:96;10956:18;;10943:32;10998:18;10987:30;;10984:50;;;11030:1;11027;11020:12;10984:50;11069:58;11119:7;11110:6;11099:9;11095:22;11069:58;:::i;:::-;11146:8;;-1:-1:-1;11043:84:96;-1:-1:-1;11200:45:96;;-1:-1:-1;11241:2:96;11226:18;;11200:45;:::i;:::-;11190:55;;10542:709;;;;;;;;:::o;11256:381::-;11463:2;11452:9;11445:21;11426:4;11483:56;11535:2;11524:9;11520:18;11512:6;11483:56;:::i;:::-;11475:64;;11587:42;11579:6;11575:55;11570:2;11559:9;11555:18;11548:83;11256:381;;;;;:::o;11642:1271::-;11808:6;11816;11824;11832;11840;11848;11856;11864;11872;11880;11888:7;11942:3;11930:9;11921:7;11917:23;11913:33;11910:53;;;11959:1;11956;11949:12;11910:53;11998:9;11985:23;12017:31;12042:5;12017:31;:::i;:::-;12067:5;-1:-1:-1;12119:2:96;12104:18;;12091:32;;-1:-1:-1;12174:2:96;12159:18;;12146:32;12201:18;12190:30;;12187:50;;;12233:1;12230;12223:12;12187:50;12272:58;12322:7;12313:6;12302:9;12298:22;12272:58;:::i;:::-;12349:8;;-1:-1:-1;12246:84:96;-1:-1:-1;12403:45:96;;-1:-1:-1;12444:2:96;12429:18;;12403:45;:::i;:::-;12393:55;;12495:3;12484:9;12480:19;12467:33;12457:43;;12547:3;12536:9;12532:19;12519:33;12509:43;;12599:3;12588:9;12584:19;12571:33;12561:43;;12656:3;12645:9;12641:19;12628:33;12670;12695:7;12670:33;:::i;:::-;12722:7;-1:-1:-1;12781:3:96;12766:19;;12753:33;12795;12753;12795;:::i;:::-;12847:7;12837:17;;;12902:3;12891:9;12887:19;12874:33;12863:44;;11642:1271;;;;;;;;;;;;;;:::o;13100:388::-;13168:6;13176;13229:2;13217:9;13208:7;13204:23;13200:32;13197:52;;;13245:1;13242;13235:12;13197:52;13284:9;13271:23;13303:31;13328:5;13303:31;:::i;:::-;13353:5;-1:-1:-1;13410:2:96;13395:18;;13382:32;13423:33;13382:32;13423:33;:::i;:::-;13475:7;13465:17;;;13100:388;;;;;:::o;13493:529::-;13570:6;13578;13586;13639:2;13627:9;13618:7;13614:23;13610:32;13607:52;;;13655:1;13652;13645:12;13607:52;13694:9;13681:23;13713:31;13738:5;13713:31;:::i;:::-;13763:5;-1:-1:-1;13820:2:96;13805:18;;13792:32;13833:33;13792:32;13833:33;:::i;:::-;13885:7;-1:-1:-1;13944:2:96;13929:18;;13916:32;13957:33;13916:32;13957:33;:::i;:::-;14009:7;13999:17;;;13493:529;;;;;:::o;14027:456::-;14104:6;14112;14120;14173:2;14161:9;14152:7;14148:23;14144:32;14141:52;;;14189:1;14186;14179:12;14141:52;14228:9;14215:23;14247:31;14272:5;14247:31;:::i;:::-;14297:5;-1:-1:-1;14354:2:96;14339:18;;14326:32;14367:33;14326:32;14367:33;:::i;:::-;14027:456;;14419:7;;-1:-1:-1;;;14473:2:96;14458:18;;;;14445:32;;14027:456::o;15378:184::-;15430:77;15427:1;15420:88;15527:4;15524:1;15517:15;15551:4;15548:1;15541:15;15567:195;15606:3;15637:66;15630:5;15627:77;15624:103;;15707:18;;:::i;:::-;-1:-1:-1;15754:1:96;15743:13;;15567:195::o;17330:377::-;17523:2;17512:9;17505:21;17486:4;17549:44;17589:2;17578:9;17574:18;17566:6;17549:44;:::i;:::-;17641:9;17633:6;17629:22;17624:2;17613:9;17609:18;17602:50;17669:32;17694:6;17686;17669:32;:::i;17712:336::-;17781:6;17834:2;17822:9;17813:7;17809:23;17805:32;17802:52;;;17850:1;17847;17840:12;17802:52;17882:9;17876:16;17932:66;17925:5;17921:78;17914:5;17911:89;17901:117;;18014:1;18011;18004:12;19104:151;19194:4;19187:12;;;19173;;;19169:31;;19212:14;;19209:40;;;19229:18;;:::i;20329:168::-;20402:9;;;20433;;20450:15;;;20444:22;;20430:37;20420:71;;20471:18;;:::i;21834:184::-;21886:77;21883:1;21876:88;21983:4;21980:1;21973:15;22007:4;22004:1;21997:15;22023:294;22104:1;22097:5;22094:12;22084:200;;22140:77;22137:1;22130:88;22241:4;22238:1;22231:15;22269:4;22266:1;22259:15;22084:200;22293:18;;22023:294::o;22322:1431::-;22771:4;22800:3;22842:42;22834:6;22830:55;22819:9;22812:74;22922:6;22917:2;22906:9;22902:18;22895:34;22965:2;22960;22949:9;22945:18;22938:30;23004:6;22999:2;22988:9;22984:18;22977:34;;23030:3;23083:6;23075;23070:2;23059:9;23055:18;23042:48;23139:1;23134:2;23125:6;23114:9;23110:22;23106:31;23099:42;23196:66;23191:2;23183:6;23179:15;23175:88;23164:9;23160:104;23273:53;23322:2;23311:9;23307:18;23299:6;23273:53;:::i;:::-;23363:6;23357:3;23346:9;23342:19;23335:35;23407:6;23401:3;23390:9;23386:19;23379:35;23451:6;23445:3;23434:9;23430:19;23423:35;23467:47;23509:3;23498:9;23494:19;23486:6;7914:42;7903:54;7891:67;;7837:127;23467:47;7914:42;7903:54;;23565:3;23550:19;;7891:67;23631:2;23619:9;23615:2;23611:18;23607:27;23601:3;23590:9;23586:19;23579:56;23652:38;23686:2;23682;23678:11;23669:7;23652:38;:::i;:::-;23644:46;;;;23699:48;23742:3;23731:9;23727:19;23718:7;7914:42;7903:54;7891:67;;7837:127;23699:48;22322:1431;;;;;;;;;;;;;;;:::o;23758:125::-;23823:9;;;23844:10;;;23841:36;;;23857:18;;:::i;23888:274::-;23928:1;23954;23944:189;;23989:77;23986:1;23979:88;24090:4;24087:1;24080:15;24118:4;24115:1;24108:15;23944:189;-1:-1:-1;24147:9:96;;23888:274::o;24500:128::-;24567:9;;;24588:11;;;24585:37;;;24602:18;;:::i;25815:184::-;25867:77;25864:1;25857:88;25964:4;25961:1;25954:15;25988:4;25985:1;25978:15;26004:1031;26288:3;26301:22;;;26273:19;;26358:22;;;26240:4;26438:6;26411:3;26396:19;;26240:4;26472:327;26486:6;26483:1;26480:13;26472:327;;;26561:6;26548:20;26581:31;26606:5;26581:31;:::i;:::-;26648:42;26637:54;26625:67;;26715:4;26774:15;;;;26739:12;;;;26508:1;26501:9;26472:327;;;-1:-1:-1;26850:4:96;26835:20;;26828:36;;;;-1:-1:-1;;26883:42:96;26961:15;;;26956:2;26941:18;;26934:43;27013:15;;27008:2;26993:18;;;26986:43;26816:3;26004:1031;-1:-1:-1;;26004:1031:96:o;28226:271::-;28409:6;28401;28396:3;28383:33;28365:3;28435:16;;28460:13;;;28435:16;28226:271;-1:-1:-1;28226:271:96:o;28502:1017::-;28888:4;28930:3;28919:9;28915:19;28907:27;;28961:6;28950:9;28943:25;28987:42;29077:2;29069:6;29065:15;29060:2;29049:9;29045:18;29038:43;29117:6;29112:2;29101:9;29097:18;29090:34;29160:6;29155:2;29144:9;29140:18;29133:34;29176:54;29225:3;29214:9;29210:19;29202:6;29176:54;:::i;:::-;29261:3;29246:19;;29239:35;;;;29305:3;29290:19;;29283:35;;;;29349:3;29334:19;;29327:35;;;;29399:15;;;29393:3;29378:19;;29371:44;29452:15;;;29446:3;29431:19;;29424:44;29499:3;29484:19;29477:36;;;;28502:1017;;-1:-1:-1;;;;;28502:1017:96:o;30404:196::-;30443:3;30471:5;30461:39;;30480:18;;:::i;:::-;-1:-1:-1;30527:66:96;30516:78;;30404:196::o","linkReferences":{}},"methodIdentifiers":{"VERSION()":"ffa1ad74","addOwnerWithThreshold(address,uint256)":"0d582f13","approveHash(bytes32)":"d4d9bdcd","approvedHashes(address,bytes32)":"7d832974","changeThreshold(uint256)":"694e80c3","checkNSignatures(bytes32,bytes,bytes,uint256)":"12fb68e0","checkSignatures(bytes32,bytes,bytes)":"934f3a11","disableModule(address,address)":"e009cfde","domainSeparator()":"f698da25","enableModule(address)":"610b5925","encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":"e86637db","execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)":"6a761202","execTransactionFromModule(address,uint256,bytes,uint8)":"468721a7","execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":"5229073f","getChainId()":"3408e470","getModulesPaginated(address,uint256)":"cc2f8452","getOwners()":"a0e67e2b","getStorageAt(uint256,uint256)":"5624b25b","getThreshold()":"e75235b8","getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":"d8d11f78","isModuleEnabled(address)":"2d9ad53d","isOwner(address)":"2f54bf6e","nonce()":"affed0e0","removeOwner(address,address,uint256)":"f8dc5dd9","requiredTxGas(address,uint256,bytes,uint8)":"c4ca3a9c","setFallbackHandler(address)":"f08a0323","setGuard(address)":"e19a9dd9","setup(address[],uint256,address,bytes,address,address,uint256,address)":"b63e800d","signedMessages(bytes32)":"5ae6bd37","simulateAndRevert(address,bytes)":"b4faba09","swapOwner(address,address,address)":"e318b52b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"AddedOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"approvedHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ApproveHash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"ChangedFallbackHandler\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"ChangedGuard\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"name\":\"ChangedThreshold\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"DisabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"EnabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"ExecutionFromModuleFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"ExecutionFromModuleSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"ExecutionSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RemovedOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initializer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fallbackHandler\",\"type\":\"address\"}],\"name\":\"SafeSetup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"SignMsg\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"addOwnerWithThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashToApprove\",\"type\":\"bytes32\"}],\"name\":\"approveHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"approvedHashes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"changeThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredSignatures\",\"type\":\"uint256\"}],\"name\":\"checkNSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"checkSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"disableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"enableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"encodeTransactionData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"execTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"execTransactionFromModule\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"execTransactionFromModuleReturnData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"start\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getModulesPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"array\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"next\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getStorageAt\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"getTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"isModuleEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"requiredTxGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"setFallbackHandler\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"setGuard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"fallbackHandler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"paymentReceiver\",\"type\":\"address\"}],\"name\":\"setup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"signedMessages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"swapOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>\",\"kind\":\"dev\",\"methods\":{\"addOwnerWithThreshold(address,uint256)\":{\"details\":\"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\",\"owner\":\"New owner address.\"}},\"approveHash(bytes32)\":{\"details\":\"Marks a hash as approved. This can be used to validate a hash that is used by a signature.\",\"params\":{\"hashToApprove\":\"The hash that should be marked as approved for signatures that are verified by this contract.\"}},\"changeThreshold(uint256)\":{\"details\":\"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\"}},\"checkNSignatures(bytes32,bytes,bytes,uint256)\":{\"details\":\"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\",\"params\":{\"data\":\"That should be signed (this is passed to an external validator contract)\",\"dataHash\":\"Hash of the data (could be either a message hash or transaction hash)\",\"requiredSignatures\":\"Amount of required valid signatures.\",\"signatures\":\"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\"}},\"checkSignatures(bytes32,bytes,bytes)\":{\"details\":\"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\",\"params\":{\"data\":\"That should be signed (this is passed to an external validator contract)\",\"dataHash\":\"Hash of the data (could be either a message hash or transaction hash)\",\"signatures\":\"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\"}},\"disableModule(address,address)\":{\"details\":\"Allows to remove a module from the whitelist.      This can only be done via a Safe transaction.\",\"params\":{\"module\":\"Module to be removed.\",\"prevModule\":\"Module that pointed to the module to be removed in the linked list\"}},\"enableModule(address)\":{\"details\":\"Allows to add a module to the whitelist.      This can only be done via a Safe transaction.\",\"params\":{\"module\":\"Module to be whitelisted.\"}},\"encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)\":{\"details\":\"Returns the bytes that are hashed to be signed by owners.\",\"params\":{\"_nonce\":\"Transaction nonce.\",\"baseGas\":\"Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\",\"data\":\"Data payload.\",\"gasPrice\":\"Maximum gas price that should be used for this transaction.\",\"gasToken\":\"Token address (or 0 if ETH) that is used for the payment.\",\"operation\":\"Operation type.\",\"refundReceiver\":\"Address of receiver of gas payment (or 0 if tx.origin).\",\"safeTxGas\":\"Gas that should be used for the safe transaction.\",\"to\":\"Destination address.\",\"value\":\"Ether value.\"},\"returns\":{\"_0\":\"Transaction hash bytes.\"}},\"execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)\":{\"details\":\"Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.      Note: The fees are always transferred, even if the user transaction fails.\",\"params\":{\"baseGas\":\"Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\",\"data\":\"Data payload of Safe transaction.\",\"gasPrice\":\"Gas price that should be used for the payment calculation.\",\"gasToken\":\"Token address (or 0 if ETH) that is used for the payment.\",\"operation\":\"Operation type of Safe transaction.\",\"refundReceiver\":\"Address of receiver of gas payment (or 0 if tx.origin).\",\"safeTxGas\":\"Gas that should be used for the Safe transaction.\",\"signatures\":\"Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\",\"to\":\"Destination address of Safe transaction.\",\"value\":\"Ether value of Safe transaction.\"}},\"execTransactionFromModule(address,uint256,bytes,uint8)\":{\"details\":\"Allows a Module to execute a Safe transaction without any further confirmations.\",\"params\":{\"data\":\"Data payload of module transaction.\",\"operation\":\"Operation type of module transaction.\",\"to\":\"Destination address of module transaction.\",\"value\":\"Ether value of module transaction.\"}},\"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)\":{\"details\":\"Allows a Module to execute a Safe transaction without any further confirmations and return data\",\"params\":{\"data\":\"Data payload of module transaction.\",\"operation\":\"Operation type of module transaction.\",\"to\":\"Destination address of module transaction.\",\"value\":\"Ether value of module transaction.\"}},\"getChainId()\":{\"details\":\"Returns the chain id used by this contract.\"},\"getModulesPaginated(address,uint256)\":{\"details\":\"Returns array of modules.\",\"params\":{\"pageSize\":\"Maximum number of modules that should be returned.\",\"start\":\"Start of the page.\"},\"returns\":{\"array\":\"Array of modules.\",\"next\":\"Start of the next page.\"}},\"getOwners()\":{\"details\":\"Returns array of owners.\",\"returns\":{\"_0\":\"Array of Safe owners.\"}},\"getStorageAt(uint256,uint256)\":{\"details\":\"Reads `length` bytes of storage in the currents contract\",\"params\":{\"length\":\"- the number of words (32 bytes) of data to read\",\"offset\":\"- the offset in the current contract's storage in words to start reading from\"},\"returns\":{\"_0\":\"the bytes that were read.\"}},\"getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)\":{\"details\":\"Returns hash to be signed by owners.\",\"params\":{\"_nonce\":\"Transaction nonce.\",\"baseGas\":\"Gas costs for data used to trigger the safe transaction.\",\"data\":\"Data payload.\",\"gasPrice\":\"Maximum gas price that should be used for this transaction.\",\"gasToken\":\"Token address (or 0 if ETH) that is used for the payment.\",\"operation\":\"Operation type.\",\"refundReceiver\":\"Address of receiver of gas payment (or 0 if tx.origin).\",\"safeTxGas\":\"Fas that should be used for the safe transaction.\",\"to\":\"Destination address.\",\"value\":\"Ether value.\"},\"returns\":{\"_0\":\"Transaction hash.\"}},\"isModuleEnabled(address)\":{\"details\":\"Returns if an module is enabled\",\"returns\":{\"_0\":\"True if the module is enabled\"}},\"removeOwner(address,address,uint256)\":{\"details\":\"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\",\"owner\":\"Owner address to be removed.\",\"prevOwner\":\"Owner that pointed to the owner to be removed in the linked list\"}},\"requiredTxGas(address,uint256,bytes,uint8)\":{\"details\":\"Allows to estimate a Safe transaction.      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\",\"params\":{\"data\":\"Data payload of Safe transaction.\",\"operation\":\"Operation type of Safe transaction.\",\"to\":\"Destination address of Safe transaction.\",\"value\":\"Ether value of Safe transaction.\"},\"returns\":{\"_0\":\"Estimate without refunds and overhead fees (base transaction and payload data gas costs).\"}},\"setFallbackHandler(address)\":{\"details\":\"Allows to add a contract to handle fallback calls.      Only fallback calls without value and with data will be forwarded.      This can only be done via a Safe transaction.\",\"params\":{\"handler\":\"contract to handle fallbacks calls.\"}},\"setGuard(address)\":{\"details\":\"Set a guard that checks transactions before execution\",\"params\":{\"guard\":\"The address of the guard to be used or the 0 address to disable the guard\"}},\"setup(address[],uint256,address,bytes,address,address,uint256,address)\":{\"details\":\"Setup function sets initial storage of contract.\",\"params\":{\"_owners\":\"List of Safe owners.\",\"_threshold\":\"Number of required confirmations for a Safe transaction.\",\"data\":\"Data payload for optional delegate call.\",\"fallbackHandler\":\"Handler for fallback calls to this contract\",\"payment\":\"Value that should be paid\",\"paymentReceiver\":\"Adddress that should receive the payment (or 0 if tx.origin)\",\"paymentToken\":\"Token that should be used for the payment (0 is ETH)\",\"to\":\"Contract address for optional delegate call.\"}},\"simulateAndRevert(address,bytes)\":{\"details\":\"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}},\"swapOwner(address,address,address)\":{\"details\":\"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.\",\"params\":{\"newOwner\":\"New owner address.\",\"oldOwner\":\"Owner address to be replaced.\",\"prevOwner\":\"Owner that pointed to the owner to be replaced in the linked list\"}}},\"title\":\"Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addOwnerWithThreshold(address,uint256)\":{\"notice\":\"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`.\"},\"changeThreshold(uint256)\":{\"notice\":\"Changes the threshold of the Safe to `_threshold`.\"},\"disableModule(address,address)\":{\"notice\":\"Disables the module `module` for the Safe.\"},\"enableModule(address)\":{\"notice\":\"Enables the module `module` for the Safe.\"},\"removeOwner(address,address,uint256)\":{\"notice\":\"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`.\"},\"requiredTxGas(address,uint256,bytes,uint8)\":{\"notice\":\"Deprecated in favor of common/StorageAccessible.sol and will be removed in next version.\"},\"swapOwner(address,address,address)\":{\"notice\":\"Replaces the owner `oldOwner` in the Safe with `newOwner`.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/GnosisSafe.sol\":\"GnosisSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/GnosisSafe.sol\":{\"keccak256\":\"0x2ca9e3e053c969b9364f62c50c2c25b92525db7fd0bad3ae1fb0c20dd575367c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ef1bceac49ae93b31aec41380862fdc267823c41e2dfefb9b7d70d0996e858e1\",\"dweb:/ipfs/QmWFU5bic2CGv8QgQ8bxJnjMfuJgNL2zZubt5hvzhcRZPc\"]},\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309\",\"dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk\"]},\"lib/safe-contracts/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x1be9f0f3e80a78134c2e3a026c6a14759785bd35d135e87a4a025aeb6742791f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://44130f09921e895c0b9d7797de1d64940a8c43391efcda3a0208cb9ad96475a7\",\"dweb:/ipfs/QmUur4hzvCJ68PnW6zQFpemAMH2DH5mExPqSZdpKeY1ZRN\"]},\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0x53a532a31f9632d5a73ad0df56f05bd2b66a2f781f571eb48d00367d370707f9\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://eebc15cb7c83cf9516514b34bd16fb19c08104c738fa172ae3c98c66b84708ed\",\"dweb:/ipfs/QmfJ4yX5WwHU58QVoxJFaejyerscTs6VCgn2TdUVrEZeTP\"]},\"lib/safe-contracts/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0x5512760a0328309f82a71cbe2ac14e0942501b9d44d5fb417bd02174546672e5\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://763cf803a98a921d62ed51d7876a13aed63968c828f026ce2beb747d2631c0bc\",\"dweb:/ipfs/QmbHZoYsbkxC2kVCs4pQ4nRaFrcgU5X8FuLX7vV3qDR9Y5\"]},\"lib/safe-contracts/contracts/base/OwnerManager.sol\":{\"keccak256\":\"0x01a3d64cc0967f42ae63802409f5404d18352516ea2a6335005003d919ffcf12\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://91824103f2966612103705d6493290e193b0c0ca2bbe7141965184435dbb999b\",\"dweb:/ipfs/Qmd7u917v4DnD4hvQGAGbchVJ8A7pm1UCzCv7sAzQnRoi4\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d\",\"dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej\"]},\"lib/safe-contracts/contracts/common/EtherPaymentFallback.sol\":{\"keccak256\":\"0x1a7928d29877da84a3d0df846d5cd933d48ee095c1bde0aa044e249b12e27a72\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://962fc098cfdd8a43cc7d294c1105718ea985cacf1172ea0426f7370e2096b830\",\"dweb:/ipfs/QmdZrxJ7dSWuTjbrN133YiRDLwYQr21zLr3CqWWtowY9Gu\"]},\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x178682d8477da42936c7e8e24d39094c4ac08ecd8623794b9535d77001b665f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://2ae8a6d5c7d4cc19c3b957c8857e87e92a4570effebf32ba54184c2b8375a0a2\",\"dweb:/ipfs/QmVNgRcRVgQZriJm8KVXQvRbHQf74wH7ABmBNTjBTqBa8r\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8530c6e0392415d42486847cd4368d30f6cac42051596330692a571fcdbb9e29\",\"dweb:/ipfs/QmWw51Pshw5t2sMKANzxtfNdBSQUyQQpfTr3Mi7oNJGk7U\"]},\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2d37be182472ccfee62a33e9939f9b3d509be4c32e9fdebc2c1746c573655987\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f76d96f10640beee7d4b4ad119bd3c64aeb26929011d9c1eec738c63ebc92f63\",\"dweb:/ipfs/QmaqgDocQumKeyUMgZU7STzpTASQjDbUxbQKuZ17xhLaXz\"]},\"lib/safe-contracts/contracts/common/Singleton.sol\":{\"keccak256\":\"0x6e02c18998de8834dd7d69890cb6ede996b6f635d2337081a596d91e35e2c648\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ce1dfe9f820352b6f95b350ac0b3fa8afc24ad77bffffc2c9e00462e2a41a666\",\"dweb:/ipfs/QmVr2dCUbNbg5e7UsgngGij5mybgkXcbf5e5cPhT21aFXA\"]},\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x36853adb266c2ab7d3c612aca799441a86bd15d9e1d24fc6c70d63f5c2df3aaf\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3f210f47e032444049040d2929b32e02089aac1d05b07dcd77ee34bb63505dfa\",\"dweb:/ipfs/QmbE8GXFAbthieTL51S2XPF5URyPaj1tDubVuhztkSoiPo\"]},\"lib/safe-contracts/contracts/external/GnosisSafeMath.sol\":{\"keccak256\":\"0x2a2b4d74f5834a9437be0cd3254d7a676698fc78aa47941c2009470196998d98\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ea04449ba8b78ec44f3463b68cbce971875626e91d028add50900c41101a1156\",\"dweb:/ipfs/QmR95ci4HVkJuyYGvYRHVpp6N3wefu5WVDhipKwRechWV6\"]},\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x5b6e9bf17f28738ce88e751f420b0559f5151ba7bec2ff3c7bb31e42673d6801\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bfdde8390deb619e38f98be67c5f9d26f12623855540af76b9f454142d3896c1\",\"dweb:/ipfs/QmZrr1ocToR5S62W177qV2csfs7wCQNs3t9vatyx32uLXz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"AddedOwner","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"approvedHash","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true}],"type":"event","name":"ApproveHash","anonymous":false},{"inputs":[{"internalType":"address","name":"handler","type":"address","indexed":false}],"type":"event","name":"ChangedFallbackHandler","anonymous":false},{"inputs":[{"internalType":"address","name":"guard","type":"address","indexed":false}],"type":"event","name":"ChangedGuard","anonymous":false},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256","indexed":false}],"type":"event","name":"ChangedThreshold","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":false}],"type":"event","name":"DisabledModule","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":false}],"type":"event","name":"EnabledModule","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"payment","type":"uint256","indexed":false}],"type":"event","name":"ExecutionFailure","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":true}],"type":"event","name":"ExecutionFromModuleFailure","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":true}],"type":"event","name":"ExecutionFromModuleSuccess","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"payment","type":"uint256","indexed":false}],"type":"event","name":"ExecutionSuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"RemovedOwner","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SafeReceived","anonymous":false},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"address[]","name":"owners","type":"address[]","indexed":false},{"internalType":"uint256","name":"threshold","type":"uint256","indexed":false},{"internalType":"address","name":"initializer","type":"address","indexed":false},{"internalType":"address","name":"fallbackHandler","type":"address","indexed":false}],"type":"event","name":"SafeSetup","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"SignMsg","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addOwnerWithThreshold"},{"inputs":[{"internalType":"bytes32","name":"hashToApprove","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"approveHash"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"approvedHashes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"changeThreshold"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256","name":"requiredSignatures","type":"uint256"}],"stateMutability":"view","type":"function","name":"checkNSignatures"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"checkSignatures"},{"inputs":[{"internalType":"address","name":"prevModule","type":"address"},{"internalType":"address","name":"module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableModule"},{"inputs":[],"stateMutability":"view","type":"function","name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableModule"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"encodeTransactionData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execTransactionFromModule","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execTransactionFromModuleReturnData","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"start","type":"address"},{"internalType":"uint256","name":"pageSize","type":"uint256"}],"stateMutability":"view","type":"function","name":"getModulesPaginated","outputs":[{"internalType":"address[]","name":"array","type":"address[]"},{"internalType":"address","name":"next","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStorageAt","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTransactionHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"stateMutability":"view","type":"function","name":"isModuleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeOwner"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"requiredTxGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"handler","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFallbackHandler"},{"inputs":[{"internalType":"address","name":"guard","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuard"},{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"fallbackHandler","type":"address"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address payable","name":"paymentReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setup"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"signedMessages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"targetContract","type":"address"},{"internalType":"bytes","name":"calldataPayload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndRevert"},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"swapOwner"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"addOwnerWithThreshold(address,uint256)":{"details":"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"New owner address."}},"approveHash(bytes32)":{"details":"Marks a hash as approved. This can be used to validate a hash that is used by a signature.","params":{"hashToApprove":"The hash that should be marked as approved for signatures that are verified by this contract."}},"changeThreshold(uint256)":{"details":"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold."}},"checkNSignatures(bytes32,bytes,bytes,uint256)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","requiredSignatures":"Amount of required valid signatures.","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"checkSignatures(bytes32,bytes,bytes)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"disableModule(address,address)":{"details":"Allows to remove a module from the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be removed.","prevModule":"Module that pointed to the module to be removed in the linked list"}},"enableModule(address)":{"details":"Allows to add a module to the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be whitelisted."}},"encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns the bytes that are hashed to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash bytes."}},"execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)":{"details":"Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.      Note: The fees are always transferred, even if the user transaction fails.","params":{"baseGas":"Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload of Safe transaction.","gasPrice":"Gas price that should be used for the payment calculation.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type of Safe transaction.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the Safe transaction.","signatures":"Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."}},"execTransactionFromModule(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations.","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations and return data","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"getChainId()":{"details":"Returns the chain id used by this contract."},"getModulesPaginated(address,uint256)":{"details":"Returns array of modules.","params":{"pageSize":"Maximum number of modules that should be returned.","start":"Start of the page."},"returns":{"array":"Array of modules.","next":"Start of the next page."}},"getOwners()":{"details":"Returns array of owners.","returns":{"_0":"Array of Safe owners."}},"getStorageAt(uint256,uint256)":{"details":"Reads `length` bytes of storage in the currents contract","params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns hash to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for data used to trigger the safe transaction.","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Fas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash."}},"isModuleEnabled(address)":{"details":"Returns if an module is enabled","returns":{"_0":"True if the module is enabled"}},"removeOwner(address,address,uint256)":{"details":"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"Owner address to be removed.","prevOwner":"Owner that pointed to the owner to be removed in the linked list"}},"requiredTxGas(address,uint256,bytes,uint8)":{"details":"Allows to estimate a Safe transaction.      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`","params":{"data":"Data payload of Safe transaction.","operation":"Operation type of Safe transaction.","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."},"returns":{"_0":"Estimate without refunds and overhead fees (base transaction and payload data gas costs)."}},"setFallbackHandler(address)":{"details":"Allows to add a contract to handle fallback calls.      Only fallback calls without value and with data will be forwarded.      This can only be done via a Safe transaction.","params":{"handler":"contract to handle fallbacks calls."}},"setGuard(address)":{"details":"Set a guard that checks transactions before execution","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}},"setup(address[],uint256,address,bytes,address,address,uint256,address)":{"details":"Setup function sets initial storage of contract.","params":{"_owners":"List of Safe owners.","_threshold":"Number of required confirmations for a Safe transaction.","data":"Data payload for optional delegate call.","fallbackHandler":"Handler for fallback calls to this contract","payment":"Value that should be paid","paymentReceiver":"Adddress that should receive the payment (or 0 if tx.origin)","paymentToken":"Token that should be used for the payment (0 is ETH)","to":"Contract address for optional delegate call."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}},"swapOwner(address,address,address)":{"details":"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.","params":{"newOwner":"New owner address.","oldOwner":"Owner address to be replaced.","prevOwner":"Owner that pointed to the owner to be replaced in the linked list"}}},"version":1},"userdoc":{"kind":"user","methods":{"addOwnerWithThreshold(address,uint256)":{"notice":"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`."},"changeThreshold(uint256)":{"notice":"Changes the threshold of the Safe to `_threshold`."},"disableModule(address,address)":{"notice":"Disables the module `module` for the Safe."},"enableModule(address)":{"notice":"Enables the module `module` for the Safe."},"removeOwner(address,address,uint256)":{"notice":"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`."},"requiredTxGas(address,uint256,bytes,uint8)":{"notice":"Deprecated in favor of common/StorageAccessible.sol and will be removed in next version."},"swapOwner(address,address,address)":{"notice":"Replaces the owner `oldOwner` in the Safe with `newOwner`."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/GnosisSafe.sol":"GnosisSafe"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/safe-contracts/contracts/GnosisSafe.sol":{"keccak256":"0x2ca9e3e053c969b9364f62c50c2c25b92525db7fd0bad3ae1fb0c20dd575367c","urls":["bzz-raw://ef1bceac49ae93b31aec41380862fdc267823c41e2dfefb9b7d70d0996e858e1","dweb:/ipfs/QmWFU5bic2CGv8QgQ8bxJnjMfuJgNL2zZubt5hvzhcRZPc"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08","urls":["bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309","dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/FallbackManager.sol":{"keccak256":"0x1be9f0f3e80a78134c2e3a026c6a14759785bd35d135e87a4a025aeb6742791f","urls":["bzz-raw://44130f09921e895c0b9d7797de1d64940a8c43391efcda3a0208cb9ad96475a7","dweb:/ipfs/QmUur4hzvCJ68PnW6zQFpemAMH2DH5mExPqSZdpKeY1ZRN"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0x53a532a31f9632d5a73ad0df56f05bd2b66a2f781f571eb48d00367d370707f9","urls":["bzz-raw://eebc15cb7c83cf9516514b34bd16fb19c08104c738fa172ae3c98c66b84708ed","dweb:/ipfs/QmfJ4yX5WwHU58QVoxJFaejyerscTs6VCgn2TdUVrEZeTP"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/ModuleManager.sol":{"keccak256":"0x5512760a0328309f82a71cbe2ac14e0942501b9d44d5fb417bd02174546672e5","urls":["bzz-raw://763cf803a98a921d62ed51d7876a13aed63968c828f026ce2beb747d2631c0bc","dweb:/ipfs/QmbHZoYsbkxC2kVCs4pQ4nRaFrcgU5X8FuLX7vV3qDR9Y5"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/OwnerManager.sol":{"keccak256":"0x01a3d64cc0967f42ae63802409f5404d18352516ea2a6335005003d919ffcf12","urls":["bzz-raw://91824103f2966612103705d6493290e193b0c0ca2bbe7141965184435dbb999b","dweb:/ipfs/Qmd7u917v4DnD4hvQGAGbchVJ8A7pm1UCzCv7sAzQnRoi4"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f","urls":["bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d","dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/EtherPaymentFallback.sol":{"keccak256":"0x1a7928d29877da84a3d0df846d5cd933d48ee095c1bde0aa044e249b12e27a72","urls":["bzz-raw://962fc098cfdd8a43cc7d294c1105718ea985cacf1172ea0426f7370e2096b830","dweb:/ipfs/QmdZrxJ7dSWuTjbrN133YiRDLwYQr21zLr3CqWWtowY9Gu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":{"keccak256":"0x178682d8477da42936c7e8e24d39094c4ac08ecd8623794b9535d77001b665f1","urls":["bzz-raw://2ae8a6d5c7d4cc19c3b957c8857e87e92a4570effebf32ba54184c2b8375a0a2","dweb:/ipfs/QmVNgRcRVgQZriJm8KVXQvRbHQf74wH7ABmBNTjBTqBa8r"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc","urls":["bzz-raw://8530c6e0392415d42486847cd4368d30f6cac42051596330692a571fcdbb9e29","dweb:/ipfs/QmWw51Pshw5t2sMKANzxtfNdBSQUyQQpfTr3Mi7oNJGk7U"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2d37be182472ccfee62a33e9939f9b3d509be4c32e9fdebc2c1746c573655987","urls":["bzz-raw://f76d96f10640beee7d4b4ad119bd3c64aeb26929011d9c1eec738c63ebc92f63","dweb:/ipfs/QmaqgDocQumKeyUMgZU7STzpTASQjDbUxbQKuZ17xhLaXz"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Singleton.sol":{"keccak256":"0x6e02c18998de8834dd7d69890cb6ede996b6f635d2337081a596d91e35e2c648","urls":["bzz-raw://ce1dfe9f820352b6f95b350ac0b3fa8afc24ad77bffffc2c9e00462e2a41a666","dweb:/ipfs/QmVr2dCUbNbg5e7UsgngGij5mybgkXcbf5e5cPhT21aFXA"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/StorageAccessible.sol":{"keccak256":"0x36853adb266c2ab7d3c612aca799441a86bd15d9e1d24fc6c70d63f5c2df3aaf","urls":["bzz-raw://3f210f47e032444049040d2929b32e02089aac1d05b07dcd77ee34bb63505dfa","dweb:/ipfs/QmbE8GXFAbthieTL51S2XPF5URyPaj1tDubVuhztkSoiPo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/external/GnosisSafeMath.sol":{"keccak256":"0x2a2b4d74f5834a9437be0cd3254d7a676698fc78aa47941c2009470196998d98","urls":["bzz-raw://ea04449ba8b78ec44f3463b68cbce971875626e91d028add50900c41101a1156","dweb:/ipfs/QmR95ci4HVkJuyYGvYRHVpp6N3wefu5WVDhipKwRechWV6"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x5b6e9bf17f28738ce88e751f420b0559f5151ba7bec2ff3c7bb31e42673d6801","urls":["bzz-raw://bfdde8390deb619e38f98be67c5f9d26f12623855540af76b9f454142d3896c1","dweb:/ipfs/QmZrr1ocToR5S62W177qV2csfs7wCQNs3t9vatyx32uLXz"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":50907,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"singleton","offset":0,"slot":"0","type":"t_address"},{"astId":49958,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"modules","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"},{"astId":50317,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"owners","offset":0,"slot":"2","type":"t_mapping(t_address,t_address)"},{"astId":50319,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"ownerCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":50321,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"threshold","offset":0,"slot":"4","type":"t_uint256"},{"astId":48891,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"nonce","offset":0,"slot":"5","type":"t_uint256"},{"astId":48893,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"_deprecatedDomainSeparator","offset":0,"slot":"6","type":"t_bytes32"},{"astId":48897,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"signedMessages","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":48903,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"approvedHashes","offset":0,"slot":"8","type":"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"addOwnerWithThreshold(address,uint256)":{"notice":"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`."},"changeThreshold(uint256)":{"notice":"Changes the threshold of the Safe to `_threshold`."},"disableModule(address,address)":{"notice":"Disables the module `module` for the Safe."},"enableModule(address)":{"notice":"Enables the module `module` for the Safe."},"removeOwner(address,address,uint256)":{"notice":"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`."},"requiredTxGas(address,uint256,bytes,uint8)":{"notice":"Deprecated in favor of common/StorageAccessible.sol and will be removed in next version."},"swapOwner(address,address,address)":{"notice":"Replaces the owner `oldOwner` in the Safe with `newOwner`."}}},"devdoc":{"version":1,"kind":"dev","author":"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>","methods":{"addOwnerWithThreshold(address,uint256)":{"details":"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"New owner address."}},"approveHash(bytes32)":{"details":"Marks a hash as approved. This can be used to validate a hash that is used by a signature.","params":{"hashToApprove":"The hash that should be marked as approved for signatures that are verified by this contract."}},"changeThreshold(uint256)":{"details":"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold."}},"checkNSignatures(bytes32,bytes,bytes,uint256)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","requiredSignatures":"Amount of required valid signatures.","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"checkSignatures(bytes32,bytes,bytes)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"disableModule(address,address)":{"details":"Allows to remove a module from the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be removed.","prevModule":"Module that pointed to the module to be removed in the linked list"}},"enableModule(address)":{"details":"Allows to add a module to the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be whitelisted."}},"encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns the bytes that are hashed to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash bytes."}},"execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)":{"details":"Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.      Note: The fees are always transferred, even if the user transaction fails.","params":{"baseGas":"Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload of Safe transaction.","gasPrice":"Gas price that should be used for the payment calculation.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type of Safe transaction.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the Safe transaction.","signatures":"Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."}},"execTransactionFromModule(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations.","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations and return data","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"getChainId()":{"details":"Returns the chain id used by this contract."},"getModulesPaginated(address,uint256)":{"details":"Returns array of modules.","params":{"pageSize":"Maximum number of modules that should be returned.","start":"Start of the page."},"returns":{"array":"Array of modules.","next":"Start of the next page."}},"getOwners()":{"details":"Returns array of owners.","returns":{"_0":"Array of Safe owners."}},"getStorageAt(uint256,uint256)":{"details":"Reads `length` bytes of storage in the currents contract","params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns hash to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for data used to trigger the safe transaction.","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Fas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash."}},"isModuleEnabled(address)":{"details":"Returns if an module is enabled","returns":{"_0":"True if the module is enabled"}},"removeOwner(address,address,uint256)":{"details":"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"Owner address to be removed.","prevOwner":"Owner that pointed to the owner to be removed in the linked list"}},"requiredTxGas(address,uint256,bytes,uint8)":{"details":"Allows to estimate a Safe transaction.      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`","params":{"data":"Data payload of Safe transaction.","operation":"Operation type of Safe transaction.","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."},"returns":{"_0":"Estimate without refunds and overhead fees (base transaction and payload data gas costs)."}},"setFallbackHandler(address)":{"details":"Allows to add a contract to handle fallback calls.      Only fallback calls without value and with data will be forwarded.      This can only be done via a Safe transaction.","params":{"handler":"contract to handle fallbacks calls."}},"setGuard(address)":{"details":"Set a guard that checks transactions before execution","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}},"setup(address[],uint256,address,bytes,address,address,uint256,address)":{"details":"Setup function sets initial storage of contract.","params":{"_owners":"List of Safe owners.","_threshold":"Number of required confirmations for a Safe transaction.","data":"Data payload for optional delegate call.","fallbackHandler":"Handler for fallback calls to this contract","payment":"Value that should be paid","paymentReceiver":"Adddress that should receive the payment (or 0 if tx.origin)","paymentToken":"Token that should be used for the payment (0 is ETH)","to":"Contract address for optional delegate call."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}},"swapOwner(address,address,address)":{"details":"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.","params":{"newOwner":"New owner address.","oldOwner":"Owner address to be replaced.","prevOwner":"Owner that pointed to the owner to be replaced in the linked list"}}},"title":"Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191."},"ast":{"absolutePath":"lib/safe-contracts/contracts/GnosisSafe.sol","id":49762,"exportedSymbols":{"Enum":[50807],"EtherPaymentFallback":[50829],"Executor":[49793],"FallbackManager":[49844],"GnosisSafe":[49761],"GnosisSafeMath":[51180],"Guard":[49882],"GuardManager":[49922],"ISignatureValidator":[51285],"ISignatureValidatorConstants":[51272],"ModuleManager":[50289],"OwnerManager":[50800],"SecuredTokenTransfer":[50856],"SelfAuthorized":[50882],"SignatureDecoder":[50902],"Singleton":[50908],"StorageAccessible":[50957]},"nodeType":"SourceUnit","src":"42:20209:40","nodes":[{"id":48810,"nodeType":"PragmaDirective","src":"42:31:40","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":48811,"nodeType":"ImportDirective","src":"75:34:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/ModuleManager.sol","file":"./base/ModuleManager.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50290,"symbolAliases":[],"unitAlias":""},{"id":48812,"nodeType":"ImportDirective","src":"110:33:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/OwnerManager.sol","file":"./base/OwnerManager.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50801,"symbolAliases":[],"unitAlias":""},{"id":48813,"nodeType":"ImportDirective","src":"144:36:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/FallbackManager.sol","file":"./base/FallbackManager.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":49845,"symbolAliases":[],"unitAlias":""},{"id":48814,"nodeType":"ImportDirective","src":"181:33:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/GuardManager.sol","file":"./base/GuardManager.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":49923,"symbolAliases":[],"unitAlias":""},{"id":48815,"nodeType":"ImportDirective","src":"215:43:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/EtherPaymentFallback.sol","file":"./common/EtherPaymentFallback.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50830,"symbolAliases":[],"unitAlias":""},{"id":48816,"nodeType":"ImportDirective","src":"259:32:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Singleton.sol","file":"./common/Singleton.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50909,"symbolAliases":[],"unitAlias":""},{"id":48817,"nodeType":"ImportDirective","src":"292:39:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SignatureDecoder.sol","file":"./common/SignatureDecoder.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50903,"symbolAliases":[],"unitAlias":""},{"id":48818,"nodeType":"ImportDirective","src":"332:43:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol","file":"./common/SecuredTokenTransfer.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50857,"symbolAliases":[],"unitAlias":""},{"id":48819,"nodeType":"ImportDirective","src":"376:40:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/StorageAccessible.sol","file":"./common/StorageAccessible.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":50958,"symbolAliases":[],"unitAlias":""},{"id":48820,"nodeType":"ImportDirective","src":"417:46:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol","file":"./interfaces/ISignatureValidator.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":51286,"symbolAliases":[],"unitAlias":""},{"id":48821,"nodeType":"ImportDirective","src":"464:39:40","nodes":[],"absolutePath":"lib/safe-contracts/contracts/external/GnosisSafeMath.sol","file":"./external/GnosisSafeMath.sol","nameLocation":"-1:-1:-1","scope":49762,"sourceUnit":51181,"symbolAliases":[],"unitAlias":""},{"id":49761,"nodeType":"ContractDefinition","src":"722:19528:40","nodes":[{"id":48845,"nodeType":"UsingForDirective","src":"972:33:40","nodes":[],"global":false,"libraryName":{"id":48843,"name":"GnosisSafeMath","nameLocations":["978:14:40"],"nodeType":"IdentifierPath","referencedDeclaration":51180,"src":"978:14:40"},"typeName":{"id":48844,"name":"uint256","nodeType":"ElementaryTypeName","src":"997:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":48848,"nodeType":"VariableDeclaration","src":"1011:40:40","nodes":[],"constant":true,"functionSelector":"ffa1ad74","mutability":"constant","name":"VERSION","nameLocation":"1034:7:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48846,"name":"string","nodeType":"ElementaryTypeName","src":"1011:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":48847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1044:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \"1.3.0\""},"value":"1.3.0"},"visibility":"public"},{"id":48851,"nodeType":"VariableDeclaration","src":"1155:119:40","nodes":[],"constant":true,"mutability":"constant","name":"DOMAIN_SEPARATOR_TYPEHASH","nameLocation":"1180:25:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1155:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834376537393533346132343539353265386231363839336133333662383561336439656139666138633537336633643830336166623932613739343639323138","id":48850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1208:66:40","typeDescriptions":{"typeIdentifier":"t_rational_32523383700587834770323112271211932718128200013265661849047136999858837557784_by_1","typeString":"int_const 3252...(69 digits omitted)...7784"},"value":"0x47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218"},"visibility":"private"},{"id":48854,"nodeType":"VariableDeclaration","src":"1487:110:40","nodes":[],"constant":true,"mutability":"constant","name":"SAFE_TX_TYPEHASH","nameLocation":"1512:16:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862623833313064343836333638646236626436663834393430326664643733616435336433313662356134623236343461643665666530663934313238366438","id":48853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1531:66:40","typeDescriptions":{"typeIdentifier":"t_rational_84814075808141314178395468817534025465894426928601295766380145544921651250904_by_1","typeString":"int_const 8481...(69 digits omitted)...0904"},"value":"0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8"},"visibility":"private"},{"id":48867,"nodeType":"EventDefinition","src":"1604:126:40","nodes":[],"anonymous":false,"eventSelector":"141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a8","name":"SafeSetup","nameLocation":"1610:9:40","parameters":{"id":48866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48856,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"1636:9:40","nodeType":"VariableDeclaration","scope":48867,"src":"1620:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48855,"name":"address","nodeType":"ElementaryTypeName","src":"1620:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48859,"indexed":false,"mutability":"mutable","name":"owners","nameLocation":"1657:6:40","nodeType":"VariableDeclaration","scope":48867,"src":"1647:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48857,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48858,"nodeType":"ArrayTypeName","src":"1647:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":48861,"indexed":false,"mutability":"mutable","name":"threshold","nameLocation":"1673:9:40","nodeType":"VariableDeclaration","scope":48867,"src":"1665:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48860,"name":"uint256","nodeType":"ElementaryTypeName","src":"1665:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48863,"indexed":false,"mutability":"mutable","name":"initializer","nameLocation":"1692:11:40","nodeType":"VariableDeclaration","scope":48867,"src":"1684:19:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48862,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48865,"indexed":false,"mutability":"mutable","name":"fallbackHandler","nameLocation":"1713:15:40","nodeType":"VariableDeclaration","scope":48867,"src":"1705:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48864,"name":"address","nodeType":"ElementaryTypeName","src":"1705:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1619:110:40"}},{"id":48873,"nodeType":"EventDefinition","src":"1735:71:40","nodes":[],"anonymous":false,"eventSelector":"f2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c","name":"ApproveHash","nameLocation":"1741:11:40","parameters":{"id":48872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48869,"indexed":true,"mutability":"mutable","name":"approvedHash","nameLocation":"1769:12:40","nodeType":"VariableDeclaration","scope":48873,"src":"1753:28:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1753:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48871,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1799:5:40","nodeType":"VariableDeclaration","scope":48873,"src":"1783:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48870,"name":"address","nodeType":"ElementaryTypeName","src":"1783:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1752:53:40"}},{"id":48877,"nodeType":"EventDefinition","src":"1811:39:40","nodes":[],"anonymous":false,"eventSelector":"e7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e4","name":"SignMsg","nameLocation":"1817:7:40","parameters":{"id":48876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48875,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"1841:7:40","nodeType":"VariableDeclaration","scope":48877,"src":"1825:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1825:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1824:25:40"}},{"id":48883,"nodeType":"EventDefinition","src":"1855:56:40","nodes":[],"anonymous":false,"eventSelector":"23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23","name":"ExecutionFailure","nameLocation":"1861:16:40","parameters":{"id":48882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48879,"indexed":false,"mutability":"mutable","name":"txHash","nameLocation":"1886:6:40","nodeType":"VariableDeclaration","scope":48883,"src":"1878:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1878:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48881,"indexed":false,"mutability":"mutable","name":"payment","nameLocation":"1902:7:40","nodeType":"VariableDeclaration","scope":48883,"src":"1894:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48880,"name":"uint256","nodeType":"ElementaryTypeName","src":"1894:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1877:33:40"}},{"id":48889,"nodeType":"EventDefinition","src":"1916:56:40","nodes":[],"anonymous":false,"eventSelector":"442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e","name":"ExecutionSuccess","nameLocation":"1922:16:40","parameters":{"id":48888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48885,"indexed":false,"mutability":"mutable","name":"txHash","nameLocation":"1947:6:40","nodeType":"VariableDeclaration","scope":48889,"src":"1939:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1939:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48887,"indexed":false,"mutability":"mutable","name":"payment","nameLocation":"1963:7:40","nodeType":"VariableDeclaration","scope":48889,"src":"1955:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48886,"name":"uint256","nodeType":"ElementaryTypeName","src":"1955:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1938:33:40"}},{"id":48891,"nodeType":"VariableDeclaration","src":"1978:20:40","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"1993:5:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48890,"name":"uint256","nodeType":"ElementaryTypeName","src":"1978:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":48893,"nodeType":"VariableDeclaration","src":"2004:42:40","nodes":[],"constant":false,"mutability":"mutable","name":"_deprecatedDomainSeparator","nameLocation":"2020:26:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2004:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":48897,"nodeType":"VariableDeclaration","src":"2149:49:40","nodes":[],"constant":false,"functionSelector":"5ae6bd37","mutability":"mutable","name":"signedMessages","nameLocation":"2184:14:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":48896,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2149:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48895,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":48903,"nodeType":"VariableDeclaration","src":"2309:69:40","nodes":[],"constant":false,"functionSelector":"7d832974","mutability":"mutable","name":"approvedHashes","nameLocation":"2364:14:40","scope":49761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"},"typeName":{"id":48902,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48898,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2309:47:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48901,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2336:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2328:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48900,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":48911,"nodeType":"FunctionDefinition","src":"2490:247:40","nodes":[],"body":{"id":48910,"nodeType":"Block","src":"2504:233:40","nodes":[],"statements":[{"expression":{"id":48908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48906,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50321,"src":"2717:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":48907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2729:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2717:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48909,"nodeType":"ExpressionStatement","src":"2717:13:40"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":48904,"nodeType":"ParameterList","parameters":[],"src":"2501:2:40"},"returnParameters":{"id":48905,"nodeType":"ParameterList","parameters":[],"src":"2504:0:40"},"scope":49761,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48976,"nodeType":"FunctionDefinition","src":"3353:1151:40","nodes":[],"body":{"id":48975,"nodeType":"Block","src":"3625:879:40","nodes":[],"statements":[{"expression":{"arguments":[{"id":48933,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48915,"src":"3764:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":48934,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48917,"src":"3773:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48932,"name":"setupOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50438,"src":"3752:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address[] memory,uint256)"}},"id":48935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3752:32:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48936,"nodeType":"ExpressionStatement","src":"3752:32:40"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48937,"name":"fallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48923,"src":"3798:15:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":48940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3825:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3817:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48938,"name":"address","nodeType":"ElementaryTypeName","src":"3817:7:40","typeDescriptions":{}}},"id":48941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3817:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3798:29:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48947,"nodeType":"IfStatement","src":"3794:78:40","trueBody":{"expression":{"arguments":[{"id":48944,"name":"fallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48923,"src":"3856:15:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48943,"name":"internalSetFallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49817,"src":"3829:26:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":48945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:43:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48946,"nodeType":"ExpressionStatement","src":"3829:43:40"}},{"expression":{"arguments":[{"id":48949,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48919,"src":"4020:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48950,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48921,"src":"4024:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":48948,"name":"setupModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"4007:12:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":48951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4007:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48952,"nodeType":"ExpressionStatement","src":"4007:22:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48953,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48927,"src":"4044:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":48954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4054:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4044:11:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48965,"nodeType":"IfStatement","src":"4040:380:40","trueBody":{"id":48964,"nodeType":"Block","src":"4057:363:40","statements":[{"expression":{"arguments":[{"id":48957,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48927,"src":"4364:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":48958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4373:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"31","id":48959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4376:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48960,"name":"paymentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48925,"src":"4379:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48961,"name":"paymentReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48929,"src":"4393:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":48956,"name":"handlePayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49270,"src":"4350:13:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,address,address payable) returns (uint256)"}},"id":48962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:59:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48963,"nodeType":"ExpressionStatement","src":"4350:59:40"}]}},{"eventCall":{"arguments":[{"expression":{"id":48967,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4444:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4448:6:40","memberName":"sender","nodeType":"MemberAccess","src":"4444:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48969,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48915,"src":"4456:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":48970,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48917,"src":"4465:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48971,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48919,"src":"4477:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48972,"name":"fallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48923,"src":"4481:15:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48966,"name":"SafeSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48867,"src":"4434:9:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address[] memory,uint256,address,address)"}},"id":48973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4434:63:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48974,"nodeType":"EmitStatement","src":"4429:68:40"}]},"documentation":{"id":48912,"nodeType":"StructuredDocumentation","src":"2743:605:40","text":"@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.\n @param fallbackHandler Handler for fallback calls to this contract\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid\n @param paymentReceiver Adddress that should receive the payment (or 0 if tx.origin)"},"functionSelector":"b63e800d","implemented":true,"kind":"function","modifiers":[],"name":"setup","nameLocation":"3362:5:40","parameters":{"id":48930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48915,"mutability":"mutable","name":"_owners","nameLocation":"3396:7:40","nodeType":"VariableDeclaration","scope":48976,"src":"3377:26:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48913,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48914,"nodeType":"ArrayTypeName","src":"3377:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":48917,"mutability":"mutable","name":"_threshold","nameLocation":"3421:10:40","nodeType":"VariableDeclaration","scope":48976,"src":"3413:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48916,"name":"uint256","nodeType":"ElementaryTypeName","src":"3413:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48919,"mutability":"mutable","name":"to","nameLocation":"3449:2:40","nodeType":"VariableDeclaration","scope":48976,"src":"3441:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48918,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48921,"mutability":"mutable","name":"data","nameLocation":"3476:4:40","nodeType":"VariableDeclaration","scope":48976,"src":"3461:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":48920,"name":"bytes","nodeType":"ElementaryTypeName","src":"3461:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48923,"mutability":"mutable","name":"fallbackHandler","nameLocation":"3498:15:40","nodeType":"VariableDeclaration","scope":48976,"src":"3490:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48922,"name":"address","nodeType":"ElementaryTypeName","src":"3490:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48925,"mutability":"mutable","name":"paymentToken","nameLocation":"3531:12:40","nodeType":"VariableDeclaration","scope":48976,"src":"3523:20:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48924,"name":"address","nodeType":"ElementaryTypeName","src":"3523:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48927,"mutability":"mutable","name":"payment","nameLocation":"3561:7:40","nodeType":"VariableDeclaration","scope":48976,"src":"3553:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48926,"name":"uint256","nodeType":"ElementaryTypeName","src":"3553:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48929,"mutability":"mutable","name":"paymentReceiver","nameLocation":"3594:15:40","nodeType":"VariableDeclaration","scope":48976,"src":"3578:31:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48928,"name":"address","nodeType":"ElementaryTypeName","src":"3578:15:40","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"3367:248:40"},"returnParameters":{"id":48931,"nodeType":"ParameterList","parameters":[],"src":"3625:0:40"},"scope":49761,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49185,"nodeType":"FunctionDefinition","src":"5531:3628:40","nodes":[],"body":{"id":49184,"nodeType":"Block","src":"5891:3268:40","nodes":[],"statements":[{"assignments":[49004],"declarations":[{"constant":false,"id":49004,"mutability":"mutable","name":"txHash","nameLocation":"5909:6:40","nodeType":"VariableDeclaration","scope":49184,"src":"5901:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5901:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49005,"nodeType":"VariableDeclarationStatement","src":"5901:14:40"},{"id":49036,"nodeType":"Block","src":"6014:692:40","statements":[{"assignments":[49007],"declarations":[{"constant":false,"id":49007,"mutability":"mutable","name":"txHashData","nameLocation":"6041:10:40","nodeType":"VariableDeclaration","scope":49036,"src":"6028:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49006,"name":"bytes","nodeType":"ElementaryTypeName","src":"6028:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":49020,"initialValue":{"arguments":[{"id":49009,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48979,"src":"6153:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48981,"src":"6177:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49011,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48983,"src":"6204:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":49012,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48986,"src":"6230:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},{"id":49013,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48988,"src":"6261:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49014,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48990,"src":"6328:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49015,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"6357:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49016,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48994,"src":"6387:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49017,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48996,"src":"6417:14:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":49018,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48891,"src":"6491:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49008,"name":"encodeTransactionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49717,"src":"6070:21:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_enum$_Operation_$50806_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes calldata,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)"}},"id":49019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:444:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6028:486:40"},{"expression":{"id":49022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6583:7:40","subExpression":{"id":49021,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48891,"src":"6583:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49023,"nodeType":"ExpressionStatement","src":"6583:7:40"},{"expression":{"id":49028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49024,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49004,"src":"6604:6:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49026,"name":"txHashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49007,"src":"6623:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49025,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6613:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6613:21:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6604:30:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":49029,"nodeType":"ExpressionStatement","src":"6604:30:40"},{"expression":{"arguments":[{"id":49031,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49004,"src":"6664:6:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49032,"name":"txHashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49007,"src":"6672:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":49033,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48998,"src":"6684:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49030,"name":"checkSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49299,"src":"6648:15:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory,bytes memory) view"}},"id":49034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:47:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49035,"nodeType":"ExpressionStatement","src":"6648:47:40"}]},{"assignments":[49038],"declarations":[{"constant":false,"id":49038,"mutability":"mutable","name":"guard","nameLocation":"6723:5:40","nodeType":"VariableDeclaration","scope":49184,"src":"6715:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49037,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49041,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":49039,"name":"getGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49921,"src":"6731:8:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":49040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6731:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6715:26:40"},{"id":49068,"nodeType":"Block","src":"6751:571:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49042,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49038,"src":"6769:5:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":49045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6786:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6778:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49043,"name":"address","nodeType":"ElementaryTypeName","src":"6778:7:40","typeDescriptions":{}}},"id":49046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6778:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6769:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49067,"nodeType":"IfStatement","src":"6765:547:40","trueBody":{"id":49066,"nodeType":"Block","src":"6790:522:40","statements":[{"expression":{"arguments":[{"id":49052,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48979,"src":"6899:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48981,"src":"6923:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49054,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48983,"src":"6950:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":49055,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48986,"src":"6976:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},{"id":49056,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48988,"src":"7007:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49057,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48990,"src":"7074:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49058,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"7103:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49059,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48994,"src":"7133:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49060,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48996,"src":"7163:14:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":49061,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48998,"src":"7237:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":49062,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7269:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7273:6:40","memberName":"sender","nodeType":"MemberAccess","src":"7269:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":49049,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49038,"src":"6814:5:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49048,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49882,"src":"6808:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$49882_$","typeString":"type(contract Guard)"}},"id":49050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6808:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$49882","typeString":"contract Guard"}},"id":49051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6821:16:40","memberName":"checkTransaction","nodeType":"MemberAccess","referencedDeclaration":49874,"src":"6808:29:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$50806_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address payable,bytes memory,address) external"}},"id":49064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6808:489:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49065,"nodeType":"ExpressionStatement","src":"6808:489:40"}]}}]},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":49070,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7613:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7613:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49080,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48988,"src":"7654:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32353030","id":49081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7666:4:40","typeDescriptions":{"typeIdentifier":"t_rational_2500_by_1","typeString":"int_const 2500"},"value":"2500"},"src":"7654:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49072,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48988,"src":"7628:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":49073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7640:2:40","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"7628:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7627:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3633","id":49076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7646:2:40","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"src":"7627:21:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49078,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7626:23:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7650:3:40","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":51179,"src":"7626:27:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7626:45:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"353030","id":49084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7674:3:40","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"src":"7626:51:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7613:64:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303130","id":49087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7679:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d970fd9adbe3047cd5b7a20406b6bf2e613338cfe3a19aca4ca1810b67fad10","typeString":"literal_string \"GS010\""},"value":"GS010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d970fd9adbe3047cd5b7a20406b6bf2e613338cfe3a19aca4ca1810b67fad10","typeString":"literal_string \"GS010\""}],"id":49069,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7605:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7605:82:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49089,"nodeType":"ExpressionStatement","src":"7605:82:40"},{"id":49166,"nodeType":"Block","src":"7786:1227:40","statements":[{"assignments":[49091],"declarations":[{"constant":false,"id":49091,"mutability":"mutable","name":"gasUsed","nameLocation":"7808:7:40","nodeType":"VariableDeclaration","scope":49166,"src":"7800:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49090,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49094,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":49092,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7818:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7818:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7800:27:40"},{"expression":{"id":49112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49095,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49001,"src":"8096:7:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49097,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48979,"src":"8114:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49098,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48981,"src":"8118:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49099,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48983,"src":"8125:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":49100,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48986,"src":"8131:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49101,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"8142:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8154:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8142:13:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":49109,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48988,"src":"8179:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8142:46:40","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":49104,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"8159:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8159:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32353030","id":49106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:4:40","typeDescriptions":{"typeIdentifier":"t_rational_2500_by_1","typeString":"int_const 2500"},"value":"2500"},"src":"8159:16:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8158:18:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49096,"name":"execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49792,"src":"8106:7:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$50806_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"}},"id":49111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8106:83:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8096:93:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49113,"nodeType":"ExpressionStatement","src":"8096:93:40"},{"expression":{"id":49120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49114,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49091,"src":"8203:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":49117,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"8225:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8225:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49115,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49091,"src":"8213:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8221:3:40","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":51136,"src":"8213:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8213:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8203:32:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49121,"nodeType":"ExpressionStatement","src":"8203:32:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49123,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49001,"src":"8519:7:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49124,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48988,"src":"8530:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8543:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8530:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8519:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49128,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"8548:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8560:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8548:13:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8519:42:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303133","id":49132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8563:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_99333b4627cde46d9c53d7148b33b8b1f4f065f5dceb2cb210893e67e551978e","typeString":"literal_string \"GS013\""},"value":"GS013"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_99333b4627cde46d9c53d7148b33b8b1f4f065f5dceb2cb210893e67e551978e","typeString":"literal_string \"GS013\""}],"id":49122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8511:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8511:60:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49134,"nodeType":"ExpressionStatement","src":"8511:60:40"},{"assignments":[49136],"declarations":[{"constant":false,"id":49136,"mutability":"mutable","name":"payment","nameLocation":"8728:7:40","nodeType":"VariableDeclaration","scope":49166,"src":"8720:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49135,"name":"uint256","nodeType":"ElementaryTypeName","src":"8720:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49138,"initialValue":{"hexValue":"30","id":49137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8738:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8720:19:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49139,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"8757:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":49140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8768:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8757:12:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49153,"nodeType":"IfStatement","src":"8753:128:40","trueBody":{"id":49152,"nodeType":"Block","src":"8771:110:40","statements":[{"expression":{"id":49150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49142,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49136,"src":"8789:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49144,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49091,"src":"8813:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49145,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48990,"src":"8822:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49146,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"8831:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49147,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48994,"src":"8841:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49148,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48996,"src":"8851:14:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":49143,"name":"handlePayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49270,"src":"8799:13:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,address,address payable) returns (uint256)"}},"id":49149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8799:67:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8789:77:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49151,"nodeType":"ExpressionStatement","src":"8789:77:40"}]}},{"condition":{"id":49154,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49001,"src":"8898:7:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"eventCall":{"arguments":[{"id":49161,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49004,"src":"8986:6:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49162,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49136,"src":"8994:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49160,"name":"ExecutionFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48883,"src":"8969:16:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":49163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8969:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49164,"nodeType":"EmitStatement","src":"8964:38:40"},"id":49165,"nodeType":"IfStatement","src":"8894:108:40","trueBody":{"eventCall":{"arguments":[{"id":49156,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49004,"src":"8929:6:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49157,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49136,"src":"8937:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49155,"name":"ExecutionSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48889,"src":"8912:16:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":49158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8912:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49159,"nodeType":"EmitStatement","src":"8907:38:40"}}]},{"id":49183,"nodeType":"Block","src":"9022:131:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49167,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49038,"src":"9040:5:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":49170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9057:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9049:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49168,"name":"address","nodeType":"ElementaryTypeName","src":"9049:7:40","typeDescriptions":{}}},"id":49171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9049:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9040:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49182,"nodeType":"IfStatement","src":"9036:107:40","trueBody":{"id":49181,"nodeType":"Block","src":"9061:82:40","statements":[{"expression":{"arguments":[{"id":49177,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49004,"src":"9112:6:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49178,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49001,"src":"9120:7:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":49174,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49038,"src":"9085:5:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49173,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49882,"src":"9079:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$49882_$","typeString":"type(contract Guard)"}},"id":49175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9079:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$49882","typeString":"contract Guard"}},"id":49176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9092:19:40","memberName":"checkAfterExecution","nodeType":"MemberAccess","referencedDeclaration":49881,"src":"9079:32:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool) external"}},"id":49179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9079:49:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49180,"nodeType":"ExpressionStatement","src":"9079:49:40"}]}}]}]},"documentation":{"id":48977,"nodeType":"StructuredDocumentation","src":"4510:1016:40","text":"@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n      Note: The fees are always transferred, even if the user transaction fails.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param baseGas Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})"},"functionSelector":"6a761202","implemented":true,"kind":"function","modifiers":[],"name":"execTransaction","nameLocation":"5540:15:40","parameters":{"id":48999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48979,"mutability":"mutable","name":"to","nameLocation":"5573:2:40","nodeType":"VariableDeclaration","scope":49185,"src":"5565:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48978,"name":"address","nodeType":"ElementaryTypeName","src":"5565:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48981,"mutability":"mutable","name":"value","nameLocation":"5593:5:40","nodeType":"VariableDeclaration","scope":49185,"src":"5585:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48980,"name":"uint256","nodeType":"ElementaryTypeName","src":"5585:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48983,"mutability":"mutable","name":"data","nameLocation":"5623:4:40","nodeType":"VariableDeclaration","scope":49185,"src":"5608:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":48982,"name":"bytes","nodeType":"ElementaryTypeName","src":"5608:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48986,"mutability":"mutable","name":"operation","nameLocation":"5652:9:40","nodeType":"VariableDeclaration","scope":49185,"src":"5637:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},"typeName":{"id":48985,"nodeType":"UserDefinedTypeName","pathNode":{"id":48984,"name":"Enum.Operation","nameLocations":["5637:4:40","5642:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":50806,"src":"5637:14:40"},"referencedDeclaration":50806,"src":"5637:14:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":48988,"mutability":"mutable","name":"safeTxGas","nameLocation":"5679:9:40","nodeType":"VariableDeclaration","scope":49185,"src":"5671:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48987,"name":"uint256","nodeType":"ElementaryTypeName","src":"5671:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48990,"mutability":"mutable","name":"baseGas","nameLocation":"5706:7:40","nodeType":"VariableDeclaration","scope":49185,"src":"5698:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48989,"name":"uint256","nodeType":"ElementaryTypeName","src":"5698:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48992,"mutability":"mutable","name":"gasPrice","nameLocation":"5731:8:40","nodeType":"VariableDeclaration","scope":49185,"src":"5723:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48991,"name":"uint256","nodeType":"ElementaryTypeName","src":"5723:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48994,"mutability":"mutable","name":"gasToken","nameLocation":"5757:8:40","nodeType":"VariableDeclaration","scope":49185,"src":"5749:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48993,"name":"address","nodeType":"ElementaryTypeName","src":"5749:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48996,"mutability":"mutable","name":"refundReceiver","nameLocation":"5791:14:40","nodeType":"VariableDeclaration","scope":49185,"src":"5775:30:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48995,"name":"address","nodeType":"ElementaryTypeName","src":"5775:15:40","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48998,"mutability":"mutable","name":"signatures","nameLocation":"5828:10:40","nodeType":"VariableDeclaration","scope":49185,"src":"5815:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48997,"name":"bytes","nodeType":"ElementaryTypeName","src":"5815:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5555:289:40"},"returnParameters":{"id":49002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49001,"mutability":"mutable","name":"success","nameLocation":"5882:7:40","nodeType":"VariableDeclaration","scope":49185,"src":"5877:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49000,"name":"bool","nodeType":"ElementaryTypeName","src":"5877:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5876:14:40"},"scope":49761,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":49270,"nodeType":"FunctionDefinition","src":"9165:821:40","nodes":[],"body":{"id":49269,"nodeType":"Block","src":"9370:616:40","nodes":[],"statements":[{"assignments":[49201],"declarations":[{"constant":false,"id":49201,"mutability":"mutable","name":"receiver","nameLocation":"9449:8:40","nodeType":"VariableDeclaration","scope":49269,"src":"9433:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49200,"name":"address","nodeType":"ElementaryTypeName","src":"9433:15:40","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":49215,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49202,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49195,"src":"9460:14:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":49205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9486:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9478:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49203,"name":"address","nodeType":"ElementaryTypeName","src":"9478:7:40","typeDescriptions":{}}},"id":49206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9460:28:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":49213,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49195,"src":"9512:14:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":49214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9460:66:40","trueExpression":{"arguments":[{"expression":{"id":49210,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9499:2:40","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":49211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9502:6:40","memberName":"origin","nodeType":"MemberAccess","src":"9499:9:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9491:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":49208,"name":"address","nodeType":"ElementaryTypeName","src":"9491:8:40","stateMutability":"payable","typeDescriptions":{}}},"id":49212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9491:18:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"9433:93:40"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49216,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49193,"src":"9540:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":49219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9560:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9552:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49217,"name":"address","nodeType":"ElementaryTypeName","src":"9552:7:40","typeDescriptions":{}}},"id":49220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9552:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9540:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49267,"nodeType":"Block","src":"9837:143:40","statements":[{"expression":{"id":49256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49248,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49198,"src":"9851:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49254,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49191,"src":"9886:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":49251,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49189,"src":"9873:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49249,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"9861:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9869:3:40","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":51161,"src":"9861:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:20:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9882:3:40","memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":51111,"src":"9861:24:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:34:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9851:44:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49257,"nodeType":"ExpressionStatement","src":"9851:44:40"},{"expression":{"arguments":[{"arguments":[{"id":49260,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49193,"src":"9931:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49261,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49201,"src":"9941:8:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":49262,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49198,"src":"9951:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49259,"name":"transferToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50855,"src":"9917:13:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":49263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303132","id":49264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9961:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_74edef16877c9a34a97f281dbea2805f9198008e7df330ab6416449a66143b07","typeString":"literal_string \"GS012\""},"value":"GS012"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74edef16877c9a34a97f281dbea2805f9198008e7df330ab6416449a66143b07","typeString":"literal_string \"GS012\""}],"id":49258,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9909:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9909:60:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49266,"nodeType":"ExpressionStatement","src":"9909:60:40"}]},"id":49268,"nodeType":"IfStatement","src":"9536:444:40","trueBody":{"id":49247,"nodeType":"Block","src":"9564:267:40","statements":[{"expression":{"id":49237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49222,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49198,"src":"9683:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49228,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49191,"src":"9718:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":49229,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9729:2:40","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":49230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9732:8:40","memberName":"gasprice","nodeType":"MemberAccess","src":"9729:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9718:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":49233,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9754:2:40","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":49234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:8:40","memberName":"gasprice","nodeType":"MemberAccess","src":"9754:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9718:47:40","trueExpression":{"id":49232,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49191,"src":"9743:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":49225,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49189,"src":"9705:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49223,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"9693:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9701:3:40","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":51161,"src":"9693:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:20:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9714:3:40","memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":51111,"src":"9693:24:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9693:73:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9683:83:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49238,"nodeType":"ExpressionStatement","src":"9683:83:40"},{"expression":{"arguments":[{"arguments":[{"id":49242,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49198,"src":"9802:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49240,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49201,"src":"9788:8:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":49241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9797:4:40","memberName":"send","nodeType":"MemberAccess","src":"9788:13:40","typeDescriptions":{"typeIdentifier":"t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":49243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9788:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303131","id":49244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9812:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_4353e9bcd8ea99b4d56990ac4b8777f1ab67cada8356790f30e482f2408a44b0","typeString":"literal_string \"GS011\""},"value":"GS011"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4353e9bcd8ea99b4d56990ac4b8777f1ab67cada8356790f30e482f2408a44b0","typeString":"literal_string \"GS011\""}],"id":49239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9780:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49246,"nodeType":"ExpressionStatement","src":"9780:40:40"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"handlePayment","nameLocation":"9174:13:40","parameters":{"id":49196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49187,"mutability":"mutable","name":"gasUsed","nameLocation":"9205:7:40","nodeType":"VariableDeclaration","scope":49270,"src":"9197:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49186,"name":"uint256","nodeType":"ElementaryTypeName","src":"9197:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49189,"mutability":"mutable","name":"baseGas","nameLocation":"9230:7:40","nodeType":"VariableDeclaration","scope":49270,"src":"9222:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49188,"name":"uint256","nodeType":"ElementaryTypeName","src":"9222:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49191,"mutability":"mutable","name":"gasPrice","nameLocation":"9255:8:40","nodeType":"VariableDeclaration","scope":49270,"src":"9247:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49190,"name":"uint256","nodeType":"ElementaryTypeName","src":"9247:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49193,"mutability":"mutable","name":"gasToken","nameLocation":"9281:8:40","nodeType":"VariableDeclaration","scope":49270,"src":"9273:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49192,"name":"address","nodeType":"ElementaryTypeName","src":"9273:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49195,"mutability":"mutable","name":"refundReceiver","nameLocation":"9315:14:40","nodeType":"VariableDeclaration","scope":49270,"src":"9299:30:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49194,"name":"address","nodeType":"ElementaryTypeName","src":"9299:15:40","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"9187:148:40"},"returnParameters":{"id":49199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49198,"mutability":"mutable","name":"payment","nameLocation":"9361:7:40","nodeType":"VariableDeclaration","scope":49270,"src":"9353:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49197,"name":"uint256","nodeType":"ElementaryTypeName","src":"9353:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9352:17:40"},"scope":49761,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":49299,"nodeType":"FunctionDefinition","src":"10441:383:40","nodes":[],"body":{"id":49298,"nodeType":"Block","src":"10570:254:40","nodes":[],"statements":[{"assignments":[49281],"declarations":[{"constant":false,"id":49281,"mutability":"mutable","name":"_threshold","nameLocation":"10646:10:40","nodeType":"VariableDeclaration","scope":49298,"src":"10638:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49280,"name":"uint256","nodeType":"ElementaryTypeName","src":"10638:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49283,"initialValue":{"id":49282,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50321,"src":"10659:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10638:30:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49285,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49281,"src":"10727:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":49286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10740:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10727:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303031","id":49288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10743:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_93293a4a2e4cde533ea81b8912d8934c2d7892ceb975e9ad2c25f4abf449a730","typeString":"literal_string \"GS001\""},"value":"GS001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93293a4a2e4cde533ea81b8912d8934c2d7892ceb975e9ad2c25f4abf449a730","typeString":"literal_string \"GS001\""}],"id":49284,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10719:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:32:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49290,"nodeType":"ExpressionStatement","src":"10719:32:40"},{"expression":{"arguments":[{"id":49292,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49273,"src":"10778:8:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49293,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"10788:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":49294,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49277,"src":"10794:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":49295,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49281,"src":"10806:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49291,"name":"checkNSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49540,"src":"10761:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,bytes memory,bytes memory,uint256) view"}},"id":49296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10761:56:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49297,"nodeType":"ExpressionStatement","src":"10761:56:40"}]},"documentation":{"id":49271,"nodeType":"StructuredDocumentation","src":"9992:444:40","text":" @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n @param dataHash Hash of the data (could be either a message hash or transaction hash)\n @param data That should be signed (this is passed to an external validator contract)\n @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."},"functionSelector":"934f3a11","implemented":true,"kind":"function","modifiers":[],"name":"checkSignatures","nameLocation":"10450:15:40","parameters":{"id":49278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49273,"mutability":"mutable","name":"dataHash","nameLocation":"10483:8:40","nodeType":"VariableDeclaration","scope":49299,"src":"10475:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10475:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49275,"mutability":"mutable","name":"data","nameLocation":"10514:4:40","nodeType":"VariableDeclaration","scope":49299,"src":"10501:17:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49274,"name":"bytes","nodeType":"ElementaryTypeName","src":"10501:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49277,"mutability":"mutable","name":"signatures","nameLocation":"10541:10:40","nodeType":"VariableDeclaration","scope":49299,"src":"10528:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49276,"name":"bytes","nodeType":"ElementaryTypeName","src":"10528:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10465:92:40"},"returnParameters":{"id":49279,"nodeType":"ParameterList","parameters":[],"src":"10570:0:40"},"scope":49761,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":49540,"nodeType":"FunctionDefinition","src":"11349:3812:40","nodes":[],"body":{"id":49539,"nodeType":"Block","src":"11515:3646:40","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49312,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49306,"src":"11600:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11611:6:40","memberName":"length","nodeType":"MemberAccess","src":"11600:17:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"hexValue":"3635","id":49316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11644:2:40","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":49314,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49308,"src":"11621:18:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11640:3:40","memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":51111,"src":"11621:22:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11621:26:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11600:47:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303230","id":49319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11649:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_f27dba96666375fe844b71e8ea4f388db2ce9f87fa9882d36a17036a7478b232","typeString":"literal_string \"GS020\""},"value":"GS020"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f27dba96666375fe844b71e8ea4f388db2ce9f87fa9882d36a17036a7478b232","typeString":"literal_string \"GS020\""}],"id":49311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11592:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11592:65:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49321,"nodeType":"ExpressionStatement","src":"11592:65:40"},{"assignments":[49323],"declarations":[{"constant":false,"id":49323,"mutability":"mutable","name":"lastOwner","nameLocation":"11727:9:40","nodeType":"VariableDeclaration","scope":49539,"src":"11719:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49322,"name":"address","nodeType":"ElementaryTypeName","src":"11719:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49328,"initialValue":{"arguments":[{"hexValue":"30","id":49326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11747:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11739:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49324,"name":"address","nodeType":"ElementaryTypeName","src":"11739:7:40","typeDescriptions":{}}},"id":49327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11739:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11719:30:40"},{"assignments":[49330],"declarations":[{"constant":false,"id":49330,"mutability":"mutable","name":"currentOwner","nameLocation":"11767:12:40","nodeType":"VariableDeclaration","scope":49539,"src":"11759:20:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49329,"name":"address","nodeType":"ElementaryTypeName","src":"11759:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49331,"nodeType":"VariableDeclarationStatement","src":"11759:20:40"},{"assignments":[49333],"declarations":[{"constant":false,"id":49333,"mutability":"mutable","name":"v","nameLocation":"11795:1:40","nodeType":"VariableDeclaration","scope":49539,"src":"11789:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49332,"name":"uint8","nodeType":"ElementaryTypeName","src":"11789:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":49334,"nodeType":"VariableDeclarationStatement","src":"11789:7:40"},{"assignments":[49336],"declarations":[{"constant":false,"id":49336,"mutability":"mutable","name":"r","nameLocation":"11814:1:40","nodeType":"VariableDeclaration","scope":49539,"src":"11806:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11806:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49337,"nodeType":"VariableDeclarationStatement","src":"11806:9:40"},{"assignments":[49339],"declarations":[{"constant":false,"id":49339,"mutability":"mutable","name":"s","nameLocation":"11833:1:40","nodeType":"VariableDeclaration","scope":49539,"src":"11825:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11825:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49340,"nodeType":"VariableDeclarationStatement","src":"11825:9:40"},{"assignments":[49342],"declarations":[{"constant":false,"id":49342,"mutability":"mutable","name":"i","nameLocation":"11852:1:40","nodeType":"VariableDeclaration","scope":49539,"src":"11844:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49341,"name":"uint256","nodeType":"ElementaryTypeName","src":"11844:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49343,"nodeType":"VariableDeclarationStatement","src":"11844:9:40"},{"body":{"id":49537,"nodeType":"Block","src":"11904:3251:40","statements":[{"expression":{"id":49362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":49354,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49333,"src":"11919:1:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":49355,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49336,"src":"11922:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49356,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49339,"src":"11925:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":49357,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11918:9:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49359,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49306,"src":"11945:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":49360,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49342,"src":"11957:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49358,"name":"signatureSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50901,"src":"11930:14:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)"}},"id":49361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11930:29:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"src":"11918:41:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49363,"nodeType":"ExpressionStatement","src":"11918:41:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":49366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49364,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49333,"src":"11977:1:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11982:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11977:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":49448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49446,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49333,"src":"13857:1:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":49447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13862:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13857:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":49481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49479,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49333,"src":"14357:1:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3330","id":49480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14361:2:40","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"14357:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49509,"nodeType":"Block","src":"14752:226:40","statements":[{"expression":{"id":49507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49500,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"14920:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49502,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49302,"src":"14945:8:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49503,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49333,"src":"14955:1:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":49504,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49336,"src":"14958:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49339,"src":"14961:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49501,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"14935:9:40","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":49506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14935:28:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14920:43:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49508,"nodeType":"ExpressionStatement","src":"14920:43:40"}]},"id":49510,"nodeType":"IfStatement","src":"14353:625:40","trueBody":{"id":49499,"nodeType":"Block","src":"14365:381:40","statements":[{"expression":{"id":49497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49482,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"14619:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":49487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14671:34:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":49488,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49302,"src":"14707:8:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":49485,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14654:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14658:12:40","memberName":"encodePacked","nodeType":"MemberAccess","src":"14654:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14654:62:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49484,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14644:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14644:73:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":49493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49491,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49333,"src":"14719:1:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":49492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14723:1:40","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14719:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":49494,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49336,"src":"14726:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49495,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49339,"src":"14729:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49483,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"14634:9:40","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":49496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14634:97:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14619:112:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49498,"nodeType":"ExpressionStatement","src":"14619:112:40"}]}},"id":49511,"nodeType":"IfStatement","src":"13853:1125:40","trueBody":{"id":49478,"nodeType":"Block","src":"13865:482:40","statements":[{"expression":{"id":49460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49449,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"14035:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":49456,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49336,"src":"14074:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14066:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49454,"name":"uint256","nodeType":"ElementaryTypeName","src":"14066:7:40","typeDescriptions":{}}},"id":49457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14066:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14058:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":49452,"name":"uint160","nodeType":"ElementaryTypeName","src":"14058:7:40","typeDescriptions":{}}},"id":49458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14058:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":49451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14050:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49450,"name":"address","nodeType":"ElementaryTypeName","src":"14050:7:40","typeDescriptions":{}}},"id":49459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14050:28:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14035:43:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49461,"nodeType":"ExpressionStatement","src":"14035:43:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14249:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14253:6:40","memberName":"sender","nodeType":"MemberAccess","src":"14249:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":49465,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"14263:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14249:26:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":49467,"name":"approvedHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48903,"src":"14279:14:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"}},"id":49469,"indexExpression":{"id":49468,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"14294:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14279:28:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":49471,"indexExpression":{"id":49470,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49302,"src":"14308:8:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14279:38:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14321:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14279:43:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14249:73:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303235","id":49475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14324:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc2491dc7fc5c71a630e01bcb9c3e39f61f559ab54f6528d2adb67d65ed9ff6b","typeString":"literal_string \"GS025\""},"value":"GS025"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc2491dc7fc5c71a630e01bcb9c3e39f61f559ab54f6528d2adb67d65ed9ff6b","typeString":"literal_string \"GS025\""}],"id":49462,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14241:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14241:91:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49477,"nodeType":"ExpressionStatement","src":"14241:91:40"}]}},"id":49512,"nodeType":"IfStatement","src":"11973:3005:40","trueBody":{"id":49445,"nodeType":"Block","src":"11985:1862:40","statements":[{"expression":{"id":49378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49367,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"12163:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":49374,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49336,"src":"12202:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12194:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49372,"name":"uint256","nodeType":"ElementaryTypeName","src":"12194:7:40","typeDescriptions":{}}},"id":49375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12194:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12186:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":49370,"name":"uint160","nodeType":"ElementaryTypeName","src":"12186:7:40","typeDescriptions":{}}},"id":49376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12186:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":49369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12178:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49368,"name":"address","nodeType":"ElementaryTypeName","src":"12178:7:40","typeDescriptions":{}}},"id":49377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12178:28:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12163:43:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49379,"nodeType":"ExpressionStatement","src":"12163:43:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":49383,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49339,"src":"12601:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12593:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49381,"name":"uint256","nodeType":"ElementaryTypeName","src":"12593:7:40","typeDescriptions":{}}},"id":49384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12593:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"hexValue":"3635","id":49387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12630:2:40","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":49385,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49308,"src":"12607:18:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12626:3:40","memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":51111,"src":"12607:22:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12607:26:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12593:40:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303231","id":49390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12635:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_d153a9d5a0d4e2c2b7d4e887f02c1da6287d6d54f20f4d8ce40382a23140787a","typeString":"literal_string \"GS021\""},"value":"GS021"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d153a9d5a0d4e2c2b7d4e887f02c1da6287d6d54f20f4d8ce40382a23140787a","typeString":"literal_string \"GS021\""}],"id":49380,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12585:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12585:58:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49392,"nodeType":"ExpressionStatement","src":"12585:58:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"3332","id":49399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12798:2:40","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"arguments":[{"id":49396,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49339,"src":"12791:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12783:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49394,"name":"uint256","nodeType":"ElementaryTypeName","src":"12783:7:40","typeDescriptions":{}}},"id":49397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12783:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12794:3:40","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":51161,"src":"12783:14:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12783:18:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49401,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49306,"src":"12805:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12816:6:40","memberName":"length","nodeType":"MemberAccess","src":"12805:17:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12783:39:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303232","id":49404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12824:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_372498b513e17609439d064ce0277017b054c808f722c83ff57cee4e06a9e457","typeString":"literal_string \"GS022\""},"value":"GS022"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_372498b513e17609439d064ce0277017b054c808f722c83ff57cee4e06a9e457","typeString":"literal_string \"GS022\""}],"id":49393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12775:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12775:57:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49406,"nodeType":"ExpressionStatement","src":"12775:57:40"},{"assignments":[49408],"declarations":[{"constant":false,"id":49408,"mutability":"mutable","name":"contractSignatureLen","nameLocation":"12984:20:40","nodeType":"VariableDeclaration","scope":49445,"src":"12976:28:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49407,"name":"uint256","nodeType":"ElementaryTypeName","src":"12976:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49409,"nodeType":"VariableDeclarationStatement","src":"12976:28:40"},{"AST":{"nodeType":"YulBlock","src":"13095:100:40","statements":[{"nodeType":"YulAssignment","src":"13117:60:40","value":{"arguments":[{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"13155:10:40"},{"name":"s","nodeType":"YulIdentifier","src":"13167:1:40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13151:3:40"},"nodeType":"YulFunctionCall","src":"13151:18:40"},{"kind":"number","nodeType":"YulLiteral","src":"13171:4:40","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13147:3:40"},"nodeType":"YulFunctionCall","src":"13147:29:40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13141:5:40"},"nodeType":"YulFunctionCall","src":"13141:36:40"},"variableNames":[{"name":"contractSignatureLen","nodeType":"YulIdentifier","src":"13117:20:40"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":49408,"isOffset":false,"isSlot":false,"src":"13117:20:40","valueSize":1},{"declaration":49339,"isOffset":false,"isSlot":false,"src":"13167:1:40","valueSize":1},{"declaration":49306,"isOffset":false,"isSlot":false,"src":"13155:10:40","valueSize":1}],"id":49410,"nodeType":"InlineAssembly","src":"13086:109:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":49420,"name":"contractSignatureLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49408,"src":"13243:20:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"3332","id":49417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13235:2:40","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"arguments":[{"id":49414,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49339,"src":"13228:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13220:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49412,"name":"uint256","nodeType":"ElementaryTypeName","src":"13220:7:40","typeDescriptions":{}}},"id":49415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13220:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13231:3:40","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":51161,"src":"13220:14:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13220:18:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13239:3:40","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":51161,"src":"13220:22:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":49421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13220:44:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49422,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49306,"src":"13268:10:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13279:6:40","memberName":"length","nodeType":"MemberAccess","src":"13268:17:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13220:65:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303233","id":49425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13287:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_00aecc0fa22d38afc0f465808a9fee188ba139fb53b2ca550ea01d91d6ecf29f","typeString":"literal_string \"GS023\""},"value":"GS023"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_00aecc0fa22d38afc0f465808a9fee188ba139fb53b2ca550ea01d91d6ecf29f","typeString":"literal_string \"GS023\""}],"id":49411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13212:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13212:83:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49427,"nodeType":"ExpressionStatement","src":"13212:83:40"},{"assignments":[49429],"declarations":[{"constant":false,"id":49429,"mutability":"mutable","name":"contractSignature","nameLocation":"13362:17:40","nodeType":"VariableDeclaration","scope":49445,"src":"13349:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49428,"name":"bytes","nodeType":"ElementaryTypeName","src":"13349:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":49430,"nodeType":"VariableDeclarationStatement","src":"13349:30:40"},{"AST":{"nodeType":"YulBlock","src":"13470:229:40","statements":[{"nodeType":"YulAssignment","src":"13631:50:40","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"13660:10:40"},{"name":"s","nodeType":"YulIdentifier","src":"13672:1:40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13656:3:40"},"nodeType":"YulFunctionCall","src":"13656:18:40"},{"kind":"number","nodeType":"YulLiteral","src":"13676:4:40","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13652:3:40"},"nodeType":"YulFunctionCall","src":"13652:29:40"},"variableNames":[{"name":"contractSignature","nodeType":"YulIdentifier","src":"13631:17:40"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":49429,"isOffset":false,"isSlot":false,"src":"13631:17:40","valueSize":1},{"declaration":49339,"isOffset":false,"isSlot":false,"src":"13672:1:40","valueSize":1},{"declaration":49306,"isOffset":false,"isSlot":false,"src":"13660:10:40","valueSize":1}],"id":49431,"nodeType":"InlineAssembly","src":"13461:238:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":49441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":49437,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49304,"src":"13775:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":49438,"name":"contractSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49429,"src":"13781:17:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":49434,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"13744:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49433,"name":"ISignatureValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51285,"src":"13724:19:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISignatureValidator_$51285_$","typeString":"type(contract ISignatureValidator)"}},"id":49435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13724:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISignatureValidator_$51285","typeString":"contract ISignatureValidator"}},"id":49436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13758:16:40","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":51284,"src":"13724:50:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes memory,bytes memory) view external returns (bytes4)"}},"id":49439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13724:75:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":49440,"name":"EIP1271_MAGIC_VALUE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51271,"src":"13803:19:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"13724:98:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303234","id":49442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13824:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d9dfad0f7e80ccb3a898324566cbd9ed8451678d229622c4c1b5f1f19330139","typeString":"literal_string \"GS024\""},"value":"GS024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d9dfad0f7e80ccb3a898324566cbd9ed8451678d229622c4c1b5f1f19330139","typeString":"literal_string \"GS024\""}],"id":49432,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13716:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:116:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49444,"nodeType":"ExpressionStatement","src":"13716:116:40"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49514,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"14999:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":49515,"name":"lastOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49323,"src":"15014:9:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14999:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":49517,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50317,"src":"15027:6:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":49519,"indexExpression":{"id":49518,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"15034:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15027:20:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":49522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15059:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15051:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49520,"name":"address","nodeType":"ElementaryTypeName","src":"15051:7:40","typeDescriptions":{}}},"id":49523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15051:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15027:34:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14999:62:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49526,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"15065:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":49527,"name":"SENTINEL_OWNERS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50313,"src":"15081:15:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15065:31:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14999:97:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303236","id":49530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15098:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_14032cc06a7a2043c1b961d6b7d6cbfaea1511224ce5ca723af49fa68e55c159","typeString":"literal_string \"GS026\""},"value":"GS026"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14032cc06a7a2043c1b961d6b7d6cbfaea1511224ce5ca723af49fa68e55c159","typeString":"literal_string \"GS026\""}],"id":49513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14991:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14991:115:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49532,"nodeType":"ExpressionStatement","src":"14991:115:40"},{"expression":{"id":49535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49533,"name":"lastOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49323,"src":"15120:9:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49534,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49330,"src":"15132:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15120:24:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49536,"nodeType":"ExpressionStatement","src":"15120:24:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49348,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49342,"src":"11875:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49349,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49308,"src":"11879:18:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11875:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49538,"initializationExpression":{"expression":{"id":49346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49342,"src":"11868:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":49345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11872:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11868:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49347,"nodeType":"ExpressionStatement","src":"11868:5:40"},"loopExpression":{"expression":{"id":49352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11899:3:40","subExpression":{"id":49351,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49342,"src":"11899:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49353,"nodeType":"ExpressionStatement","src":"11899:3:40"},"nodeType":"ForStatement","src":"11863:3292:40"}]},"documentation":{"id":49300,"nodeType":"StructuredDocumentation","src":"10830:514:40","text":" @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n @param dataHash Hash of the data (could be either a message hash or transaction hash)\n @param data That should be signed (this is passed to an external validator contract)\n @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n @param requiredSignatures Amount of required valid signatures."},"functionSelector":"12fb68e0","implemented":true,"kind":"function","modifiers":[],"name":"checkNSignatures","nameLocation":"11358:16:40","parameters":{"id":49309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49302,"mutability":"mutable","name":"dataHash","nameLocation":"11392:8:40","nodeType":"VariableDeclaration","scope":49540,"src":"11384:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11384:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49304,"mutability":"mutable","name":"data","nameLocation":"11423:4:40","nodeType":"VariableDeclaration","scope":49540,"src":"11410:17:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49303,"name":"bytes","nodeType":"ElementaryTypeName","src":"11410:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49306,"mutability":"mutable","name":"signatures","nameLocation":"11450:10:40","nodeType":"VariableDeclaration","scope":49540,"src":"11437:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49305,"name":"bytes","nodeType":"ElementaryTypeName","src":"11437:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49308,"mutability":"mutable","name":"requiredSignatures","nameLocation":"11478:18:40","nodeType":"VariableDeclaration","scope":49540,"src":"11470:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49307,"name":"uint256","nodeType":"ElementaryTypeName","src":"11470:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11374:128:40"},"returnParameters":{"id":49310,"nodeType":"ParameterList","parameters":[],"src":"11515:0:40"},"scope":49761,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":49589,"nodeType":"FunctionDefinition","src":"15970:533:40","nodes":[],"body":{"id":49588,"nodeType":"Block","src":"16132:371:40","nodes":[],"statements":[{"assignments":[49556],"declarations":[{"constant":false,"id":49556,"mutability":"mutable","name":"startGas","nameLocation":"16150:8:40","nodeType":"VariableDeclaration","scope":49588,"src":"16142:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49555,"name":"uint256","nodeType":"ElementaryTypeName","src":"16142:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49559,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":49557,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"16161:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16161:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16142:28:40"},{"expression":{"arguments":[{"arguments":[{"id":49562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49543,"src":"16283:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49545,"src":"16287:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49564,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49547,"src":"16294:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":49565,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49550,"src":"16300:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},{"arguments":[],"expression":{"argumentTypes":[],"id":49566,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"16311:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16311:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49561,"name":"execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49792,"src":"16275:7:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$50806_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"}},"id":49568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16275:46:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16267:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16267:55:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49570,"nodeType":"ExpressionStatement","src":"16267:55:40"},{"assignments":[49572],"declarations":[{"constant":false,"id":49572,"mutability":"mutable","name":"requiredGas","nameLocation":"16340:11:40","nodeType":"VariableDeclaration","scope":49588,"src":"16332:19:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49571,"name":"uint256","nodeType":"ElementaryTypeName","src":"16332:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49577,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49573,"name":"startGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49556,"src":"16354:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":49574,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"16365:7:40","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16365:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16354:20:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16332:42:40"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":49583,"name":"requiredGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49572,"src":"16482:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16465:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16469:12:40","memberName":"encodePacked","nodeType":"MemberAccess","src":"16465:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16465:29:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16458:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":49579,"name":"string","nodeType":"ElementaryTypeName","src":"16458:6:40","typeDescriptions":{}}},"id":49585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16458:37:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49578,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"16451:6:40","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":49586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16451:45:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49587,"nodeType":"ExpressionStatement","src":"16451:45:40"}]},"documentation":{"id":49541,"nodeType":"StructuredDocumentation","src":"15167:798:40","text":"@dev Allows to estimate a Safe transaction.\n      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.\n      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n @notice Deprecated in favor of common/StorageAccessible.sol and will be removed in next version."},"functionSelector":"c4ca3a9c","implemented":true,"kind":"function","modifiers":[],"name":"requiredTxGas","nameLocation":"15979:13:40","parameters":{"id":49551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49543,"mutability":"mutable","name":"to","nameLocation":"16010:2:40","nodeType":"VariableDeclaration","scope":49589,"src":"16002:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49542,"name":"address","nodeType":"ElementaryTypeName","src":"16002:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49545,"mutability":"mutable","name":"value","nameLocation":"16030:5:40","nodeType":"VariableDeclaration","scope":49589,"src":"16022:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49544,"name":"uint256","nodeType":"ElementaryTypeName","src":"16022:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49547,"mutability":"mutable","name":"data","nameLocation":"16060:4:40","nodeType":"VariableDeclaration","scope":49589,"src":"16045:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49546,"name":"bytes","nodeType":"ElementaryTypeName","src":"16045:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49550,"mutability":"mutable","name":"operation","nameLocation":"16089:9:40","nodeType":"VariableDeclaration","scope":49589,"src":"16074:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},"typeName":{"id":49549,"nodeType":"UserDefinedTypeName","pathNode":{"id":49548,"name":"Enum.Operation","nameLocations":["16074:4:40","16079:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":50806,"src":"16074:14:40"},"referencedDeclaration":50806,"src":"16074:14:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},"visibility":"internal"}],"src":"15992:112:40"},"returnParameters":{"id":49554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49589,"src":"16123:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49552,"name":"uint256","nodeType":"ElementaryTypeName","src":"16123:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16122:9:40"},"scope":49761,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49624,"nodeType":"FunctionDefinition","src":"16750:228:40","nodes":[],"body":{"id":49623,"nodeType":"Block","src":"16803:175:40","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":49596,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50317,"src":"16821:6:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":49599,"indexExpression":{"expression":{"id":49597,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16828:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16832:6:40","memberName":"sender","nodeType":"MemberAccess","src":"16828:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16821:18:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":49602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16851:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49600,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:40","typeDescriptions":{}}},"id":49603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16843:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16821:32:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303330","id":49605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16855:7:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_26b7fa7d947085035b53de5c25693e568c405e1e894ad22389a1528045f35ba8","typeString":"literal_string \"GS030\""},"value":"GS030"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_26b7fa7d947085035b53de5c25693e568c405e1e894ad22389a1528045f35ba8","typeString":"literal_string \"GS030\""}],"id":49595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16813:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16813:50:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49607,"nodeType":"ExpressionStatement","src":"16813:50:40"},{"expression":{"id":49615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":49608,"name":"approvedHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48903,"src":"16873:14:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"}},"id":49612,"indexExpression":{"expression":{"id":49609,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16888:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16892:6:40","memberName":"sender","nodeType":"MemberAccess","src":"16888:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16873:26:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":49613,"indexExpression":{"id":49611,"name":"hashToApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49592,"src":"16900:13:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16873:41:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":49614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16917:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16873:45:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49616,"nodeType":"ExpressionStatement","src":"16873:45:40"},{"eventCall":{"arguments":[{"id":49618,"name":"hashToApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49592,"src":"16945:13:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":49619,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16960:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16964:6:40","memberName":"sender","nodeType":"MemberAccess","src":"16960:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":49617,"name":"ApproveHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48873,"src":"16933:11:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":49621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16933:38:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49622,"nodeType":"EmitStatement","src":"16928:43:40"}]},"documentation":{"id":49590,"nodeType":"StructuredDocumentation","src":"16509:236:40","text":" @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract."},"functionSelector":"d4d9bdcd","implemented":true,"kind":"function","modifiers":[],"name":"approveHash","nameLocation":"16759:11:40","parameters":{"id":49593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49592,"mutability":"mutable","name":"hashToApprove","nameLocation":"16779:13:40","nodeType":"VariableDeclaration","scope":49624,"src":"16771:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16771:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16770:23:40"},"returnParameters":{"id":49594,"nodeType":"ParameterList","parameters":[],"src":"16803:0:40"},"scope":49761,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49637,"nodeType":"FunctionDefinition","src":"17041:211:40","nodes":[],"body":{"id":49636,"nodeType":"Block","src":"17093:159:40","nodes":[],"statements":[{"assignments":[49631],"declarations":[{"constant":false,"id":49631,"mutability":"mutable","name":"id","nameLocation":"17111:2:40","nodeType":"VariableDeclaration","scope":49636,"src":"17103:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49630,"name":"uint256","nodeType":"ElementaryTypeName","src":"17103:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49632,"nodeType":"VariableDeclarationStatement","src":"17103:10:40"},{"AST":{"nodeType":"YulBlock","src":"17188:39:40","statements":[{"nodeType":"YulAssignment","src":"17202:15:40","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"17208:7:40"},"nodeType":"YulFunctionCall","src":"17208:9:40"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"17202:2:40"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":49631,"isOffset":false,"isSlot":false,"src":"17202:2:40","valueSize":1}],"id":49633,"nodeType":"InlineAssembly","src":"17179:48:40"},{"expression":{"id":49634,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49631,"src":"17243:2:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49629,"id":49635,"nodeType":"Return","src":"17236:9:40"}]},"documentation":{"id":49625,"nodeType":"StructuredDocumentation","src":"16984:52:40","text":"@dev Returns the chain id used by this contract."},"functionSelector":"3408e470","implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"17050:10:40","parameters":{"id":49626,"nodeType":"ParameterList","parameters":[],"src":"17060:2:40"},"returnParameters":{"id":49629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49637,"src":"17084:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49627,"name":"uint256","nodeType":"ElementaryTypeName","src":"17084:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17083:9:40"},"scope":49761,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":49653,"nodeType":"FunctionDefinition","src":"17258:149:40","nodes":[],"body":{"id":49652,"nodeType":"Block","src":"17315:92:40","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49645,"name":"DOMAIN_SEPARATOR_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48851,"src":"17353:25:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":49646,"name":"getChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49637,"src":"17380:10:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17380:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49648,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17394:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafe_$49761","typeString":"contract GnosisSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_GnosisSafe_$49761","typeString":"contract GnosisSafe"}],"expression":{"id":49643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17342:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17346:6:40","memberName":"encode","nodeType":"MemberAccess","src":"17342:10:40","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17342:57:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49642,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17332:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17332:68:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49641,"id":49651,"nodeType":"Return","src":"17325:75:40"}]},"functionSelector":"f698da25","implemented":true,"kind":"function","modifiers":[],"name":"domainSeparator","nameLocation":"17267:15:40","parameters":{"id":49638,"nodeType":"ParameterList","parameters":[],"src":"17282:2:40"},"returnParameters":{"id":49641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49653,"src":"17306:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17306:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17305:9:40"},"scope":49761,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":49717,"nodeType":"FunctionDefinition","src":"18194:890:40","nodes":[],"body":{"id":49716,"nodeType":"Block","src":"18532:552:40","nodes":[],"statements":[{"assignments":[49681],"declarations":[{"constant":false,"id":49681,"mutability":"mutable","name":"safeTxHash","nameLocation":"18550:10:40","nodeType":"VariableDeclaration","scope":49716,"src":"18542:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18542:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49700,"initialValue":{"arguments":[{"arguments":[{"id":49685,"name":"SAFE_TX_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48854,"src":"18634:16:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49686,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49656,"src":"18672:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49658,"src":"18696:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":49689,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49660,"src":"18733:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":49688,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18723:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18723:15:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49691,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49663,"src":"18760:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},{"id":49692,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49665,"src":"18791:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49693,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49667,"src":"18822:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49694,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49669,"src":"18851:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49695,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49671,"src":"18881:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49696,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49673,"src":"18911:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49697,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49675,"src":"18947:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18602:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18606:6:40","memberName":"encode","nodeType":"MemberAccess","src":"18602:10:40","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18602:369:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49682,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18575:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18575:410:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18542:443:40"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30783139","id":49705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19026:4:40","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"0x19"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"}],"id":49704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19019:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":49703,"name":"bytes1","nodeType":"ElementaryTypeName","src":"19019:6:40","typeDescriptions":{}}},"id":49706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19019:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783031","id":49709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19040:4:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":49708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19033:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":49707,"name":"bytes1","nodeType":"ElementaryTypeName","src":"19033:6:40","typeDescriptions":{}}},"id":49710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19033:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[],"expression":{"argumentTypes":[],"id":49711,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49653,"src":"19047:15:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":49712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19047:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49713,"name":"safeTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49681,"src":"19066:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":49701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19002:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19006:12:40","memberName":"encodePacked","nodeType":"MemberAccess","src":"19002:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19002:75:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":49679,"id":49715,"nodeType":"Return","src":"18995:82:40"}]},"documentation":{"id":49654,"nodeType":"StructuredDocumentation","src":"17413:776:40","text":"@dev Returns the bytes that are hashed to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Gas that should be used for the safe transaction.\n @param baseGas Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes."},"functionSelector":"e86637db","implemented":true,"kind":"function","modifiers":[],"name":"encodeTransactionData","nameLocation":"18203:21:40","parameters":{"id":49676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49656,"mutability":"mutable","name":"to","nameLocation":"18242:2:40","nodeType":"VariableDeclaration","scope":49717,"src":"18234:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49655,"name":"address","nodeType":"ElementaryTypeName","src":"18234:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49658,"mutability":"mutable","name":"value","nameLocation":"18262:5:40","nodeType":"VariableDeclaration","scope":49717,"src":"18254:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49657,"name":"uint256","nodeType":"ElementaryTypeName","src":"18254:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49660,"mutability":"mutable","name":"data","nameLocation":"18292:4:40","nodeType":"VariableDeclaration","scope":49717,"src":"18277:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49659,"name":"bytes","nodeType":"ElementaryTypeName","src":"18277:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49663,"mutability":"mutable","name":"operation","nameLocation":"18321:9:40","nodeType":"VariableDeclaration","scope":49717,"src":"18306:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},"typeName":{"id":49662,"nodeType":"UserDefinedTypeName","pathNode":{"id":49661,"name":"Enum.Operation","nameLocations":["18306:4:40","18311:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":50806,"src":"18306:14:40"},"referencedDeclaration":50806,"src":"18306:14:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":49665,"mutability":"mutable","name":"safeTxGas","nameLocation":"18348:9:40","nodeType":"VariableDeclaration","scope":49717,"src":"18340:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49664,"name":"uint256","nodeType":"ElementaryTypeName","src":"18340:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49667,"mutability":"mutable","name":"baseGas","nameLocation":"18375:7:40","nodeType":"VariableDeclaration","scope":49717,"src":"18367:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49666,"name":"uint256","nodeType":"ElementaryTypeName","src":"18367:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49669,"mutability":"mutable","name":"gasPrice","nameLocation":"18400:8:40","nodeType":"VariableDeclaration","scope":49717,"src":"18392:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49668,"name":"uint256","nodeType":"ElementaryTypeName","src":"18392:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49671,"mutability":"mutable","name":"gasToken","nameLocation":"18426:8:40","nodeType":"VariableDeclaration","scope":49717,"src":"18418:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49670,"name":"address","nodeType":"ElementaryTypeName","src":"18418:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49673,"mutability":"mutable","name":"refundReceiver","nameLocation":"18452:14:40","nodeType":"VariableDeclaration","scope":49717,"src":"18444:22:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49672,"name":"address","nodeType":"ElementaryTypeName","src":"18444:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49675,"mutability":"mutable","name":"_nonce","nameLocation":"18484:6:40","nodeType":"VariableDeclaration","scope":49717,"src":"18476:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49674,"name":"uint256","nodeType":"ElementaryTypeName","src":"18476:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18224:272:40"},"returnParameters":{"id":49679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49717,"src":"18518:12:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49677,"name":"bytes","nodeType":"ElementaryTypeName","src":"18518:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18517:14:40"},"scope":49761,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":49760,"nodeType":"FunctionDefinition","src":"19770:478:40","nodes":[],"body":{"id":49759,"nodeType":"Block","src":"20100:148:40","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49746,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49720,"src":"20149:2:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49747,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49722,"src":"20153:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49748,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49724,"src":"20160:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":49749,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49727,"src":"20166:9:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},{"id":49750,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49729,"src":"20177:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49751,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49731,"src":"20188:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49752,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49733,"src":"20197:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49753,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49735,"src":"20207:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49754,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49737,"src":"20217:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49755,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49739,"src":"20233:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49745,"name":"encodeTransactionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49717,"src":"20127:21:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_enum$_Operation_$50806_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes calldata,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)"}},"id":49756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20127:113:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20117:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20117:124:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49743,"id":49758,"nodeType":"Return","src":"20110:131:40"}]},"documentation":{"id":49718,"nodeType":"StructuredDocumentation","src":"19090:675:40","text":"@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param baseGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash."},"functionSelector":"d8d11f78","implemented":true,"kind":"function","modifiers":[],"name":"getTransactionHash","nameLocation":"19779:18:40","parameters":{"id":49740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49720,"mutability":"mutable","name":"to","nameLocation":"19815:2:40","nodeType":"VariableDeclaration","scope":49760,"src":"19807:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49719,"name":"address","nodeType":"ElementaryTypeName","src":"19807:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49722,"mutability":"mutable","name":"value","nameLocation":"19835:5:40","nodeType":"VariableDeclaration","scope":49760,"src":"19827:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49721,"name":"uint256","nodeType":"ElementaryTypeName","src":"19827:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49724,"mutability":"mutable","name":"data","nameLocation":"19865:4:40","nodeType":"VariableDeclaration","scope":49760,"src":"19850:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49723,"name":"bytes","nodeType":"ElementaryTypeName","src":"19850:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49727,"mutability":"mutable","name":"operation","nameLocation":"19894:9:40","nodeType":"VariableDeclaration","scope":49760,"src":"19879:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"},"typeName":{"id":49726,"nodeType":"UserDefinedTypeName","pathNode":{"id":49725,"name":"Enum.Operation","nameLocations":["19879:4:40","19884:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":50806,"src":"19879:14:40"},"referencedDeclaration":50806,"src":"19879:14:40","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$50806","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":49729,"mutability":"mutable","name":"safeTxGas","nameLocation":"19921:9:40","nodeType":"VariableDeclaration","scope":49760,"src":"19913:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49728,"name":"uint256","nodeType":"ElementaryTypeName","src":"19913:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49731,"mutability":"mutable","name":"baseGas","nameLocation":"19948:7:40","nodeType":"VariableDeclaration","scope":49760,"src":"19940:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49730,"name":"uint256","nodeType":"ElementaryTypeName","src":"19940:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49733,"mutability":"mutable","name":"gasPrice","nameLocation":"19973:8:40","nodeType":"VariableDeclaration","scope":49760,"src":"19965:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49732,"name":"uint256","nodeType":"ElementaryTypeName","src":"19965:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49735,"mutability":"mutable","name":"gasToken","nameLocation":"19999:8:40","nodeType":"VariableDeclaration","scope":49760,"src":"19991:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49734,"name":"address","nodeType":"ElementaryTypeName","src":"19991:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49737,"mutability":"mutable","name":"refundReceiver","nameLocation":"20025:14:40","nodeType":"VariableDeclaration","scope":49760,"src":"20017:22:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49736,"name":"address","nodeType":"ElementaryTypeName","src":"20017:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49739,"mutability":"mutable","name":"_nonce","nameLocation":"20057:6:40","nodeType":"VariableDeclaration","scope":49760,"src":"20049:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49738,"name":"uint256","nodeType":"ElementaryTypeName","src":"20049:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19797:272:40"},"returnParameters":{"id":49743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49760,"src":"20091:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20091:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20090:9:40"},"scope":49761,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48823,"name":"EtherPaymentFallback","nameLocations":["749:20:40"],"nodeType":"IdentifierPath","referencedDeclaration":50829,"src":"749:20:40"},"id":48824,"nodeType":"InheritanceSpecifier","src":"749:20:40"},{"baseName":{"id":48825,"name":"Singleton","nameLocations":["775:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":50908,"src":"775:9:40"},"id":48826,"nodeType":"InheritanceSpecifier","src":"775:9:40"},{"baseName":{"id":48827,"name":"ModuleManager","nameLocations":["790:13:40"],"nodeType":"IdentifierPath","referencedDeclaration":50289,"src":"790:13:40"},"id":48828,"nodeType":"InheritanceSpecifier","src":"790:13:40"},{"baseName":{"id":48829,"name":"OwnerManager","nameLocations":["809:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":50800,"src":"809:12:40"},"id":48830,"nodeType":"InheritanceSpecifier","src":"809:12:40"},{"baseName":{"id":48831,"name":"SignatureDecoder","nameLocations":["827:16:40"],"nodeType":"IdentifierPath","referencedDeclaration":50902,"src":"827:16:40"},"id":48832,"nodeType":"InheritanceSpecifier","src":"827:16:40"},{"baseName":{"id":48833,"name":"SecuredTokenTransfer","nameLocations":["849:20:40"],"nodeType":"IdentifierPath","referencedDeclaration":50856,"src":"849:20:40"},"id":48834,"nodeType":"InheritanceSpecifier","src":"849:20:40"},{"baseName":{"id":48835,"name":"ISignatureValidatorConstants","nameLocations":["875:28:40"],"nodeType":"IdentifierPath","referencedDeclaration":51272,"src":"875:28:40"},"id":48836,"nodeType":"InheritanceSpecifier","src":"875:28:40"},{"baseName":{"id":48837,"name":"FallbackManager","nameLocations":["909:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":49844,"src":"909:15:40"},"id":48838,"nodeType":"InheritanceSpecifier","src":"909:15:40"},{"baseName":{"id":48839,"name":"StorageAccessible","nameLocations":["930:17:40"],"nodeType":"IdentifierPath","referencedDeclaration":50957,"src":"930:17:40"},"id":48840,"nodeType":"InheritanceSpecifier","src":"930:17:40"},{"baseName":{"id":48841,"name":"GuardManager","nameLocations":["953:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":49922,"src":"953:12:40"},"id":48842,"nodeType":"InheritanceSpecifier","src":"953:12:40"}],"canonicalName":"GnosisSafe","contractDependencies":[],"contractKind":"contract","documentation":{"id":48822,"nodeType":"StructuredDocumentation","src":"505:217:40","text":"@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - <stefan@gnosis.io>\n @author Richard Meissner - <richard@gnosis.io>"},"fullyImplemented":true,"linearizedBaseContracts":[49761,49922,50957,49844,51272,50856,50902,50800,50289,49793,50882,50908,50829],"name":"GnosisSafe","nameLocation":"731:10:40","scope":49762,"usedErrors":[],"usedEvents":[48867,48873,48877,48883,48889,49803,49889,49936,49940,49944,49948,50299,50303,50307,50816]}],"license":"LGPL-3.0-only"},"id":40}