From 7ea3a59e93f670810464349beda9a5844cbd456d Mon Sep 17 00:00:00 2001 From: Garvit Khatri Date: Tue, 29 Oct 2024 12:15:36 +0000 Subject: [PATCH] Update safe 7579 tests --- .../mock-aa-infra/alto/constants.ts | 4 +-- .../mock-aa-infra/alto/index.ts | 28 +++++++++---------- packages/permissionless-test/src/utils.ts | 12 ++++++-- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/packages/permissionless-test/mock-aa-infra/alto/constants.ts b/packages/permissionless-test/mock-aa-infra/alto/constants.ts index 88ac79e7..f0aa689c 100644 --- a/packages/permissionless-test/mock-aa-infra/alto/constants.ts +++ b/packages/permissionless-test/mock-aa-infra/alto/constants.ts @@ -52,13 +52,13 @@ export const SAFE_MULTI_SEND_CALL_ONLY_CREATECALL: Hex = "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b5061019a806100206000396000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea26469706673582212208d297bb003abee230b5dfb38774688f37a6fbb97a82a21728e8049b2acb9b73564736f6c63430007060033" export const SAFE_7579_LAUNCHPAD_CREATECALL = - "0x000000000000000000000000000000000000000000000000000000000000000060e060405234801561001057600080fd5b50604051612bc8380380612bc883398101604081905261002f91610089565b6001600160a01b03821661005657604051632039d3c960e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100c3565b6001600160a01b038116811461008657600080fd5b50565b6000806040838503121561009c57600080fd5b82516100a781610071565b60208401519092506100b881610071565b809150509250929050565b60805160a05160c051612a9f6101296000396000818161014e015281816104470152610d2401526000818161019f0152818161057501528181610e05015261113c01526000818160eb015281816105200152818161094f0152610e6e0152612a9f6000f3fe6080604052600436106100e15760003560e01c8063928107f91161007f578063d78343d911610059578063d78343d9146102ff578063d9ed0e8f1461031f578063f2dc691d1461033f578063f698da251461035f57600080fd5b8063928107f9146102715780639cfd7cff14610291578063d03c7914146102cf57600080fd5b806319822f7c116100bb57806319822f7c146101e15780633c9de1b81461020f5780634fff40e114610231578063663c87d81461025157600080fd5b806306433b1b1461013c578063137e051e1461018d57806315cca638146101c157600080fd5b36610137576000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116911614610135576040516308e3edd160e41b815260040160405180910390fd5b005b600080fd5b34801561014857600080fd5b506101707f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019957600080fd5b506101707f000000000000000000000000000000000000000000000000000000000000000081565b3480156101cd57600080fd5b506101356101dc366004611a57565b610374565b3480156101ed57600080fd5b506102016101fc366004611b4b565b61051a565b604051908152602001610184565b34801561021b57600080fd5b50600080516020612a4a83398151915254610201565b34801561023d57600080fd5b5061013561024c366004611b9e565b61094a565b34801561025d57600080fd5b5061017061026c366004611d28565b610a7a565b34801561027d57600080fd5b5061020161028c366004611f2d565b610b54565b34801561029d57600080fd5b50604080518082018252600f81526e073616665373537392e76312e302e3608c1b6020820152905161018491906120ab565b3480156102db57600080fd5b506102ef6102ea3660046120c5565b610ba6565b6040519015158152602001610184565b34801561030b57600080fd5b5061013561031a3660046120de565b610c4e565b34801561032b57600080fd5b5061013561033a36600461220a565b610dfa565b34801561034b57600080fd5b506102ef61035a3660046120c5565b611082565b34801561036b57600080fd5b506102016110d1565b33301461039457604051630a57d61d60e01b815260040160405180910390fd5b60405163610b592560e01b81526001600160a01b038b166004820152309063610b592590602401600060405180830381600087803b1580156103d557600080fd5b505af11580156103e9573d6000803e3d6000fd5b50506040805160008082526020820190925230935063540fb4f9925090610433565b60408051808201909152600081526060602082015281526020019060019003908161040b5790505b508b8b8b8b8b8b60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8c166020909101526040516001600160e01b031960e08b901b1681526104dc989796959493929190600401612445565b600060405180830381600087803b1580156104f657600080fd5b505af115801561050a573d6000803e3d6000fd5b5050505050505050505050505050565b600080547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461056a576040516308e3edd160e41b815260040160405180910390fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105b357604051632039d3c960e01b815260040160405180910390fd5b6105c060608501856124b8565b6105cf916004916000916124fe565b6105d891612528565b6001600160e01b03191663d9ed0e8f60e01b146106085760405163c3d40f7760e01b815260040160405180910390fd5b600061061760608601866124b8565b6106259160049082906124fe565b8101906106329190611f2d565b905061064a600080516020612a4a8339815191525490565b61065382610b54565b146106715760405163278328b160e21b815260040160405180910390fd5b600080866020013590508060601c915060008360a001516001600160a01b03168460c001516040516024016106a69190612560565b60408051601f19818403018152918152602080830180516001600160e01b0316633cd56b0760e11b17905290516106e09291339101612573565b60408051601f19818403018152908290526106fa916125a5565b6000604051808303816000865af19150503d8060008114610737576040519150601f19603f3d011682016040523d82523d6000602084013e61073c565b606091505b505090508061075e5760405163c3d40f7760e01b815260040160405180910390fd5b60c084015151600090815b818110156108805760008760c001518281518110610789576107896125c1565b6020026020010151600001519050806001600160a01b0316636d61fe708960c0015184815181106107bc576107bc6125c1565b6020026020010151602001516040518263ffffffff1660e01b81526004016107e491906120ab565b600060405180830381600087803b1580156107fe57600080fd5b505af1158015610812573d6000803e3d6000fd5b505060408051600181526001600160a01b03851660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905060405180910390a1866001600160a01b0316816001600160a01b03160361087757600193505b50600101610769565b5081156108ff57604051639700320360e01b81526001600160a01b038616906397003203906108b5908d908d906004016125d7565b6020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f891906126db565b965061092b565b60008060006109138960a001518d8f61112a565b925092509250610925831582846112a9565b99505050505b871561093d576000806000808b335af1505b5050505050509392505050565b6000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116911614610999576040516308e3edd160e41b815260040160405180910390fd5b60006109b1600080516020612a4a8339815191525490565b146109cf5760405163d4d496e560e01b815260040160405180910390fd5b6109e584600080516020612a4a83398151915255565b6001600160a01b03831615610a74576000836001600160a01b03168383604051610a109291906126f4565b600060405180830381855af49150503d8060008114610a4b576040519150601f19603f3d011682016040523d82523d6000602084013e610a50565b606091505b5050905080610a7257604051631f57fed560e31b815260040160405180910390fd5b505b50505050565b6000818051906020012083604051602001610a9f929190918252602082015260400190565b60405160208183030381529060405280519060200120925060ff60f81b858486896001600160a01b0316604051602001610ada929190612704565b60405160208183030381529060405280519060200120604051602001610b3294939291906001600160f81b031994909416845260609290921b6001600160601b03191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b80516020808301516040808501516060860151608087015160a088015160c08901519451600098610b89989097969101612726565b604051602081830303815290604052805190602001209050919050565b600081600881901b610bbc82600160f81b6112e1565b15610bca5760019250610c0d565b610bd58260006112e1565b15610be35760019250610c0d565b610bf5826001600160f81b03196112e1565b15610c035760019250610c0d565b5060009392505050565b828015610c205750610c208160006112e1565b15610c2c575050919050565b828015610c425750610c4281600160f81b6112e1565b15610c03575050919050565b60405163610b592560e01b81526001600160a01b038d166004820152309063610b592590602401600060405180830381600087803b158015610c8f57600080fd5b505af1158015610ca3573d6000803e3d6000fd5b505060405163f08a032360e01b81526001600160a01b038f16600482015230925063f08a03239150602401600060405180830381600087803b158015610ce857600080fd5b505af1158015610cfc573d6000803e3d6000fd5b50505050306001600160a01b031663540fb4f98c8c8c8c8c8c8c8c60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018e8e8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8d166020909101526040516001600160e01b031960e08c901b168152610dba999897969594939291906004016127a3565b600060405180830381600087803b158015610dd457600080fd5b505af1158015610de8573d6000803e3d6000fd5b50505050505050505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e4357604051632039d3c960e01b815260040160405180910390fd5b610e506020820182612818565b600080546001600160a01b0319166001600160a01b039283161790557f000000000000000000000000000000000000000000000000000000000000000016610e9e6080830160608401612818565b6001600160a01b031614610ec557604051633007073760e01b815260040160405180910390fd5b6302b994c760e31b610eda60808301836124b8565b610ee9916004916000916124fe565b610ef291612528565b6001600160e01b03191614610f1a57604051633007073760e01b815260040160405180910390fd5b3063b63e800d610f2d6020840184612835565b6040850135610f426080870160608801612818565b610f4f60808801886124b8565b610f5f60c08a0160a08b01612818565b60008060006040518b63ffffffff1660e01b8152600401610f899a9998979695949392919061287e565b600060405180830381600087803b158015610fa357600080fd5b505af1158015610fb7573d6000803e3d6000fd5b50506000600080516020612a4a8339815191525550610fd39050565b600080610fe660c0840160a08501612818565b6001600160a01b0316610ffc60e08501856124b8565b3060405160200161100f93929190612935565b60408051601f1981840301815290829052611029916125a5565b6000604051808303816000865af19150503d8060008114611066576040519150601f19603f3d011682016040523d82523d6000602084013e61106b565b606091505b50915091508161107d57805160208201fd5b505050565b60006001820361109457506001919050565b600282036110a457506001919050565b600382036110b457506001919050565b600482036110c457506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b600080600080600080366000611160897f00000000000000000000000000000000000000000000000000000000000000006112f8565b8451602086012094995092975090955093509150600061118360608c018c6124b8565b6111919160049082906124fe565b81019061119e9190611f2d565b905060006111e885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505060408501518692915061152b565b90506111f38161181a565b60208201516112018161181a565b61120a81611826565b80516000805b8281101561128b57600061124685838151811061122f5761122f6125c1565b60200260200101518761182f90919063ffffffff16565b509050801561128257826112598161296c565b93505086604001518310611282575060019e50999c50979a506112a09950505050505050505050565b50600101611210565b5060009d50989b509699505050505050505050505b93509350939050565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b856112d15760006112d4565b60015b60ff161717949350505050565b6001600160f81b0319828116908216145b92915050565b60606000803681818161130f6101008a018a6124b8565b90925090506113226006600083856124fe565b61132b91612985565b60d01c955061133e600c600683856124fe565b61134791612985565b60d01c945061135981600c81856124fe565b9350935050506000604051806101c001604052807fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f60001b81526020018960000160208101906113a99190612818565b6001600160a01b03168152602001896020013581526020018980604001906113d191906124b8565b6040516113df9291906126f4565b60405190819003902081526020016113fa60608b018b6124b8565b6040516114089291906126f4565b6040518091039020815260200161141e8a611852565b6001600160801b031681526020016114358a611862565b6001600160801b031681526020018960a0013581526020016114568a611877565b6001600160801b0316815260200161146d8a611886565b6001600160801b0316815260200161148860e08b018b6124b8565b6040516114969291906126f4565b6040805191829003909120825265ffffffffffff80891660208401528716908201526001600160a01b0389166060909101526101c08120909150601960f81b600160f81b6114e26110d1565b6040516001600160f81b03199384166020820152929091166021830152602282015260428101829052606201604051602081830303815290604052965050509295509295909350565b6060600061153a8360416129bb565b8451909150836001600160401b0381111561155757611557611c28565b604051908082528060200260200182016040528015611580578160200160208202803683370190505b509250818110156115a457604051638baa579f60e01b815260040160405180910390fd5b60005b84811015611810576000806000806115d78a86604102016020810151604082015160609092015160001a92909190565b9250925092508260ff1660000361176f5790925082906041811015611625576040516338a245ff60e11b81526004810182905260006024820181905260448201526064015b60405180910390fd5b856116318260206129d2565b1115611661576040516338a245ff60e11b815260048101829052600060248201526044810187905260640161161c565b6020818b0181015190879082906116799085906129d2565b61168391906129d2565b11156116b3576040516338a245ff60e11b815260048101839052602481018290526044810188905260640161161c565b60606020838d01019050631626ba7e60e01b6001600160e01b031916866001600160a01b0316631626ba7e8f846040518363ffffffff1660e01b81526004016116fd9291906129e5565b602060405180830381865afa15801561171a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173e9190612a06565b6001600160e01b03191614611768578060405163605d348960e01b815260040161161c91906120ab565b50506117d5565b601e8360ff1611156117c6576117bf6117ad8c6020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b6117b8600486612a30565b848461189b565b93506117d5565b6117d28b84848461189b565b93505b838886815181106117e8576117e86125c1565b6001600160a01b03909216602092830291909101909101525050600190920191506115a79050565b5050509392505050565b611823816118d9565b50565b6118238161192e565b60008061184784846001600160a01b03166000611977565b909590945092505050565b60006112f2826080013560801c90565b60006001600160801b036080830135166112f2565b600060c082013560801c6112f2565b60006001600160801b0360c0830135166112f2565b60006040518560005260ff85166020528360405282606052602060406080600060015afa5060006060523d6060185191508060405250949350505050565b8051600082528060051b82016020601f198185015b8201838111611926578051828201805182811161190d575050506118ee565b5b818601528301805182811161190e57508401526118ee565b505050915250565b6002815110611823576020810160408201600183510160051b83015b815183511461195e57602083019250815183525b60208201915080820361194a57505081900360051c9052565b60008060001960018651600087870197505b81830160011c94508460051b89015187019050878114828411176119c3578088116119b8578385019150611989565b600185019250611989565b84151597148716989290930190950295509350505050565b6001600160a01b038116811461182357600080fd5b80356110cc816119db565b60008083601f840112611a0d57600080fd5b5081356001600160401b03811115611a2457600080fd5b6020830191508360208260051b8501011115611a3f57600080fd5b9250929050565b803560ff811681146110cc57600080fd5b60008060008060008060008060008060c08b8d031215611a7657600080fd5b611a7f8b6119f0565b995060208b01356001600160401b03811115611a9a57600080fd5b611aa68d828e016119fb565b909a5098505060408b01356001600160401b03811115611ac557600080fd5b611ad18d828e016119fb565b90985096505060608b01356001600160401b03811115611af057600080fd5b611afc8d828e016119fb565b90965094505060808b01356001600160401b03811115611b1b57600080fd5b611b278d828e016119fb565b9094509250611b3a905060a08c01611a46565b90509295989b9194979a5092959850565b600080600060608486031215611b6057600080fd5b83356001600160401b03811115611b7657600080fd5b84016101208187031215611b8957600080fd5b95602085013595506040909401359392505050565b60008060008060608587031215611bb457600080fd5b843593506020850135611bc6816119db565b925060408501356001600160401b03811115611be157600080fd5b8501601f81018713611bf257600080fd5b80356001600160401b03811115611c0857600080fd5b876020828401011115611c1a57600080fd5b949793965060200194505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611c6057611c60611c28565b60405290565b60405161010081016001600160401b0381118282101715611c6057611c60611c28565b604051601f8201601f191681016001600160401b0381118282101715611cb157611cb1611c28565b604052919050565b600082601f830112611cca57600080fd5b81356001600160401b03811115611ce357611ce3611c28565b611cf6601f8201601f1916602001611c89565b818152846020838601011115611d0b57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611d4057600080fd5b8535611d4b816119db565b94506020860135611d5b816119db565b935060408601356001600160401b03811115611d7657600080fd5b611d8288828901611cb9565b9350506060860135915060808601356001600160401b03811115611da557600080fd5b611db188828901611cb9565b9150509295509295909350565b60006001600160401b03821115611dd757611dd7611c28565b5060051b60200190565b600082601f830112611df257600080fd5b8135611e05611e0082611dbe565b611c89565b8082825260208201915060208360051b860101925085831115611e2757600080fd5b602085015b83811015611e4d578035611e3f816119db565b835260209283019201611e2c565b5095945050505050565b600082601f830112611e6857600080fd5b8135611e76611e0082611dbe565b8082825260208201915060208360051b860101925085831115611e9857600080fd5b602085015b83811015611e4d5780356001600160401b03811115611ebb57600080fd5b86016040818903601f19011215611ed157600080fd5b611ed9611c3e565b6020820135611ee7816119db565b815260408201356001600160401b03811115611f0257600080fd5b611f118a602083860101611cb9565b6020830152508085525050602083019250602081019050611e9d565b600060208284031215611f3f57600080fd5b81356001600160401b03811115611f5557600080fd5b82016101008185031215611f6857600080fd5b611f70611c66565b611f79826119f0565b815260208201356001600160401b03811115611f9457600080fd5b611fa086828501611de1565b60208301525060408281013590820152611fbc606083016119f0565b606082015260808201356001600160401b03811115611fda57600080fd5b611fe686828501611cb9565b608083015250611ff860a083016119f0565b60a082015260c08201356001600160401b0381111561201657600080fd5b61202286828501611e57565b60c08301525060e08201356001600160401b0381111561204157600080fd5b61204d86828501611cb9565b60e083015250949350505050565b60005b8381101561207657818101518382015260200161205e565b50506000910152565b6000815180845261209781602086016020860161205b565b601f01601f19169290920160200192915050565b6020815260006120be602083018461207f565b9392505050565b6000602082840312156120d757600080fd5b5035919050565b60008060008060008060008060008060008060e08d8f03121561210057600080fd5b6121098d6119f0565b9b506001600160401b0360208e0135111561212357600080fd5b6121338e60208f01358f016119fb565b909b5099506001600160401b0360408e0135111561215057600080fd5b6121608e60408f01358f016119fb565b90995097506001600160401b0360608e0135111561217d57600080fd5b61218d8e60608f01358f016119fb565b90975095506001600160401b0360808e013511156121aa57600080fd5b6121ba8e60808f01358f016119fb565b90955093506001600160401b0360a08e013511156121d757600080fd5b6121e78e60a08f01358f016119fb565b90935091506121f860c08e01611a46565b90509295989b509295989b509295989b565b60006020828403121561221c57600080fd5b81356001600160401b0381111561223257600080fd5b820161010081850312156120be57600080fd5b600082825180855260208501945060208160051b8301016020850160005b838110156122b557848303601f19018852815180516001600160a01b0316845260209081015160409185018290529061229e9085018261207f565b6020998a0199909450929092019150600101612263565b50909695505050505050565b6000808335601e198436030181126122d857600080fd5b83016020810192503590506001600160401b038111156122f757600080fd5b803603821315611a3f57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208501945060208460051b8201018360005b868110156122b557838303601f19018852813536879003603e1901811261236e57600080fd5b8601803561237b816119db565b6001600160a01b0316845261239360208201826122c1565b9150604060208601526123aa604086018383612306565b60209a8b019a90955093909301925050600101612348565b600081518084526020840193506020830160005b828110156123fd5781516001600160a01b03168652602095860195909101906001016123d6565b5093949350505050565b60018060a01b038151168252600060208201516060602085015261242e60608501826123c2565b60409384015160ff16949093019390935250919050565b60a08152600061245860a083018b612245565b828103602084015261246b818a8c61232f565b9050828103604084015261248081888a61232f565b9050828103606084015261249581868861232f565b905082810360808401526124a98185612407565b9b9a5050505050505050505050565b6000808335601e198436030181126124cf57600080fd5b8301803591506001600160401b038211156124e957600080fd5b602001915036819003821315611a3f57600080fd5b6000808585111561250e57600080fd5b8386111561251b57600080fd5b5050820193919092039150565b80356001600160e01b03198116906004841015612559576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6020815260006120be6020830184612245565b6000835161258581846020880161205b565b60609390931b6001600160601b0319169190920190815260140192915050565b600082516125b781846020870161205b565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b604081526125f8604082016125eb856119f0565b6001600160a01b03169052565b60208301356060820152600061261160408501856122c1565b610120608085015261262861016085018284612306565b91505061263860608601866122c1565b848303603f190160a086015261264f838284612306565b608088013560c08781019190915260a089013560e08089019190915290890135610100880152909350612687925087019050866122c1565b848303603f190161012086015261269f838284612306565b925050506126b16101008601866122c1565b848303603f19016101408601526126c9838284612306565b93505050508260208301529392505050565b6000602082840312156126ed57600080fd5b5051919050565b8183823760009101908152919050565b6000835161271681846020880161205b565b9190910191825250602001919050565b6001600160a01b038816815260e06020820181905260009061274a908301896123c2565b604083018890526001600160a01b03871660608401528281036080840152612772818761207f565b6001600160a01b03861660a085015283810360c085015290506127958185612245565b9a9950505050505050505050565b60a0815260006127b760a083018b8d61232f565b82810360208401526127ca818a8c61232f565b905082810360408401526127df81888a61232f565b905082810360608401526127f481868861232f565b905082810360808401526128088185612407565b9c9b505050505050505050505050565b60006020828403121561282a57600080fd5b81356120be816119db565b6000808335601e1984360301811261284c57600080fd5b8301803591506001600160401b0382111561286657600080fd5b6020019150600581901b3603821315611a3f57600080fd5b61010080825281018a905260008b6101208301825b8d8110156128c35782356128a6816119db565b6001600160a01b0316825260209283019290910190600101612893565b508b60208501526128df604085018c6001600160a01b03169052565b83810360608501526128f2818a8c612306565b9250505061290b60808301876001600160a01b03169052565b6001600160a01b03851660a08301528360c08301526124a960e08301846001600160a01b03169052565b8284823760609190911b6001600160601b0319169101908152601401919050565b634e487b7160e01b600052601160045260246000fd5b60006001820161297e5761297e612956565b5060010190565b80356001600160d01b03198116906006841015612559576001600160d01b031960069490940360031b84901b1690921692915050565b80820281158282048414176112f2576112f2612956565b808201808211156112f2576112f2612956565b8281526040602082015260006129fe604083018461207f565b949350505050565b600060208284031215612a1857600080fd5b81516001600160e01b0319811681146120be57600080fd5b60ff82811682821603908111156112f2576112f261295656fe982e06ee6a56dfc0f1ac189a5d23506361ca0a3ce45a9c7b8d33d65d43746a24a2646970667358221220b9f8a86409c3671f7b19131d085b34f0ba682783524a0bae7bea00939bae967d64736f6c634300081a00330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da03200000000000000000000000025a4b2f363678e13a0a5db79b712de00347a593e" + "0x0000000000000000000000000000000000000000e5068a3f93a9e201a183295860e060405234801561001057600080fd5b50604051612d70380380612d7083398101604081905261002f91610089565b6001600160a01b03821661005657604051632039d3c960e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100c3565b6001600160a01b038116811461008657600080fd5b50565b6000806040838503121561009c57600080fd5b82516100a781610071565b60208401519092506100b881610071565b809150509250929050565b60805160a05160c051612c4761012960003960008181610159015281816104900152610fc60152600081816101aa015281816105be015281816110a701526113ea01526000818160f6015281816105690152818161099301526111100152612c476000f3fe6080604052600436106100ec5760003560e01c8063663c87d81161008a578063d78343d911610059578063d78343d914610348578063d9ed0e8f14610368578063f2dc691d14610388578063f698da25146103a857600080fd5b8063663c87d81461028c578063928107f9146102ac5780639cfd7cff146102cc578063d03c79141461031857600080fd5b806319822f7c116100c657806319822f7c146101ec5780633c9de1b81461021a5780634fff40e11461023c57806355d559f41461025c57600080fd5b806306433b1b14610147578063137e051e1461019857806315cca638146101cc57600080fd5b36610142576000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116911614610140576040516308e3edd160e41b815260040160405180910390fd5b005b600080fd5b34801561015357600080fd5b5061017b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a457600080fd5b5061017b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156101d857600080fd5b506101406101e7366004611ab5565b6103bd565b3480156101f857600080fd5b5061020c610207366004611bb2565b610563565b60405190815260200161018f565b34801561022657600080fd5b50600080516020612bf28339815191525461020c565b34801561024857600080fd5b50610140610257366004611bff565b61098e565b34801561026857600080fd5b5061027c610277366004611c87565b610abe565b60405161018f9493929190611d28565b34801561029857600080fd5b5061017b6102a7366004611e7c565b610d1b565b3480156102b857600080fd5b5061020c6102c736600461206e565b610df5565b3480156102d857600080fd5b50604080518082018252601a81527f7268696e6573746f6e652e73616665373537392e76312e302e300000000000006020820152905161018f9190612184565b34801561032457600080fd5b5061033861033336600461219e565b610e47565b604051901515815260200161018f565b34801561035457600080fd5b506101406103633660046121b7565b610ef0565b34801561037457600080fd5b506101406103833660046122e3565b61109c565b34801561039457600080fd5b506103386103a336600461219e565b611324565b3480156103b457600080fd5b5061020c611373565b3330146103dd57604051630a57d61d60e01b815260040160405180910390fd5b60405163610b592560e01b81526001600160a01b038b166004820152309063610b592590602401600060405180830381600087803b15801561041e57600080fd5b505af1158015610432573d6000803e3d6000fd5b50506040805160008082526020820190925230935063540fb4f992509061047c565b6040805180820190915260008152606060208201528152602001906001900390816104545790505b508b8b8b8b8b8b60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8c166020909101526040516001600160e01b031960e08b901b168152610525989796959493929190600401612520565b600060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b5050505050505050505050505050565b600080547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116146105b3576040516308e3edd160e41b815260040160405180910390fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc57604051632039d3c960e01b815260040160405180910390fd5b6106096060850185612593565b610618916004916000916125d9565b61062191612603565b6001600160e01b03191663d9ed0e8f60e01b146106515760405163c3d40f7760e01b815260040160405180910390fd5b60006106606060860186612593565b61066e9160049082906125d9565b81019061067b919061206e565b9050610693600080516020612bf28339815191525490565b61069c82610df5565b146106ba5760405163278328b160e21b815260040160405180910390fd5b600080866020013590508060601c915060008360a001516001600160a01b03168460c001516040516024016106ef9190612633565b60408051601f19818403018152918152602080830180516001600160e01b0316633cd56b0760e11b17905290516107299291339101612646565b60408051601f198184030181529082905261074391612678565b6000604051808303816000865af19150503d8060008114610780576040519150601f19603f3d011682016040523d82523d6000602084013e610785565b606091505b50509050806107a75760405163c3d40f7760e01b815260040160405180910390fd5b60c084015151600090815b818110156108c95760008760c0015182815181106107d2576107d2612694565b6020026020010151600001519050806001600160a01b0316636d61fe708960c00151848151811061080557610805612694565b6020026020010151602001516040518263ffffffff1660e01b815260040161082d9190612184565b600060405180830381600087803b15801561084757600080fd5b505af115801561085b573d6000803e3d6000fd5b505060408051600181526001600160a01b03851660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905060405180910390a1866001600160a01b0316816001600160a01b0316036108c057600193505b506001016107b2565b50811561094857604051639700320360e01b81526001600160a01b038616906397003203906108fe908d908d9060040161277e565b6020604051808303816000875af115801561091d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094191906127a0565b965061096f565b6000806000610957898e6113cc565b92509250925061096983158383611542565b99505050505b8715610981576000806000808b335af1505b5050505050509392505050565b6000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116146109dd576040516308e3edd160e41b815260040160405180910390fd5b60006109f5600080516020612bf28339815191525490565b14610a135760405163d4d496e560e01b815260040160405180910390fd5b610a2984600080516020612bf283398151915255565b6001600160a01b03831615610ab8576000836001600160a01b03168383604051610a549291906127b9565b600060405180830381855af49150503d8060008114610a8f576040519150601f19603f3d011682016040523d82523d6000602084013e610a94565b606091505b5050905080610ab657604051631f57fed560e31b815260040160405180910390fd5b505b50505050565b6060600080823682610ad4610100890189612593565b9092509050610ae76006600083856125d9565b610af0916127c9565b60d01c9450610b03600c600683856125d9565b610b0c916127c9565b60d01c9350610b1e81600c81856125d9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516101c081019091527fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f815294975095509293505060208084019250610b9a91508a018a6127f7565b6001600160a01b0316815260200188602001358152602001888060400190610bc29190612593565b604051610bd09291906127b9565b6040519081900390208152602001610beb60608a018a612593565b604051610bf99291906127b9565b60405180910390208152602001610c0f8961157a565b6001600160801b03168152602001610c2689611590565b6001600160801b031681526020018860a001358152602001610c47896115a5565b6001600160801b03168152602001610c5e896115b4565b6001600160801b03168152602001610c7960e08a018a612593565b604051610c879291906127b9565b6040805191829003909120825265ffffffffffff80881660208401528616908201526001600160a01b0388166060909101526101c08120909150601960f81b600160f81b610cd3611373565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529550505092959194509250565b6000818051906020012083604051602001610d40929190918252602082015260400190565b60405160208183030381529060405280519060200120925060ff60f81b858486896001600160a01b0316604051602001610d7b929190612814565b60405160208183030381529060405280519060200120604051602001610dd394939291906001600160f81b031994909416845260609290921b6001600160601b03191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b80516020808301516040808501516060860151608087015160a088015160c08901519451600098610e2a989097969101612836565b604051602081830303815290604052805190602001209050919050565b600081600881901b6001600160f81b03198216600160f81b03610e6d5760019250610ea9565b6001600160f81b03198216610e855760019250610ea9565b6001600160f81b031980831603610e9f5760019250610ea9565b5060009392505050565b828015610ebe57506001600160f81b03198116155b15610eca575050919050565b828015610ee457506001600160f81b03198116600160f81b145b15610e9f575050919050565b60405163610b592560e01b81526001600160a01b038d166004820152309063610b592590602401600060405180830381600087803b158015610f3157600080fd5b505af1158015610f45573d6000803e3d6000fd5b505060405163f08a032360e01b81526001600160a01b038f16600482015230925063f08a03239150602401600060405180830381600087803b158015610f8a57600080fd5b505af1158015610f9e573d6000803e3d6000fd5b50505050306001600160a01b031663540fb4f98c8c8c8c8c8c8c8c60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018e8e8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8d166020909101526040516001600160e01b031960e08c901b16815261105c99989796959493929190600401612894565b600060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b50505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110e557604051632039d3c960e01b815260040160405180910390fd5b6110f260208201826127f7565b600080546001600160a01b0319166001600160a01b039283161790557f00000000000000000000000000000000000000000000000000000000000000001661114060808301606084016127f7565b6001600160a01b03161461116757604051633007073760e01b815260040160405180910390fd5b6302b994c760e31b61117c6080830183612593565b61118b916004916000916125d9565b61119491612603565b6001600160e01b031916146111bc57604051633007073760e01b815260040160405180910390fd5b3063b63e800d6111cf6020840184612909565b60408501356111e460808701606088016127f7565b6111f16080880188612593565b61120160c08a0160a08b016127f7565b60008060006040518b63ffffffff1660e01b815260040161122b9a99989796959493929190612952565b600060405180830381600087803b15801561124557600080fd5b505af1158015611259573d6000803e3d6000fd5b50506000600080516020612bf283398151915255506112759050565b60008061128860c0840160a085016127f7565b6001600160a01b031661129e60e0850185612593565b306040516020016112b193929190612a0a565b60408051601f19818403018152908290526112cb91612678565b6000604051808303816000865af19150503d8060008114611308576040519150601f19603f3d011682016040523d82523d6000602084013e61130d565b606091505b50915091508161131f57805160208201fd5b505050565b60006001820361133657506001919050565b6002820361134657506001919050565b6003820361135657506001919050565b6004820361136657506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60008060006060808660a001516001600160a01b03166355d559f4877f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611426929190612a2b565b600060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261146b9190810190612ab8565b8351602085012060408c01519298509296509294509192509060009061149490839085906115c9565b905061149f816118c1565b60208901516114ad816118c1565b6114b6816118cd565b80516000805b8281101561152e5760006114f28583815181106114db576114db612694565b6020026020010151876118d690919063ffffffff16565b5090508015611525578261150581612b52565b9350508d6040015183106115255760019b5050505050505050505061153b565b506001016114bc565b5060009950505050505050505b9250925092565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561156a57600061156d565b60015b60ff161717949350505050565b600061158a826080013560801c90565b92915050565b60006001600160801b0360808301351661158a565b600060c082013560801c61158a565b60006001600160801b0360c08301351661158a565b606060006115d8836041612b6b565b8451909150836001600160401b038111156115f5576115f5611d6e565b60405190808252806020026020018201604052801561161e578160200160208202803683370190505b5092508181101561164257604051638baa579f60e01b815260040160405180910390fd5b60005b848110156118b7576000806000806116758a86604102016020810151604082015160609092015160001a92909190565b9250925092508260ff16600003611816579092508290611696896041612b6b565b8110156116cc576040516338a245ff60e11b81526004810182905260006024820181905260448201526064015b60405180910390fd5b856116d8826020612b82565b1115611708576040516338a245ff60e11b81526004810182905260006024820152604481018790526064016116c3565b6020818b018101519087908290611720908590612b82565b61172a9190612b82565b111561175a576040516338a245ff60e11b81526004810183905260248101829052604481018890526064016116c3565b60606020838d01019050631626ba7e60e01b6001600160e01b031916866001600160a01b0316631626ba7e8f846040518363ffffffff1660e01b81526004016117a4929190612b95565b602060405180830381865afa1580156117c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e59190612bae565b6001600160e01b0319161461180f578060405163605d348960e01b81526004016116c39190612184565b505061187c565b601e8360ff16111561186d576118666118548c6020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b61185f600486612bd8565b84846118f9565b935061187c565b6118798b8484846118f9565b93505b8388868151811061188f5761188f612694565b6001600160a01b03909216602092830291909101909101525050600190920191506116459050565b5050509392505050565b6118ca81611937565b50565b6118ca8161198c565b6000806118ee84846001600160a01b031660006119d5565b909590945092505050565b60006040518560005260ff85166020528360405282606052602060406080600060015afa5060006060523d6060185191508060405250949350505050565b8051600082528060051b82016020601f198185015b8201838111611984578051828201805182811161196b5750505061194c565b5b818601528301805182811161196c575084015261194c565b505050915250565b60028151106118ca576020810160408201600183510160051b83015b81518351146119bc57602083019250815183525b6020820191508082036119a857505081900360051c9052565b60008060001960018651600087870197505b81830160011c94508460051b8901518701905087811482841117611a2157808811611a165783850191506119e7565b6001850192506119e7565b84151597148716989290930190950295509350505050565b6001600160a01b03811681146118ca57600080fd5b803561136e81611a39565b60008083601f840112611a6b57600080fd5b5081356001600160401b03811115611a8257600080fd5b6020830191508360208260051b8501011115611a9d57600080fd5b9250929050565b803560ff8116811461136e57600080fd5b60008060008060008060008060008060c08b8d031215611ad457600080fd5b611add8b611a4e565b995060208b01356001600160401b0380821115611af957600080fd5b611b058e838f01611a59565b909b50995060408d0135915080821115611b1e57600080fd5b611b2a8e838f01611a59565b909950975060608d0135915080821115611b4357600080fd5b611b4f8e838f01611a59565b909750955060808d0135915080821115611b6857600080fd5b50611b758d828e01611a59565b9094509250611b88905060a08c01611aa4565b90509295989b9194979a5092959850565b60006101208284031215611bac57600080fd5b50919050565b600080600060608486031215611bc757600080fd5b83356001600160401b03811115611bdd57600080fd5b611be986828701611b99565b9660208601359650604090950135949350505050565b60008060008060608587031215611c1557600080fd5b843593506020850135611c2781611a39565b925060408501356001600160401b0380821115611c4357600080fd5b818701915087601f830112611c5757600080fd5b813581811115611c6657600080fd5b886020828501011115611c7857600080fd5b95989497505060200194505050565b60008060408385031215611c9a57600080fd5b82356001600160401b03811115611cb057600080fd5b611cbc85828601611b99565b9250506020830135611ccd81611a39565b809150509250929050565b60005b83811015611cf3578181015183820152602001611cdb565b50506000910152565b60008151808452611d14816020860160208601611cd8565b601f01601f19169290920160200192915050565b608081526000611d3b6080830187611cfc565b65ffffffffffff8681166020850152851660408401528281036060840152611d638185611cfc565b979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611da657611da6611d6e565b60405290565b60405161010081016001600160401b0381118282101715611da657611da6611d6e565b604051601f8201601f191681016001600160401b0381118282101715611df757611df7611d6e565b604052919050565b60006001600160401b03821115611e1857611e18611d6e565b50601f01601f191660200190565b600082601f830112611e3757600080fd5b8135611e4a611e4582611dff565b611dcf565b818152846020838601011115611e5f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611e9457600080fd5b8535611e9f81611a39565b94506020860135611eaf81611a39565b935060408601356001600160401b0380821115611ecb57600080fd5b611ed789838a01611e26565b9450606088013593506080880135915080821115611ef457600080fd5b50611f0188828901611e26565b9150509295509295909350565b60006001600160401b03821115611f2757611f27611d6e565b5060051b60200190565b600082601f830112611f4257600080fd5b81356020611f52611e4583611f0e565b8083825260208201915060208460051b870101935086841115611f7457600080fd5b602086015b84811015611f99578035611f8c81611a39565b8352918301918301611f79565b509695505050505050565b600082601f830112611fb557600080fd5b81356020611fc5611e4583611f0e565b82815260059290921b84018101918181019086841115611fe457600080fd5b8286015b84811015611f995780356001600160401b03808211156120085760008081fd5b908801906040828b03601f19018113156120225760008081fd5b61202a611d84565b8784013561203781611a39565b815290830135908282111561204c5760008081fd5b61205a8c8984870101611e26565b818901528652505050918301918301611fe8565b60006020828403121561208057600080fd5b81356001600160401b038082111561209757600080fd5b9083019061010082860312156120ac57600080fd5b6120b4611dac565b6120bd83611a4e565b81526020830135828111156120d157600080fd5b6120dd87828601611f31565b602083015250604083013560408201526120f960608401611a4e565b606082015260808301358281111561211057600080fd5b61211c87828601611e26565b60808301525061212e60a08401611a4e565b60a082015260c08301358281111561214557600080fd5b61215187828601611fa4565b60c08301525060e08301358281111561216957600080fd5b61217587828601611e26565b60e08301525095945050505050565b6020815260006121976020830184611cfc565b9392505050565b6000602082840312156121b057600080fd5b5035919050565b60008060008060008060008060008060008060e08d8f0312156121d957600080fd5b6121e28d611a4e565b9b506001600160401b0360208e013511156121fc57600080fd5b61220c8e60208f01358f01611a59565b909b5099506001600160401b0360408e0135111561222957600080fd5b6122398e60408f01358f01611a59565b90995097506001600160401b0360608e0135111561225657600080fd5b6122668e60608f01358f01611a59565b90975095506001600160401b0360808e0135111561228357600080fd5b6122938e60808f01358f01611a59565b90955093506001600160401b0360a08e013511156122b057600080fd5b6122c08e60a08f01358f01611a59565b90935091506122d160c08e01611aa4565b90509295989b509295989b509295989b565b6000602082840312156122f557600080fd5b81356001600160401b0381111561230b57600080fd5b8201610100818503121561219757600080fd5b600082825180855260208086019550808260051b84010181860160005b8481101561238657858303601f19018952815180516001600160a01b03168452840151604085850181905261237281860183611cfc565b9a86019a945050509083019060010161233b565b5090979650505050505050565b6000808335601e198436030181126123aa57600080fd5b83016020810192503590506001600160401b038111156123c957600080fd5b803603821315611a9d57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b830101846000805b8881101561248f57858403601f19018a52823536899003603e19018112612440578283fd5b88016040813561244f81611a39565b6001600160a01b0316865261246682880183612393565b9250818888015261247a82880184836123d8565b9c88019c96505050928501925060010161241b565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156124d75781516001600160a01b0316875295820195908201906001016124b2565b509495945050505050565b60018060a01b0381511682526000602082015160606020850152612509606085018261249d565b60409384015160ff16949093019390935250919050565b60a08152600061253360a083018b61231e565b8281036020840152612546818a8c612401565b9050828103604084015261255b81888a612401565b90508281036060840152612570818688612401565b9050828103608084015261258481856124e2565b9b9a5050505050505050505050565b6000808335601e198436030181126125aa57600080fd5b8301803591506001600160401b038211156125c457600080fd5b602001915036819003821315611a9d57600080fd5b600080858511156125e957600080fd5b838611156125f657600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561262b5780818660040360031b1b83161692505b505092915050565b602081526000612197602083018461231e565b60008351612658818460208801611cd8565b60609390931b6001600160601b0319169190920190815260140192915050565b6000825161268a818460208701611cd8565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b60006101206126c9846126bc85611a4e565b6001600160a01b03169052565b602083013560208501526126e06040840184612393565b8260408701526126f383870182846123d8565b925050506127046060840184612393565b85830360608701526127178382846123d8565b925050506080830135608085015260a083013560a085015260c083013560c085015261274660e0840184612393565b85830360e08701526127598382846123d8565b9250505061010061276c81850185612393565b86840383880152611d638482846123d8565b60408152600061279160408301856126aa565b90508260208301529392505050565b6000602082840312156127b257600080fd5b5051919050565b8183823760009101908152919050565b6001600160d01b0319813581811691600685101561262b5760069490940360031b84901b1690921692915050565b60006020828403121561280957600080fd5b813561219781611a39565b60008351612826818460208801611cd8565b9190910191825250602001919050565b600060018060a01b03808a16835260e0602084015261285860e084018a61249d565b886040850152818816606085015283810360808501526128788188611cfc565b905081861660a085015283810360c0850152612584818661231e565b60a0815260006128a860a083018b8d612401565b82810360208401526128bb818a8c612401565b905082810360408401526128d081888a612401565b905082810360608401526128e5818688612401565b905082810360808401526128f981856124e2565b9c9b505050505050505050505050565b6000808335601e1984360301811261292057600080fd5b8301803591506001600160401b0382111561293a57600080fd5b6020019150600581901b3603821315611a9d57600080fd5b61010080825281018a9052600061012082018c825b8d81101561299857813561297a81611a39565b6001600160a01b031683526020928301929190910190600101612967565b50508a60208401526129b5604084018b6001600160a01b03169052565b82810360608401526129c881898b6123d8565b9150506129e060808301876001600160a01b03169052565b6001600160a01b03851660a08301528360c083015261258460e08301846001600160a01b03169052565b8284823760609190911b6001600160601b0319169101908152601401919050565b604081526000612a3e60408301856126aa565b905060018060a01b03831660208301529392505050565b600082601f830112612a6657600080fd5b8151612a74611e4582611dff565b818152846020838601011115612a8957600080fd5b612a9a826020830160208701611cd8565b949350505050565b805165ffffffffffff8116811461136e57600080fd5b60008060008060808587031215612ace57600080fd5b84516001600160401b0380821115612ae557600080fd5b612af188838901612a55565b9550612aff60208801612aa2565b9450612b0d60408801612aa2565b93506060870151915080821115612b2357600080fd5b50612b3087828801612a55565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b600060018201612b6457612b64612b3c565b5060010190565b808202811582820484141761158a5761158a612b3c565b8082018082111561158a5761158a612b3c565b828152604060208201526000612a9a6040830184611cfc565b600060208284031215612bc057600080fd5b81516001600160e01b03198116811461219757600080fd5b60ff828116828216039081111561158a5761158a612b3c56fe982e06ee6a56dfc0f1ac189a5d23506361ca0a3ce45a9c7b8d33d65d43746a24a26469706673582212207d5588f32687eed2f7e9571e6218cfcff2c44b91a85496193f533aec5d0aa59464736f6c634300081900330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032000000000000000000000000000000000069e2a187aeffb852bf3ccdc95151b2" export const SAFE_7579_REGISTRY_CREATECALL: Hex = "0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b506103d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063529562a11161005b578063529562a1146100bf57806396fb7217146100d2578063c23697a8146100e0578063f05c04e1146100f157600080fd5b80630bb30abc146100825780632ed94467146100985780634c13560c146100ad575b600080fd5b6100966100903660046101c8565b50505050565b005b6100966100a6366004610222565b5050505050565b6100966100bb366004610284565b5050565b6100966100cd3660046102b7565b505050565b6100966100bb3660046102f4565b6100966100ee36600461031e565b50565b6100966100ff366004610340565b6040513381527fb8a00d6d8ca1be30bfec34d8f97e55f0f0fd9eeb7fb46e030516363d4cfe1ad69060200160405180910390a16040517fb6d9a72244037f5f1de04d8ff74cd328f1574efc59a02163d0fec0554871974690600090a1505050565b80356001600160a01b038116811461017757600080fd5b919050565b60008083601f84011261018e57600080fd5b50813567ffffffffffffffff8111156101a657600080fd5b6020830191508360208260051b85010111156101c157600080fd5b9250929050565b600080600080606085870312156101de57600080fd5b6101e785610160565b9350602085013567ffffffffffffffff81111561020357600080fd5b61020f8782880161017c565b9598909750949560400135949350505050565b60008060008060006080868803121561023a57600080fd5b61024386610160565b945060208601359350604086013567ffffffffffffffff81111561026657600080fd5b6102728882890161017c565b96999598509660600135949350505050565b6000806040838503121561029757600080fd5b6102a083610160565b91506102ae60208401610160565b90509250929050565b6000806000606084860312156102cc57600080fd5b6102d584610160565b92506102e360208501610160565b929592945050506040919091013590565b6000806040838503121561030757600080fd5b61031083610160565b946020939093013593505050565b60006020828403121561033057600080fd5b61033982610160565b9392505050565b60008060006040848603121561035557600080fd5b833560ff8116811461036657600080fd5b9250602084013567ffffffffffffffff81111561038257600080fd5b61038e8682870161017c565b949790965093945050505056fea2646970667358221220181467498dc4fab0c64814a0965539f6b8e992676b95c29db59b1cc06cd50f0f64736f6c634300081a0033" export const SAFE_7579_MODULE_CREATECALL: Hex = - "0x000000000000000000000000000000000000000000000000000000000000000060a0604052348015600f57600080fd5b50604051601a906046565b604051809103906000f0801580156035573d6000803e3d6000fd5b506001600160a01b03166080526053565b6109e180614d7483390190565b608051614cb96100bb60003960008181610f340152818161112c0152818161128d01528181611ad601528181611f2d015281816120070152818161209e0152818161213501528181613248015281816133000152818161385b015261397b0152614cb96000f3fe6080604052600436106101235760003560e01c8063b0d691fe116100a0578063e9ae5c5311610064578063e9ae5c5314610479578063ea5f61d014610499578063eab77e17146104b9578063f2dc691d146104d9578063f698da25146104f95761012a565b8063b0d691fe1461039e578063b875d5d8146103c1578063d03c79141461040c578063d691c9641461042c578063d828435d146104595761012a565b80635faac46b116100e75780635faac46b146102d257806379aad60e146103005780639517e29f146103205780639cfd7cff14610340578063a71763a81461037e5761012a565b80630a664dba146101d5578063112d3a7d146102195780631626ba7e1461024957806319822f7c14610282578063540fb4f9146102b05761012a565b3661012a57005b600036606060003560e01c63bc197c81811463f23a6e6182141763150b7a028214171561015b57806020526020603cf35b50336000818152600460209081526040808320546001600160e01b031984351680855260058452828520958552949092528220546001600160a01b0391821692911690806101a9848461050e565b915091506101b788886105cc565b95506101c5848484846106df565b5050505050915050805190602001f35b3480156101e157600080fd5b50336000908152600460205260409020546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022557600080fd5b50610239610234366004613c93565b610762565b6040519015158152602001610210565b34801561025557600080fd5b50610269610264366004613cee565b6107bf565b6040516001600160e01b03199091168152602001610210565b34801561028e57600080fd5b506102a261029d366004613d39565b610b35565b604051908152602001610210565b3480156102bc57600080fd5b506102d06102cb366004613de8565b610c49565b005b3480156102de57600080fd5b506102f26102ed366004613ee4565b610cf9565b604051610210929190613f10565b34801561030c57600080fd5b506102d061031b366004613f73565b610d15565b34801561032c57600080fd5b506102d061033b366004613c93565b610dd9565b34801561034c57600080fd5b50604080518082018252600f81526e073616665373537392e76312e302e3608c1b602082015290516102109190614004565b34801561038a57600080fd5b506102d0610399366004613c93565b610fa4565b3480156103aa57600080fd5b506f71727de22e5e9d8baf0edac6f37da0326101fc565b3480156103cd57600080fd5b506101fc6103dc36600461402d565b6001600160e01b03191660009081526005602090815260408083203384529091529020546001600160a01b031690565b34801561041857600080fd5b5061023961042736600461404a565b6112cb565b34801561043857600080fd5b5061044c610447366004613cee565b611373565b6040516102109190614063565b34801561046557600080fd5b506102a26104743660046140c8565b61145c565b34801561048557600080fd5b506102d0610494366004613cee565b6114fc565b3480156104a557600080fd5b506102f26104b4366004613ee4565b611899565b3480156104c557600080fd5b506102d06104d4366004614112565b6118aa565b3480156104e557600080fd5b506102396104f436600461404a565b611919565b34801561050557600080fd5b506102a2611968565b6060806001600160a01b0384161561058e576105753385600061052f6119c1565b3460003660405160240161054694939291906141a1565b60408051601f198184030181529190526020810180516001600160e01b031663d68f602560e01b1790526119cd565b91508180602001905181019061058b919061428a565b91505b6001600160a01b038316156105c5576105ac3384600061052f6119c1565b9050808060200190518101906105c2919061428a565b90505b9250929050565b600080356001600160e01b031916815260036020908152604080832033845290915290208054606091906001600160a01b03811690600160a01b900460f81b8161063c57604051632464e76d60e11b81526001600160e01b03196000351660048201526024015b60405180910390fd5b61064a81607f60f91b611a76565b1561068e576106843383888861065e6119c1565b604051602001610670939291906142be565b604051602081830303815290604052611a88565b93505050506106d9565b610699816000611a76565b156106d5576106843383600089896106af6119c1565b6040516020016106c1939291906142be565b6040516020818303038152906040526119cd565b5050505b92915050565b6001600160a01b038416156107355761073533856000856040516024016107069190614004565b60408051601f198184030181529190526020810180516001600160e01b0316630b9dfbed60e11b179052611b5d565b6001600160a01b0383161561075c5761075c33846000846040516024016107069190614004565b50505050565b60006001850361077c5761077584611bfc565b90506107b7565b6002850361078d5761077584611c0a565b600385036107a057610775848484611c18565b600485036107b357610775848484611c64565b5060005b949350505050565b600033828203610959576000610890826001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906142e4565b60408051602081018a90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca91015b60408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052611c9f565b8051602090910120604051635ae6bd3760e01b8152600481018290529091506001600160a01b03831690635ae6bd3790602401602060405180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906142e4565b6000036109475760405162461bcd60e51b815260206004820152601160248201527012185cda081b9bdd08185c1c1c9bdd9959607a1b6044820152606401610633565b50630b135d3f60e11b9150610b2e9050565b600061096860148286886142fd565b61097191614327565b60601c9050801580610989575061098781611bfc565b155b15610ab3576000610a28836001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f591906142e4565b60408051602081018b90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca910161085f565b805160208201209091506001600160a01b03841663934f3a118284610a508a6014818e6142fd565b6040518563ffffffff1660e01b8152600401610a6f9493929190614374565b60006040518083038186803b158015610a8757600080fd5b505afa158015610a9b573d6000803e3d6000fd5b50630b135d3f60e11b9750610b2e9650505050505050565b6000610b123383610ac26119c1565b8a610ad08a6014818e6142fd565b604051602401610ae394939291906141a1565b60408051601f198184030181529190526020810180516001600160e01b0316637aa8f17760e11b179052611a88565b905080806020019051810190610b2891906143ab565b93505050505b9392505050565b60006f71727de22e5e9d8baf0edac6f37da032610b506119c1565b6001600160a01b031614610b7757604051635629665f60e11b815260040160405180910390fd5b6020840135606081901c90811580610b955750610b9382611bfc565b155b15610baa57610ba386611d19565b9250610c0f565b6000610bf5338460008a8a604051602401610bc692919061440d565b60408051601f198184030181529190526020810180516001600160e01b0316639700320360e01b1790526119cd565b905080806020019051810190610c0b91906142e4565b9350505b8315610c4057610c40336f71727de22e5e9d8baf0edac6f37da0328660405180602001604052806000815250611b5d565b50509392505050565b6f71727de22e5e9d8baf0edac6f37da032610c626119c1565b6001600160a01b03161480610c8f5750610c7a6119c1565b6001600160a01b0316336001600160a01b0316145b610cac57604051635629665f60e11b815260040160405180910390fd5b610cde610cbc6020830183614511565b610cc9602084018461452e565b610cd96060860160408701614577565b611dce565b610cee8989898989898989611e85565b505050505050505050565b60606000610d0a60013386866121a4565b915091509250929050565b6f71727de22e5e9d8baf0edac6f37da032610d2e6119c1565b6001600160a01b03161480610d5b5750610d466119c1565b6001600160a01b0316336001600160a01b0316145b610d7857604051635629665f60e11b815260040160405180910390fd5b610d83600133612368565b8060005b8181101561075c5736848483818110610da257610da2614592565b9050602002810190610db491906145a8565b9050610dd033610dc76020840184614511565b600191906123e3565b50600101610d87565b336000908152600460209081526040808320547fd00bcad91b775f25eb0aee15808d12dfdaa6dc5a7d6b754e26f9c205d2a3b8df909252822054639517e29f60e01b926001600160a01b03928316929091169080610e37848461050e565b91509150610e526f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610e636119c1565b6001600160a01b03161480610e905750610e7b6119c1565b6001600160a01b0316336001600160a01b0316145b610ead57604051635629665f60e11b815260040160405180910390fd5b606060018a03610ec957610ec28989896124d8565b9050610f2e565b60028a03610edc57610ec2898989612534565b60038a03610eef57610ec289898961254f565b60048a03610f0257610ec28989896126ce565b89610f1257610ec289898961286e565b60405163041c38b360e41b8152600481018b9052602401610633565b610f97337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610f68939291906145c8565b60408051601f198184030181529190526020810180516001600160e01b0316639517e29f60e01b179052612a1f565b50610cee848484846106df565b336000908152600460209081526040808320547fc45a7acaba78a7b4c4432b604d301355b314c0a7811768a1ee2563c9d34ca4e09092529091205484916314e2ec7560e31b916001600160a01b0391821691908116908416821480159061101d5750806001600160a01b0316846001600160a01b031614155b156111a35760008061102f848461050e565b9150915061104a6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b031661105b6119c1565b6001600160a01b0316148061108857506110736119c1565b6001600160a01b0316336001600160a01b0316145b6110a557604051635629665f60e11b815260040160405180910390fd5b606060018b036110c1576110ba8a8a8a612ab8565b9050611126565b60028b036110d4576110ba8a8a8a612ae1565b60038b036110e7576110ba8a8a8a612b02565b60048b036110fa576110ba8a8a8a612b4e565b8a61110a576110ba8a8a8a612c06565b60405163041c38b360e41b8152600481018c9052602401610633565b61118f337f00000000000000000000000000000000000000000000000000000000000000008d8d85604051602401611160939291906145c8565b60408051601f198184030181529190526020810180516001600160e01b0316637827252560e01b179052612d59565b5061119c848484846106df565b50506112c1565b6f71727de22e5e9d8baf0edac6f37da0326111bc6119c1565b6001600160a01b031614806111e957506111d46119c1565b6001600160a01b0316336001600160a01b0316145b61120657604051635629665f60e11b815260040160405180910390fd5b6060600189036112225761121b888888612ab8565b9050611287565b600289036112355761121b888888612ae1565b600389036112485761121b888888612b02565b6004890361125b5761121b888888612b4e565b8861126b5761121b888888612c06565b60405163041c38b360e41b8152600481018a9052602401610633565b610cee337f00000000000000000000000000000000000000000000000000000000000000008b8b85604051602401611160939291906145c8565b5050505050505050565b600081600881901b6112e182600160f81b611a76565b156112ef5760019250611332565b6112fa826000611a76565b156113085760019250611332565b61131a826001600160f81b0319611a76565b156113285760019250611332565b5060009392505050565b8280156113455750611345816000611a76565b15611351575050919050565b828015611367575061136781600160f81b611a76565b15611328575050919050565b60606113856113806119c1565b611c0a565b6113b6576113916119c1565b604051635c93ff2f60e11b81526001600160a01b039091166004820152602401610633565b336000908152600460209081526040808320547f4162c930ade27880570b0eb31efbc8a626b97e81a40ced27163509dfe16398829092528220546335a4725960e21b926001600160a01b03928316929091169080611414848461050e565b915091506114206119c1565b600261142c8282612e0f565b8a600881901b61143e81838e8e612e9a565b995050505050611450848484846106df565b50505050509392505050565b6000602082901b640100000000600160c01b03166f71727de22e5e9d8baf0edac6f37da032604051631aab3f0d60e11b81526001600160a01b0386811660048301526001600160c01b038416602483015291909116906335567e1a90604401602060405180830381865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b791906142e4565b336000908152600460209081526040808320547fccfe1b2bef70acd8e661aeb5430e147f4c75cb320972acba718a28da428e1a3090925282205463e9ae5c5360e01b926001600160a01b0392831692909116908061155a848461050e565b915091506115756f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b03166115866119c1565b6001600160a01b031614806115b3575061159e6119c1565b6001600160a01b0316336001600160a01b0316145b6115d057604051635629665f60e11b815260040160405180910390fd5b87600881901b336115e2826000611a76565b1561173b576115f583600160f81b611a76565b156116165789358a0160208101903561160f838383613242565b505061188a565b611621836000611a76565b15611689576000803660006116368e8e6132a9565b935093509350935061168085858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5d92505050565b5050505061188a565b61169b836001600160f81b0319611a76565b156117205760006116af6014828c8e6142fd565b6116b891614327565b60601c90503660008c8c60149080926116d3939291906142fd565b91509150611718848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a1f92505050565b50505061188a565b82604051632e5bf3f960e21b815260040161063391906145fb565b61174982600160f81b611a76565b1561186f5761175c83600160f81b611a76565b156117765789358a0160208101903561160f8383836132fa565b611781836000611a76565b156117e0576000803660006117968e8e6132a9565b935093509350935061168085858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061336192505050565b6117f2836001600160f81b0319611a76565b156117205760006118066014828c8e6142fd565b61180f91614327565b60601c90503660008c8c601490809261182a939291906142fd565b91509150611718848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d5992505050565b816040516308c3ee0360e11b815260040161063391906145fb565b5050506112c1848484846106df565b60606000610d0a60023386866121a4565b6f71727de22e5e9d8baf0edac6f37da0326118c36119c1565b6001600160a01b031614806118f057506118db6119c1565b6001600160a01b0316336001600160a01b0316145b61190d57604051635629665f60e11b815260040160405180910390fd5b61075c84848484611dce565b60006001820361192b57506001919050565b6002820361193b57506001919050565b6003820361194b57506001919050565b6004820361195b57506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60131936013560601c90565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b8152600401611a049493929190614648565b6000604051808303816000875af1158015611a23573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a4b919081019061468e565b9250905080611a6d57604051632b3f6d1160e21b815260040160405180910390fd5b50949350505050565b6001600160f81b031990811691161490565b606060008383604051602401611a9f9291906146db565b60408051601f198184030181529181526020820180516001600160e01b0316636a22165760e01b17905251909150600090611b00907f00000000000000000000000000000000000000000000000000000000000000009084906024016146db565b60408051601f19818403018152919052602080820180516001600160e01b031663b4faba0960e01b17815282519293509091600091895afa5060203d036040519350808401604052806020853e50600051610c4057825160208401fd5b60405163468721a760e01b81526000906001600160a01b0386169063468721a790611b92908790879087908790600401614648565b6020604051808303816000875af1158015611bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd591906146ff565b905080611bf557604051632b3f6d1160e21b815260040160405180910390fd5b5050505050565b60006106d960013384613417565b60006106d960023384613417565b600080611c278385018561402d565b6001600160e01b03191660009081526003602090815260408083203384529091529020546001600160a01b03908116908616149150509392505050565b60008080611c7484860186614729565b915091506000611c84838361345b565b6001600160a01b039081169088161493505050509392505050565b6060601960f81b600160f81b858585604051602001611cbf929190614755565b60408051808303601f190181529082905280516020918201206001600160f81b0319958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b60008080803681611d3a876f71727de22e5e9d8baf0edac6f37da0326134f1565b8451602086012060405163934f3a1160e01b8152959a5093985091965094509250339163934f3a1191611d7591899087908790600401614374565b60006040518083038186803b158015611d8d57600080fd5b505afa925050508015611d9e575060015b611db557611dae60018486613724565b9550611dc4565b611dc160008486613724565b95505b5050505050919050565b33600090815260208190526040902080546001600160a01b0319166001600160a01b03861690811790915515611e4957611e4933856000848787604051602401611e1a9392919061477b565b60408051601f198184030181529190526020810180516001600160e01b031663f05c04e160e01b179052611b5d565b6040516001600160a01b0385169033907f9452c8fb077c3ea8f28a77c87488af657b1e44d010ad9a5992d73870da040e9490600090a350505050565b3360009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f602052604090205460609088906001600160a01b0316611f7d57611ed1600133612368565b60005b81811015611f7757368b8b83818110611eef57611eef614592565b9050602002810190611f0191906145a8565b9050611f25611f136020830183614511565b611f2060208401846147d3565b6124d8565b9350611f6e337f00000000000000000000000000000000000000000000000000000000000000006001611f5b6020860186614511565b88604051602401610f68939291906145c8565b50600101611ed4565b50611f9e565b8015611f9e5760405163d8e3ed1b60e01b8152336004820152602401610633565b611fa9600233612368565b508560005b8181101561203e5736898983818110611fc957611fc9614592565b9050602002810190611fdb91906145a8565b9050611fff611fed6020830183614511565b611ffa60208401846147d3565b612534565b9350612035337f00000000000000000000000000000000000000000000000000000000000000006002611f5b6020860186614511565b50600101611fae565b5084905060005b818110156120d5573687878381811061206057612060614592565b905060200281019061207291906145a8565b90506120966120846020830183614511565b61209160208401846147d3565b61254f565b93506120cc337f00000000000000000000000000000000000000000000000000000000000000006003611f5b6020860186614511565b50600101612045565b5082905060005b8181101561216c57368585838181106120f7576120f7614592565b905060200281019061210991906145a8565b905061212d61211b6020830183614511565b61212860208401846147d3565b6126ce565b9350612163337f00000000000000000000000000000000000000000000000000000000000000006004611f5b6020860186614511565b506001016120dc565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a250505050505050505050565b606060006001600160a01b0384166001148015906121ca57506121c8868686613417565b155b156121f357604051637c84ecfb60e01b81526001600160a01b0385166004820152602401610633565b826000036122145760405163f725081760e01b815260040160405180910390fd5b826001600160401b0381111561222c5761222c6141d3565b604051908082528060200260200182016040528015612255578160200160208202803683370190505b506001600160a01b038086166000908152602089815260408083208a85168452909152812054929450911691505b6001600160a01b038216158015906122a557506001600160a01b038216600114155b80156122b057508381105b1561231557818382815181106122c8576122c8614592565b6001600160a01b039283166020918202929092018101919091529281166000908152888452604080822089841683529094529290922054909116908061230d8161482f565b915050612283565b6001600160a01b03821660011480159061232f5750600081115b1561235b5782612340600183614848565b8151811061235057612350614592565b602002602001015191505b8083525094509492505050565b60016000908152602083815260408083206001600160a01b03808616855292529091205416156123ab576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602093845260408082206001600160a01b0394909416825292909352912080546001600160a01b0319169091179055565b6001600160a01b038116158061240257506001600160a01b0381166001145b1561242b57604051637c84ecfb60e01b81526001600160a01b0382166004820152602401610633565b6001600160a01b038181166000908152602085815260408083208685168452909152902054161561247a57604051631034f46960e21b81526001600160a01b0382166004820152602401610633565b60016000908152602084815260408083206001600160a01b039586168085528184528285208054968816808752988552838620918652908452919093208054949095166001600160a01b031994851617909455528154169091179055565b60608360016124e78282612e0f565b6124f3600133886123e3565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b60608360026125438282612e0f565b6124f3600233886123e3565b606083600361255e8282612e0f565b6000808061256e878901896148ac565b919450925090506001600160e01b031983166306d61fe760e41b14806125a457506001600160e01b03198316638a91b0e360e01b145b156125ce576040516379bd117b60e01b81526001600160e01b031984166004820152602401610633565b6125d9826000611a76565b80156125ee57506125ee82607f60f91b611a76565b1561260e57816040516376087dc160e01b815260040161063391906145fb565b6001600160e01b0319831660009081526003602090815260408083203384529091529020546001600160a01b031615612666576040516374420d1560e01b81526001600160e01b031984166004820152602401610633565b6001600160e01b03199092166000908152600360209081526040808320338452909152902080546001600160a01b038a166001600160a01b031960f89490941c600160a01b02939093166001600160a81b031990911617919091179055925050509392505050565b60608360046126dd8282612e0f565b600080806126ed8789018961491a565b9194509250905060008084600181111561270957612709614610565b14801561271e57506001600160e01b03198316155b156127945750336000908152600460205260409020546001600160a01b031680156127675760405163741cbe0360e01b81526001600160a01b0382166004820152602401610633565b33600090815260046020526040902080546001600160a01b0319166001600160a01b038c16179055612861565b60018460018111156127a8576127a8614610565b0361284857506001600160e01b0319821660009081526005602090815260408083203384529091529020546001600160a01b031680156128065760405163741cbe0360e01b81526001600160a01b0382166004820152602401610633565b6001600160e01b031983166000908152600560209081526040808320338452909152902080546001600160a01b0319166001600160a01b038c16179055612861565b604051635691922f60e01b815260040160405180910390fd5b5098975050505050505050565b606082358301602081810191359085810135860180820191903590604088013588019081019035848381146128b65760405163b4fa3fb360e01b815260040160405180910390fd5b60005b818110156129d85760008888838181106128d5576128d5614592565b905060200201359050600181036129145761290e8d8888858181106128fc576128fc614592565b9050602002810190611f2091906147d3565b506129cf565b600281036129445761290e8d88888581811061293257612932614592565b9050602002810190611ffa91906147d3565b600381036129745761290e8d88888581811061296257612962614592565b905060200281019061209191906147d3565b600481036129a45761290e8d88888581811061299257612992614592565b905060200281019061212891906147d3565b60405163484d218160e01b81526001600160a01b038e16600482015260248101829052604401610633565b506001016128b9565b5082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b60405163468721a760e01b81526000906001600160a01b0385169063468721a790612a5590869085908790600190600401614648565b6020604051808303816000875af1158015612a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9891906146ff565b90508061075c57604051632b3f6d1160e21b815260040160405180910390fd5b60606000612ac883850185614948565b92509050612ad9600133838861375c565b509392505050565b60606000612af183850185614948565b92509050612ad9600233838861375c565b60606000612b128385018561498d565b6001600160e01b03199091166000908152600360209081526040808320338452909152902080546001600160a01b031916905595945050505050565b6060600080612b5f8486018661491a565b945090925090506000826001811115612b7a57612b7a614610565b148015612b8f57506001600160e01b03198116155b15612bb65733600090815260046020526040902080546001600160a01b0319169055610c40565b6001826001811115612bca57612bca614610565b03612848576001600160e01b031981166000908152600560209081526040808320338452909152902080546001600160a01b0319169055610c40565b60608235830160208181019135908581013586018082019190359060408801358801908101903584838114612c4e5760405163b4fa3fb360e01b815260040160405180910390fd5b60005b818110156129d8576000888883818110612c6d57612c6d614592565b90506020020135905060018103612cb157612cab8d888885818110612c9457612c94614592565b9050602002810190612ca691906147d3565b612ab8565b50612d50565b60028103612ce657612cab8d888885818110612ccf57612ccf614592565b9050602002810190612ce191906147d3565b612ae1565b60038103612d1b57612cab8d888885818110612d0457612d04614592565b9050602002810190612d1691906147d3565b612b02565b600481036129a457612cab8d888885818110612d3957612d39614592565b9050602002810190612d4b91906147d3565b612b4e565b50600101612c51565b60405163468721a760e01b81526000906001600160a01b0385169063468721a790612d8f90869085908790600190600401614648565b6020604051808303816000875af1158015612dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd291906146ff565b90508061075c57604080516001600160a01b038616815260006020820152600080516020614c64833981519152910160405180910390a150505050565b336000908152602081905260409020546001600160a01b03168015612e955760405163529562a160e01b81523360048201526001600160a01b0384811660248301526044820184905282169063529562a19060640160006040518083038186803b158015612e7c57600080fd5b505afa158015612e90573d6000803e3d6000fd5b505050505b505050565b6060612ea7856000611a76565b1561309357612eba84600160f81b611a76565b15612edd5782358301602081019035612ed4338383613853565b925050506107b7565b612ee8846000611a76565b15612f9c57600080366000612efd87876132a9565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081612f1c579050509450612f7533858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119cd92505050565b85600081518110612f8857612f88614592565b6020026020010181905250505050506107b7565b612fae846001600160f81b0319611a76565b15613078576000612fc260148285876142fd565b612fcb91614327565b60601c9050366000612fe085601481896142fd565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612ffa579050509350613052338484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506138cf92505050565b8460008151811061306557613065614592565b60200260200101819052505050506107b7565b83604051632e5bf3f960e21b815260040161063391906145fb565b6130a185600160f81b611a76565b15613227576130b484600160f81b611a76565b156130d957823583016020810190356130ce338383613970565b93506107b792505050565b6130e4846000611a76565b15613171576000803660006130f987876132a9565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081613118579050509450612f7533858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613a6692505050565b613183846001600160f81b0319611a76565b1561307857600061319760148285876142fd565b6131a091614327565b60601c90503660006131b585601481896142fd565b604080516001808252818301909252929450909250816020015b60608152602001906001900390816131cf579050509350613052338484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2692505050565b846040516308c3ee0360e11b815260040161063391906145fb565b612e95837f0000000000000000000000000000000000000000000000000000000000000000848460405160240161327a9291906149ab565b60408051601f198184030181529190526020810180516001600160e01b0316633f707e6b60e01b179052612a1f565b60008036816132bb60148287896142fd565b6132c491614327565b60601c93506132d76034601487896142fd565b6132e091614a5d565b92506132ef85603481896142fd565b949793965094505050565b612e95837f000000000000000000000000000000000000000000000000000000000000000084846040516024016133329291906149ab565b60408051601f198184030181529190526020810180516001600160e01b0316632864481160e11b179052612d59565b60405163468721a760e01b81526000906001600160a01b0386169063468721a790613396908790879087908790600401614648565b6020604051808303816000875af11580156133b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d991906146ff565b905080611bf557604080516001600160a01b038716815260006020820152600080516020614c64833981519152910160405180910390a15050505050565b600060016001600160a01b038316148015906107b75750506001600160a01b0390811660009081526020938452604080822093831682529290935291205416151590565b60008083600181111561347057613470614610565b14801561348557506001600160e01b03198216155b156134a55750336000908152600460205260409020546001600160a01b03165b60018360018111156134b9576134b9614610565b036106d957506001600160e01b03191660009081526005602090815260408083203384529091529020546001600160a01b0316919050565b6060600080368181816135086101008a018a6147d3565b909250905061351b6006600083856142fd565b61352491614a7b565b60d01c9550613537600c600683856142fd565b61354091614a7b565b60d01c945061355281600c81856142fd565b9350935050506000604051806101c001604052807fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f60001b81526020018960000160208101906135a29190614511565b6001600160a01b03168152602001896020013581526020018980604001906135ca91906147d3565b6040516135d8929190614ab1565b60405190819003902081526020016135f360608b018b6147d3565b604051613601929190614ab1565b604051809103902081526020016136178a613be6565b6001600160801b0316815260200161362e8a613bf6565b6001600160801b031681526020018960a00135815260200161364f8a613c0b565b6001600160801b031681526020016136668a613c1a565b6001600160801b0316815260200161368160e08b018b6147d3565b60405161368f929190614ab1565b6040805191829003909120825265ffffffffffff80891660208401528716908201526001600160a01b0389166060909101526101c08120909150601960f81b600160f81b6136db611968565b6040516001600160f81b03199384166020820152929091166021830152602282015260428101829052606201604051602081830303815290604052965050509295509295909350565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561374c57600061374f565b60015b60ff161717949350505050565b6001600160a01b038116158061377b57506001600160a01b0381166001145b156137a457604051637c84ecfb60e01b81526001600160a01b0383166004820152602401610633565b6001600160a01b0382811660009081526020868152604080832087851684529091529020548116908216146137f757604051637c84ecfb60e01b81526001600160a01b0382166004820152602401610633565b6001600160a01b039081166000908152602085815260408083209584168084528683528184208054968616855297835281842090845282529091208054939092166001600160a01b031993841617909155919091528154169055565b60606138bc847f0000000000000000000000000000000000000000000000000000000000000000858560405160240161388d9291906149ab565b60408051601f198184030181529190526020810180516001600160e01b0316636108557360e01b1790526138cf565b8060200190518101906107b79190614b70565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b81526004016139079493929190614648565b6000604051808303816000875af1158015613926573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261394e919081019061468e565b9250905080612ad957604051632b3f6d1160e21b815260040160405180910390fd5b60608060006139dc867f000000000000000000000000000000000000000000000000000000000000000087876040516024016139ad9291906149ab565b60408051601f198184030181529190526020810180516001600160e01b0316639abb6e1760e01b179052613b26565b9050808060200190518101906139f29190614ba4565b8151919450925060005b81811015613a5b57848181518110613a1657613a16614592565b6020026020010151613a5357604080516001600160a01b038a16815260208101839052600080516020614c64833981519152910160405180910390a15b6001016139fc565b505050935093915050565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b8152600401613a9d9493929190614648565b6000604051808303816000875af1158015613abc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ae4919081019061468e565b9250905080611a6d57604080516001600160a01b038816815260006020820152600080516020614c64833981519152910160405180910390a150949350505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b8152600401613b5e9493929190614648565b6000604051808303816000875af1158015613b7d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ba5919081019061468e565b9250905080612ad957604080516001600160a01b038716815260006020820152600080516020614c64833981519152910160405180910390a1509392505050565b60006106d9826080013560801c90565b60006001600160801b036080830135166106d9565b600060c082013560801c6106d9565b60006001600160801b0360c0830135166106d9565b6001600160a01b0381168114613c4457600080fd5b50565b803561196381613c2f565b60008083601f840112613c6457600080fd5b5081356001600160401b03811115613c7b57600080fd5b6020830191508360208285010111156105c557600080fd5b60008060008060608587031215613ca957600080fd5b843593506020850135613cbb81613c2f565b925060408501356001600160401b03811115613cd657600080fd5b613ce287828801613c52565b95989497509550505050565b600080600060408486031215613d0357600080fd5b8335925060208401356001600160401b03811115613d2057600080fd5b613d2c86828701613c52565b9497909650939450505050565b600080600060608486031215613d4e57600080fd5b83356001600160401b03811115613d6457600080fd5b84016101208187031215613d7757600080fd5b95602085013595506040909401359392505050565b60008083601f840112613d9e57600080fd5b5081356001600160401b03811115613db557600080fd5b6020830191508360208260051b85010111156105c557600080fd5b600060608284031215613de257600080fd5b50919050565b600080600080600080600080600060a08a8c031215613e0657600080fd5b89356001600160401b03811115613e1c57600080fd5b613e288c828d01613d8c565b909a5098505060208a01356001600160401b03811115613e4757600080fd5b613e538c828d01613d8c565b90985096505060408a01356001600160401b03811115613e7257600080fd5b613e7e8c828d01613d8c565b90965094505060608a01356001600160401b03811115613e9d57600080fd5b613ea98c828d01613d8c565b90945092505060808a01356001600160401b03811115613ec857600080fd5b613ed48c828d01613dd0565b9150509295985092959850929598565b60008060408385031215613ef757600080fd5b8235613f0281613c2f565b946020939093013593505050565b6040808252835190820181905260009060208501906060840190835b81811015613f535783516001600160a01b0316835260209384019390920191600101613f2c565b50506001600160a01b039490941660209390930192909252509092915050565b60008060208385031215613f8657600080fd5b82356001600160401b03811115613f9c57600080fd5b613fa885828601613d8c565b90969095509350505050565b60005b83811015613fcf578181015183820152602001613fb7565b50506000910152565b60008151808452613ff0816020860160208601613fb4565b601f01601f19169290920160200192915050565b602081526000610b2e6020830184613fd8565b6001600160e01b031981168114613c4457600080fd5b60006020828403121561403f57600080fd5b8135610b2e81614017565b60006020828403121561405c57600080fd5b5035919050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156140bc57603f198786030184526140a7858351613fd8565b9450602093840193919091019060010161408b565b50929695505050505050565b600080604083850312156140db57600080fd5b82356140e681613c2f565b915060208301356140f681613c2f565b809150509250929050565b803560ff8116811461196357600080fd5b6000806000806060858703121561412857600080fd5b843561413381613c2f565b935060208501356001600160401b0381111561414e57600080fd5b61415a87828801613d8c565b909450925061416d905060408601614101565b905092959194509250565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b03851681528360208201526060604082015260006141c9606083018486614178565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614211576142116141d3565b604052919050565b60006001600160401b03821115614232576142326141d3565b50601f01601f191660200190565b600082601f83011261425157600080fd5b815161426461425f82614219565b6141e9565b81815284602083860101111561427957600080fd5b6107b7826020830160208701613fb4565b60006020828403121561429c57600080fd5b81516001600160401b038111156142b257600080fd5b6107b784828501614240565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b6000602082840312156142f657600080fd5b5051919050565b6000808585111561430d57600080fd5b8386111561431a57600080fd5b5050820193919092039150565b80356bffffffffffffffffffffffff19811690601484101561436d576bffffffffffffffffffffffff196bffffffffffffffffffffffff198560140360031b1b82161691505b5092915050565b84815260606020820152600061438d6060830186613fd8565b82810360408401526143a0818587614178565b979650505050505050565b6000602082840312156143bd57600080fd5b8151610b2e81614017565b6000808335601e198436030181126143df57600080fd5b83016020810192503590506001600160401b038111156143fe57600080fd5b8036038213156105c557600080fd5b6040815261442e6040820161442185613c47565b6001600160a01b03169052565b60208301356060820152600061444760408501856143c8565b610120608085015261445e61016085018284614178565b91505061446e60608601866143c8565b848303603f190160a0860152614485838284614178565b608088013560c08781019190915260a089013560e080890191909152908901356101008801529093506144bd925087019050866143c8565b848303603f19016101208601526144d5838284614178565b925050506144e76101008601866143c8565b848303603f19016101408601526144ff838284614178565b93505050508260208301529392505050565b60006020828403121561452357600080fd5b8135610b2e81613c2f565b6000808335601e1984360301811261454557600080fd5b8301803591506001600160401b0382111561455f57600080fd5b6020019150600581901b36038213156105c557600080fd5b60006020828403121561458957600080fd5b610b2e82614101565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126145be57600080fd5b9190910192915050565b8381526001600160a01b03831660208201526060604082018190526000906145f290830184613fd8565b95945050505050565b6001600160f81b031991909116815260200190565b634e487b7160e01b600052602160045260246000fd5b6002811061464457634e487b7160e01b600052602160045260246000fd5b9052565b60018060a01b038516815283602082015260806040820152600061466f6080830185613fd8565b90506145f26060830184614626565b8051801515811461196357600080fd5b600080604083850312156146a157600080fd5b6146aa8361467e565b915060208301516001600160401b038111156146c557600080fd5b6146d185828601614240565b9150509250929050565b6001600160a01b03831681526040602082018190526000906107b790830184613fd8565b60006020828403121561471157600080fd5b610b2e8261467e565b80356002811061196357600080fd5b6000806040838503121561473c57600080fd5b6147458361471a565b915060208301356140f681614017565b8281526000825161476d816020850160208701613fb4565b919091016020019392505050565b60ff84168152604060208201819052810182905260008360608301825b858110156147c85782356147ab81613c2f565b6001600160a01b0316825260209283019290910190600101614798565b509695505050505050565b6000808335601e198436030181126147ea57600080fd5b8301803591506001600160401b0382111561480457600080fd5b6020019150368190038213156105c557600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161484157614841614819565b5060010190565b818103818111156106d9576106d9614819565b600082601f83011261486c57600080fd5b813561487a61425f82614219565b81815284602083860101111561488f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156148c157600080fd5b83356148cc81614017565b925060208401356001600160f81b0319811681146148e957600080fd5b915060408401356001600160401b0381111561490457600080fd5b6149108682870161485b565b9150509250925092565b60008060006060848603121561492f57600080fd5b6149388461471a565b925060208401356148e981614017565b6000806040838503121561495b57600080fd5b823561496681613c2f565b915060208301356001600160401b0381111561498157600080fd5b6146d18582860161485b565b600080604083850312156149a057600080fd5b823561496681614017565b6020808252810182905260006040600584901b830181019083018583605e1936839003015b87821015614a5057868503603f1901845282358181126149ef57600080fd5b890180356149fc81613c2f565b6001600160a01b0316865260208181013590870152614a1e60408201826143c8565b915060606040880152614a35606088018383614178565b965050506020830192506020840193506001820191506149d0565b5092979650505050505050565b803560208310156106d957600019602084900360031b1b1692915050565b80356001600160d01b0319811690600684101561436d576001600160d01b031960069490940360031b84901b1690921692915050565b8183823760009101908152919050565b60006001600160401b03821115614ada57614ada6141d3565b5060051b60200190565b600082601f830112614af557600080fd5b8151614b0361425f82614ac1565b8082825260208201915060208360051b860101925085831115614b2557600080fd5b602085015b83811015614b665780516001600160401b03811115614b4857600080fd5b614b57886020838a0101614240565b84525060209283019201614b2a565b5095945050505050565b600060208284031215614b8257600080fd5b81516001600160401b03811115614b9857600080fd5b6107b784828501614ae4565b60008060408385031215614bb757600080fd5b82516001600160401b03811115614bcd57600080fd5b8301601f81018513614bde57600080fd5b8051614bec61425f82614ac1565b8082825260208201915060208360051b850101925087831115614c0e57600080fd5b6020840193505b82841015614c3757614c268461467e565b825260209384019390910190614c15565b8095505050505060208301516001600160401b03811115614c5757600080fd5b6146d185828601614ae456feb8bc84bd77f5eb08210b8eb20fd63b3ec6a7992d277ab94663bae0e066f792aca26469706673582212200d02bd25771a1d64ddd9e60d84bf6d2381636a59cdc715f1f0a2c7ae4cc5390864736f6c634300081a00336080604052348015600f57600080fd5b506109c28061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100d357806378272525146100e65780639517e29f146100f95780639abb6e171461010c57600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100aa575b600080fd5b6100956100903660046105ba565b61012d565b005b6100956100a53660046105ba565b610197565b6100bd6100b83660046105ba565b6101fc565b6040516100ca91906106c4565b60405180910390f35b6100956100e1366004610710565b6102be565b6100956100f43660046107da565b6102e1565b6100956101073660046107da565b61038a565b61011f61011a3660046105ba565b610429565b6040516100ca929190610864565b8060005b81811015610191573684848381811061014c5761014c6108be565b905060200281019061015e91906108d4565b905061018761017060208301836108f4565b6020830135610182604085018561090f565b610553565b5050600101610131565b50505050565b8060005b8181101561019157368484838181106101b6576101b66108be565b90506020028101906101c891906108d4565b90506101f16101da60208301836108f4565b60208301356101ec604085018561090f565b610589565b50505060010161019b565b6060818067ffffffffffffffff811115610218576102186106fa565b60405190808252806020026020018201604052801561024b57816020015b60608152602001906001900390816102365790505b50915060005b818110156102b6573685858381811061026c5761026c6108be565b905060200281019061027e91906108d4565b905061029061017060208301836108f4565b8483815181106102a2576102a26108be565b602090810291909101015250600101610251565b505092915050565b604051600080835160208501865afa3d6000833e80156102dc573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061030f908590859060040161095d565b600060405180830381600087803b15801561032957600080fd5b505af115801561033d573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103b8908590859060040161095d565b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061037c565b606080828067ffffffffffffffff811115610446576104466106fa565b60405190808252806020026020018201604052801561047957816020015b60608152602001906001900390816104645790505b5091508067ffffffffffffffff811115610495576104956106fa565b6040519080825280602002602001820160405280156104be578160200160208202803683370190505b50925060005b8181101561054a57368686838181106104df576104df6108be565b90506020028101906104f191906108d4565b90506105036101da60208301836108f4565b868481518110610515576105156108be565b6020026020010186858151811061052e5761052e6108be565b60209081029190910101919091529015159052506001016104c4565b50509250929050565b60405181838237600038838387895af1610570573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af191503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105cd57600080fd5b823567ffffffffffffffff8111156105e457600080fd5b8301601f810185136105f557600080fd5b803567ffffffffffffffff81111561060c57600080fd5b8560208260051b840101111561062157600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106b857848303601f190188528151805180855260005b818110156106865760208184018101518783018201520161066a565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061064f565b50909695505050505050565b6020815260006106d76020830184610631565b9392505050565b80356001600160a01b03811681146106f557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072357600080fd5b61072c836106de565b9150602083013567ffffffffffffffff81111561074857600080fd5b8301601f8101851361075957600080fd5b803567ffffffffffffffff811115610773576107736106fa565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107a2576107a26106fa565b6040528181528282016020018710156107ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107f057600080fd5b84359350610800602086016106de565b9250604085013567ffffffffffffffff81111561081c57600080fd5b8501601f8101871361082d57600080fd5b803567ffffffffffffffff81111561084457600080fd5b87602082840101111561085657600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108a05783511515835260209384019390920191600101610880565b505083810360208501526108b48186610631565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108ea57600080fd5b9190910192915050565b60006020828403121561090657600080fd5b6106d7826106de565b6000808335601e1984360301811261092657600080fd5b83018035915067ffffffffffffffff82111561094157600080fd5b60200191503681900382131561095657600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea264697066735822122070a59ccb068447caf8f890604a59f833f8725c3e3d150ae8a83f15caaa17700e64736f6c634300081a0033" + "0x000000000000000000000000000000000000000054eb9d8a32e548026d135a6f60a0604052348015600f57600080fd5b50604051601a906046565b604051809103906000f0801580156035573d6000803e3d6000fd5b506001600160a01b03166080526053565b6109e180614ee983390190565b608051614e2e6100bb600039600081816112230152818161141b0152818161157c01528181611dc501528181612216015281816122f0015281816123870152818161241e0152818161357a015281816136320152818161395a0152613a7a0152614e2e6000f3fe60806040526004361061012e5760003560e01c8063a71763a8116100ab578063d828435d1161006f578063d828435d146104a2578063e9ae5c53146104c2578063ea5f61d0146104e2578063eab77e1714610502578063f2dc691d14610522578063f698da251461054257610135565b8063a71763a8146103c7578063b0d691fe146103e7578063b875d5d81461040a578063d03c791414610455578063d691c9641461047557610135565b806355d559f4116100f257806355d559f4146102dd5780635faac46b1461030d57806379aad60e1461033b5780639517e29f1461035b5780639cfd7cff1461037b57610135565b80630a664dba146101e0578063112d3a7d146102245780631626ba7e1461025457806319822f7c1461028d578063540fb4f9146102bb57610135565b3661013557005b600036606060003560e01c63bc197c81811463f23a6e6182141763150b7a028214171561016657806020526020603cf35b50336000818152600460209081526040808320546001600160e01b031984351680855260058452828520958552949092528220546001600160a01b0391821692911690806101b48484610557565b915091506101c28888610615565b95506101d084848484610728565b5050505050915050805190602001f35b3480156101ec57600080fd5b50336000908152600460205260409020546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023057600080fd5b5061024461023f366004613d49565b6107ab565b604051901515815260200161021b565b34801561026057600080fd5b5061027461026f366004613da4565b610820565b6040516001600160e01b0319909116815260200161021b565b34801561029957600080fd5b506102ad6102a8366004613e08565b610b96565b60405190815260200161021b565b3480156102c757600080fd5b506102db6102d6366004613eab565b610caa565b005b3480156102e957600080fd5b506102fd6102f8366004613fa7565b610d5a565b60405161021b9493929190614048565b34801561031957600080fd5b5061032d610328366004614094565b610fb7565b60405161021b9291906140c0565b34801561034757600080fd5b506102db610356366004614123565b610fd3565b34801561036757600080fd5b506102db610376366004613d49565b6110c8565b34801561038757600080fd5b50604080518082018252601a81527f7268696e6573746f6e652e73616665373537392e76312e302e300000000000006020820152905161021b9190614164565b3480156103d357600080fd5b506102db6103e2366004613d49565b611293565b3480156103f357600080fd5b506f71727de22e5e9d8baf0edac6f37da032610207565b34801561041657600080fd5b5061020761042536600461418d565b6001600160e01b03191660009081526005602090815260408083203384529091529020546001600160a01b031690565b34801561046157600080fd5b506102446104703660046141aa565b6115ba565b34801561048157600080fd5b50610495610490366004613da4565b611662565b60405161021b91906141c3565b3480156104ae57600080fd5b506102ad6104bd366004614228565b61174b565b3480156104ce57600080fd5b506102db6104dd366004613da4565b6117eb565b3480156104ee57600080fd5b5061032d6104fd366004614094565b611b88565b34801561050e57600080fd5b506102db61051d366004614267565b611b99565b34801561052e57600080fd5b5061024461053d3660046141aa565b611c08565b34801561054e57600080fd5b506102ad611c57565b6060806001600160a01b038416156105d7576105be33856000610578611cb0565b3460003660405160240161058f94939291906142f6565b60408051601f198184030181529190526020810180516001600160e01b031663d68f602560e01b179052611cbc565b9150818060200190518101906105d491906143df565b91505b6001600160a01b0383161561060e576105f533846000610578611cb0565b90508080602001905181019061060b91906143df565b90505b9250929050565b600080356001600160e01b031916815260036020908152604080832033845290915290208054606091906001600160a01b03811690600160a01b900460f81b8161068557604051632464e76d60e11b81526001600160e01b03196000351660048201526024015b60405180910390fd5b61069381607f60f91b611d65565b156106d7576106cd338388886106a7611cb0565b6040516020016106b993929190614413565b604051602081830303815290604052611d77565b9350505050610722565b6106e2816000611d65565b1561071e576106cd3383600089896106f8611cb0565b60405160200161070a93929190614413565b604051602081830303815290604052611cbc565b5050505b92915050565b6001600160a01b0384161561077e5761077e338560008560405160240161074f9190614164565b60408051601f198184030181529190526020810180516001600160e01b0316630b9dfbed60e11b179052611e4c565b6001600160a01b038316156107a5576107a5338460008460405160240161074f9190614164565b50505050565b6000600185036107dd57336001600160a01b038516036107cd57506001610818565b6107d684611eeb565b9050610818565b600285036107ee576107d684611ef9565b60038503610801576107d6848484611f07565b60048503610814576107d6848484611f53565b5060005b949350505050565b6000338282036109ba5760006108f1826001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108919190614439565b60408051602081018a90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca91015b60408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052611f8e565b8051602090910120604051635ae6bd3760e01b8152600481018290529091506001600160a01b03831690635ae6bd3790602401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109659190614439565b6000036109a85760405162461bcd60e51b815260206004820152601160248201527012185cda081b9bdd08185c1c1c9bdd9959607a1b604482015260640161067c565b50630b135d3f60e11b9150610b8f9050565b60006109c96014828688614452565b6109d29161447c565b60601c90508015806109ea57506109e881611eeb565b155b15610b14576000610a89836001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a569190614439565b60408051602081018b90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca91016108c0565b805160208201209091506001600160a01b03841663934f3a118284610ab18a6014818e614452565b6040518563ffffffff1660e01b8152600401610ad094939291906144c9565b60006040518083038186803b158015610ae857600080fd5b505afa158015610afc573d6000803e3d6000fd5b50630b135d3f60e11b9750610b8f9650505050505050565b6000610b733383610b23611cb0565b8a610b318a6014818e614452565b604051602401610b4494939291906142f6565b60408051601f198184030181529190526020810180516001600160e01b0316637aa8f17760e11b179052611d77565b905080806020019051810190610b8991906144f5565b93505050505b9392505050565b60006f71727de22e5e9d8baf0edac6f37da032610bb1611cb0565b6001600160a01b031614610bd857604051635629665f60e11b815260040160405180910390fd5b6020840135606081901c90811580610bf65750610bf482611eeb565b155b15610c0b57610c0486612008565b9250610c70565b6000610c56338460008a8a604051602401610c27929190614557565b60408051601f198184030181529190526020810180516001600160e01b0316639700320360e01b179052611cbc565b905080806020019051810190610c6c9190614439565b9350505b8315610ca157610ca1336f71727de22e5e9d8baf0edac6f37da0328660405180602001604052806000815250611e4c565b50509392505050565b6f71727de22e5e9d8baf0edac6f37da032610cc3611cb0565b6001600160a01b03161480610cf05750610cdb611cb0565b6001600160a01b0316336001600160a01b0316145b610d0d57604051635629665f60e11b815260040160405180910390fd5b610d3f610d1d602083018361465b565b610d2a6020840184614678565b610d3a60608601604087016146c1565b6120b7565b610d4f898989898989898961216e565b505050505050505050565b6060600080823682610d706101008901896146dc565b9092509050610d83600660008385614452565b610d8c91614722565b60d01c9450610d9f600c60068385614452565b610da891614722565b60d01c9350610dba81600c8185614452565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516101c081019091527fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f815294975095509293505060208084019250610e3691508a018a61465b565b6001600160a01b0316815260200188602001358152602001888060400190610e5e91906146dc565b604051610e6c929190614758565b6040519081900390208152602001610e8760608a018a6146dc565b604051610e95929190614758565b60405180910390208152602001610eab8961248d565b6001600160801b03168152602001610ec28961249d565b6001600160801b031681526020018860a001358152602001610ee3896124b2565b6001600160801b03168152602001610efa896124c1565b6001600160801b03168152602001610f1560e08a018a6146dc565b604051610f23929190614758565b6040805191829003909120825265ffffffffffff80881660208401528616908201526001600160a01b0388166060909101526101c08120909150601960f81b600160f81b610f6f611c57565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529550505092959194509250565b60606000610fc860013386866124d6565b915091509250929050565b6f71727de22e5e9d8baf0edac6f37da032610fec611cb0565b6001600160a01b031614806110195750611004611cb0565b6001600160a01b0316336001600160a01b0316145b61103657604051635629665f60e11b815260040160405180910390fd5b61104160013361269a565b8060005b81811015611097573684848381811061106057611060614768565b9050602002810190611072919061477e565b905061108e33611085602084018461465b565b60019190612715565b50600101611045565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a2505050565b336000908152600460209081526040808320547fd00bcad91b775f25eb0aee15808d12dfdaa6dc5a7d6b754e26f9c205d2a3b8df909252822054639517e29f60e01b926001600160a01b039283169290911690806111268484610557565b915091506111416f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316611152611cb0565b6001600160a01b0316148061117f575061116a611cb0565b6001600160a01b0316336001600160a01b0316145b61119c57604051635629665f60e11b815260040160405180910390fd5b606060018a036111b8576111b189898961280a565b905061121d565b60028a036111cb576111b1898989612866565b60038a036111de576111b1898989612881565b60048a036111f1576111b1898989612a00565b89611201576111b1898989612ba0565b60405163041c38b360e41b8152600481018b905260240161067c565b611286337f00000000000000000000000000000000000000000000000000000000000000008c8c856040516024016112579392919061479e565b60408051601f198184030181529190526020810180516001600160e01b0316639517e29f60e01b179052612d51565b50610d4f84848484610728565b336000908152600460209081526040808320547fc45a7acaba78a7b4c4432b604d301355b314c0a7811768a1ee2563c9d34ca4e09092529091205484916314e2ec7560e31b916001600160a01b0391821691908116908416821480159061130c5750806001600160a01b0316846001600160a01b031614155b156114925760008061131e8484610557565b915091506113396f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b031661134a611cb0565b6001600160a01b031614806113775750611362611cb0565b6001600160a01b0316336001600160a01b0316145b61139457604051635629665f60e11b815260040160405180910390fd5b606060018b036113b0576113a98a8a8a612dea565b9050611415565b60028b036113c3576113a98a8a8a612e13565b60038b036113d6576113a98a8a8a612e34565b60048b036113e9576113a98a8a8a612e80565b8a6113f9576113a98a8a8a612f38565b60405163041c38b360e41b8152600481018c905260240161067c565b61147e337f00000000000000000000000000000000000000000000000000000000000000008d8d8560405160240161144f9392919061479e565b60408051601f198184030181529190526020810180516001600160e01b0316637827252560e01b17905261308b565b5061148b84848484610728565b50506115b0565b6f71727de22e5e9d8baf0edac6f37da0326114ab611cb0565b6001600160a01b031614806114d857506114c3611cb0565b6001600160a01b0316336001600160a01b0316145b6114f557604051635629665f60e11b815260040160405180910390fd5b6060600189036115115761150a888888612dea565b9050611576565b600289036115245761150a888888612e13565b600389036115375761150a888888612e34565b6004890361154a5761150a888888612e80565b8861155a5761150a888888612f38565b60405163041c38b360e41b8152600481018a905260240161067c565b610d4f337f00000000000000000000000000000000000000000000000000000000000000008b8b8560405160240161144f9392919061479e565b5050505050505050565b600081600881901b6115d082600160f81b611d65565b156115de5760019250611621565b6115e9826000611d65565b156115f75760019250611621565b611609826001600160f81b0319611d65565b156116175760019250611621565b5060009392505050565b8280156116345750611634816000611d65565b15611640575050919050565b828015611656575061165681600160f81b611d65565b15611617575050919050565b606061167461166f611cb0565b611ef9565b6116a557611680611cb0565b604051635c93ff2f60e11b81526001600160a01b03909116600482015260240161067c565b336000908152600460209081526040808320547f4162c930ade27880570b0eb31efbc8a626b97e81a40ced27163509dfe16398829092528220546335a4725960e21b926001600160a01b039283169290911690806117038484610557565b9150915061170f611cb0565b600261171b8282613141565b8a600881901b61172d81838e8e6131cc565b99505050505061173f84848484610728565b50505050509392505050565b6000602082901b640100000000600160c01b03166f71727de22e5e9d8baf0edac6f37da032604051631aab3f0d60e11b81526001600160a01b0386811660048301526001600160c01b038416602483015291909116906335567e1a90604401602060405180830381865afa1580156117c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108189190614439565b336000908152600460209081526040808320547fccfe1b2bef70acd8e661aeb5430e147f4c75cb320972acba718a28da428e1a3090925282205463e9ae5c5360e01b926001600160a01b039283169290911690806118498484610557565b915091506118646f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316611875611cb0565b6001600160a01b031614806118a2575061188d611cb0565b6001600160a01b0316336001600160a01b0316145b6118bf57604051635629665f60e11b815260040160405180910390fd5b87600881901b336118d1826000611d65565b15611a2a576118e483600160f81b611d65565b156119055789358a016020810190356118fe838383613574565b5050611b79565b611910836000611d65565b15611978576000803660006119258e8e6135db565b935093509350935061196f85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4c92505050565b50505050611b79565b61198a836001600160f81b0319611d65565b15611a0f57600061199e6014828c8e614452565b6119a79161447c565b60601c90503660008c8c60149080926119c293929190614452565b91509150611a07848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d5192505050565b505050611b79565b82604051632e5bf3f960e21b815260040161067c91906147d1565b611a3882600160f81b611d65565b15611b5e57611a4b83600160f81b611d65565b15611a655789358a016020810190356118fe83838361362c565b611a70836000611d65565b15611acf57600080366000611a858e8e6135db565b935093509350935061196f85858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061369392505050565b611ae1836001600160f81b0319611d65565b15611a0f576000611af56014828c8e614452565b611afe9161447c565b60601c90503660008c8c6014908092611b1993929190614452565b91509150611a07848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308b92505050565b816040516308c3ee0360e11b815260040161067c91906147d1565b5050506115b084848484610728565b60606000610fc860023386866124d6565b6f71727de22e5e9d8baf0edac6f37da032611bb2611cb0565b6001600160a01b03161480611bdf5750611bca611cb0565b6001600160a01b0316336001600160a01b0316145b611bfc57604051635629665f60e11b815260040160405180910390fd5b6107a5848484846120b7565b600060018203611c1a57506001919050565b60028203611c2a57506001919050565b60038203611c3a57506001919050565b60048203611c4a57506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60131936013560601c90565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b8152600401611cf3949392919061481e565b6000604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d3a9190810190614864565b9250905080611d5c57604051632b3f6d1160e21b815260040160405180910390fd5b50949350505050565b6001600160f81b031990811691161490565b606060008383604051602401611d8e9291906148b1565b60408051601f198184030181529181526020820180516001600160e01b0316636a22165760e01b17905251909150600090611def907f00000000000000000000000000000000000000000000000000000000000000009084906024016148b1565b60408051601f19818403018152919052602080820180516001600160e01b031663b4faba0960e01b17815282519293509091600091895afa5060203d036040519350808401604052806020853e50600051610ca157825160208401fd5b60405163468721a760e01b81526000906001600160a01b0386169063468721a790611e8190879087908790879060040161481e565b6020604051808303816000875af1158015611ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec491906148d5565b905080611ee457604051632b3f6d1160e21b815260040160405180910390fd5b5050505050565b600061072260013384613749565b600061072260023384613749565b600080611f168385018561418d565b6001600160e01b03191660009081526003602090815260408083203384529091529020546001600160a01b03908116908616149150509392505050565b60008080611f63848601866148ff565b915091506000611f73838361378d565b6001600160a01b039081169088161493505050509392505050565b6060601960f81b600160f81b858585604051602001611fae92919061492b565b60408051808303601f190181529082905280516020918201206001600160f81b0319958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b600080808080612028866f71727de22e5e9d8baf0edac6f37da032610d5a565b8351602085012060405163934f3a1160e01b81529498509296509094509250339163934f3a119161205f9188908690600401614951565b60006040518083038186803b15801561207757600080fd5b505afa925050508015612088575060015b61209f5761209860018385613823565b94506120ae565b6120ab60008385613823565b94505b50505050919050565b33600090815260208190526040902080546001600160a01b0319166001600160a01b0386169081179091551561213257612132338560008487876040516024016121039392919061497c565b60408051601f198184030181529190526020810180516001600160e01b031663f05c04e160e01b179052611e4c565b6040516001600160a01b0385169033907f9452c8fb077c3ea8f28a77c87488af657b1e44d010ad9a5992d73870da040e9490600090a350505050565b3360009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f602052604090205460609088906001600160a01b0316612266576121ba60013361269a565b60005b8181101561226057368b8b838181106121d8576121d8614768565b90506020028101906121ea919061477e565b905061220e6121fc602083018361465b565b61220960208401846146dc565b61280a565b9350612257337f00000000000000000000000000000000000000000000000000000000000000006001612244602086018661465b565b886040516024016112579392919061479e565b506001016121bd565b50612287565b80156122875760405163d8e3ed1b60e01b815233600482015260240161067c565b61229260023361269a565b508560005b8181101561232757368989838181106122b2576122b2614768565b90506020028101906122c4919061477e565b90506122e86122d6602083018361465b565b6122e360208401846146dc565b612866565b935061231e337f00000000000000000000000000000000000000000000000000000000000000006002612244602086018661465b565b50600101612297565b5084905060005b818110156123be573687878381811061234957612349614768565b905060200281019061235b919061477e565b905061237f61236d602083018361465b565b61237a60208401846146dc565b612881565b93506123b5337f00000000000000000000000000000000000000000000000000000000000000006003612244602086018661465b565b5060010161232e565b5082905060005b8181101561245557368585838181106123e0576123e0614768565b90506020028101906123f2919061477e565b9050612416612404602083018361465b565b61241160208401846146dc565b612a00565b935061244c337f00000000000000000000000000000000000000000000000000000000000000006004612244602086018661465b565b506001016123c5565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a250505050505050505050565b6000610722826080013560801c90565b60006001600160801b03608083013516610722565b600060c082013560801c610722565b60006001600160801b0360c083013516610722565b606060006001600160a01b0384166001148015906124fc57506124fa868686613749565b155b1561252557604051637c84ecfb60e01b81526001600160a01b038516600482015260240161067c565b826000036125465760405163f725081760e01b815260040160405180910390fd5b826001600160401b0381111561255e5761255e614328565b604051908082528060200260200182016040528015612587578160200160208202803683370190505b506001600160a01b038086166000908152602089815260408083208a85168452909152812054929450911691505b6001600160a01b038216158015906125d757506001600160a01b038216600114155b80156125e257508381105b1561264757818382815181106125fa576125fa614768565b6001600160a01b039283166020918202929092018101919091529281166000908152888452604080822089841683529094529290922054909116908061263f816149ea565b9150506125b5565b6001600160a01b0382166001148015906126615750600081115b1561268d5782612672600183614a03565b8151811061268257612682614768565b602002602001015191505b8083525094509492505050565b60016000908152602083815260408083206001600160a01b03808616855292529091205416156126dd576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602093845260408082206001600160a01b0394909416825292909352912080546001600160a01b0319169091179055565b6001600160a01b038116158061273457506001600160a01b0381166001145b1561275d57604051637c84ecfb60e01b81526001600160a01b038216600482015260240161067c565b6001600160a01b03818116600090815260208581526040808320868516845290915290205416156127ac57604051631034f46960e21b81526001600160a01b038216600482015260240161067c565b60016000908152602084815260408083206001600160a01b039586168085528184528285208054968816808752988552838620918652908452919093208054949095166001600160a01b031994851617909455528154169091179055565b60608360016128198282613141565b61282560013388612715565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b60608360026128758282613141565b61282560023388612715565b60608360036128908282613141565b600080806128a087890189614a67565b919450925090506001600160e01b031983166306d61fe760e41b14806128d657506001600160e01b03198316638a91b0e360e01b145b15612900576040516379bd117b60e01b81526001600160e01b03198416600482015260240161067c565b61290b826000611d65565b8015612920575061292082607f60f91b611d65565b1561294057816040516376087dc160e01b815260040161067c91906147d1565b6001600160e01b0319831660009081526003602090815260408083203384529091529020546001600160a01b031615612998576040516374420d1560e01b81526001600160e01b03198416600482015260240161067c565b6001600160e01b03199092166000908152600360209081526040808320338452909152902080546001600160a01b038a166001600160a01b031960f89490941c600160a01b02939093166001600160a81b031990911617919091179055925050509392505050565b6060836004612a0f8282613141565b60008080612a1f87890189614ad5565b91945092509050600080846001811115612a3b57612a3b6147e6565b148015612a5057506001600160e01b03198316155b15612ac65750336000908152600460205260409020546001600160a01b03168015612a995760405163741cbe0360e01b81526001600160a01b038216600482015260240161067c565b33600090815260046020526040902080546001600160a01b0319166001600160a01b038c16179055612b93565b6001846001811115612ada57612ada6147e6565b03612b7a57506001600160e01b0319821660009081526005602090815260408083203384529091529020546001600160a01b03168015612b385760405163741cbe0360e01b81526001600160a01b038216600482015260240161067c565b6001600160e01b031983166000908152600560209081526040808320338452909152902080546001600160a01b0319166001600160a01b038c16179055612b93565b604051635691922f60e01b815260040160405180910390fd5b5098975050505050505050565b60608235830160208181019135908581013586018082019190359060408801358801908101903584838114612be85760405163b4fa3fb360e01b815260040160405180910390fd5b60005b81811015612d0a576000888883818110612c0757612c07614768565b90506020020135905060018103612c4657612c408d888885818110612c2e57612c2e614768565b905060200281019061220991906146dc565b50612d01565b60028103612c7657612c408d888885818110612c6457612c64614768565b90506020028101906122e391906146dc565b60038103612ca657612c408d888885818110612c9457612c94614768565b905060200281019061237a91906146dc565b60048103612cd657612c408d888885818110612cc457612cc4614768565b905060200281019061241191906146dc565b60405163484d218160e01b81526001600160a01b038e1660048201526024810182905260440161067c565b50600101612beb565b5082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b60405163468721a760e01b81526000906001600160a01b0385169063468721a790612d879086908590879060019060040161481e565b6020604051808303816000875af1158015612da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dca91906148d5565b9050806107a557604051632b3f6d1160e21b815260040160405180910390fd5b60606000612dfa83850185614b03565b92509050612e0b600133838861385b565b509392505050565b60606000612e2383850185614b03565b92509050612e0b600233838861385b565b60606000612e4483850185614b48565b6001600160e01b03199091166000908152600360209081526040808320338452909152902080546001600160a01b031916905595945050505050565b6060600080612e9184860186614ad5565b945090925090506000826001811115612eac57612eac6147e6565b148015612ec157506001600160e01b03198116155b15612ee85733600090815260046020526040902080546001600160a01b0319169055610ca1565b6001826001811115612efc57612efc6147e6565b03612b7a576001600160e01b031981166000908152600560209081526040808320338452909152902080546001600160a01b0319169055610ca1565b60608235830160208181019135908581013586018082019190359060408801358801908101903584838114612f805760405163b4fa3fb360e01b815260040160405180910390fd5b60005b81811015612d0a576000888883818110612f9f57612f9f614768565b90506020020135905060018103612fe357612fdd8d888885818110612fc657612fc6614768565b9050602002810190612fd891906146dc565b612dea565b50613082565b6002810361301857612fdd8d88888581811061300157613001614768565b905060200281019061301391906146dc565b612e13565b6003810361304d57612fdd8d88888581811061303657613036614768565b905060200281019061304891906146dc565b612e34565b60048103612cd657612fdd8d88888581811061306b5761306b614768565b905060200281019061307d91906146dc565b612e80565b50600101612f83565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906130c19086908590879060019060040161481e565b6020604051808303816000875af11580156130e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310491906148d5565b9050806107a557604080516001600160a01b038616815260006020820152600080516020614dd9833981519152910160405180910390a150505050565b336000908152602081905260409020546001600160a01b031680156131c75760405163529562a160e01b81523360048201526001600160a01b0384811660248301526044820184905282169063529562a19060640160006040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050505b505050565b60606131d9856000611d65565b156133c5576131ec84600160f81b611d65565b1561320f5782358301602081019035613206338383613952565b92505050610818565b61321a846000611d65565b156132ce5760008036600061322f87876135db565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161324e5790505094506132a733858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611cbc92505050565b856000815181106132ba576132ba614768565b602002602001018190525050505050610818565b6132e0846001600160f81b0319611d65565b156133aa5760006132f46014828587614452565b6132fd9161447c565b60601c90503660006133128560148189614452565b604080516001808252818301909252929450909250816020015b606081526020019060019003908161332c579050509350613384338484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139ce92505050565b8460008151811061339757613397614768565b6020026020010181905250505050610818565b83604051632e5bf3f960e21b815260040161067c91906147d1565b6133d385600160f81b611d65565b15613559576133e684600160f81b611d65565b1561340b5782358301602081019035613400338383613a6f565b935061081892505050565b613416846000611d65565b156134a35760008036600061342b87876135db565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161344a5790505094506132a733858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b6592505050565b6134b5846001600160f81b0319611d65565b156133aa5760006134c96014828587614452565b6134d29161447c565b60601c90503660006134e78560148189614452565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081613501579050509350613384338484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2592505050565b846040516308c3ee0360e11b815260040161067c91906147d1565b6131c7837f000000000000000000000000000000000000000000000000000000000000000084846040516024016135ac929190614b66565b60408051601f198184030181529190526020810180516001600160e01b0316633f707e6b60e01b179052612d51565b60008036816135ed6014828789614452565b6135f69161447c565b60601c9350613609603460148789614452565b61361291614c18565b92506136218560348189614452565b949793965094505050565b6131c7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401613664929190614b66565b60408051601f198184030181529190526020810180516001600160e01b0316632864481160e11b17905261308b565b60405163468721a760e01b81526000906001600160a01b0386169063468721a7906136c890879087908790879060040161481e565b6020604051808303816000875af11580156136e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370b91906148d5565b905080611ee457604080516001600160a01b038716815260006020820152600080516020614dd9833981519152910160405180910390a15050505050565b600060016001600160a01b038316148015906108185750506001600160a01b0390811660009081526020938452604080822093831682529290935291205416151590565b6000808360018111156137a2576137a26147e6565b1480156137b757506001600160e01b03198216155b156137d75750336000908152600460205260409020546001600160a01b03165b60018360018111156137eb576137eb6147e6565b0361072257506001600160e01b03191660009081526005602090815260408083203384529091529020546001600160a01b0316919050565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561384b57600061384e565b60015b60ff161717949350505050565b6001600160a01b038116158061387a57506001600160a01b0381166001145b156138a357604051637c84ecfb60e01b81526001600160a01b038316600482015260240161067c565b6001600160a01b0382811660009081526020868152604080832087851684529091529020548116908216146138f657604051637c84ecfb60e01b81526001600160a01b038216600482015260240161067c565b6001600160a01b039081166000908152602085815260408083209584168084528683528184208054968616855297835281842090845282529091208054939092166001600160a01b031993841617909155919091528154169055565b60606139bb847f0000000000000000000000000000000000000000000000000000000000000000858560405160240161398c929190614b66565b60408051601f198184030181529190526020810180516001600160e01b0316636108557360e01b1790526139ce565b8060200190518101906108189190614ce5565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b8152600401613a06949392919061481e565b6000604051808303816000875af1158015613a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a4d9190810190614864565b9250905080612e0b57604051632b3f6d1160e21b815260040160405180910390fd5b6060806000613adb867f00000000000000000000000000000000000000000000000000000000000000008787604051602401613aac929190614b66565b60408051601f198184030181529190526020810180516001600160e01b0316639abb6e1760e01b179052613c25565b905080806020019051810190613af19190614d19565b8151919450925060005b81811015613b5a57848181518110613b1557613b15614768565b6020026020010151613b5257604080516001600160a01b038a16815260208101839052600080516020614dd9833981519152910160405180910390a15b600101613afb565b505050935093915050565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b8152600401613b9c949392919061481e565b6000604051808303816000875af1158015613bbb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613be39190810190614864565b9250905080611d5c57604080516001600160a01b038816815260006020820152600080516020614dd9833981519152910160405180910390a150949350505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b8152600401613c5d949392919061481e565b6000604051808303816000875af1158015613c7c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ca49190810190614864565b9250905080612e0b57604080516001600160a01b038716815260006020820152600080516020614dd9833981519152910160405180910390a1509392505050565b6001600160a01b0381168114613cfa57600080fd5b50565b8035611c5281613ce5565b60008083601f840112613d1a57600080fd5b5081356001600160401b03811115613d3157600080fd5b60208301915083602082850101111561060e57600080fd5b60008060008060608587031215613d5f57600080fd5b843593506020850135613d7181613ce5565b925060408501356001600160401b03811115613d8c57600080fd5b613d9887828801613d08565b95989497509550505050565b600080600060408486031215613db957600080fd5b8335925060208401356001600160401b03811115613dd657600080fd5b613de286828701613d08565b9497909650939450505050565b60006101208284031215613e0257600080fd5b50919050565b600080600060608486031215613e1d57600080fd5b83356001600160401b03811115613e3357600080fd5b613e3f86828701613def565b9660208601359650604090950135949350505050565b60008083601f840112613e6757600080fd5b5081356001600160401b03811115613e7e57600080fd5b6020830191508360208260051b850101111561060e57600080fd5b600060608284031215613e0257600080fd5b600080600080600080600080600060a08a8c031215613ec957600080fd5b89356001600160401b03811115613edf57600080fd5b613eeb8c828d01613e55565b909a5098505060208a01356001600160401b03811115613f0a57600080fd5b613f168c828d01613e55565b90985096505060408a01356001600160401b03811115613f3557600080fd5b613f418c828d01613e55565b90965094505060608a01356001600160401b03811115613f6057600080fd5b613f6c8c828d01613e55565b90945092505060808a01356001600160401b03811115613f8b57600080fd5b613f978c828d01613e99565b9150509295985092959850929598565b60008060408385031215613fba57600080fd5b82356001600160401b03811115613fd057600080fd5b613fdc85828601613def565b9250506020830135613fed81613ce5565b809150509250929050565b60005b83811015614013578181015183820152602001613ffb565b50506000910152565b60008151808452614034816020860160208601613ff8565b601f01601f19169290920160200192915050565b60808152600061405b608083018761401c565b65ffffffffffff8616602084015265ffffffffffff851660408401528281036060840152614089818561401c565b979650505050505050565b600080604083850312156140a757600080fd5b82356140b281613ce5565b946020939093013593505050565b6040808252835190820181905260009060208501906060840190835b818110156141035783516001600160a01b03168352602093840193909201916001016140dc565b50506001600160a01b039490941660209390930192909252509092915050565b6000806020838503121561413657600080fd5b82356001600160401b0381111561414c57600080fd5b61415885828601613e55565b90969095509350505050565b602081526000610b8f602083018461401c565b6001600160e01b031981168114613cfa57600080fd5b60006020828403121561419f57600080fd5b8135610b8f81614177565b6000602082840312156141bc57600080fd5b5035919050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561421c57603f1987860301845261420785835161401c565b945060209384019391909101906001016141eb565b50929695505050505050565b6000806040838503121561423b57600080fd5b823561424681613ce5565b91506020830135613fed81613ce5565b803560ff81168114611c5257600080fd5b6000806000806060858703121561427d57600080fd5b843561428881613ce5565b935060208501356001600160401b038111156142a357600080fd5b6142af87828801613e55565b90945092506142c2905060408601614256565b905092959194509250565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038516815283602082015260606040820152600061431e6060830184866142cd565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561436657614366614328565b604052919050565b60006001600160401b0382111561438757614387614328565b50601f01601f191660200190565b600082601f8301126143a657600080fd5b81516143b96143b48261436e565b61433e565b8181528460208386010111156143ce57600080fd5b610818826020830160208701613ff8565b6000602082840312156143f157600080fd5b81516001600160401b0381111561440757600080fd5b61081884828501614395565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60006020828403121561444b57600080fd5b5051919050565b6000808585111561446257600080fd5b8386111561446f57600080fd5b5050820193919092039150565b80356bffffffffffffffffffffffff1981169060148410156144c2576bffffffffffffffffffffffff196bffffffffffffffffffffffff198560140360031b1b82161691505b5092915050565b8481526060602082015260006144e2606083018661401c565b82810360408401526140898185876142cd565b60006020828403121561450757600080fd5b8151610b8f81614177565b6000808335601e1984360301811261452957600080fd5b83016020810192503590506001600160401b0381111561454857600080fd5b80360382131561060e57600080fd5b604081526145786040820161456b85613cfd565b6001600160a01b03169052565b6020830135606082015260006145916040850185614512565b61012060808501526145a8610160850182846142cd565b9150506145b86060860186614512565b848303603f190160a08601526145cf8382846142cd565b608088013560c08781019190915260a089013560e0808901919091529089013561010088015290935061460792508701905086614512565b848303603f190161012086015261461f8382846142cd565b92505050614631610100860186614512565b848303603f19016101408601526146498382846142cd565b93505050508260208301529392505050565b60006020828403121561466d57600080fd5b8135610b8f81613ce5565b6000808335601e1984360301811261468f57600080fd5b8301803591506001600160401b038211156146a957600080fd5b6020019150600581901b360382131561060e57600080fd5b6000602082840312156146d357600080fd5b610b8f82614256565b6000808335601e198436030181126146f357600080fd5b8301803591506001600160401b0382111561470d57600080fd5b60200191503681900382131561060e57600080fd5b80356001600160d01b031981169060068410156144c2576001600160d01b031960069490940360031b84901b1690921692915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811261479457600080fd5b9190910192915050565b8381526001600160a01b03831660208201526060604082018190526000906147c89083018461401c565b95945050505050565b6001600160f81b031991909116815260200190565b634e487b7160e01b600052602160045260246000fd5b6002811061481a57634e487b7160e01b600052602160045260246000fd5b9052565b60018060a01b0385168152836020820152608060408201526000614845608083018561401c565b90506147c860608301846147fc565b80518015158114611c5257600080fd5b6000806040838503121561487757600080fd5b61488083614854565b915060208301516001600160401b0381111561489b57600080fd5b6148a785828601614395565b9150509250929050565b6001600160a01b03831681526040602082018190526000906108189083018461401c565b6000602082840312156148e757600080fd5b610b8f82614854565b803560028110611c5257600080fd5b6000806040838503121561491257600080fd5b61491b836148f0565b91506020830135613fed81614177565b82815260008251614943816020850160208701613ff8565b919091016020019392505050565b83815260606020820152600061496a606083018561401c565b828103604084015261431e818561401c565b60ff84168152604060208201819052810182905260008360608301825b858110156149c95782356149ac81613ce5565b6001600160a01b0316825260209283019290910190600101614999565b509695505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016149fc576149fc6149d4565b5060010190565b81810381811115610722576107226149d4565b600082601f830112614a2757600080fd5b8135614a356143b48261436e565b818152846020838601011115614a4a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614a7c57600080fd5b8335614a8781614177565b925060208401356001600160f81b031981168114614aa457600080fd5b915060408401356001600160401b03811115614abf57600080fd5b614acb86828701614a16565b9150509250925092565b600080600060608486031215614aea57600080fd5b614af3846148f0565b92506020840135614aa481614177565b60008060408385031215614b1657600080fd5b8235614b2181613ce5565b915060208301356001600160401b03811115614b3c57600080fd5b6148a785828601614a16565b60008060408385031215614b5b57600080fd5b8235614b2181614177565b6020808252810182905260006040600584901b830181019083018583605e1936839003015b87821015614c0b57868503603f190184528235818112614baa57600080fd5b89018035614bb781613ce5565b6001600160a01b0316865260208181013590870152614bd96040820182614512565b915060606040880152614bf06060880183836142cd565b96505050602083019250602084019350600182019150614b8b565b5092979650505050505050565b8035602083101561072257600019602084900360031b1b1692915050565b60006001600160401b03821115614c4f57614c4f614328565b5060051b60200190565b600082601f830112614c6a57600080fd5b8151614c786143b482614c36565b8082825260208201915060208360051b860101925085831115614c9a57600080fd5b602085015b83811015614cdb5780516001600160401b03811115614cbd57600080fd5b614ccc886020838a0101614395565b84525060209283019201614c9f565b5095945050505050565b600060208284031215614cf757600080fd5b81516001600160401b03811115614d0d57600080fd5b61081884828501614c59565b60008060408385031215614d2c57600080fd5b82516001600160401b03811115614d4257600080fd5b8301601f81018513614d5357600080fd5b8051614d616143b482614c36565b8082825260208201915060208360051b850101925087831115614d8357600080fd5b6020840193505b82841015614dac57614d9b84614854565b825260209384019390910190614d8a565b8095505050505060208301516001600160401b03811115614dcc57600080fd5b6148a785828601614c5956feb8bc84bd77f5eb08210b8eb20fd63b3ec6a7992d277ab94663bae0e066f792aca2646970667358221220ea7603497be0a0e1ddc106666c75af038c8db18b0f9143f6418b0e8b232c109164736f6c634300081a00336080604052348015600f57600080fd5b506109c28061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100d357806378272525146100e65780639517e29f146100f95780639abb6e171461010c57600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100aa575b600080fd5b6100956100903660046105ba565b61012d565b005b6100956100a53660046105ba565b610197565b6100bd6100b83660046105ba565b6101fc565b6040516100ca91906106c4565b60405180910390f35b6100956100e1366004610710565b6102be565b6100956100f43660046107da565b6102e1565b6100956101073660046107da565b61038a565b61011f61011a3660046105ba565b610429565b6040516100ca929190610864565b8060005b81811015610191573684848381811061014c5761014c6108be565b905060200281019061015e91906108d4565b905061018761017060208301836108f4565b6020830135610182604085018561090f565b610553565b5050600101610131565b50505050565b8060005b8181101561019157368484838181106101b6576101b66108be565b90506020028101906101c891906108d4565b90506101f16101da60208301836108f4565b60208301356101ec604085018561090f565b610589565b50505060010161019b565b6060818067ffffffffffffffff811115610218576102186106fa565b60405190808252806020026020018201604052801561024b57816020015b60608152602001906001900390816102365790505b50915060005b818110156102b6573685858381811061026c5761026c6108be565b905060200281019061027e91906108d4565b905061029061017060208301836108f4565b8483815181106102a2576102a26108be565b602090810291909101015250600101610251565b505092915050565b604051600080835160208501865afa3d6000833e80156102dc573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061030f908590859060040161095d565b600060405180830381600087803b15801561032957600080fd5b505af115801561033d573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103b8908590859060040161095d565b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061037c565b606080828067ffffffffffffffff811115610446576104466106fa565b60405190808252806020026020018201604052801561047957816020015b60608152602001906001900390816104645790505b5091508067ffffffffffffffff811115610495576104956106fa565b6040519080825280602002602001820160405280156104be578160200160208202803683370190505b50925060005b8181101561054a57368686838181106104df576104df6108be565b90506020028101906104f191906108d4565b90506105036101da60208301836108f4565b868481518110610515576105156108be565b6020026020010186858151811061052e5761052e6108be565b60209081029190910101919091529015159052506001016104c4565b50509250929050565b60405181838237600038838387895af1610570573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af191503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105cd57600080fd5b823567ffffffffffffffff8111156105e457600080fd5b8301601f810185136105f557600080fd5b803567ffffffffffffffff81111561060c57600080fd5b8560208260051b840101111561062157600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106b857848303601f190188528151805180855260005b818110156106865760208184018101518783018201520161066a565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061064f565b50909695505050505050565b6020815260006106d76020830184610631565b9392505050565b80356001600160a01b03811681146106f557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072357600080fd5b61072c836106de565b9150602083013567ffffffffffffffff81111561074857600080fd5b8301601f8101851361075957600080fd5b803567ffffffffffffffff811115610773576107736106fa565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107a2576107a26106fa565b6040528181528282016020018710156107ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107f057600080fd5b84359350610800602086016106de565b9250604085013567ffffffffffffffff81111561081c57600080fd5b8501601f8101871361082d57600080fd5b803567ffffffffffffffff81111561084457600080fd5b87602082840101111561085657600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108a05783511515835260209384019390920191600101610880565b505083810360208501526108b48186610631565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108ea57600080fd5b9190910192915050565b60006020828403121561090657600080fd5b6106d7826106de565b6000808335601e1984360301811261092657600080fd5b83018035915067ffffffffffffffff82111561094157600080fd5b60200191503681900382131561095657600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea26469706673582212205c0679bac7989901111b6824de732603e322da5b9b75ee077344853294d8b7b664736f6c634300081a0033" /* ========= V06 CORE ========= */ diff --git a/packages/permissionless-test/mock-aa-infra/alto/index.ts b/packages/permissionless-test/mock-aa-infra/alto/index.ts index 75708535..eb1bc0f2 100644 --- a/packages/permissionless-test/mock-aa-infra/alto/index.ts +++ b/packages/permissionless-test/mock-aa-infra/alto/index.ts @@ -147,18 +147,6 @@ export const setupContracts = async (rpc: string) => { gas: 15_000_000n, nonce: nonce++ }), - walletClient.sendTransaction({ - to: DETERMINISTIC_DEPLOYER, - data: SAFE_7579_MODULE_CREATECALL, - gas: 15_000_000n, - nonce: nonce++ - }), - walletClient.sendTransaction({ - to: DETERMINISTIC_DEPLOYER, - data: SAFE_7579_REGISTRY_CREATECALL, - gas: 15_000_000n, - nonce: nonce++ - }), walletClient.sendTransaction({ to: DETERMINISTIC_DEPLOYER, data: SAFE_7579_LAUNCHPAD_CREATECALL, @@ -334,6 +322,18 @@ export const setupContracts = async (rpc: string) => { data: SAFE_MULTI_SEND_CALL_ONLY_CREATECALL, gas: 15_000_000n, nonce: nonce++ + }), + walletClient.sendTransaction({ + to: SAFE_SINGLETON_FACTORY, + data: SAFE_7579_MODULE_CREATECALL, + gas: 15_000_000n, + nonce: nonce++ + }), + walletClient.sendTransaction({ + to: SAFE_SINGLETON_FACTORY, + data: SAFE_7579_REGISTRY_CREATECALL, + gas: 15_000_000n, + nonce: nonce++ }) ]) @@ -451,8 +451,8 @@ export const setupContracts = async (rpc: string) => { "0x41675C099F32341bf84BFc5382aF534df5C7461a", // Safe Singleton "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526", // Safe Multi Send "0x9641d764fc13c8B624c04430C7356C1C7C8102e2", // Safe Multi Send Call Only - "0x3Fdb5BC686e861480ef99A6E3FaAe03c0b9F32e2", // Safe 7579 module - "0xEBe001b3D534B9B6E2500FB78E67a1A137f561CE", // Safe 7579 launchpad + "0x7579EE8307284F293B1927136486880611F20002", // Safe 7579 module + "0x7579011aB74c46090561ea277Ba79D510c6C00ff", // Safe 7579 launchpad "0x25A4b2F363678E13A0A5DB79b712dE00347a593E", // Safe 7579 Registry "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", // EntryPoint V0.6 "0x9406Cc6185a346906296840746125a0E44976454", // Simple Account Factory V0.6 diff --git a/packages/permissionless-test/src/utils.ts b/packages/permissionless-test/src/utils.ts index a0e95139..967325cd 100644 --- a/packages/permissionless-test/src/utils.ts +++ b/packages/permissionless-test/src/utils.ts @@ -343,11 +343,17 @@ export const getSafeClient = async ({ version: "1.4.1", saltNonce: 420n, safe4337ModuleAddress: erc7579 - ? "0x3Fdb5BC686e861480ef99A6E3FaAe03c0b9F32e2" + ? "0x7579EE8307284F293B1927136486880611F20002" : undefined, erc7579LaunchpadAddress: erc7579 - ? "0xEBe001b3D534B9B6E2500FB78E67a1A137f561CE" - : undefined + ? "0x7579011aB74c46090561ea277Ba79D510c6C00ff" + : undefined, + ...(erc7579 + ? { + attesters: ["0x000000333034E9f539ce08819E12c1b8Cb29084d"], + attestersThreshold: 1 + } + : {}) }) }