diff --git a/broadcast/011DeployPolygonSpokePool.s.sol/137/run-latest.json b/broadcast/011DeployPolygonSpokePool.s.sol/137/run-latest.json index 7a7f9c4b5..41494d37c 100644 --- a/broadcast/011DeployPolygonSpokePool.s.sol/137/run-latest.json +++ b/broadcast/011DeployPolygonSpokePool.s.sol/137/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0x9409b476e65032b629ad607cd61f175c62172e329a1b78e8a8624de261a84d15", + "hash": "0x92801b64851c27c614e68b66dc26ab6831c1f2b95f3f805bd8646d1747105685", "transactionType": "CREATE", "contractName": "Polygon_SpokePool", - "contractAddress": "0xf5264e9198f70ea2e0b16337cb4718afadbf0a4e", + "contractAddress": "0x8f7b21ff11006f0520b06074d36e39b6cd83cf29", "function": null, "arguments": [ "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", @@ -13,14 +13,14 @@ "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d", "30101", - "1000000000000000000" + "22000000000000000000000" ], "transaction": { "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x63b039", + "gas": "0x63b058", "value": "0x0", - "input": "0x6101c0604081815234620002ee5760e08262005c548038038091620000258285620002f2565b833981010312620002ee5781516001600160a01b039081811690819003620002ee576020916200005783860162000316565b946200006585820162000316565b946060820151928084168403620002ee5760808301519481861693848703620002ee5760c06200009860a0830162000316565b910151903060805260c05260a05260e0526101009788526101209687525f5460ff8160081c16620002ee5760ff80821603620002b5575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b039282860191908483118484101762000297575f938493885251915afa963d15620002ab573d918211620002975783519162000146601f8201601f1916830184620002f2565b82523d5f8284013e5b876200028b575b8762000256575b5050506101a0948552519461592b968762000329883960805187818161109d0152818161149b01526115c7015260a051878181611830015261561f015260c0518781816118e90152615090015260e0518781816108380152818161364401528181613bd501528181613e6701528181614260015281816145b5015281816149850152614a000152518681816117cf015281816135f8015261441901525185818161046e01526142090152518481816118a9015281816152aa01526153550152518381816107a601528181614f49015261518b015251828181611d9701528181614e5901526151ae0152518181816119c3015261524a0152f35b9091929650808251920151918181106200027a575b5050161515935f80806200015d565b5f19910360031b1b165f806200026b565b81518114975062000156565b634e487b7160e01b5f52604160045260245ffd5b606091506200014f565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000cf565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200029757604052565b519063ffffffff82168203620002ee5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461043f5780630cb84d9a1461043a5780631186ec331461043557806311eac8551461043057806313fb77ee1461042b57806315348e44146103b857806317fcb39b1461042657806319c1648c146104215780631b3d55591461041c5780631fab657c1461041757806329cb924d146104125780632e3781151461040d5780632e63e59a146104085780633659cfe6146104035780633edb89d1146103fe578063437b9116146103f9578063450d11f0146103f4578063490e49ef146103ef578063493a4f84146103ea5780634f1ef286146103e55780635285e058146103e057806352d1902d146103db578063541f4f14146103d6578063577f51f8146103d157806357f6dcb8146103cc5780636068d6cb146103c757806361a04d30146103c2578063670fa8ac146103bd5780636bbbcd2e146103b85780636e400983146103b35780636fd5c10e146103ae578063738b62e5146103a9578063775c0d03146103a45780637aef642c1461039f5780637b9392321461039a5780637ef413e11461039557806382e2c43f146103905780638a7860ce1461038b5780638b15788e146103865780639748cf7c1461038157806397943aa91461037c578063979f2bc21461037757806399cc2968146103725780639a7c4b711461036d5780639a8a059214610368578063a1244c6714610363578063a18a096e1461035e578063ac9650d814610359578063ad5425c614610354578063adb5a6a614610304578063b370b7f51461034f578063b4c0d7ab1461034a578063b86cfdcf14610345578063babb6aac14610340578063c35c83fc1461033b578063ceb4c98714610336578063d46eb11914610331578063d7e1583a1461032c578063dda5211314610327578063ddd224f114610322578063de7eba781461031d578063deff4b2414610318578063ea86bd4614610313578063ee2a53f81461030e578063f2c2092414610309578063f79f29ed146103045763fc8a584f0361000e57612be1565b6124b8565b612ac9565b612a8b565b612988565b612893565b612863565b61283a565b612814565b6127de565b6126e2565b6126c4565b612699565b6125c2565b61258d565b61255e565b6124ff565b61237c565b6122d2565b612177565b612150565b612136565b611fd7565b611f42565b611e3b565b611dbb565b611d78565b611cfa565b611c82565b611b67565b611b30565b611a88565b6119e8565b6119ac565b611917565b6118cd565b61188d565b6107ff565b611853565b611819565b6117f3565b6117b3565b6116da565b611617565b6115ad565b611586565b611458565b6113d1565b6113b3565b61138c565b6112b5565b6111a1565b611075565b610e7b565b610d1b565b610cf2565b610bf0565b610ae7565b610881565b610819565b6107ca565b610787565b6106e6565b6104b0565b610452565b5f91031261044e57565b5f80fd5b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361044e57565b35906104ae82610492565b565b3461044e57602036600319011261044e5760206004356104cf81610492565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361044e57565b61014435906104ae826104ef565b35906104ae826104ef565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761054657604052565b610516565b6101a0810190811067ffffffffffffffff82111761054657604052565b67ffffffffffffffff811161054657604052565b6060810190811067ffffffffffffffff82111761054657604052565b6080810190811067ffffffffffffffff82111761054657604052565b60e0810190811067ffffffffffffffff82111761054657604052565b60a0810190811067ffffffffffffffff82111761054657604052565b90601f8019910116810190811067ffffffffffffffff82111761054657604052565b6040519060c0820182811067ffffffffffffffff82111761054657604052565b60405190610180820182811067ffffffffffffffff82111761054657604052565b604051906104ae8261054b565b604051906104ae82610598565b604051906104ae826105b4565b67ffffffffffffffff811161054657601f01601f191660200190565b92919261069e82610676565b916106ac60405193846105ec565b82948184528183011161044e578281602093845f960137010152565b9080601f8301121561044e578160206106e393359101610692565b90565b61010036600319011261044e576004356106ff81610492565b60243561070b81610492565b6084358060070b810361044e5760a43590610725826104ef565b60c43567ffffffffffffffff811161044e576107459036906004016106c8565b9261074e61352f565b60ff61086b5460e81c166107755761076e946064359160443591336135aa565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e57602036600319011261044e5761076e6004356107ea81610492565b6107f2613799565b6107fa61352f565b6137bc565b3461044e575f36600319011261044e5760206040515f8152f35b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261044e5760043561087481610492565b906024356106e381610492565b3461044e5761088f3661085c565b90610898613799565b6108a061352f565b6001600160a01b03908183169283151580610936575b610924576108f5906108da836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610997575f91610968575b50831682841614156108b6565b61098a915060203d602011610990575b61098281836105ec565b8101906137fe565b5f61095b565b503d610978565b61354d565b67ffffffffffffffff81116105465760051b60200190565b9080601f8301121561044e5760209082356109ce8161099c565b936109dc60405195866105ec565b81855260208086019260051b82010192831161044e57602001905b828210610a05575050505090565b813581529083019083016109f7565b9080601f8301121561044e576020908235610a2e8161099c565b93610a3c60405195866105ec565b81855260208086019260051b82010192831161044e57602001905b828210610a65575050505090565b8380918335610a7381610492565b815201910190610a57565b9291610a898261099c565b91610a9760405193846105ec565b829481845260208094019160051b810192831161044e57905b828210610abd5750505050565b81358152908301908301610ab0565b9080601f8301121561044e578160206106e393359101610a7e565b60031960603682011261044e57600435610b00816104ef565b60243567ffffffffffffffff9283821161044e5760c090823603011261044e57610b2861060e565b908060040135825260248101356020830152604481013584811161044e57610b5690600436918401016109b4565b6040830152610b676064820161050b565b6060830152610b78608482016104a3565b608083015260a48101359084821161044e576004610b999236920101610a14565b60a082015260443592831161044e57610bb9610018933690600401610acc565b91612c11565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020808501948460051b01011161044e57565b3461044e5760031960603682011261044e5760043567ffffffffffffffff80821161044e5760608236039384011261044e5760243590610c2f826104ef565b60443590811161044e57610c47903690600401610bbf565b919093610c5261352f565b600484013590610182190181121561044e57610ce894610ce393610c7f610cdc9360043691890101612702565b95610c95610c9060808901516138d0565b6138e6565b610c9e8761337a565b9060446020890151916101608a015193610cb661060e565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a7e565b908361390e565b613a68565b6100186001606555565b3461044e575f36600319011261044e576020604051428152f35b908161018091031261044e5790565b3461044e57604036600319011261044e5760043567ffffffffffffffff811161044e57610d4c903690600401610d0c565b610d5581612d80565b6001600160a01b031690610d6b60208201612d80565b6001600160a01b031691610d8160408301612d80565b6001600160a01b0316610d9660608401612d80565b6001600160a01b031692610dac60808201612d80565b6001600160a01b031690610100610dc4818301612d8a565b9061012090610dd4848301612d8a565b9261014094858101610de590612d8a565b966101609a8b8301610df79084612d94565b9a909b610e0261062e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e53919063ffffffff169052565b63ffffffff909116908501523690610e6a92610692565b9082015233602435610018926133ab565b3461044e57602036600319011261044e576004803567ffffffffffffffff811161044e57610eac9036908301610d0c565b610eb461352f565b60ff61086b5460e01c166110655763ffffffff80421692610140830193610eed81610ede87612d8a565b63ffffffff9182169116101590565b61105557610120840192610f0084612d8a565b161061104657610f18610f133685612702565b61337a565b90610f2c825f5261087260205260405f2090565b546110385750610f7b7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f76610f70610f81945f5261087260205260405f2090565b60019055565b612d8a565b93612d8a565b610fa1610f9c610f95610160860186612d94565b3691610692565b613f3d565b9061102b6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461044e57602036600319011261044e5760043561109281610492565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461044e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361044e576110f7613799565b6110ff612526565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111375750505061001890614ba0565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611170575b50611162575f80fd5b0361044e5761001891614a87565b61119391925060203d60201161119a575b61118b81836105ec565b810190613f52565b905f611159565b503d611181565b3461044e575f36600319011261044e5760206001600160a01b03610c5b5416604051908152f35b602060031982011261044e576004359067ffffffffffffffff821161044e576111f391600401610bbf565b9091565b5f5b8381106112085750505f910152565b81810151838201526020016111f9565b90602091611231815180928185528580860191016111f7565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611273575050505050505090565b9091929394959685806112a4600193603f1986820301885286838d5180511515845201519181858201520190611218565b990194019401929594939190611262565b3461044e576112c3366111c8565b6112cd8183613fb3565b6112d68161099c565b9160406112e660405194856105ec565b828452601f196112f58461099c565b015f5b8181106113695750505f5b83811061131c5760405180611318878261123d565b0390f35b8061136361132c60019388612df1565b515f8061133a858a8a612e05565b90611349895180938193612e1c565b0390305af490611357612e29565b60208201529015159052565b01611303565b60209083516113778161052a565b5f8152826060818301528289010152016112f8565b3461044e575f36600319011261044e5760206001600160a01b03610c5a5416604051908152f35b3461044e575f36600319011261044e5760206040516301e133808152f35b3461044e57604036600319011261044e576024356004356113f0613799565b6113f861352f565b61086c8054680100000000000000008110156105465763ffffffff916001820190558361142482612a4c565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261044e5760043561147081610492565b60243567ffffffffffffffff811161044e576114909036906004016106c8565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461044e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361044e576114f6613799565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561152c5750505061001890614ba0565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611565575b50611557575f80fd5b0361044e5761001891614b4f565b61157f91925060203d60201161119a5761118b81836105ec565b905f61154e565b3461044e575f36600319011261044e5760206001600160a01b036108695416604051908152f35b3461044e575f36600319011261044e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361044e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261044e5760043561163081610492565b6024359061163d82610492565b6044359161164a83610492565b60a4358060070b810361044e5760c43591611664836104ef565b60e43567ffffffffffffffff811161044e576116849036906004016106c8565b9361168d61352f565b60ff61086b5460e81c166107755761076e9560843592606435926135aa565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020838186019501011161044e57565b3461044e5760c036600319011261044e576004356116f781610492565b6024356044359160643561170a81610492565b67ffffffffffffffff9160843583811161044e5761172c9036906004016116ac565b60a49491943591821161044e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461176c6117ae9336906004016116ac565b9290916001600160a01b038097166117a08a8c8361178b368888610692565b91611797368b8b610692565b9346908d61406f565b604051978897169a87612e78565b0390a3005b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e57602060ff61086b5460e81c166040519015158152f35b3461044e575f36600319011261044e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461044e575f36600319011261044e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361044e57565b3461044e57602036600319011261044e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921960206004356119578161190d565b61195f613799565b61196761352f565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461044e575f36600319011261044e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261044e57600435611a0181610492565b60243590611a0e82610492565b604435611a1a81610492565b60643590611a2782610492565b60e435611a3381610492565b6101043590611a41826104ef565b6101243592611a4f846104ef565b610144359667ffffffffffffffff881161044e57611a746100189836906004016116ac565b97909660c4359360a4359360843593612edc565b61018036600319011261044e57600435611aa181610492565b60243590611aae82610492565b604435611aba81610492565b60643590611ac782610492565b60e435611ad381610492565b61010435611ae0816104ef565b6101243591611aee836104ef565b611af66104fd565b93610164359767ffffffffffffffff891161044e57611b1c6100189936906004016116ac565b98909760c4359360a4359360843593612efe565b3461044e57606036600319011261044e576020611b5f600435611b5281610492565b6044359060243590613019565b604051908152f35b3461044e57606036600319011261044e5767ffffffffffffffff60243581811161044e57611b999036906004016116ac565b9160443590811161044e57611bb29036906004016116ac565b9060405193602085019480611bc94684888a613055565b0395611bdd601f19978881018452836105ec565b6004359151902003611c70575f94611c0c611c2e93611c0387611c3a958a9901906127b8565b95810190613072565b519360405193849160208301966337bfd2c960e21b885233916024850161313a565b039081018352826105ec565b5190305af4611c47612e29565b9015611c4f57005b60405163b8fe37a760e01b8152908190611c6c906004830161254d565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461044e57602036600319011261044e57600435611c9e613799565b611ca661352f565b611caf81612a4c565b611ce7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261044e5761012435611d14816104ef565b61014435611d21816104ef565b6101643591611d2f836104ef565b610184359267ffffffffffffffff841161044e57611d546100189436906004016116ac565b9390926101043560e43560c43560a43560843560643560443560243560043561315c565b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e5760e036600319011261044e5767ffffffffffffffff60043581811161044e57611ded903690600401610d0c565b60a43582811161044e57611e059036906004016116ac565b60c49291923593841161044e57611e236100189436906004016116ac565b939092608435906064359060443590602435906131d4565b3461044e57606036600319011261044e57600435611e58816104ef565b60243590611e6582610492565b60443590611e7282610492565b60ff5f5460081c161561044e57611ea69061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611eb28161052a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611ee18161052a565b60058152015260ff5f5460081c161561044e5761001893611f3d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611f30614440565b611f3861444f565b614463565b6144bd565b3461044e57602036600319011261044e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611f828161190d565b611f8a613799565b611f9261352f565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461044e57606036600319011261044e57602435611ff481610492565b60443567ffffffffffffffff811161044e576120149036906004016116ac565b90610c5b805460ff8160a01c166121245760ff60a01b191674010000000000000000000000000000000000000000179055610c5a54612063906001600160a01b03165b6001600160a01b031690565b3303612112576001600160a01b03612087612057610869546001600160a01b031690565b9316928303612100575f9182916120a360405180938193612e1c565b0390305af46120b0612e29565b50156120ee57337f5185f02297526865dfbc461916f7dd8d40414c836fa469073ebea66ce68ba8635f80a3610018610c5b60ff60a01b198154169055565b6040516318cecad560e01b8152600490fd5b6040516319ce078360e11b8152600490fd5b60405163718652d160e11b8152600490fd5b60405163680ecabb60e11b8152600490fd5b3461044e575f36600319011261044e576020604051468152f35b3461044e575f36600319011261044e57602063ffffffff61086b5460c01c16604051908152f35b3461044e57604036600319011261044e576004356024356121978261494c565b6001600160a01b0382165f526108736020526121c660405f20336001600160a01b03165f5260205260405f2090565b5491821561225d575f61220d336121f76121df856138d0565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561222d8361221e612057846138d0565b612227856138d0565b90614517565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106122a45750505050505090565b90919293949584806122c2600193603f198682030187528a51611218565b9801930193019194939290612294565b3461044e576122e0366111c8565b906122eb8282613fb3565b6122f4826132bd565b915f5b81811061230c5760405180611318868261226f565b5f80612319838587612e05565b9061232960405180938193612e1c565b0390305af4612336612e29565b901561235c579060019161234a8287612df1565b526123558186612df1565b50016122f7565b604481511061044e5780600461044e920151602480918301019101613306565b6101808060031936011261044e5761010435612397816104ef565b61012435916123a5836104ef565b61014435926123b3846104ef565b6101643567ffffffffffffffff811161044e576123d49036906004016116ac565b6123dc61352f565b61086b549260ff8460e81c1661077557610ce8966124a1610f959261249363ffffffff6124af9860c01c16996124376124148c613365565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61243f61064f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b908201526141ae565b3461044e5760206124f66001600160a01b036124d33661085c565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461044e575f36600319011261044e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610546576040525f8152905f368137565b9060206106e3928181520190611218565b3461044e575f36600319011261044e57611318612579612526565b604051918291602083526020830190611218565b3461044e57602036600319011261044e5761076e6004356125ad81610492565b6125b5613799565b6125bd61352f565b61455f565b3461044e5760c036600319011261044e5760043560243567ffffffffffffffff60643560443560843583811161044e576126009036906004016116ac565b60a49491943591821161044e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461264061268f9336906004016116ac565b92909161264b61352f565b6126548a61494c565b612683898b8989612666368888610692565b92612672368b8b610692565b946001600160a01b0346921661406f565b60405196879687612e78565b0390a36001606555005b3461044e57602036600319011261044e576004355f52610872602052602060405f2054604051908152f35b3461044e575f36600319011261044e57602060405163ffffffff8152f35b3461044e575f36600319011261044e576126fa61352f565b61076e6145a1565b91906101808382031261044e5761271761062e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061277b81830161050b565b9085015261014061278d81830161050b565b90850152610160918282013567ffffffffffffffff811161044e576127b292016106c8565b90830152565b9060208282031261044e57813567ffffffffffffffff811161044e576106e39201612702565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e57611b5f610f136020923690600401612702565b3461044e575f36600319011261044e57602060ff61086b5460e01c166040519015158152f35b3461044e575f36600319011261044e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461044e57602036600319011261044e5761076e60043561288381610492565b61288b613799565b611f3861352f565b3461044e57606036600319011261044e5760043567ffffffffffffffff811161044e576128c4903690600401612702565b6128cc61352f565b60ff61086b5460e01c166129765761014081015163ffffffff4281169116101580612957575b6129455780612903610ce89261337a565b60c08201516020830151906101608401519261291d61060e565b948552602085015260408401526060830152608082015260243560a082015260443590613cdc565b604051630c3a9b9d60e41b8152600490fd5b5061296560408201516138d0565b6001600160a01b03163314156128f2565b604051633d90fc5560e11b8152600490fd5b6101608060031936011261044e57610104356129a3816104ef565b610124356129b0816104ef565b6101443567ffffffffffffffff811161044e576129d19036906004016116ac565b63ffffffff946129e48642169586612ebf565b936129ed61352f565b61086b549160ff8360e81c1661077557612a20612a2d96612493610ce89a610f959660c01c16996124376124148c613365565b86019063ffffffff169052565b6101808201526141ae565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612a86576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612a38565b3461044e57602036600319011261044e5760043561086c5481101561044e57612ab5604091612a4c565b506001815491015482519182526020820152f35b3461044e5760a036600319011261044e57600435612ae6816104ef565b612b59602435612af581610492565b604435612b0181610492565b60643590612b0e82610492565b60843592612b1b84610492565b5f5495612b3f60ff8860081c161580988199612bd3575b8115612bb3575b50612dea565b86612b50600160ff195f5416175f55565b612b9c57613447565b612b5f57005b612b6d61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b612bae61010061ff00195f5416175f55565b613447565b303b15915081612bc5575b505f612b39565b6001915060ff16145f612bbe565b600160ff8216109150612b32565b3461044e57602036600319011261044e5761076e600435612c0181610492565b612c09613799565b611f3d61352f565b918151151580612d6c575b612d5a57612c2861352f565b6080820191612c41610c9084516001600160a01b031690565b602081019182514603612d4857612c69612c6d91836001612c6189612a4c565b50015461468d565b1590565b612d36578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612caf612ca9865163ffffffff1690565b87614716565b612d29845194835193612d0e612d00612cef60408401998a51612cd68d5163ffffffff1690565b89516001600160a01b03169160a088019b8c519461476b565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487613882565b0390a46104ae6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b604051635d04968b60e11b8152600490fd5b503332141580612c1c5750333b1515612c1c565b356106e381610492565b356106e3816104ef565b903590601e198136030182121561044e570180359067ffffffffffffffff821161044e5760200191813603831361044e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612de557565b612dc7565b1561044e57565b8051821015612a865760209160051b010190565b90821015612a86576111f39160051b810190612d94565b908092918237015f815290565b3d15612e53573d90612e3a82610676565b91612e4860405193846105ec565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612e9d926106e3979587526020870152608060408701526080860191612e58565b926060818503910152612e58565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612ed757565b612eab565b96949290916104ae9b9a9998969492612efc63ffffffff42169889612ebf565b985b9593919b999897969492909b612f1261352f565b61086b549660ff8860e81c16610775578760c01c63ffffffff16612f3590613365565b612f5c9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612f6461064f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612fdd919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061300092610692565b61018082015261300f906141ae565b6104ae6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261304f81610598565b51902090565b93929160209161306d91604087526040870191612e58565b930152565b9081602091031261044e57604051906020820182811067ffffffffffffffff8211176105465760405235815290565b6106e39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613116610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611218565b613152604092959493956060835260608301906130a1565b9460208201520152565b9c9a999897969594939291909661317161352f565b60ff61086b5460e81c166107755761318a908e33613019565b96604051809e6131998261054b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612fdd565b9792909593919694976131e561352f565b60ff61086b5460e01c16612976576132006101408201612d8a565b63ffffffff804216911610158061329e575b612945576132876132999661327f61300f9b613231610f133687612702565b9a61323a61060e565b9b6132453688612702565b8d5260208d01528660408d01528760608d0152613263368b84610692565b60808d015260a08c015261327785356138d0565b983691610692565b953691610692565b9461010060e08301359201359061406f565b613cdc565b506132ac60408201356138d0565b6001600160a01b0316331415613212565b906132c78261099c565b6132d460405191826105ec565b82815280926132e5601f199161099c565b01905f5b8281106132f557505050565b8060606020809385010152016132e9565b60208183031261044e5780519067ffffffffffffffff821161044e570181601f8201121561044e57805161333981610676565b9261334760405194856105ec565b8184526020828401011161044e576106e391602080850191016111f7565b63ffffffff809116908114612ed75760010190565b60405161304f8161339760208201946040865260608301906130a1565b46604083015203601f1981018352826105ec565b9190916133b661352f565b60ff61086b5460e01c166129765761014081015163ffffffff4281169116101580613428575b6129455761300f926133ed8261337a565b60c08301516020840151906101608501519261340761060e565b958652602086015260408501526060840152608083015260a0820152613cdc565b5061343660408201516138d0565b6001600160a01b03163314156133dc565b939293919091610c5b60ff60a01b19815416905560ff5f5460081c161561044e5761348f9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040519161349c8361052a565b60098352602083016820a1a927a9a996ab1960b91b8152640312e302e360dc1b60206040516134ca8161052a565b60058152015260ff5f5460081c161561044e576104ae95611f3d6001600160a01b0394613529936125bd9751902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611f30614440565b166137bc565b60026065541461044e576002606555565b91908203918211612ed757565b6040513d5f823e3d90fd5b926106e39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611218565b9193949690959660070b906706f05b59d3b200006135c783614609565b1015613787576ec097ce7bc90715b34b9f100000000084116137755763ffffffff936135f5858a1642613540565b857f000000000000000000000000000000000000000000000000000000000000000016106137635761086b5460c01c63ffffffff16986136376124148b613365565b6001600160a01b039586807f0000000000000000000000000000000000000000000000000000000000000000169816928884148061375a575b1561371e5780340361370c57883b1561044e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610997576136db6136ee978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6136f3575b505b83614657565b92604051998a99169d169b169387613558565b0390a4565b8061370061370692610568565b80610444565b5f6136d3565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876136db6136ee976137558430338a614618565b6136d5565b50341515613670565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b60ff610c5b5460a01c16156137aa57565b60405163877d831960e01b8152600490fd5b6001600160a01b0316610c5b816001600160a01b03198254161790557f6ade7bc58132776cc11d9b570837a732329396078de17b87db95463ca7f5d25f5f80a2565b9081602091031261044e57516106e381610492565b9081518082526020808093019301915f5b828110613832575050505090565b835185529381019392810192600101613824565b9081518082526020808093019301915f5b828110613865575050505090565b83516001600160a01b031685529381019392810192600101613857565b94969591936138a460a0956138c293885260c0602089015260c0880190613813565b906001600160a01b0380951660408801528682036060880152613846565b951515608085015216910152565b6001600160a01b03906138e28161494c565b1690565b6001600160a01b038091165f5261087460205260405f2054161561390657565b6104ae6145a1565b91612c69906139909284516040809601519186519161392c8361057c565b82526139876139476020840192468452898501958652612a4c565b505493885192839161396c6020840196602088525160608d86015260a08501906130a1565b9151606084015251608083015203601f1981018352826105ec565b51902091614d5d565b6139975750565b5163582f497d60e11b8152600490fd5b6139b082612ddb565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613a3382612ddb565b6101c00152565b906106e394936080936001600160a01b03809316845260208401521660408201528160608201520190611218565b905f82516101208101613a7f815163ffffffff1690565b63ffffffff42911610613cca576020850151906002613aa7835f5261087260205260405f2090565b5414613cb857613ac186925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b009063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613b2990613f3d565b966060890151986080019e8f51613b3f90613f3d565b906040015190613b4d61065c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613b719b8d6139b3565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613ba5906138d0565b9060408601519560600151613bb9906138d0565b9260800151613bc7906138d0565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613ca35784613c90575b613c0d87838616614967565b51928351151580613c86575b613c27575b50505050509050565b1690813b15613c825783613c55959660405196879586948593633a5be8cb60e01b8552339160048601613a3a565b03925af1801561099757613c6f575b808080808594613c1e565b80613700613c7c92610568565b5f613c64565b8380fd5b50803b1515613c19565b613c9e873033858716614618565b613c01565b5f9450613cb38785858516614517565b613c0d565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613cf2815163ffffffff1690565b63ffffffff42911610613cca5760208301516001613d19825f5261087260205260405f2090565b5403613f36576001905b6002613d38825f5261087260205260405f2090565b5414613cb857613d54613d5a915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613e278760a08a0151958a60c08101519760a08401519860e083015199613db76101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613e1b613de361016060208b01519a0151613f3d565b9960608c01519b6040613df96080830151613f3d565b910151906020613e0761065c565b9e8f528e015260408d015260608c016139a7565b6040519c8d9c8d6139b3565b0390a4613e3760808301516138d0565b916040820151916080613e5981613e5160608501516138d0565b9401516138d0565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613f2357613e9b853033868a16614618565b613ea785848616614967565b0151918251151580613f19575b613ec0575b5050505050565b16803b1561044e57613eee935f809460405196879586948593633a5be8cb60e01b8552339160048601613a3a565b03925af1801561099757613f06575b80808080613eb9565b80613700613f1392610568565b5f613efd565b50803b1515613eb4565b613f31858533868a16614618565b613ea7565b5f90613d23565b80519081613f4b5750505f90565b6020012090565b9081602091031261044e575190565b9060041161044e5790600490565b7fffffffff000000000000000000000000000000000000000000000000000000009035818116939260048110613fa457505050565b60040360031b82901b16169150565b905f908190815b818310613fc8575050505050565b61400d613fe8613fe2613fdc86868a612e05565b90613f61565b90613f6f565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b631592ca1b60e31b810361402d576040516347306cb560e01b8152600490fd5b631b3d555960e01b0361405e57508261404c57600180925b0191613fba565b6040516347306cb560e01b8152600490fd5b8092935061404c5760018093614045565b93926042936104ae979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526140d4816105b4565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e85526040840152606083015260808201526080815261412a816105d0565b519020906040519161190160f01b8352600283015260228201522090614be3565b91908201809211612ed757565b96926106e39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611218565b6141b8815161494c565b61012081016141d76141ce825163ffffffff1690565b63ffffffff1690565b804210908115614407575b50613763576101408201916141fb835163ffffffff1690565b9063ffffffff918261422f817f0000000000000000000000000000000000000000000000000000000000000000164261414b565b9116116143f55761016081015163ffffffff1691808316806143b0575b505060408101908151916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016809314806143a7575b1561435a576080820151340361370c57823b1561044e575f60049360405194858092630d0e30db60e41b825234905af1928315610997577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614347575b505b516136ee60608301519260808101519060a081015160c08201519761432661431b6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614158565b8061370061435492610568565b5f6142e7565b91503461370c57816143a26143936120577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad395516138d0565b60808401519030903390614618565b6142e9565b50341515614289565b6301e1338010156143e0575b5060e0810151156143ce575f8061424c565b60405163495d907f60e01b8152600490fd5b916143ee9192421690612ebf565b905f6143bc565b60405163582e388960e01b8152600490fd5b614412915042613540565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6141e2565b60ff5f5460081c161561044e57565b60ff5f5460081c161561044e576001606555565b6001600160a01b031680156144ab57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156145055761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104ae9161455a82606481015b03601f1981018452836105ec565b614cd6565b6001600160a01b0316610c5a816001600160a01b03198254161790557f573834b6d6901b74ef64eeb676a0b99d7946df822b7021e44ee0da19d846c4955f80a2565b47806145ab575b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561044e575f90600460405180948193630d0e30db60e41b83525af18015610997576146005750565b6104ae90610568565b5f81126146135790565b5f0390565b90926104ae93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261455a826105d0565b90670de0b6b3a7640000915f828403921283831281169084841390151617612ed757818102918183041490151715612ed7570490565b6106e3929160405161398781614708602082019460208652805160408401526020810151606084015260a06146d2604083015160c06080870152610100860190613813565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152613846565b03601f1981018352826105ec565b614721600291612a4c565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614614759575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b91959495939092935f968151908181510361493a57816147ea575b50505082614795575b50505050565b6001600160a01b03816147c97ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614e20565b6040805195865233602087015291169463ffffffff1693a45f80808061478f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610997575f9161491b575b505f805b868110614839575050505050614786565b6148438189612df1565b51614851575b600101614828565b9061486790614860838a612df1565b519061414b565b9082821161490b576148a1612c6961488f614882848a612df1565b516001600160a01b031690565b614899848c612df1565b51908c614dae565b15614849579c50876149016148f98f6148e46148826148dd6148c3848f612df1565b51966001600160a01b03165f5261087360205260405f2090565b928b612df1565b6001600160a01b03165f5260205260405f2090565b91825461414b565b905560019c614849565b50505051632ddaa83160e11b8152fd5b614934915060203d60201161119a5761118b81836105ec565b5f614824565b6040516319a5316760e31b8152600490fd5b60a01c61495557565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614a25575b156149f857507f00000000000000000000000000000000000000000000000000000000000000001691823b1561044e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610997576104ae936149e5575b50614f72565b806137006149f292610568565b5f6149df565b906104ae93507f000000000000000000000000000000000000000000000000000000000000000016614517565b50803b614a3181610676565b614a3e60405191826105ec565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614a71575b50501661ef0160f01b1461497d565b829350829060030360031b1b1616905f80614a62565b614a9081614ba0565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614b48575b614ad1575050565b5f806145a8937f206661696c65640000000000000000000000000000000000000000000000000060408051614b058161057c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614b42612e29565b91615759565b505f614ac9565b614b5881614ba0565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614b9857614ad1575050565b506001614ac9565b803b1561044e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614bed838361542a565b6005819592951015612de557159384614cab575b508315614c25575b50505015614c1357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614c5d816147086020820194630b135d3f60e11b998a87526024840152604060448401526064830190611218565b51915afa90614c6a612e29565b82614c9d575b82614c80575b50505f8080614c09565b614c9591925060208082518301019101613f52565b145f80614c76565b915060208251101591614c70565b6001600160a01b0383811691161493505f614c01565b9081602091031261044e57516106e38161190d565b905f806001600160a01b03614d2d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d168161052a565b818152015260208151910182855af1614b42612e29565b8051908115918215614d43575b50501561044e57565b614d569250602080918301019101614cc1565b5f80614d3a565b929091905f915b8451831015614da657614d778386612df1565b519081811015614d95575f52602052600160405f205b920191614d64565b905f52602052600160405f20614d8d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614dea8160648101614708565b519082855af1903d5f519083614e01575b50505090565b91925090614e1657503b15155b5f8080614dfb565b6001915014614e0e565b614e4c614e3f836001600160a01b03165f5261087460205260405f2090565b546001600160a01b031690565b916001600160a01b0392837f000000000000000000000000000000000000000000000000000000000000000016151580614f45575b15614e9f57505061086a546104ae92506001600160a01b031661517d565b8316928315614ec757926104ae93614ec061086a546001600160a01b031690565b9216615047565b91925016614ef2612057610c5b614e3f85614eec61205784546001600160a01b031690565b86614f9a565b91823b1561044e57604051633419e74d60e21b81526001600160a01b039290921660048301526024820152905f908290604490829084905af1801561099757614f385750565b806137006104ae92610568565b50837f00000000000000000000000000000000000000000000000000000000000000001684831614614e81565b81471061044e575f8080936001600160a01b038294165af1614f92612e29565b501561044e57565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610997575f93615026575b508201809211612ed75760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104ae919061455a826064810161454c565b61504091935060203d60201161119a5761118b81836105ec565b915f614fe2565b919093929361505461545b565b5061505d6154a2565b506001600160a01b039261506f612526565b615077612526565b61507f612526565b9186615089610669565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016815296166020870152604098808a8801526060870152608086015260a085015260c08401528580518095633b6f743b60e01b825281806150f38860048301615563565b039186165afa938415610997575f9461514e575b508351341061513d576104ae949550615121845134613540565b8061512d575b50615619565b6151379033614f72565b5f615127565b855163557a94ff60e11b8152600490fd5b61516f919450863d8811615176575b61516781836105ec565b8101906154e2565b925f615107565b503d61515d565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936151da848685614f9a565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109975788915f98615409575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610997575f966153ea575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61527a57505050505050505050565b868111156153e457865b881561533c57843b1561044e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109975761532393615329575b50613540565b8061526b565b8061370061533692610568565b5f61531d565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af192831561099757615323936153b75750613540565b6153d690853d87116153dd575b6153ce81836105ec565b810190615745565b505f61531d565b503d6153c4565b80615284565b615402919650873d891161119a5761118b81836105ec565b945f615245565b8691985061542390833d85116109905761098281836105ec565b9790615209565b9060418151145f14615452576111f391602082015190606060408401519301515f1a90615782565b50505f90600290565b6040519060e0820182811067ffffffffffffffff82111761054657604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b604051906154af8261052a565b5f6020838281520152565b919082604091031261044e576040516154d28161052a565b6020808294805184520151910152565b9060408282031261044e576106e3916154ba565b6106e39163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c0615552615540608085015160e0608086015260e0850190611218565b60a085015184820360a0860152611218565b9201519060c0818403910152611218565b9190602061306d5f926040865260408601906154f6565b519067ffffffffffffffff8216820361044e57565b919082810360c0811261044e5760801361044e576106e39060806040516155b58161057c565b855181526155c56020870161557a565b60208201526155d783604088016154ba565b604082015294016154ba565b9193926001600160a01b039060206156056060946080875260808701906154f6565b968051828701520151604085015216910152565b918351927f000000000000000000000000000000000000000000000000000000000000000084116157335747841161572157602085015161570f576001600160a01b03946156959461567760c09560408601519889911680956157fd565b60405180968195829463c7c7f5b360e01b84523091600485016155e3565b03925af1908115610997575f916156de575b50602081015182036156cc5751036156bb57565b604051623c548b60ea1b8152600490fd5b604051631bfc3cb560e11b8152600490fd5b615700915060c03d60c011615708575b6156f881836105ec565b81019061558f565b90505f6156a7565b503d6156ee565b604051630e282ec960e21b8152600490fd5b60405163a6226f8560e01b8152600490fd5b604051631754d7a960e01b8152600490fd5b9081602091031261044e576106e39061557a565b90156157735781511561576a575090565b3b1561044e5790565b50805190811561044e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157f2576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610997575f516001600160a01b038116156157ea57905f90565b505f90600190565b505050505f90600390565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f199161583c6064866105ec565b5f806001600160a01b0386169287519082855af190615859612e29565b826158c3575b50816158b8575b5015615873575050505050565b60405160208101959095526001600160a01b031660248501525f60448501526158ae9361455a916158a8908260648101611c2e565b82614cd6565b5f80808080613eb9565b90503b15155f615866565b805191925081159182156158db575b5050905f61585f565b6158ee9250602080918301019101614cc1565b5f806158d256fea2646970667358221220214a10bcabb069b5bc65dd29470770280bd5c5be8665f22f08035c3e9c12732b64736f6c634300081700330000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000054600000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c335900000000000000000000000028b5a0e9c621a5badaa536219b3a228c8168cf5d00000000000000000000000000000000000000000000000000000000000075950000000000000000000000000000000000000000000000000de0b6b3a7640000", - "nonce": "0xa77", + "input": "0x6101c0604081815234620002ee5760e08262005c548038038091620000258285620002f2565b833981010312620002ee5781516001600160a01b039081811690819003620002ee576020916200005783860162000316565b946200006585820162000316565b946060820151928084168403620002ee5760808301519481861693848703620002ee5760c06200009860a0830162000316565b910151903060805260c05260a05260e0526101009788526101209687525f5460ff8160081c16620002ee5760ff80821603620002b5575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b039282860191908483118484101762000297575f938493885251915afa963d15620002ab573d918211620002975783519162000146601f8201601f1916830184620002f2565b82523d5f8284013e5b876200028b575b8762000256575b5050506101a0948552519461592b968762000329883960805187818161109d0152818161149b01526115c7015260a051878181611830015261561f015260c0518781816118e90152615090015260e0518781816108380152818161364401528181613bd501528181613e6701528181614260015281816145b5015281816149850152614a000152518681816117cf015281816135f8015261441901525185818161046e01526142090152518481816118a9015281816152aa01526153550152518381816107a601528181614f49015261518b015251828181611d9701528181614e5901526151ae0152518181816119c3015261524a0152f35b9091929650808251920151918181106200027a575b5050161515935f80806200015d565b5f19910360031b1b165f806200026b565b81518114975062000156565b634e487b7160e01b5f52604160045260245ffd5b606091506200014f565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000cf565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200029757604052565b519063ffffffff82168203620002ee5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461043f5780630cb84d9a1461043a5780631186ec331461043557806311eac8551461043057806313fb77ee1461042b57806315348e44146103b857806317fcb39b1461042657806319c1648c146104215780631b3d55591461041c5780631fab657c1461041757806329cb924d146104125780632e3781151461040d5780632e63e59a146104085780633659cfe6146104035780633edb89d1146103fe578063437b9116146103f9578063450d11f0146103f4578063490e49ef146103ef578063493a4f84146103ea5780634f1ef286146103e55780635285e058146103e057806352d1902d146103db578063541f4f14146103d6578063577f51f8146103d157806357f6dcb8146103cc5780636068d6cb146103c757806361a04d30146103c2578063670fa8ac146103bd5780636bbbcd2e146103b85780636e400983146103b35780636fd5c10e146103ae578063738b62e5146103a9578063775c0d03146103a45780637aef642c1461039f5780637b9392321461039a5780637ef413e11461039557806382e2c43f146103905780638a7860ce1461038b5780638b15788e146103865780639748cf7c1461038157806397943aa91461037c578063979f2bc21461037757806399cc2968146103725780639a7c4b711461036d5780639a8a059214610368578063a1244c6714610363578063a18a096e1461035e578063ac9650d814610359578063ad5425c614610354578063adb5a6a614610304578063b370b7f51461034f578063b4c0d7ab1461034a578063b86cfdcf14610345578063babb6aac14610340578063c35c83fc1461033b578063ceb4c98714610336578063d46eb11914610331578063d7e1583a1461032c578063dda5211314610327578063ddd224f114610322578063de7eba781461031d578063deff4b2414610318578063ea86bd4614610313578063ee2a53f81461030e578063f2c2092414610309578063f79f29ed146103045763fc8a584f0361000e57612be1565b6124b8565b612ac9565b612a8b565b612988565b612893565b612863565b61283a565b612814565b6127de565b6126e2565b6126c4565b612699565b6125c2565b61258d565b61255e565b6124ff565b61237c565b6122d2565b612177565b612150565b612136565b611fd7565b611f42565b611e3b565b611dbb565b611d78565b611cfa565b611c82565b611b67565b611b30565b611a88565b6119e8565b6119ac565b611917565b6118cd565b61188d565b6107ff565b611853565b611819565b6117f3565b6117b3565b6116da565b611617565b6115ad565b611586565b611458565b6113d1565b6113b3565b61138c565b6112b5565b6111a1565b611075565b610e7b565b610d1b565b610cf2565b610bf0565b610ae7565b610881565b610819565b6107ca565b610787565b6106e6565b6104b0565b610452565b5f91031261044e57565b5f80fd5b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361044e57565b35906104ae82610492565b565b3461044e57602036600319011261044e5760206004356104cf81610492565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361044e57565b61014435906104ae826104ef565b35906104ae826104ef565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761054657604052565b610516565b6101a0810190811067ffffffffffffffff82111761054657604052565b67ffffffffffffffff811161054657604052565b6060810190811067ffffffffffffffff82111761054657604052565b6080810190811067ffffffffffffffff82111761054657604052565b60e0810190811067ffffffffffffffff82111761054657604052565b60a0810190811067ffffffffffffffff82111761054657604052565b90601f8019910116810190811067ffffffffffffffff82111761054657604052565b6040519060c0820182811067ffffffffffffffff82111761054657604052565b60405190610180820182811067ffffffffffffffff82111761054657604052565b604051906104ae8261054b565b604051906104ae82610598565b604051906104ae826105b4565b67ffffffffffffffff811161054657601f01601f191660200190565b92919261069e82610676565b916106ac60405193846105ec565b82948184528183011161044e578281602093845f960137010152565b9080601f8301121561044e578160206106e393359101610692565b90565b61010036600319011261044e576004356106ff81610492565b60243561070b81610492565b6084358060070b810361044e5760a43590610725826104ef565b60c43567ffffffffffffffff811161044e576107459036906004016106c8565b9261074e61352f565b60ff61086b5460e81c166107755761076e946064359160443591336135aa565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e57602036600319011261044e5761076e6004356107ea81610492565b6107f2613799565b6107fa61352f565b6137bc565b3461044e575f36600319011261044e5760206040515f8152f35b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261044e5760043561087481610492565b906024356106e381610492565b3461044e5761088f3661085c565b90610898613799565b6108a061352f565b6001600160a01b03908183169283151580610936575b610924576108f5906108da836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610997575f91610968575b50831682841614156108b6565b61098a915060203d602011610990575b61098281836105ec565b8101906137fe565b5f61095b565b503d610978565b61354d565b67ffffffffffffffff81116105465760051b60200190565b9080601f8301121561044e5760209082356109ce8161099c565b936109dc60405195866105ec565b81855260208086019260051b82010192831161044e57602001905b828210610a05575050505090565b813581529083019083016109f7565b9080601f8301121561044e576020908235610a2e8161099c565b93610a3c60405195866105ec565b81855260208086019260051b82010192831161044e57602001905b828210610a65575050505090565b8380918335610a7381610492565b815201910190610a57565b9291610a898261099c565b91610a9760405193846105ec565b829481845260208094019160051b810192831161044e57905b828210610abd5750505050565b81358152908301908301610ab0565b9080601f8301121561044e578160206106e393359101610a7e565b60031960603682011261044e57600435610b00816104ef565b60243567ffffffffffffffff9283821161044e5760c090823603011261044e57610b2861060e565b908060040135825260248101356020830152604481013584811161044e57610b5690600436918401016109b4565b6040830152610b676064820161050b565b6060830152610b78608482016104a3565b608083015260a48101359084821161044e576004610b999236920101610a14565b60a082015260443592831161044e57610bb9610018933690600401610acc565b91612c11565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020808501948460051b01011161044e57565b3461044e5760031960603682011261044e5760043567ffffffffffffffff80821161044e5760608236039384011261044e5760243590610c2f826104ef565b60443590811161044e57610c47903690600401610bbf565b919093610c5261352f565b600484013590610182190181121561044e57610ce894610ce393610c7f610cdc9360043691890101612702565b95610c95610c9060808901516138d0565b6138e6565b610c9e8761337a565b9060446020890151916101608a015193610cb661060e565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a7e565b908361390e565b613a68565b6100186001606555565b3461044e575f36600319011261044e576020604051428152f35b908161018091031261044e5790565b3461044e57604036600319011261044e5760043567ffffffffffffffff811161044e57610d4c903690600401610d0c565b610d5581612d80565b6001600160a01b031690610d6b60208201612d80565b6001600160a01b031691610d8160408301612d80565b6001600160a01b0316610d9660608401612d80565b6001600160a01b031692610dac60808201612d80565b6001600160a01b031690610100610dc4818301612d8a565b9061012090610dd4848301612d8a565b9261014094858101610de590612d8a565b966101609a8b8301610df79084612d94565b9a909b610e0261062e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e53919063ffffffff169052565b63ffffffff909116908501523690610e6a92610692565b9082015233602435610018926133ab565b3461044e57602036600319011261044e576004803567ffffffffffffffff811161044e57610eac9036908301610d0c565b610eb461352f565b60ff61086b5460e01c166110655763ffffffff80421692610140830193610eed81610ede87612d8a565b63ffffffff9182169116101590565b61105557610120840192610f0084612d8a565b161061104657610f18610f133685612702565b61337a565b90610f2c825f5261087260205260405f2090565b546110385750610f7b7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f76610f70610f81945f5261087260205260405f2090565b60019055565b612d8a565b93612d8a565b610fa1610f9c610f95610160860186612d94565b3691610692565b613f3d565b9061102b6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461044e57602036600319011261044e5760043561109281610492565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461044e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361044e576110f7613799565b6110ff612526565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111375750505061001890614ba0565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611170575b50611162575f80fd5b0361044e5761001891614a87565b61119391925060203d60201161119a575b61118b81836105ec565b810190613f52565b905f611159565b503d611181565b3461044e575f36600319011261044e5760206001600160a01b03610c5b5416604051908152f35b602060031982011261044e576004359067ffffffffffffffff821161044e576111f391600401610bbf565b9091565b5f5b8381106112085750505f910152565b81810151838201526020016111f9565b90602091611231815180928185528580860191016111f7565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611273575050505050505090565b9091929394959685806112a4600193603f1986820301885286838d5180511515845201519181858201520190611218565b990194019401929594939190611262565b3461044e576112c3366111c8565b6112cd8183613fb3565b6112d68161099c565b9160406112e660405194856105ec565b828452601f196112f58461099c565b015f5b8181106113695750505f5b83811061131c5760405180611318878261123d565b0390f35b8061136361132c60019388612df1565b515f8061133a858a8a612e05565b90611349895180938193612e1c565b0390305af490611357612e29565b60208201529015159052565b01611303565b60209083516113778161052a565b5f8152826060818301528289010152016112f8565b3461044e575f36600319011261044e5760206001600160a01b03610c5a5416604051908152f35b3461044e575f36600319011261044e5760206040516301e133808152f35b3461044e57604036600319011261044e576024356004356113f0613799565b6113f861352f565b61086c8054680100000000000000008110156105465763ffffffff916001820190558361142482612a4c565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261044e5760043561147081610492565b60243567ffffffffffffffff811161044e576114909036906004016106c8565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461044e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361044e576114f6613799565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561152c5750505061001890614ba0565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611565575b50611557575f80fd5b0361044e5761001891614b4f565b61157f91925060203d60201161119a5761118b81836105ec565b905f61154e565b3461044e575f36600319011261044e5760206001600160a01b036108695416604051908152f35b3461044e575f36600319011261044e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361044e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261044e5760043561163081610492565b6024359061163d82610492565b6044359161164a83610492565b60a4358060070b810361044e5760c43591611664836104ef565b60e43567ffffffffffffffff811161044e576116849036906004016106c8565b9361168d61352f565b60ff61086b5460e81c166107755761076e9560843592606435926135aa565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020838186019501011161044e57565b3461044e5760c036600319011261044e576004356116f781610492565b6024356044359160643561170a81610492565b67ffffffffffffffff9160843583811161044e5761172c9036906004016116ac565b60a49491943591821161044e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461176c6117ae9336906004016116ac565b9290916001600160a01b038097166117a08a8c8361178b368888610692565b91611797368b8b610692565b9346908d61406f565b604051978897169a87612e78565b0390a3005b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e57602060ff61086b5460e81c166040519015158152f35b3461044e575f36600319011261044e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461044e575f36600319011261044e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361044e57565b3461044e57602036600319011261044e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921960206004356119578161190d565b61195f613799565b61196761352f565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461044e575f36600319011261044e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261044e57600435611a0181610492565b60243590611a0e82610492565b604435611a1a81610492565b60643590611a2782610492565b60e435611a3381610492565b6101043590611a41826104ef565b6101243592611a4f846104ef565b610144359667ffffffffffffffff881161044e57611a746100189836906004016116ac565b97909660c4359360a4359360843593612edc565b61018036600319011261044e57600435611aa181610492565b60243590611aae82610492565b604435611aba81610492565b60643590611ac782610492565b60e435611ad381610492565b61010435611ae0816104ef565b6101243591611aee836104ef565b611af66104fd565b93610164359767ffffffffffffffff891161044e57611b1c6100189936906004016116ac565b98909760c4359360a4359360843593612efe565b3461044e57606036600319011261044e576020611b5f600435611b5281610492565b6044359060243590613019565b604051908152f35b3461044e57606036600319011261044e5767ffffffffffffffff60243581811161044e57611b999036906004016116ac565b9160443590811161044e57611bb29036906004016116ac565b9060405193602085019480611bc94684888a613055565b0395611bdd601f19978881018452836105ec565b6004359151902003611c70575f94611c0c611c2e93611c0387611c3a958a9901906127b8565b95810190613072565b519360405193849160208301966337bfd2c960e21b885233916024850161313a565b039081018352826105ec565b5190305af4611c47612e29565b9015611c4f57005b60405163b8fe37a760e01b8152908190611c6c906004830161254d565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461044e57602036600319011261044e57600435611c9e613799565b611ca661352f565b611caf81612a4c565b611ce7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261044e5761012435611d14816104ef565b61014435611d21816104ef565b6101643591611d2f836104ef565b610184359267ffffffffffffffff841161044e57611d546100189436906004016116ac565b9390926101043560e43560c43560a43560843560643560443560243560043561315c565b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e5760e036600319011261044e5767ffffffffffffffff60043581811161044e57611ded903690600401610d0c565b60a43582811161044e57611e059036906004016116ac565b60c49291923593841161044e57611e236100189436906004016116ac565b939092608435906064359060443590602435906131d4565b3461044e57606036600319011261044e57600435611e58816104ef565b60243590611e6582610492565b60443590611e7282610492565b60ff5f5460081c161561044e57611ea69061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611eb28161052a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611ee18161052a565b60058152015260ff5f5460081c161561044e5761001893611f3d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611f30614440565b611f3861444f565b614463565b6144bd565b3461044e57602036600319011261044e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611f828161190d565b611f8a613799565b611f9261352f565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461044e57606036600319011261044e57602435611ff481610492565b60443567ffffffffffffffff811161044e576120149036906004016116ac565b90610c5b805460ff8160a01c166121245760ff60a01b191674010000000000000000000000000000000000000000179055610c5a54612063906001600160a01b03165b6001600160a01b031690565b3303612112576001600160a01b03612087612057610869546001600160a01b031690565b9316928303612100575f9182916120a360405180938193612e1c565b0390305af46120b0612e29565b50156120ee57337f5185f02297526865dfbc461916f7dd8d40414c836fa469073ebea66ce68ba8635f80a3610018610c5b60ff60a01b198154169055565b6040516318cecad560e01b8152600490fd5b6040516319ce078360e11b8152600490fd5b60405163718652d160e11b8152600490fd5b60405163680ecabb60e11b8152600490fd5b3461044e575f36600319011261044e576020604051468152f35b3461044e575f36600319011261044e57602063ffffffff61086b5460c01c16604051908152f35b3461044e57604036600319011261044e576004356024356121978261494c565b6001600160a01b0382165f526108736020526121c660405f20336001600160a01b03165f5260205260405f2090565b5491821561225d575f61220d336121f76121df856138d0565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561222d8361221e612057846138d0565b612227856138d0565b90614517565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106122a45750505050505090565b90919293949584806122c2600193603f198682030187528a51611218565b9801930193019194939290612294565b3461044e576122e0366111c8565b906122eb8282613fb3565b6122f4826132bd565b915f5b81811061230c5760405180611318868261226f565b5f80612319838587612e05565b9061232960405180938193612e1c565b0390305af4612336612e29565b901561235c579060019161234a8287612df1565b526123558186612df1565b50016122f7565b604481511061044e5780600461044e920151602480918301019101613306565b6101808060031936011261044e5761010435612397816104ef565b61012435916123a5836104ef565b61014435926123b3846104ef565b6101643567ffffffffffffffff811161044e576123d49036906004016116ac565b6123dc61352f565b61086b549260ff8460e81c1661077557610ce8966124a1610f959261249363ffffffff6124af9860c01c16996124376124148c613365565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61243f61064f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b908201526141ae565b3461044e5760206124f66001600160a01b036124d33661085c565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461044e575f36600319011261044e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610546576040525f8152905f368137565b9060206106e3928181520190611218565b3461044e575f36600319011261044e57611318612579612526565b604051918291602083526020830190611218565b3461044e57602036600319011261044e5761076e6004356125ad81610492565b6125b5613799565b6125bd61352f565b61455f565b3461044e5760c036600319011261044e5760043560243567ffffffffffffffff60643560443560843583811161044e576126009036906004016116ac565b60a49491943591821161044e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461264061268f9336906004016116ac565b92909161264b61352f565b6126548a61494c565b612683898b8989612666368888610692565b92612672368b8b610692565b946001600160a01b0346921661406f565b60405196879687612e78565b0390a36001606555005b3461044e57602036600319011261044e576004355f52610872602052602060405f2054604051908152f35b3461044e575f36600319011261044e57602060405163ffffffff8152f35b3461044e575f36600319011261044e576126fa61352f565b61076e6145a1565b91906101808382031261044e5761271761062e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061277b81830161050b565b9085015261014061278d81830161050b565b90850152610160918282013567ffffffffffffffff811161044e576127b292016106c8565b90830152565b9060208282031261044e57813567ffffffffffffffff811161044e576106e39201612702565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e57611b5f610f136020923690600401612702565b3461044e575f36600319011261044e57602060ff61086b5460e01c166040519015158152f35b3461044e575f36600319011261044e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461044e57602036600319011261044e5761076e60043561288381610492565b61288b613799565b611f3861352f565b3461044e57606036600319011261044e5760043567ffffffffffffffff811161044e576128c4903690600401612702565b6128cc61352f565b60ff61086b5460e01c166129765761014081015163ffffffff4281169116101580612957575b6129455780612903610ce89261337a565b60c08201516020830151906101608401519261291d61060e565b948552602085015260408401526060830152608082015260243560a082015260443590613cdc565b604051630c3a9b9d60e41b8152600490fd5b5061296560408201516138d0565b6001600160a01b03163314156128f2565b604051633d90fc5560e11b8152600490fd5b6101608060031936011261044e57610104356129a3816104ef565b610124356129b0816104ef565b6101443567ffffffffffffffff811161044e576129d19036906004016116ac565b63ffffffff946129e48642169586612ebf565b936129ed61352f565b61086b549160ff8360e81c1661077557612a20612a2d96612493610ce89a610f959660c01c16996124376124148c613365565b86019063ffffffff169052565b6101808201526141ae565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612a86576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612a38565b3461044e57602036600319011261044e5760043561086c5481101561044e57612ab5604091612a4c565b506001815491015482519182526020820152f35b3461044e5760a036600319011261044e57600435612ae6816104ef565b612b59602435612af581610492565b604435612b0181610492565b60643590612b0e82610492565b60843592612b1b84610492565b5f5495612b3f60ff8860081c161580988199612bd3575b8115612bb3575b50612dea565b86612b50600160ff195f5416175f55565b612b9c57613447565b612b5f57005b612b6d61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b612bae61010061ff00195f5416175f55565b613447565b303b15915081612bc5575b505f612b39565b6001915060ff16145f612bbe565b600160ff8216109150612b32565b3461044e57602036600319011261044e5761076e600435612c0181610492565b612c09613799565b611f3d61352f565b918151151580612d6c575b612d5a57612c2861352f565b6080820191612c41610c9084516001600160a01b031690565b602081019182514603612d4857612c69612c6d91836001612c6189612a4c565b50015461468d565b1590565b612d36578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612caf612ca9865163ffffffff1690565b87614716565b612d29845194835193612d0e612d00612cef60408401998a51612cd68d5163ffffffff1690565b89516001600160a01b03169160a088019b8c519461476b565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487613882565b0390a46104ae6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b604051635d04968b60e11b8152600490fd5b503332141580612c1c5750333b1515612c1c565b356106e381610492565b356106e3816104ef565b903590601e198136030182121561044e570180359067ffffffffffffffff821161044e5760200191813603831361044e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612de557565b612dc7565b1561044e57565b8051821015612a865760209160051b010190565b90821015612a86576111f39160051b810190612d94565b908092918237015f815290565b3d15612e53573d90612e3a82610676565b91612e4860405193846105ec565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612e9d926106e3979587526020870152608060408701526080860191612e58565b926060818503910152612e58565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612ed757565b612eab565b96949290916104ae9b9a9998969492612efc63ffffffff42169889612ebf565b985b9593919b999897969492909b612f1261352f565b61086b549660ff8860e81c16610775578760c01c63ffffffff16612f3590613365565b612f5c9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612f6461064f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612fdd919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061300092610692565b61018082015261300f906141ae565b6104ae6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261304f81610598565b51902090565b93929160209161306d91604087526040870191612e58565b930152565b9081602091031261044e57604051906020820182811067ffffffffffffffff8211176105465760405235815290565b6106e39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613116610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611218565b613152604092959493956060835260608301906130a1565b9460208201520152565b9c9a999897969594939291909661317161352f565b60ff61086b5460e81c166107755761318a908e33613019565b96604051809e6131998261054b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612fdd565b9792909593919694976131e561352f565b60ff61086b5460e01c16612976576132006101408201612d8a565b63ffffffff804216911610158061329e575b612945576132876132999661327f61300f9b613231610f133687612702565b9a61323a61060e565b9b6132453688612702565b8d5260208d01528660408d01528760608d0152613263368b84610692565b60808d015260a08c015261327785356138d0565b983691610692565b953691610692565b9461010060e08301359201359061406f565b613cdc565b506132ac60408201356138d0565b6001600160a01b0316331415613212565b906132c78261099c565b6132d460405191826105ec565b82815280926132e5601f199161099c565b01905f5b8281106132f557505050565b8060606020809385010152016132e9565b60208183031261044e5780519067ffffffffffffffff821161044e570181601f8201121561044e57805161333981610676565b9261334760405194856105ec565b8184526020828401011161044e576106e391602080850191016111f7565b63ffffffff809116908114612ed75760010190565b60405161304f8161339760208201946040865260608301906130a1565b46604083015203601f1981018352826105ec565b9190916133b661352f565b60ff61086b5460e01c166129765761014081015163ffffffff4281169116101580613428575b6129455761300f926133ed8261337a565b60c08301516020840151906101608501519261340761060e565b958652602086015260408501526060840152608083015260a0820152613cdc565b5061343660408201516138d0565b6001600160a01b03163314156133dc565b939293919091610c5b60ff60a01b19815416905560ff5f5460081c161561044e5761348f9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040519161349c8361052a565b60098352602083016820a1a927a9a996ab1960b91b8152640312e302e360dc1b60206040516134ca8161052a565b60058152015260ff5f5460081c161561044e576104ae95611f3d6001600160a01b0394613529936125bd9751902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611f30614440565b166137bc565b60026065541461044e576002606555565b91908203918211612ed757565b6040513d5f823e3d90fd5b926106e39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611218565b9193949690959660070b906706f05b59d3b200006135c783614609565b1015613787576ec097ce7bc90715b34b9f100000000084116137755763ffffffff936135f5858a1642613540565b857f000000000000000000000000000000000000000000000000000000000000000016106137635761086b5460c01c63ffffffff16986136376124148b613365565b6001600160a01b039586807f0000000000000000000000000000000000000000000000000000000000000000169816928884148061375a575b1561371e5780340361370c57883b1561044e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610997576136db6136ee978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6136f3575b505b83614657565b92604051998a99169d169b169387613558565b0390a4565b8061370061370692610568565b80610444565b5f6136d3565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876136db6136ee976137558430338a614618565b6136d5565b50341515613670565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b60ff610c5b5460a01c16156137aa57565b60405163877d831960e01b8152600490fd5b6001600160a01b0316610c5b816001600160a01b03198254161790557f6ade7bc58132776cc11d9b570837a732329396078de17b87db95463ca7f5d25f5f80a2565b9081602091031261044e57516106e381610492565b9081518082526020808093019301915f5b828110613832575050505090565b835185529381019392810192600101613824565b9081518082526020808093019301915f5b828110613865575050505090565b83516001600160a01b031685529381019392810192600101613857565b94969591936138a460a0956138c293885260c0602089015260c0880190613813565b906001600160a01b0380951660408801528682036060880152613846565b951515608085015216910152565b6001600160a01b03906138e28161494c565b1690565b6001600160a01b038091165f5261087460205260405f2054161561390657565b6104ae6145a1565b91612c69906139909284516040809601519186519161392c8361057c565b82526139876139476020840192468452898501958652612a4c565b505493885192839161396c6020840196602088525160608d86015260a08501906130a1565b9151606084015251608083015203601f1981018352826105ec565b51902091614d5d565b6139975750565b5163582f497d60e11b8152600490fd5b6139b082612ddb565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613a3382612ddb565b6101c00152565b906106e394936080936001600160a01b03809316845260208401521660408201528160608201520190611218565b905f82516101208101613a7f815163ffffffff1690565b63ffffffff42911610613cca576020850151906002613aa7835f5261087260205260405f2090565b5414613cb857613ac186925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b009063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613b2990613f3d565b966060890151986080019e8f51613b3f90613f3d565b906040015190613b4d61065c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613b719b8d6139b3565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613ba5906138d0565b9060408601519560600151613bb9906138d0565b9260800151613bc7906138d0565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613ca35784613c90575b613c0d87838616614967565b51928351151580613c86575b613c27575b50505050509050565b1690813b15613c825783613c55959660405196879586948593633a5be8cb60e01b8552339160048601613a3a565b03925af1801561099757613c6f575b808080808594613c1e565b80613700613c7c92610568565b5f613c64565b8380fd5b50803b1515613c19565b613c9e873033858716614618565b613c01565b5f9450613cb38785858516614517565b613c0d565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613cf2815163ffffffff1690565b63ffffffff42911610613cca5760208301516001613d19825f5261087260205260405f2090565b5403613f36576001905b6002613d38825f5261087260205260405f2090565b5414613cb857613d54613d5a915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613e278760a08a0151958a60c08101519760a08401519860e083015199613db76101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613e1b613de361016060208b01519a0151613f3d565b9960608c01519b6040613df96080830151613f3d565b910151906020613e0761065c565b9e8f528e015260408d015260608c016139a7565b6040519c8d9c8d6139b3565b0390a4613e3760808301516138d0565b916040820151916080613e5981613e5160608501516138d0565b9401516138d0565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613f2357613e9b853033868a16614618565b613ea785848616614967565b0151918251151580613f19575b613ec0575b5050505050565b16803b1561044e57613eee935f809460405196879586948593633a5be8cb60e01b8552339160048601613a3a565b03925af1801561099757613f06575b80808080613eb9565b80613700613f1392610568565b5f613efd565b50803b1515613eb4565b613f31858533868a16614618565b613ea7565b5f90613d23565b80519081613f4b5750505f90565b6020012090565b9081602091031261044e575190565b9060041161044e5790600490565b7fffffffff000000000000000000000000000000000000000000000000000000009035818116939260048110613fa457505050565b60040360031b82901b16169150565b905f908190815b818310613fc8575050505050565b61400d613fe8613fe2613fdc86868a612e05565b90613f61565b90613f6f565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b631592ca1b60e31b810361402d576040516347306cb560e01b8152600490fd5b631b3d555960e01b0361405e57508261404c57600180925b0191613fba565b6040516347306cb560e01b8152600490fd5b8092935061404c5760018093614045565b93926042936104ae979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526140d4816105b4565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e85526040840152606083015260808201526080815261412a816105d0565b519020906040519161190160f01b8352600283015260228201522090614be3565b91908201809211612ed757565b96926106e39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611218565b6141b8815161494c565b61012081016141d76141ce825163ffffffff1690565b63ffffffff1690565b804210908115614407575b50613763576101408201916141fb835163ffffffff1690565b9063ffffffff918261422f817f0000000000000000000000000000000000000000000000000000000000000000164261414b565b9116116143f55761016081015163ffffffff1691808316806143b0575b505060408101908151916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016809314806143a7575b1561435a576080820151340361370c57823b1561044e575f60049360405194858092630d0e30db60e41b825234905af1928315610997577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614347575b505b516136ee60608301519260808101519060a081015160c08201519761432661431b6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614158565b8061370061435492610568565b5f6142e7565b91503461370c57816143a26143936120577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad395516138d0565b60808401519030903390614618565b6142e9565b50341515614289565b6301e1338010156143e0575b5060e0810151156143ce575f8061424c565b60405163495d907f60e01b8152600490fd5b916143ee9192421690612ebf565b905f6143bc565b60405163582e388960e01b8152600490fd5b614412915042613540565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6141e2565b60ff5f5460081c161561044e57565b60ff5f5460081c161561044e576001606555565b6001600160a01b031680156144ab57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156145055761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104ae9161455a82606481015b03601f1981018452836105ec565b614cd6565b6001600160a01b0316610c5a816001600160a01b03198254161790557f573834b6d6901b74ef64eeb676a0b99d7946df822b7021e44ee0da19d846c4955f80a2565b47806145ab575b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561044e575f90600460405180948193630d0e30db60e41b83525af18015610997576146005750565b6104ae90610568565b5f81126146135790565b5f0390565b90926104ae93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261455a826105d0565b90670de0b6b3a7640000915f828403921283831281169084841390151617612ed757818102918183041490151715612ed7570490565b6106e3929160405161398781614708602082019460208652805160408401526020810151606084015260a06146d2604083015160c06080870152610100860190613813565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152613846565b03601f1981018352826105ec565b614721600291612a4c565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614614759575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b91959495939092935f968151908181510361493a57816147ea575b50505082614795575b50505050565b6001600160a01b03816147c97ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614e20565b6040805195865233602087015291169463ffffffff1693a45f80808061478f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610997575f9161491b575b505f805b868110614839575050505050614786565b6148438189612df1565b51614851575b600101614828565b9061486790614860838a612df1565b519061414b565b9082821161490b576148a1612c6961488f614882848a612df1565b516001600160a01b031690565b614899848c612df1565b51908c614dae565b15614849579c50876149016148f98f6148e46148826148dd6148c3848f612df1565b51966001600160a01b03165f5261087360205260405f2090565b928b612df1565b6001600160a01b03165f5260205260405f2090565b91825461414b565b905560019c614849565b50505051632ddaa83160e11b8152fd5b614934915060203d60201161119a5761118b81836105ec565b5f614824565b6040516319a5316760e31b8152600490fd5b60a01c61495557565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614a25575b156149f857507f00000000000000000000000000000000000000000000000000000000000000001691823b1561044e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610997576104ae936149e5575b50614f72565b806137006149f292610568565b5f6149df565b906104ae93507f000000000000000000000000000000000000000000000000000000000000000016614517565b50803b614a3181610676565b614a3e60405191826105ec565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614a71575b50501661ef0160f01b1461497d565b829350829060030360031b1b1616905f80614a62565b614a9081614ba0565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614b48575b614ad1575050565b5f806145a8937f206661696c65640000000000000000000000000000000000000000000000000060408051614b058161057c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614b42612e29565b91615759565b505f614ac9565b614b5881614ba0565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614b9857614ad1575050565b506001614ac9565b803b1561044e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614bed838361542a565b6005819592951015612de557159384614cab575b508315614c25575b50505015614c1357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614c5d816147086020820194630b135d3f60e11b998a87526024840152604060448401526064830190611218565b51915afa90614c6a612e29565b82614c9d575b82614c80575b50505f8080614c09565b614c9591925060208082518301019101613f52565b145f80614c76565b915060208251101591614c70565b6001600160a01b0383811691161493505f614c01565b9081602091031261044e57516106e38161190d565b905f806001600160a01b03614d2d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d168161052a565b818152015260208151910182855af1614b42612e29565b8051908115918215614d43575b50501561044e57565b614d569250602080918301019101614cc1565b5f80614d3a565b929091905f915b8451831015614da657614d778386612df1565b519081811015614d95575f52602052600160405f205b920191614d64565b905f52602052600160405f20614d8d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614dea8160648101614708565b519082855af1903d5f519083614e01575b50505090565b91925090614e1657503b15155b5f8080614dfb565b6001915014614e0e565b614e4c614e3f836001600160a01b03165f5261087460205260405f2090565b546001600160a01b031690565b916001600160a01b0392837f000000000000000000000000000000000000000000000000000000000000000016151580614f45575b15614e9f57505061086a546104ae92506001600160a01b031661517d565b8316928315614ec757926104ae93614ec061086a546001600160a01b031690565b9216615047565b91925016614ef2612057610c5b614e3f85614eec61205784546001600160a01b031690565b86614f9a565b91823b1561044e57604051633419e74d60e21b81526001600160a01b039290921660048301526024820152905f908290604490829084905af1801561099757614f385750565b806137006104ae92610568565b50837f00000000000000000000000000000000000000000000000000000000000000001684831614614e81565b81471061044e575f8080936001600160a01b038294165af1614f92612e29565b501561044e57565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610997575f93615026575b508201809211612ed75760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104ae919061455a826064810161454c565b61504091935060203d60201161119a5761118b81836105ec565b915f614fe2565b919093929361505461545b565b5061505d6154a2565b506001600160a01b039261506f612526565b615077612526565b61507f612526565b9186615089610669565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016815296166020870152604098808a8801526060870152608086015260a085015260c08401528580518095633b6f743b60e01b825281806150f38860048301615563565b039186165afa938415610997575f9461514e575b508351341061513d576104ae949550615121845134613540565b8061512d575b50615619565b6151379033614f72565b5f615127565b855163557a94ff60e11b8152600490fd5b61516f919450863d8811615176575b61516781836105ec565b8101906154e2565b925f615107565b503d61515d565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936151da848685614f9a565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109975788915f98615409575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610997575f966153ea575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61527a57505050505050505050565b868111156153e457865b881561533c57843b1561044e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109975761532393615329575b50613540565b8061526b565b8061370061533692610568565b5f61531d565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af192831561099757615323936153b75750613540565b6153d690853d87116153dd575b6153ce81836105ec565b810190615745565b505f61531d565b503d6153c4565b80615284565b615402919650873d891161119a5761118b81836105ec565b945f615245565b8691985061542390833d85116109905761098281836105ec565b9790615209565b9060418151145f14615452576111f391602082015190606060408401519301515f1a90615782565b50505f90600290565b6040519060e0820182811067ffffffffffffffff82111761054657604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b604051906154af8261052a565b5f6020838281520152565b919082604091031261044e576040516154d28161052a565b6020808294805184520151910152565b9060408282031261044e576106e3916154ba565b6106e39163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c0615552615540608085015160e0608086015260e0850190611218565b60a085015184820360a0860152611218565b9201519060c0818403910152611218565b9190602061306d5f926040865260408601906154f6565b519067ffffffffffffffff8216820361044e57565b919082810360c0811261044e5760801361044e576106e39060806040516155b58161057c565b855181526155c56020870161557a565b60208201526155d783604088016154ba565b604082015294016154ba565b9193926001600160a01b039060206156056060946080875260808701906154f6565b968051828701520151604085015216910152565b918351927f000000000000000000000000000000000000000000000000000000000000000084116157335747841161572157602085015161570f576001600160a01b03946156959461567760c09560408601519889911680956157fd565b60405180968195829463c7c7f5b360e01b84523091600485016155e3565b03925af1908115610997575f916156de575b50602081015182036156cc5751036156bb57565b604051623c548b60ea1b8152600490fd5b604051631bfc3cb560e11b8152600490fd5b615700915060c03d60c011615708575b6156f881836105ec565b81019061558f565b90505f6156a7565b503d6156ee565b604051630e282ec960e21b8152600490fd5b60405163a6226f8560e01b8152600490fd5b604051631754d7a960e01b8152600490fd5b9081602091031261044e576106e39061557a565b90156157735781511561576a575090565b3b1561044e5790565b50805190811561044e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157f2576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610997575f516001600160a01b038116156157ea57905f90565b505f90600190565b505050505f90600390565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f199161583c6064866105ec565b5f806001600160a01b0386169287519082855af190615859612e29565b826158c3575b50816158b8575b5015615873575050505050565b60405160208101959095526001600160a01b031660248501525f60448501526158ae9361455a916158a8908260648101611c2e565b82614cd6565b5f80808080613eb9565b90503b15155f615866565b805191925081159182156158db575b5050905f61585f565b6158ee9250602080918301019101614cc1565b5f806158d256fea2646970667358221220214a10bcabb069b5bc65dd29470770280bd5c5be8665f22f08035c3e9c12732b64736f6c634300081700330000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000054600000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c335900000000000000000000000028b5a0e9c621a5badaa536219b3a228c8168cf5d00000000000000000000000000000000000000000000000000000000000075950000000000000000000000000000000000000000000004a89f54ef0121c00000", + "nonce": "0xa80", "chainId": "0x89" }, "additionalContracts": [], @@ -30,17 +30,17 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0xda18fb", + "cumulativeGasUsed": "0x2529a3b", "logs": [ { - "address": "0xf5264e9198f70ea2e0b16337cb4718afadbf0a4e", + "address": "0x8f7b21ff11006f0520b06074d36e39b6cd83cf29", "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x2f6a31cc30e576c7e2bd9e173a20388e3755cf6361c6cd6b39f84fd47d7ffe14", - "blockNumber": "0x49a3bee", - "transactionHash": "0x9409b476e65032b629ad607cd61f175c62172e329a1b78e8a8624de261a84d15", - "transactionIndex": "0x35", - "logIndex": "0x257", + "blockHash": "0x0858db145c06a3f4162ecd7c1bbf38508c776a82a0909f1dc774e2cf63f2c5ec", + "blockNumber": "0x49c1923", + "transactionHash": "0x92801b64851c27c614e68b66dc26ab6831c1f2b95f3f805bd8646d1747105685", + "transactionIndex": "0x76", + "logIndex": "0x4ee", "removed": false }, { @@ -49,34 +49,34 @@ "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", "0x0000000000000000000000000000000000000000000000000000000000001010", "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "0x0000000000000000000000001efecb61a2f80aa34d3b9218b564a64d05946290" + "0x00000000000000000000000041018795fa95783117242244303fd7e26e964ee8" ], - "data": "0x000000000000000000000000000000000000000000000000023ff28b8c3164bf0000000000000000000000000000000000000000000000020aa4319d06f603f7000000000000000000000000000000000000000000001cdce99fecd918b785fe00000000000000000000000000000000000000000000000208643f117ac49f38000000000000000000000000000000000000000000001cdcebdfdf64a4e8eabd", - "blockHash": "0x2f6a31cc30e576c7e2bd9e173a20388e3755cf6361c6cd6b39f84fd47d7ffe14", - "blockNumber": "0x49a3bee", - "transactionHash": "0x9409b476e65032b629ad607cd61f175c62172e329a1b78e8a8624de261a84d15", - "transactionIndex": "0x35", - "logIndex": "0x258", + "data": "0x0000000000000000000000000000000000000000000000000217a1324fd50c00000000000000000000000000000000000000000000000001fe69bf90c20e019a0000000000000000000000000000000000000000000000b58de4d78bcb135b74000000000000000000000000000000000000000000000001fc521e5e7238f59a0000000000000000000000000000000000000000000000b58ffc78be1ae86774", + "blockHash": "0x0858db145c06a3f4162ecd7c1bbf38508c776a82a0909f1dc774e2cf63f2c5ec", + "blockNumber": "0x49c1923", + "transactionHash": "0x92801b64851c27c614e68b66dc26ab6831c1f2b95f3f805bd8646d1747105685", + "transactionIndex": "0x76", + "logIndex": "0x4ef", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001008000000000000000000000000000200000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000040000000000000000000000000000000000000000000000000080000000000000000000200000000000000000000000000400000000000000000000000000000000004000000100000000800001000000040000000000000000000000100000000000002001000000000000200000000000000000000000000000000000000020100000", + "logsBloom": "0x40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800000000000000001000100000000000000000000000000000000000000000000000000000800000080000000040000000000000000000000000000000000000000000000000080000000000200000000200000000000000000000000000400000000000000000000000000000000004000000000000000800001000000040000000100000000000000100000000000000001080000000000000000000000000000000000000000000000000000100000", "type": "0x2", - "transactionHash": "0x9409b476e65032b629ad607cd61f175c62172e329a1b78e8a8624de261a84d15", - "transactionIndex": "0x35", - "blockHash": "0x2f6a31cc30e576c7e2bd9e173a20388e3755cf6361c6cd6b39f84fd47d7ffe14", - "blockNumber": "0x49a3bee", - "gasUsed": "0x4caef1", - "effectiveGasPrice": "0xbe53d7b78", + "transactionHash": "0x92801b64851c27c614e68b66dc26ab6831c1f2b95f3f805bd8646d1747105685", + "transactionIndex": "0x76", + "blockHash": "0x0858db145c06a3f4162ecd7c1bbf38508c776a82a0909f1dc774e2cf63f2c5ec", + "blockNumber": "0x49c1923", + "gasUsed": "0x4caf09", + "effectiveGasPrice": "0xa92c6b18f", "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", "to": null, - "contractAddress": "0xf5264e9198f70ea2e0b16337cb4718afadbf0a4e" + "contractAddress": "0x8f7b21ff11006f0520b06074d36e39b6cd83cf29" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1759512204610, + "timestamp": 1759772137065, "chain": 137, - "commit": "c32c1c94" + "commit": "534a6a79" } diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index 34ff1a417..a3a68c483 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -369,9 +369,9 @@ "block_number": 73247089 }, "Polygon_SpokePool": { - "address": "0xf5264e9198f70ea2e0b16337cb4718afadbf0a4e", - "transaction_hash": "0x9409b476e65032b629ad607cd61f175c62172e329a1b78e8a8624de261a84d15", - "block_number": 77216750 + "address": "0x8f7b21ff11006f0520b06074d36e39b6cd83cf29", + "transaction_hash": "0x92801b64851c27c614e68b66dc26ab6831c1f2b95f3f805bd8646d1747105685", + "block_number": 77338915 } } }, diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index ce33715ab..48fc52d87 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -460,9 +460,9 @@ This file contains the latest deployed smart contract addresses from the broadca #### Polygon_SpokePool -- **Polygon_SpokePool**: `0xf5264e9198f70ea2e0b16337cb4718afadbf0a4e` - - Transaction Hash: `0x9409b476e65032b629ad607cd61f175c62172e329a1b78e8a8624de261a84d15` - - Block Number: `77216750` +- **Polygon_SpokePool**: `0x8f7b21ff11006f0520b06074d36e39b6cd83cf29` + - Transaction Hash: `0x92801b64851c27c614e68b66dc26ab6831c1f2b95f3f805bd8646d1747105685` + - Block Number: `77338915` ### Lens (Chain ID: 232) diff --git a/script/011DeployPolygonSpokePool.s.sol b/script/011DeployPolygonSpokePool.s.sol index 19f9a3672..34ab0db5d 100644 --- a/script/011DeployPolygonSpokePool.s.sol +++ b/script/011DeployPolygonSpokePool.s.sol @@ -28,6 +28,9 @@ contract DeployPolygonSpokePool is Script, Test, DeploymentUtils { // Get L2 addresses for Polygon address cctpTokenMessenger = getL2Address(info.spokeChainId, "cctpV2TokenMessenger"); + // Fee cap of 22K POL is roughly equivalent to $5K at current POL price of ~0.23 + uint256 oftFeeCap = 22000 ether; + vm.startBroadcast(deployerPrivateKey); // Prepare constructor arguments for Polygon_SpokePool @@ -38,7 +41,7 @@ contract DeployPolygonSpokePool is Script, Test, DeploymentUtils { getUSDCAddress(info.spokeChainId), // _usdc cctpTokenMessenger, // _cctpTokenMessenger getOftEid(info.hubChainId), // _oftDstEid - 1 ether // _oftFeeCap + oftFeeCap // _oftFeeCap ); // Initialize deposit counter to very high number of deposits to avoid duplicate deposit ID's @@ -78,6 +81,7 @@ contract DeployPolygonSpokePool is Script, Test, DeploymentUtils { console.log("QUOTE_TIME_BUFFER()", QUOTE_TIME_BUFFER()); console.log("FILL_DEADLINE_BUFFER()", FILL_DEADLINE_BUFFER()); console.log("OFT EID", getOftEid(info.hubChainId)); + console.log("OFT Fee Cap:", oftFeeCap); vm.stopBroadcast(); }