From f2f68ecf37b6b881adc74aec11bde24f22b82afb Mon Sep 17 00:00:00 2001 From: saucepoint <98790946+saucepoint@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:43:43 -0400 Subject: [PATCH] Base Sepolia 1 (#298) --- .../84532/run-latest.json | 75 +++++++++++++++++++ .../84532/run-latest.json | 59 +++++++++++++++ .../84532/run-latest.json | 59 +++++++++++++++ .../DeployPosm.s.sol/84532/run-latest.json | 61 +++++++++++++++ .../DeployQuoter.s.sol/84532/run-latest.json | 59 +++++++++++++++ .../84532/run-latest.json | 59 +++++++++++++++ script/DeployQuoter.s.sol | 23 ++++++ 7 files changed, 395 insertions(+) create mode 100644 broadcast/01_PoolManager.s.sol/84532/run-latest.json create mode 100644 broadcast/02_PoolModifyLiquidityTest.s.sol/84532/run-latest.json create mode 100644 broadcast/03_PoolSwapTest.s.sol/84532/run-latest.json create mode 100644 broadcast/DeployPosm.s.sol/84532/run-latest.json create mode 100644 broadcast/DeployQuoter.s.sol/84532/run-latest.json create mode 100644 broadcast/DeployStateView.s.sol/84532/run-latest.json create mode 100644 script/DeployQuoter.s.sol diff --git a/broadcast/01_PoolManager.s.sol/84532/run-latest.json b/broadcast/01_PoolManager.s.sol/84532/run-latest.json new file mode 100644 index 00000000..8cf013d8 --- /dev/null +++ b/broadcast/01_PoolManager.s.sol/84532/run-latest.json @@ -0,0 +1,75 @@ +{ + "transactions": [ + { + "hash": "0xd029dbd1f19f32a5512ebf04817925f32ef1480312e50d36570c2cadf990b812", + "transactionType": "CREATE", + "contractName": "PoolManager", + "contractAddress": "0x39bf2eff94201cfaa471932655404f63315147a4", + "function": null, + "arguments": [ + "500000" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x69a309", + "value": "0x0", + "input": "0x60c034609d57601f615ff838819003918201601f19168301916001600160401b0383118484101760a157808492602094604052833981010312609d57515f80546001600160a01b03191633908117825560405192917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36080523060a052615f4290816100b6823960805181611317015260a051816135ed0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60a0806040526004361015610012575f80fd5b5f3560e01c908162fdd58e14612d785750806301ffc9a714612cb9578063095bcdb614612c0f5780630b0d9c0914612b8357806311da60b414612b28578063156e29f614612a785780631e2eaeaf14612a3e578063234266d7146127c75780632d7713891461270557806335fd631a146126915780633dd45adb1461262d578063426a8493146125a957806348c894911461231e5780635275965114612206578063558a72971461212f578063598af9e7146120975780635a6bcfda146115e2578063695c5bf514610f3f5780637e87ce7d14610e0257806380f0b44c14610ce15780638161b87414610be95780638da5cb5b14610b9957806397e8cd4e14610b365780639bf6645f14610ae9578063a584119414610aa8578063b6363cf214610a17578063dbd035ff146109c1578063f02de3b214610970578063f135baaa14610936578063f2fde38b1461088a578063f3cd914c146104ff578063f5298aca146103345763fe99049a14610186575f80fd5b346103305760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576101bd612de2565b6101c5612e05565b90604435917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885961027973ffffffffffffffffffffffffffffffffffffffff80606435951693843314158061030d575b610287575b845f52600460205260405f20875f5260205260405f2061023a878254613090565b90551693845f52600460205260405f20865f5260205260405f2061025f82825461309d565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b845f52600560205260405f208233165f5260205260405f20875f5260205260405f2054867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036102da575b5050610219565b6102e391613090565b855f52600560205260405f208333165f5260205260405f20885f5260205260405f20555f866102d3565b50845f52600360205260405f208233165f5260205260ff60405f20541615610214565b5f80fd5b346103305761034236612e28565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7577f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596103ed73ffffffffffffffffffffffffffffffffffffffff805f9516956103bb6103b386613223565b339089613269565b169233841415806104a0575b6103f2575b8385526004602052604085208686526020526040852061025f828254613090565b0390a4005b83855260056020526040852073ffffffffffffffffffffffffffffffffffffffff33168652602052604085208686526020526040852054817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610459575b50506103cc565b61046291613090565b84865260056020526040862073ffffffffffffffffffffffffffffffffffffffff331687526020526040862087875260205260408620558681610452565b5083855260036020526040852073ffffffffffffffffffffffffffffffffffffffff3316865260205260ff604086205416156103c7565b7f54e3ca0d000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610330576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761053836612f24565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c36011261033057604051906060820182811067ffffffffffffffff82111761085d5760405260a4358015158103610330578252602082019060c435825260e4359073ffffffffffffffffffffffffffffffffffffffff8216820361033057604084019182526101043567ffffffffffffffff8111610330576105e1903690600401612ff0565b9290937fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576106136135d6565b51156108355760a0822092835f52600660205260405f20906106348261363d565b60808401958482828a8a5173ffffffffffffffffffffffffffffffffffffffff169361065f94613bfa565b90949195606088015160020b968b511515915173ffffffffffffffffffffffffffffffffffffffff1691604051986106968a612eb5565b895260208901526040880152606087015262ffffff166080860152885115155f149862ffffff6107b7986106ec6107a49860209d6108155773ffffffffffffffffffffffffffffffffffffffff8b511695614d40565b9492968291926107e8575b505073ffffffffffffffffffffffffffffffffffffffff6040850151169360606fffffffffffffffffffffffffffffffff60a08301511691015160020b90604051958860801d600f0b875288600f0b60208801526040870152606086015260808501521660a08301527f40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f60c03393a38673ffffffffffffffffffffffffffffffffffffffff8a5116613e37565b809491946107bf575b5050823391613719565b604051908152f35b73ffffffffffffffffffffffffffffffffffffffff6107e19251169083613719565b84806107ad565b73ffffffffffffffffffffffffffffffffffffffff165f5260018f5260405f209081540190558e806106f7565b73ffffffffffffffffffffffffffffffffffffffff8e8c01511695614d40565b7fbe8b8507000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330577fffffffffffffffffffffffff00000000000000000000000000000000000000006108e2612de2565b73ffffffffffffffffffffffffffffffffffffffff5f549161090782841633146130aa565b1691829116175f55337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576004355c5f5260205ff35b34610330575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b34610330576109cf3661301e565b6040519160408360208152836020820152019160051b8301916020806040850193925b8335548152019101908483821015610a0e5750602080916109f2565b60408186030190f35b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610a4e612de2565b73ffffffffffffffffffffffffffffffffffffffff610a6b612e05565b91165f52600360205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610ae7610ae2612de2565b61314d565b005b3461033057610af73661301e565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355c8152019101908483821015610a0e575060208091610b1a565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305773ffffffffffffffffffffffffffffffffffffffff610b82612de2565b165f526001602052602060405f2054604051908152f35b34610330575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346103305760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610c20612de2565b610c28612e05565b9060443573ffffffffffffffffffffffffffffffffffffffff600254163303610cb9576020926107b79180610cb1575073ffffffffffffffffffffffffffffffffffffffff81165f526001845260405f20549283915b73ffffffffffffffffffffffffffffffffffffffff81165f526001865260405f20610caa848254613090565b9055613371565b928391610c7e565b7f48f5c3ed000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610d18612de2565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d757335f90815273ffffffffffffffffffffffffffffffffffffffff8216602052604090205c610d6e602435613223565b600f0b908103610dda577fffffffffffffffffffffffffffffffff800000000000000000000000000000008114610dad57610ae79133915f0390613269565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fbda73abf000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103305760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610e3a36612f24565b610e42612f12565b9073ffffffffffffffffffffffffffffffffffffffff600254163303610cb9576103e9610fff831610623e900062fff0008416101615610f0e57602060a07fe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9922092835f526006825260405f20610eb88161363d565b805479ffffff00000000000000000000000000000000000000000000008360b81b16907fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff1617905562ffffff60405191168152a2005b62ffffff827fa7abe2f7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b346103305760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610f7736612f24565b60a4359073ffffffffffffffffffffffffffffffffffffffff82168083036103305760c43567ffffffffffffffff811161033057610fb9903690600401612ff0565b90610fc26135d6565b6060840193845160020b617fff81136115b75750845160020b6001811261158c575073ffffffffffffffffffffffffffffffffffffffff81511692602082019373ffffffffffffffffffffffffffffffffffffffff855116908181101561155e5750506080820173ffffffffffffffffffffffffffffffffffffffff81511695604084019661105762ffffff89511682613a6d565b15611533575061106c62ffffff885116613b2b565b91805173ffffffffffffffffffffffffffffffffffffffff811690813303611470575b505060a08520955f73ffffffffffffffffffffffffffffffffffffffff6002541680611312575b50875f52600660205260405f2090815473ffffffffffffffffffffffffffffffffffffffff166112ea5773ffffffffffffffffffffffffffffffffffffffff7fdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d64389860a09860209f98839662ffffff96859661114e7cffffff00000000000000000000000000000000000000000000000000009d614982565b9c8d9460d01b169079ffffff00000000000000000000000000000000000000000000008f76ffffff00000000000000000000000000000000000000008f9188901b16179160b81b16171790558851908a868316928333036111e8575b5050505050505116995116995116995160020b91511690604051998a528a8a01526040890152606088015260020b95866080820152a4604051908152f35b611000166111f7575b816111aa565b6112ae6112da926112df96604051966020947fa910f80f00000000000000000000000000000000000000000000000000000000899687015233602487015261128c604487018c73ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60e486015260020b61010485015261012061012485015261014484019161310f565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283612ed1565b613fdb565b508f8881808a6111f1565b7f7983c051000000000000000000000000000000000000000000000000000000005f5260045ffd5b90505a7f0000000000000000000000000000000000000000000000000000000000000000809110611448575f8091604051938260208601917f553bfc370000000000000000000000000000000000000000000000000000000083526113c58d602489019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60a487526113d460c488612ed1565b81965193f160203d141680611435575b80611427575b8061140c575b156114045762ffffff600191165b906110b6565b505f806113fe565b506103e9610fff821610623e900062fff000831610166113f0565b5062ffffff811681146113ea565b60405191503d5f833e5f825192526113e4565b7f1ee49702000000000000000000000000000000000000000000000000000000005f5260045ffd5b6120001661147f575b8061108f565b61152c90604051907f3440d82000000000000000000000000000000000000000000000000000000000602083015233602483015261150a604483018973ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8460e48301526101006101048301526112da826112ae61012482018a8d61310f565b508a611479565b7fe65af6a0000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f6e6c9830000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fe9e90588000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fb70024f8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610330576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761161b36612f24565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610330576040519061165282612e7d565b60a4358060020b810361033057825260c4358060020b810361033057602083015260e435604083015260608201916101043583526101243567ffffffffffffffff8111610330576116a7903690600401612ff0565b907fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576116d76135d6565b60a0842091825f52600660205260405f20916116f28361363d565b60808601518573ffffffffffffffffffffffffffffffffffffffff821691823303611fb9575b5090505160020b93602086015160020b95611736604082015161384c565b96606089015160020b99516040519a61174e8c612e99565b338c528860208d01528260408d015289600f0b60608d015260808c015260a08b01525f9080881215611f82577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276188812611f5657620d89e88113611f2b57604051986117b88a612e7d565b5f8a525f60208b01525f60408b01525f60608b015280600f0b611c7b575b60048801988060020b5f528960205260405f20998360020b5f5260205260405f20895460a01c60020b8281125f14611c29575060028060018d0154600184015490039c015491015490039c5b60a073ffffffffffffffffffffffffffffffffffffffff8251169101519060405191602683015284600683015282600383015281525f603a600c83012091816040820152816020820152525f526006890160205260405f20986fffffffffffffffffffffffffffffffff8a54169a83600f0b155f14611bcc578b15611ba4576118e560409f6119b99c6118df916119cb9f5b60018301956118d760026118cb848a5485036141ba565b950192835485036141ba565b965555613223565b91613223565b6fffffffffffffffffffffffffffffffff169060801b179b5f84600f0b12611b3a575b5082600f0b611a03575b5050505061193961192a8960801d8360801d0161384c565b9189600f0b90600f0b0161384c565b6fffffffffffffffffffffffffffffffff169060801b1791815160020b90602083015160020b8b840151908c5193845260208401528b8301527f541c041c2cce48e614b3de043c9280f06b6164c0a1741649e2de3c3d375f797460603393a38773ffffffffffffffffffffffffffffffffffffffff60808201511661391b565b809491946119d7575b50833391613719565b82519182526020820152f35b6119fd9073ffffffffffffffffffffffffffffffffffffffff6080840151169083613719565b856119c2565b809192939450548060a01c60020b9073ffffffffffffffffffffffffffffffffffffffff16908381125f14611a6b5750505091611a5991611a53611a49611a5e956144de565b91600f0b926144de565b906148ad565b61384c565b60801b5b8a808080611912565b948091939295125f14611b06576fffffffffffffffffffffffffffffffff92611ac3611a59611ad994611ab0611a59600396611aaa8b600f0b916144de565b876148ad565b93611abe89600f0b926144de565b614850565b84169060801b17940192600f0b828454166148f4565b167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055611a62565b9150611b23935091611b1d611a49611a59946144de565b90614850565b6fffffffffffffffffffffffffffffffff16611a62565b808f9151611b7a575b0151611b50575b8e611908565b611b75848260049160020b5f52016020525f6002604082208281558260018201550155565b611b4a565b611b9f848460049160020b5f52016020525f6002604082208281558260018201550155565b611b43565b7faefeb924000000000000000000000000000000000000000000000000000000005f5260045ffd5b6118e560409f6119b99c6118df916119cb9f6fffffffffffffffffffffffffffffffff611bfc8a600f0b836148f4565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008454161783556118b4565b909a908413611c4f5760028060018d0154600184015490039c015491015490039c611822565b99600260018b015460018d01549003600183015490039b81808d0154910154900391015490039c611822565b8860020b5f5260048801602052886fffffffffffffffffffffffffffffffff60405f20805490611cd5838316928d611cb688600f0b866148f4565b9415968787871615141597611efc575b505086600f0b9060801d613df0565b60801b8383161790551660208c01528a528160020b5f526004880160205260405f208054906fffffffffffffffffffffffffffffffff8216611d1a84600f0b826148f4565b901592836fffffffffffffffffffffffffffffffff831615141593611ed5575b84600f0b9060801d600f0b03916f7fffffffffffffffffffffffffffffff83137fffffffffffffffffffffffffffffffff80000000000000000000000000000000841217610dad57826fffffffffffffffffffffffffffffffff935060801b8383161790551660608c015260408b0152898c5f83600f0b1215611dfd575b5051611de3575b60408a0151156117d657611dde60808d015160020b8360058b01614492565b6117d6565b611df860808d015160020b8a60058b01614492565b611dbf565b60016fffffffffffffffffffffffffffffffff602060808294015160020b940151169280807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761805028180620d89e80502030501810416809111611ea9576fffffffffffffffffffffffffffffffff60608c01511611611e7d57898c611db8565b507fb8e3c385000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b897fb8e3c385000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8b5460a01c60020b8613611d3a5760018c0154600184015560028c01546002840155611d3a565b815460a01c60020b1215611f11575b8f611cc6565b80600160029201546001860155015460028401558d611f0b565b7f1ad777f8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b877fd5e2f7ab000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b87604491604051917fc4433ed500000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b5f60408301511380809161208a575b1561201c575050612012916112da896112ae87876040519687947f259982e50000000000000000000000000000000000000000000000000000000060208701523360248701613792565b505b878581611718565b15908161207c575b50612031575b5050612014565b612074916112da896112ae87876040519687947f21d0ee700000000000000000000000000000000000000000000000000000000060208701523360248701613792565b50878561202a565b61020091501615158a612024565b5061080082161515611fc8565b346103305760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576120ce612de2565b73ffffffffffffffffffffffffffffffffffffffff6120eb612e05565b91165f52600560205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f206044355f52602052602060405f2054604051908152f35b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057612166612de2565b602435908115158092036103305773ffffffffffffffffffffffffffffffffffffffff90335f52600360205260405f208282165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff851617905560405192835216907fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b346103305760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761223e36612f24565b612246612f12565b906280000062ffffff604083015116148015906122fa575b6122d25760a09061226e83613755565b205f52600660205260405f20906122848261363d565b81547fffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff1660d09190911b7cffffff000000000000000000000000000000000000000000000000000016179055005b7f30d21641000000000000000000000000000000000000000000000000000000005f5260045ffd5b5073ffffffffffffffffffffffffffffffffffffffff60808201511633141561225e565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305760043567ffffffffffffffff81116103305761236d903690600401612ff0565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c612581576123f9915f9160017fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235d60405193849283927f91dd734600000000000000000000000000000000000000000000000000000000845260206004850152602484019161310f565b038183335af1908115612576575f916124ce575b507f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5c6124a65760406020915f7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f835194859381855280519182918282880152018686015e5f85828601015201168101030190f35b7f5212cba1000000000000000000000000000000000000000000000000000000005f5260045ffd5b90503d805f833e6124df8183612ed1565b8101906020818303126103305780519067ffffffffffffffff8211610330570181601f820112156103305780519067ffffffffffffffff821161085d576040519261255260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185612ed1565b8284526020838301011161033057815f9260208093018386015e830101528161240d565b6040513d5f823e3d90fd5b7f5090d6c6000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103305773ffffffffffffffffffffffffffffffffffffffff6125cc36612e28565b91929092335f52600560205260405f208282165f5260205260405f20845f526020528260405f205560405192835216907fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760203392a4602060405160018152f35b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761265f612de2565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576107b76020916134f4565b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576024356004356040519160408360208152826020820152019060051b8301916001602060408501935b83548152019101908483821015610a0e575060206001916126e9565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305760043573ffffffffffffffffffffffffffffffffffffffff81168091036103305761277773ffffffffffffffffffffffffffffffffffffffff5f541633146130aa565b807fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002557fb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc5f80a2005b34610330576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761280036612f24565b60c4359060a43560e43567ffffffffffffffff811161033057612827903690600401612ff0565b9190937fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576128596135d6565b60a084205f52600660205260405f20946128728661363d565b6080850194855173ffffffffffffffffffffffffffffffffffffffff8116908133036129e6575b50506fffffffffffffffffffffffffffffffff6003880154169586156129be576020976128c586613223565b5f036128d086613223565b5f036fffffffffffffffffffffffffffffffff169060801b1797866129a5575b8561298a575b5050612903338884613719565b519273ffffffffffffffffffffffffffffffffffffffff84169384330361292f575b8888604051908152f35b60101661293d575b80612925565b61297e956112da936112ae926040519788957fe1b4af69000000000000000000000000000000000000000000000000000000008d8801523360248801613683565b50828080808080612937565b612996600291876140f9565b910190815401905588806128f6565b6129af81886140f9565b600183019081540190556128f0565b7fa74f97ab000000000000000000000000000000000000000000000000000000005f5260045ffd5b6020166129f4575b80612899565b6040517fb6a8b0fa000000000000000000000000000000000000000000000000000000006020820152612a37916112da826112ae8a888a8c8a3360248801613683565b50876129ee565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057600435545f5260205ff35b3461033057612a8636612e28565b907fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7577f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596103ed73ffffffffffffffffffffffffffffffffffffffff805f941695612b05612af887613223565b8603600f0b339089613269565b16938484526004602052604084208685526020526040842061025f82825461309d565b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330577fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d75760206107b7336134f4565b346103305760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057612bba612de2565b612bc2612e05565b604435907fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d757610ae792612c0a612bfd84613223565b5f03600f0b339083613269565b613371565b346103305773ffffffffffffffffffffffffffffffffffffffff612c3236612e28565b91929092335f52600460205260405f20845f5260205260405f20612c57848254613090565b90551690815f52600460205260405f20835f5260205260405f20612c7c82825461309d565b9055604080513380825260208201939093527f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599181908101610279565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361033057807f01ffc9a70000000000000000000000000000000000000000000000000000000060209214908115612d4e575b506040519015158152f35b7f0f632fb30000000000000000000000000000000000000000000000000000000091501482612d43565b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305760209073ffffffffffffffffffffffffffffffffffffffff612dc7612de2565b165f526004825260405f206024355f52825260405f20548152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033057565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103305760043573ffffffffffffffffffffffffffffffffffffffff8116810361033057906024359060443590565b6080810190811067ffffffffffffffff82111761085d57604052565b60c0810190811067ffffffffffffffff82111761085d57604052565b60a0810190811067ffffffffffffffff82111761085d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761085d57604052565b60a4359062ffffff8216820361033057565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126103305760405190612f5b82612eb5565b8160043573ffffffffffffffffffffffffffffffffffffffff8116810361033057815260243573ffffffffffffffffffffffffffffffffffffffff8116810361033057602082015260443562ffffff811681036103305760408201526064358060020b81036103305760608201526084359073ffffffffffffffffffffffffffffffffffffffff821682036103305760800152565b9181601f840112156103305782359167ffffffffffffffff8311610330576020838186019501011161033057565b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103305760043567ffffffffffffffff811161033057826023820112156103305780600401359267ffffffffffffffff84116103305760248460051b83010111610330576024019190565b91908203918211610dad57565b91908201809211610dad57565b156130b157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95c166131fb5773ffffffffffffffffffffffffffffffffffffffff81169081156131f7576131b090613b48565b907f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95d7f1e0745a7db1623981f0b2a5d4232364c00787266eb75ad546f190e6cebe9bd955d565b5050565b7f996caf65000000000000000000000000000000000000000000000000000000005f5260045ffd5b6f8000000000000000000000000000000081101561324157600f0b90565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190600f0b91821561336c5761329f919073ffffffffffffffffffffffffffffffffffffffff8092165f521660205260405f2090565b6132ab815c9283613bdf565b80915d61331c57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5c017f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5d5b565b1561332357565b60017f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5c017f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5d565b505050565b90919073ffffffffffffffffffffffffffffffffffffffff8116908161340f5750505f80808093855af1156133a35750565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d604051937f8549db59000000000000000000000000000000000000000000000000000000008552600485015260406024850152806044850152805f606486013e011660640190fd5b60205f60448194968260409573ffffffffffffffffffffffffffffffffffffffff988751998a947fa9059cbb00000000000000000000000000000000000000000000000000000000865216600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156134885750565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d604051937fb12c5f9c000000000000000000000000000000000000000000000000000000008552600485015260406024850152806044850152805f606486013e011660640190fd5b7f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95c919073ffffffffffffffffffffffffffffffffffffffff83166135495761331a9034935b61354385613223565b90613269565b346135ae5761331a906135857f1e0745a7db1623981f0b2a5d4232364c00787266eb75ad546f190e6cebe9bd955c61358086613b48565b613090565b935f7f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95d61353a565b7f19d245cf000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361361557565b7f0d89438e000000000000000000000000000000000000000000000000000000005f5260045ffd5b5473ffffffffffffffffffffffffffffffffffffffff161561365b57565b7f486aa307000000000000000000000000000000000000000000000000000000005f5260045ffd5b91926136fe6101209473ffffffffffffffffffffffffffffffffffffffff613716999794168552602085019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60c083015260e082015281610100820152019161310f565b90565b9073ffffffffffffffffffffffffffffffffffffffff602061331a949361374885848351168660801d90613269565b01511690600f0b90613269565b62ffffff16620f424081116137675750565b7f14002113000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90613716959361380f6101609473ffffffffffffffffffffffffffffffffffffffff61383e94168552602085019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051600290810b60c08501526020820151900b60e0840152604081015161010084015260600151610120830152565b81610140820152019161310f565b9081600f0b91820361324157565b91610180936138d86139079273ffffffffffffffffffffffffffffffffffffffff6137169a9895168652602086019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051600290810b60c08601526020820151900b60e0850152604081015161010085015260600151610120840152565b61014082015281610160820152019161310f565b929593945f9573ffffffffffffffffffffffffffffffffffffffff85163314613a6357875f6040860151135f146139f557610400861661395e575b505050505050565b6139e9969897506139d6926139e2969594926139aa926040519687957f5a2a8100000000000000000000000000000000000000000000000000000000006020880152336024880161385a565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612ed1565b60028216151591614925565b8092614945565b915f8080808080613956565b94939291906101008516613a0b57505050505050565b6139e9969850859750613a5792916139aa916139e2976040519687957f8db2b652000000000000000000000000000000000000000000000000000000006020880152336024880161385a565b60018216151591614925565b505f955050505050565b608081161580613b1f575b613af557604081161580613b13575b613af55761040081161580613b07575b613af55761010081161580613afb575b613af55773ffffffffffffffffffffffffffffffffffffffff8116613ad5575062ffffff1662800000141590565b613fff161590811591613ae6575090565b62800000915062ffffff161490565b50505f90565b50600181161515613aa7565b50600281161515613a97565b50600481161515613a87565b50600881161515613a78565b6280000062ffffff821614613b435761371681613755565b505f90565b73ffffffffffffffffffffffffffffffffffffffff1680613b6857504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115612576575f91613bb0575090565b90506020813d602011613bd7575b81613bcb60209383612ed1565b81010312610330575190565b3d9150613bbe565b9190915f8382019384129112908015821691151617610dad57565b6020830151955f9586959194913373ffffffffffffffffffffffffffffffffffffffff851614613de35760808416613c34575b5050505050565b613d1c926139aa613d1692613d02946040519586947f575e24b4000000000000000000000000000000000000000000000000000000006020870152336024870152613ccc604487018c73ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051151560e487015260208101516101048701526040015173ffffffffffffffffffffffffffffffffffffffff16610124860152565b61014061014485015261016484019161310f565b82613fdb565b916060835103613dbb576040015162ffffff166280000014613daf575b600816613d4a575b80808080613c2d565b604001519250608083901d600f0b8015613d4157613d6b905f861295613bdf565b9315613da7575f84135b613d7f575f613d41565b7ffa0b71d6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f8412613d75565b60608201519350613d39565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f965086955050505050565b90600f0b90600f0b01907fffffffffffffffffffffffffffffffff8000000000000000000000000000000082126f7fffffffffffffffffffffffffffffff831317610dad57565b9196959394929473ffffffffffffffffffffffffffffffffffffffff83163314613fce578460801d94600f0b938860408516613ef6575b50505050505f9481600f0b15801590613eea575b613e8e575b5050509190565b613ec59395505f60208201511290511515145f14613ecd576fffffffffffffffffffffffffffffffff169060801b175b8093614945565b5f8080613e87565b906fffffffffffffffffffffffffffffffff169060801b17613ebe565b5082600f0b1515613e82565b613fb2613fbe946139aa611a5995613fc4999895613f97613ccc966040519788967fb47b2fb1000000000000000000000000000000000000000000000000000000006020890152336024890152604488019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8c61014485015261016061016485015261018484019161310f565b60048216151591614925565b90613df0565b5f80808088613e6e565b5050505050909150905f90565b9190915f80602085519501948582855af1156140775750604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f3d011683016040523d83523d9060208401915f833e6020845110918215614043575b5050613dbb57565b5190517fffffffff000000000000000000000000000000000000000000000000000000009182169116141590505f8061403b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d73ffffffffffffffffffffffffffffffffffffffff604051947f319d54c300000000000000000000000000000000000000000000000000000000865216600485015260406024850152806044850152805f606486013e011660640190fd5b908160801b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff70010000000000000000000000000000000084099282808510940393808503948584111561033057146141b35770010000000000000000000000000000000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393847001000000000000000000000000000000001115610330571461423357700100000000000000000000000000000000910990828211900360801b910360801c1790565b50505060801c90565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83820990828083109203918083039283620f4240111561033057146142bb577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393846c0100000000000000000000000011156103305714614338576c01000000000000000000000000910990828211900360a01b910360601c1790565b50505060601c90565b908160601b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c0100000000000000000000000084099282808510940393808503948584111561033057146141b3576c0100000000000000000000000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81850993838086109503948086039586851115610330571461448a579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b919060020b9060020b908181076144c05705908160081d5f52602052600160ff60405f2092161b8154189055565b601c906044926040519163d4d8f3e683526020830152604082015201fd5b60020b908160ff1d82810118620d89e881116148245763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102700100000000000000000000000000000000189160028116614808575b600481166147ec575b600881166147d0575b601081166147b4575b60208116614798575b6040811661477c575b60808116614760575b6101008116614744575b6102008116614728575b610400811661470c575b61080081166146f0575b61100081166146d4575b61200081166146b8575b614000811661469c575b6180008116614680575b620100008116614664575b620200008116614649575b62040000811661462e575b6208000016614615575b5f126145ee575b0160201c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff046145e7565b6b048a170391f7dc42444e8fa290910260801c906145e0565b6d2216e584f5fa1ea926041bedfe9890920260801c916145d6565b916e5d6af8dedb81196699c329225ee6040260801c916145cb565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916145c0565b916f31be135f97d08fd981231505542fcfa60260801c916145b5565b916f70d869a156d2a1b890bb3df62baf32f70260801c916145ab565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916145a1565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91614597565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161458d565b916ff3392b0822b70005940c7a398e4b70f30260801c91614583565b916ff987a7253ac413176f2b074cf7815e540260801c91614579565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161456f565b916ffe5dee046a99a2a811c461f1969c30530260801c91614565565b916fff2ea16466c96a3843ec78b326b528610260801c9161455c565b916fff973b41fa98c081472e6896dfb254c00260801c91614553565b916fffcb9843d60f6159c9db58835c9266440260801c9161454a565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91614541565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91614538565b916ffff97272373d413259a46990580e213a0260801c9161452f565b827f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b905f83600f0b125f146148855761487b925f036fffffffffffffffffffffffffffffffff1691615c1a565b5f81126132415790565b6148a1926fffffffffffffffffffffffffffffffff1691615bbf565b5f8112613241575f0390565b905f83600f0b125f146148d85761487b925f036fffffffffffffffffffffffffffffffff1691615d11565b6148a1926fffffffffffffffffffffffffffffffff1691615c5a565b906fffffffffffffffffffffffffffffffff90600f0b911601908160801c61491857565b6393dafdf15f526004601cfd5b9061492f91613fdb565b9015613b43576040815103613dbb576040015190565b6149689061495a8360801d8260801d0361384c565b92600f0b90600f0b0361384c565b6fffffffffffffffffffffffffffffffff169060801b1790565b73fffd8963efd1fc6a506488495d951d516396168273ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffd895d83011611614cc75777ffffffffffffffffffffffffffffffffffffffff000000008160201b16806fffffffffffffffffffffffffffffffff811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c1196171717171717179060808210155f14614cbd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8182011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c67800000000000000016907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800160401b1717171717171717171717171717693627a301d71055774c85027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc556810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f14614c7a5750905090565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff614cae846144de565b1611614cb8575090565b905090565b81607f031b614a92565b73ffffffffffffffffffffffffffffffffffffffff907f61487524000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b8115614d13570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b9190915f604051614d5081612e99565b5f815260208101905f8252604081015f815260608201965f885260808301965f885260a08401975f895284998854906020850151159a6fffffffffffffffffffffffffffffffff60038c0154169384928d155f14615bb0575f610fff8660b81c169b5b60408a01518c52528473ffffffffffffffffffffffffffffffffffffffff168099528460a01c60020b90528c155f14615ba55760018c0154905b5252608084015162400000811615615b965762bfffff16614e0d81613755565b61ffff8816615b7057945b855f60408701511297620f424062ffffff83161480615b68575b615b4057604087015115615b2a5750508a615aca57606085019073ffffffffffffffffffffffffffffffffffffffff82511681811015615a935750505173ffffffffffffffffffffffffffffffffffffffff166401000276a38110615a6857505b60405160805260e060805101608051811067ffffffffffffffff82111761085d576040525f608051525f602060805101525f604060805101525f606060805101525f6080805101525f60a060805101525f60c060805101525b8a51158015615a2b575b6158de5773ffffffffffffffffffffffffffffffffffffffff60408c0151166080515260608b015160020b845160020b90815f818307129105038b155f146157855760ff8116918160020b60081d60010b5f5260058c0160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60018086011b0190541691821592831593845f1461575057610330577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761894817f07060605060205040602030205040301060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff946fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b905b15156040608051015260020b80602060805101521315615723575b620d89e86020608051015160020b1215615713575b8973ffffffffffffffffffffffffffffffffffffffff6150a36020608051015160020b6144de565b1680606060805101528c73ffffffffffffffffffffffffffffffffffffffff60408201511673ffffffffffffffffffffffffffffffffffffffff606089015116906fffffffffffffffffffffffffffffffff60a08401511692519262ffffff8b169473ffffffffffffffffffffffffffffffffffffffff60ff8815168583101885831802851816831015935f86125f146155435786620f4240039161514a83885f0361423c565b861561552457615169858760ff8d151686861018868618028618615c5a565b975b88821061544b5750508160ff73ffffffffffffffffffffffffffffffffffffffff9a15168183101891180218958691620f424082145f1461543c575050845b935b1561542e57916151bb92615c1a565b905b60c0608051015260a060805101526080805101521660408c015285155f146153f05760a060805101515f8112613241578b51038b5261520860808051015160c060805101519061309d565b5f81126132415760208c018051918203918213600116610dad57525b61ffff87166153bd575b6fffffffffffffffffffffffffffffffff60a08c0151168061539d575b5073ffffffffffffffffffffffffffffffffffffffff60408c01511673ffffffffffffffffffffffffffffffffffffffff606060805101511681145f1461535f5750604060805101516152b6575b60ff8a15166020608051015160020b0360020b60608c0152614eec565b8961533b576fffffffffffffffffffffffffffffffff61532260808d015160028c01545b6020608051015160020b60020b5f5260048d0160205260405f2091600183019081549003905560028201908154900390555460801d8d8d1561532d575b60a0015183166148f4565b1660a08c0152615299565b5f91909103600f0b90615317565b6fffffffffffffffffffffffffffffffff6153228c608060018d01549101516152da565b73ffffffffffffffffffffffffffffffffffffffff60805151168103615386575b50614eec565b61538f90614982565b60020b60608c01525f615380565b6153ad9060c060805101516140f9565b60808c019081510190525f61524b565b96620f424060808051015161ffff89169060c06080510151010204908160c060805101510360c06080510152019661522e565b60808051015160c06080510151015f8112613241578b51018b5260a060805101515f81126132415761542760208d01918251613bdf565b9052615224565b61543792615d11565b6151bb565b6154469187615db8565b6151aa565b97509850505050809450158115176155175773ffffffffffffffffffffffffffffffffffffffff9482156154b357615484908583615e57565b935b8480828486156154a45761549992615c5a565b8095015f03936151ac565b916154ae92615bbf565b615499565b6154ef906154ea908781116154f5576154e2906fffffffffffffffffffffffffffffffff88169060601b614d09565b87841661309d565b615eeb565b93615486565b615512906fffffffffffffffffffffffffffffffff881690614341565b6154e2565b634f2461b85f526004601cfd5b61553d8560ff8c15168585101885851802851888615bbf565b9761516b565b91969395949386156156f457615568888560ff84151686861018868618028618615c1a565b945b8581106155cf57509173ffffffffffffffffffffffffffffffffffffffff97918160ff6155bc96951516818310189118021880965b156155c157916155ae92615c5a565b809380620f42400391615db8565b6151bd565b6155ca92615bbf565b6155ae565b94505050508185158215176155175784156156ca5773ffffffffffffffffffffffffffffffffffffffff81116156715760601b6fffffffffffffffffffffffffffffffff86168082061515910401905b73ffffffffffffffffffffffffffffffffffffffff811695828711156156645773ffffffffffffffffffffffffffffffffffffffff6155bc93819803165b809661559f565b634323a5555f526004601cfd5b6fffffffffffffffffffffffffffffffff861661569c816c01000000000000000000000000846143f3565b918115614d13576c0100000000000000000000000090096156be575b9061561f565b600101806156b8575f80fd5b90856156ef6155bc9373ffffffffffffffffffffffffffffffffffffffff9884615de1565b61565d565b61570d8860ff8315168585101885851802851886615d11565b9461556a565b620d89e86020608051015261507b565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761860206080510152615066565b50507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276189360020b900360020b0260020b615049565b600101908160020b908260ff16928260081d60010b5f5260058d016020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160ff60405f2093161b011990541691821592831593845f146158a557610330577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276189481600160ff931901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b9061504b565b505060ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276189481031660020b0160020b0260020b61589f565b90919996989397929550606087015160a01b76ffffff0000000000000000000000000000000000000000167fffffffffffffffffff000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff60408a0151169216171782556fffffffffffffffffffffffffffffffff60a0870151168091036159e6575b5081156159d757600260808601519101555b15146159ba576159a06040615994602085015161384c565b9201518351900361384c565b6fffffffffffffffffffffffffffffffff169060801b1793565b6040015181516159ca910361384c565b6159a0602083015161384c565b6001608086015191015561597c565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000006003830154161760038201555f61596a565b5073ffffffffffffffffffffffffffffffffffffffff60408c01511673ffffffffffffffffffffffffffffffffffffffff60608601511614614ef6565b7f9e4d7cc7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60449250604051917f7c9c6e8f00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b606085019073ffffffffffffffffffffffffffffffffffffffff82511681811115615a935750505173ffffffffffffffffffffffffffffffffffffffff1673fffd8963efd1fc6a506488495d951d5263988d26811015615a685750614e93565b9a509a50505050975050505050505f925f929190565b7f96206246000000000000000000000000000000000000000000000000000000005f5260045ffd5b508815614e32565b62ffffff168061ffff891602620f424080820615159104019061ffff8916010394614e18565b508060d01c62ffffff16614e0d565b60028c015490614ded565b5f610fff8660c41c169b614db3565b6fffffffffffffffffffffffffffffffff6c010000000000000000000000009173ffffffffffffffffffffffffffffffffffffffff80600195169116038060ff1d90810118931692615c1181856142c7565b93091515160190565b6fffffffffffffffffffffffffffffffff9073ffffffffffffffffffffffffffffffffffffffff806137169594169116038060ff1d9081011891166142c7565b9073ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff831611615d0b575b73ffffffffffffffffffffffffffffffffffffffff8216928315615cff577bffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff615cf3948185169403169160601b16615db8565b90808206151591040190565b62bfc9215f526004601cfd5b90615c8f565b73ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff821611615db2575b73ffffffffffffffffffffffffffffffffffffffff8116918215615cff57613716937bffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff615dad948185169403169160601b166143f3565b614d09565b90615d45565b929190615dc68282866143f3565b938215614d135709615dd457565b9060010190811561033057565b91908115615e52577bffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff9160601b169216918282029183838311918404141615615e4557613716926154ea92820391615db8565b63f5c787f15f526004601cfd5b505090565b90918015615ee55773ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffffffffffffffffffff000000000000000000000000819460601b16921680820281615ea78483614d09565b14615ecd575b5090615ebc615ec19284614d09565b61309d565b80820615159104011690565b8301838110615ead579150615ee192615db8565b1690565b50905090565b9073ffffffffffffffffffffffffffffffffffffffff82169182036132415756fea264697066735822122040181355f523bacc25c104b20052f2a671653c5fa6d294b06a8201eb65cf014864736f6c634300081a0033000000000000000000000000000000000000000000000000000000000007a120", + "nonce": "0x1f", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x602996", + "logs": [ + { + "address": "0x39bf2eff94201cfaa471932655404f63315147a4", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000007024cc7e60d6560f0b5877da2bb921fcbf1f4375" + ], + "data": "0x", + "blockHash": "0x147cc919e6b58d6c31c809c2f64b4540fc11b48eb713a38d209e296d2ffb082d", + "blockNumber": "0xd423a5", + "transactionHash": "0xd029dbd1f19f32a5512ebf04817925f32ef1480312e50d36570c2cadf990b812", + "transactionIndex": "0x14", + "logIndex": "0x11", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000001000000000000000000000000000000008000020000000000000000000800000000000000000000200010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xd029dbd1f19f32a5512ebf04817925f32ef1480312e50d36570c2cadf990b812", + "transactionIndex": "0x14", + "blockHash": "0x147cc919e6b58d6c31c809c2f64b4540fc11b48eb713a38d209e296d2ffb082d", + "blockNumber": "0xd423a5", + "gasUsed": "0x514256", + "effectiveGasPrice": "0x7c92b", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0x39bf2eff94201cfaa471932655404f63315147a4", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x8f94f87e88", + "l1GasPrice": "0xbc65cce1", + "l1GasUsed": "0x2b435" + } + ], + "libraries": [], + "pending": [], + "returns": { + "manager": { + "internal_type": "contract IPoolManager", + "value": "0x39BF2eFF94201cfAA471932655404F63315147a4" + } + }, + "timestamp": 1723573824, + "chain": 84532, + "commit": "d0faf02" +} \ No newline at end of file diff --git a/broadcast/02_PoolModifyLiquidityTest.s.sol/84532/run-latest.json b/broadcast/02_PoolModifyLiquidityTest.s.sol/84532/run-latest.json new file mode 100644 index 00000000..8f277ff4 --- /dev/null +++ b/broadcast/02_PoolModifyLiquidityTest.s.sol/84532/run-latest.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0x8bbc19ae42ccc39686195a249d1933363e71a3fd64df6079c49c772f51279094", + "transactionType": "CREATE", + "contractName": "PoolModifyLiquidityTest", + "contractAddress": "0x841b5a0b3dbc473c8a057e2391014aa4c4751351", + "function": null, + "arguments": [ + "0x39BF2eFF94201cfAA471932655404F63315147a4" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x1e6f97", + "value": "0x0", + "input": "0x60a0604052348015600e575f80fd5b50604051611ba9380380611ba9833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f80fd5b81516001600160a01b0381168114605f575f80fd5b9392505050565b608051611adf6100ca5f395f81816079015281816101020152818161027f015281816102f301528181610324015281816104090152818161058d015281816105f001528181610679015281816106d7015281816108c201526109020152611adf5ff3fe60806040526004361061003e575f3560e01c80630a5b11e414610042578063481c6a75146100685780635a6bcfda146100c057806391dd7346146100d3575b5f80fd5b610055610050366004611406565b6100ff565b6040519081526020015b60405180910390f35b348015610073575f80fd5b5061009b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161005f565b6100556100ce36600461148d565b61024f565b3480156100de575f80fd5b506100f26100ed3660046114eb565b610265565b60405161005f91906115a5565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c894916040518060c001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001898152602001888152602001878152602001861515815260200185151581525060405160200161019391906115be565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016101be91906115a5565b5f604051808303815f875af11580156101d9573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261021e91908101906116dd565b8060200190518101906102319190611752565b9050478015610245576102455f3383610729565b5095945050505050565b5f61025d8484845f806100ff565b949350505050565b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a8575f80fd5b5f6102b583850185611769565b90505f61031d6102ca836020015160a0902090565b60408401518051602082015160609092015173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016939230929161082a565b505090505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635a6bcfda8460200151856040015186606001516040518463ffffffff1660e01b815260040161038b93929190611832565b60408051808303815f875af11580156103a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca91906118f6565b5090505f6104336103e0856020015160a0902090565b60408601518051602082015160609092015173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016939230929161082a565b505090505f61044d85602001515f0151865f015130610881565b925050505f610468866020015160200151875f015130610881565b9250505082600f0b86604001516040015186600f0b6104879190611945565b146104f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6c6971756964697479206368616e676520696e636f7272656374000000000000604482015260640160405180910390fd5b5f866040015160400151121561053a575f82138061050f57505f81135b61051b5761051b61196c565b5f82128061052857505f81125b156105355761053561196c565b61057d565b5f866040015160400151131561057d575f82128061055757505f81125b6105635761056361196c565b5f82138061057057505f81135b1561057d5761057d61196c565b5f8212156105e05785516105e0907f0000000000000000000000000000000000000000000000000000000000000000906105b685611999565b60808a015160208b01515173ffffffffffffffffffffffffffffffffffffffff1693929190610934565b5f811215610645578551610645907f00000000000000000000000000000000000000000000000000000000000000009061061984611999565b60808a01516020808c0151015173ffffffffffffffffffffffffffffffffffffffff1693929190610934565b5f8213156106a157855160a08701516020880151516106a19273ffffffffffffffffffffffffffffffffffffffff909116917f000000000000000000000000000000000000000000000000000000000000000091908690610cf2565b5f8113156106ff57855160a087015160208089015101516106ff9273ffffffffffffffffffffffffffffffffffffffff909116917f000000000000000000000000000000000000000000000000000000000000000091908590610cf2565b60408051602081018690520160405160208183030381529060405296505050505050505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff8416610783575f805f8085875af190508061077e5761077e7f8549db590000000000000000000000000000000000000000000000000000000084610e36565b610824565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f60408201525080610824576108247fb12c5f9c0000000000000000000000000000000000000000000000000000000085610e36565b50505050565b60408051602681018390526006810184905260038101859052858152603a600c8201205f92820183905260208201839052908290528190819061086e8a8a83610e69565b919c909b50909950975050505050505050565b5f80806108a473ffffffffffffffffffffffffffffffffffffffff871686610f50565b92506108e673ffffffffffffffffffffffffffffffffffffffff87167f0000000000000000000000000000000000000000000000000000000000000000610f50565b915061092973ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016858861101f565b905093509350939050565b8015610a15578373ffffffffffffffffffffffffffffffffffffffff1663f5298aca8461098a8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604481018590526064015b5f604051808303815f87803b1580156109fa575f80fd5b505af1158015610a0c573d5f803e3d5ffd5b50505050610ceb565b73ffffffffffffffffffffffffffffffffffffffff8516610aa6578373ffffffffffffffffffffffffffffffffffffffff166311da60b4836040518263ffffffff1660e01b815260040160206040518083038185885af1158015610a7b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aa09190611752565b50610ceb565b6040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015285169063a5841194906024015f604051808303815f87803b158015610b0c575f80fd5b505af1158015610b1e573d5f803e3d5ffd5b5050505073ffffffffffffffffffffffffffffffffffffffff83163014610be3576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528581166024830152604482018490528616906323b872dd906064016020604051808303815f875af1158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd91906119cf565b50610c7b565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820184905286169063a9059cbb906044016020604051808303815f875af1158015610c55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7991906119cf565b505b8373ffffffffffffffffffffffffffffffffffffffff166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce99190611752565b505b5050505050565b80610d5a576040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152848116602483015260448201849052851690630b0d9c09906064016109e3565b8373ffffffffffffffffffffffffffffffffffffffff1663156e29f684610daa8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604481018590526064015f604051808303815f87803b158015610e19575f80fd5b505af1158015610e2b573d5f803e3d5ffd5b505050505050505050565b3d60405183815282600482015260406024820152816044820152815f606483013e602080601f8401040260640191508181fd5b5f805f80610e7786866110dd565b6040517f35fd631a00000000000000000000000000000000000000000000000000000000815260048101829052600360248201529091505f9073ffffffffffffffffffffffffffffffffffffffff8916906335fd631a906044015f60405180830381865afa158015610eeb573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f3091908101906119ea565b60208101516040820151606090920151909a919950975095505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff8316610f8a575073ffffffffffffffffffffffffffffffffffffffff811631610723565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906370a0823190602401602060405180830381865afa158015610ff4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110189190611752565b9050610723565b5f8073ffffffffffffffffffffffffffffffffffffffff84165f5273ffffffffffffffffffffffffffffffffffffffff831660205260405f2090508473ffffffffffffffffffffffffffffffffffffffff1663f135baaa826040518263ffffffff1660e01b815260040161109591815260200190565b602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d49190611752565b95945050505050565b5f806110e88461112d565b90505f6110f6600683611a96565b6040805160208101879052908101829052909150606001604051602081830303815290604052805190602001209250505092915050565b6040515f9061114c908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160c0810167ffffffffffffffff811182821017156111b9576111b9611169565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561120657611206611169565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122f575f80fd5b50565b8035600281900b8114611243575f80fd5b919050565b5f60a08284031215611258575f80fd5b60405160a0810167ffffffffffffffff8111828210171561127b5761127b611169565b604052905080823561128c8161120e565b8152602083013561129c8161120e565b6020820152604083013562ffffff811681146112b6575f80fd5b60408201526112c760608401611232565b606082015260808301356112da8161120e565b6080919091015292915050565b5f608082840312156112f7575f80fd5b6040516080810167ffffffffffffffff8111828210171561131a5761131a611169565b60405290508061132983611232565b815261133760208401611232565b602082015260408301356040820152606083013560608201525092915050565b5f67ffffffffffffffff82111561137057611370611169565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f8301126113ab575f80fd5b81356113be6113b982611357565b6111bf565b8181528460208386010111156113d2575f80fd5b816020850160208301375f918101602001919091529392505050565b801515811461122f575f80fd5b8035611243816113ee565b5f805f805f610180868803121561141b575f80fd5b6114258787611248565b94506114348760a088016112e7565b935061012086013567ffffffffffffffff811115611450575f80fd5b61145c8882890161139c565b93505061014086013561146e816113ee565b915061016086013561147f816113ee565b809150509295509295909350565b5f805f61014084860312156114a0575f80fd5b6114aa8585611248565b92506114b98560a086016112e7565b915061012084013567ffffffffffffffff8111156114d5575f80fd5b6114e18682870161139c565b9150509250925092565b5f80602083850312156114fc575f80fd5b823567ffffffffffffffff811115611512575f80fd5b8301601f81018513611522575f80fd5b803567ffffffffffffffff811115611538575f80fd5b856020828401011115611549575f80fd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6115b76020830184611559565b9392505050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f6020830151611667604084018273ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b506040838101518051600290810b60e08601526020820151900b610100850152908101516101208401526060908101516101408401528301516101a06101608401526116b76101c0840182611559565b90506080840151151561018084015260a084015115156101a08401528091505092915050565b5f602082840312156116ed575f80fd5b815167ffffffffffffffff811115611703575f80fd5b8201601f81018413611713575f80fd5b80516117216113b982611357565b818152856020838501011115611735575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215611762575f80fd5b5051919050565b5f60208284031215611779575f80fd5b813567ffffffffffffffff81111561178f575f80fd5b82016101a081850312156117a1575f80fd5b6117a9611196565b81356117b48161120e565b81526117c38560208401611248565b60208201526117d58560c084016112e7565b604082015261014082013567ffffffffffffffff8111156117f4575f80fd5b6118008682850161139c565b60608301525061181361016083016113fb565b608082015261182561018083016113fb565b60a0820152949350505050565b6118b1818573ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b8251600290810b60a08301526020840151900b60c0820152604083015160e082015260608301516101008201526101406101208201525f6110d4610140830184611559565b5f8060408385031215611907575f80fd5b505080516020909101519092909150565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018281125f83128015821682158216171561196457611964611918565b505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f7f800000000000000000000000000000000000000000000000000000000000000082036119c9576119c9611918565b505f0390565b5f602082840312156119df575f80fd5b81516115b7816113ee565b5f602082840312156119fa575f80fd5b815167ffffffffffffffff811115611a10575f80fd5b8201601f81018413611a20575f80fd5b805167ffffffffffffffff811115611a3a57611a3a611169565b8060051b611a4a602082016111bf565b91825260208184018101929081019087841115611a65575f80fd5b6020850194505b83851015611a8b57845180835260209586019590935090910190611a6c565b979650505050505050565b808201808211156107235761072361191856fea2646970667358221220bef3a566d7840408aaf430c594584b8d9764401d185dd9f04a3ba61280252c7064736f6c634300081a003300000000000000000000000039bf2eff94201cfaa471932655404f63315147a4", + "nonce": "0x20", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3ed71d", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x8bbc19ae42ccc39686195a249d1933363e71a3fd64df6079c49c772f51279094", + "transactionIndex": "0x10", + "blockHash": "0x16bb0c9767b876af2854968d85668c9f2b497d353a2d442c99c61cbc4b81875c", + "blockNumber": "0xd423cd", + "gasUsed": "0x176988", + "effectiveGasPrice": "0x2b73", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0x841b5a0b3dbc473c8a057e2391014aa4c4751351", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x280f190c82", + "l1GasPrice": "0xb92ea636", + "l1GasUsed": "0xc47a" + } + ], + "libraries": [], + "pending": [], + "returns": { + "testModifyRouter": { + "internal_type": "contract PoolModifyLiquidityTest", + "value": "0x841B5A0b3DBc473c8A057E2391014aa4C4751351" + } + }, + "timestamp": 1723573904, + "chain": 84532, + "commit": "d0faf02" +} \ No newline at end of file diff --git a/broadcast/03_PoolSwapTest.s.sol/84532/run-latest.json b/broadcast/03_PoolSwapTest.s.sol/84532/run-latest.json new file mode 100644 index 00000000..0dcd2b2f --- /dev/null +++ b/broadcast/03_PoolSwapTest.s.sol/84532/run-latest.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0x7bebfebe929ae028733b2a61af5b33e35153db820916dee5023fb9415ab2a790", + "transactionType": "CREATE", + "contractName": "PoolSwapTest", + "contractAddress": "0xff34e285f8ed393e366046153e3c16484a4dd674", + "function": null, + "arguments": [ + "0x39BF2eFF94201cfAA471932655404F63315147a4" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x222648", + "value": "0x0", + "input": "0x60a0604052348015600e575f80fd5b50604051611f19380380611f19833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f80fd5b81516001600160a01b0381168114605f575f80fd5b9392505050565b608051611e5e6100bb5f395f8181606e0152818160e4015281816102400152818161038601528181610c4c01528181610cb201528181610d4901528181610daa01528181610f3e0152610f7e0152611e5e5ff3fe608060405260043610610033575f3560e01c80632229d0b414610037578063481c6a751461005d57806391dd7346146100b5575b5f80fd5b61004a61004536600461193f565b6100e1565b6040519081526020015b60405180910390f35b348015610068575f80fd5b506100907f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610054565b3480156100c0575f80fd5b506100d46100cf3660046119b0565b610226565b6040516100549190611a6a565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c894916040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881526020018781526020018581525060405160200161016b9190611a83565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016101969190611a6a565b5f604051808303815f875af11580156101b1573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101f69190810190611ba4565b8060200190518101906102099190611c19565b905047801561021d5761021d5f3383610dfc565b50949350505050565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610269575f80fd5b5f61027683850185611c30565b90505f61028e82604001515f0151835f015130610efd565b925050505f6102a9836040015160200151845f015130610efd565b92505050815f1461031b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726530206973206e6f7420657175616c20746f2030000060448201526064015b60405180910390fd5b8015610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726531206973206e6f7420657175616c20746f203000006044820152606401610312565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3cd914c8560400151866060015187608001516040518463ffffffff1660e01b81526004016103ed93929190611ce8565b6020604051808303815f875af1158015610409573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042d9190611c19565b90505f61044585604001515f0151865f015130610efd565b925050505f610460866040015160200151875f015130610efd565b9250505085606001515f015115610859575f866060015160200151121561066f5785606001516020015182121561053f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f6563696669656400000000000000000000000000000000000000000000000000608482015260a401610312565b8161054a8460801d90565b600f0b146105da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74302829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572300000000000000000000000000000000000000000006064820152608401610312565b5f81121561066a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152608401610312565b610c3c565b5f8213156106ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f207a65726f000000000000000000000000000000000000006064820152608401610312565b8061070a84600f0b90565b600f0b1461079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74312829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572310000000000000000000000000000000000000000006064820152608401610312565b85606001516020015181131561066a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f64656c7461416674657231206973206e6f74206c657373207468616e206f7220908201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f6669656400000000000000000000000000000000000000000000000000000000608482015260a401610312565b5f8660600151602001511215610a5257856060015160200151811215610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f6563696669656400000000000000000000000000000000000000000000000000608482015260a401610312565b8061093284600f0b90565b600f0b146109c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74312829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572310000000000000000000000000000000000000000006064820152608401610312565b5f82121561066a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152608401610312565b5f811315610ae2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f2030000000000000000000000000000000000000000000006064820152608401610312565b81610aed8460801d90565b600f0b14610b7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74302829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572300000000000000000000000000000000000000000006064820152608401610312565b856060015160200151821315610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f64656c7461416674657230206973206e6f74206c657373207468616e206f7220908201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f6669656400000000000000000000000000000000000000000000000000000000608482015260a401610312565b5f821215610ca2578551610ca2907f000000000000000000000000000000000000000000000000000000000000000090610c7585611db2565b6020808b0151015160408b01515173ffffffffffffffffffffffffffffffffffffffff1693929190610fb0565b5f811215610d14578551610d14907f000000000000000000000000000000000000000000000000000000000000000090610cdb84611db2565b8960200151602001518a604001516020015173ffffffffffffffffffffffffffffffffffffffff16610fb090949392919063ffffffff16565b5f821315610d71578551602087015151604088015151610d719273ffffffffffffffffffffffffffffffffffffffff909116917f00000000000000000000000000000000000000000000000000000000000000009190869061136e565b5f811315610dd257855160208088015151604089015190910151610dd29273ffffffffffffffffffffffffffffffffffffffff909116917f00000000000000000000000000000000000000000000000000000000000000009190859061136e565b60408051602081018590520160405160208183030381529060405296505050505050505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff8416610e56575f805f8085875af1905080610e5157610e517f8549db5900000000000000000000000000000000000000000000000000000000846114b2565b610ef7565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f60408201525080610ef757610ef77fb12c5f9c00000000000000000000000000000000000000000000000000000000856114b2565b50505050565b5f8080610f2073ffffffffffffffffffffffffffffffffffffffff8716866114e5565b9250610f6273ffffffffffffffffffffffffffffffffffffffff87167f00000000000000000000000000000000000000000000000000000000000000006114e5565b9150610fa573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685886115b4565b905093509350939050565b8015611091578373ffffffffffffffffffffffffffffffffffffffff1663f5298aca846110068873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604481018590526064015b5f604051808303815f87803b158015611076575f80fd5b505af1158015611088573d5f803e3d5ffd5b50505050611367565b73ffffffffffffffffffffffffffffffffffffffff8516611122578373ffffffffffffffffffffffffffffffffffffffff166311da60b4836040518263ffffffff1660e01b815260040160206040518083038185885af11580156110f7573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061111c9190611c19565b50611367565b6040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015285169063a5841194906024015f604051808303815f87803b158015611188575f80fd5b505af115801561119a573d5f803e3d5ffd5b5050505073ffffffffffffffffffffffffffffffffffffffff8316301461125f576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528581166024830152604482018490528616906323b872dd906064016020604051808303815f875af1158015611235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112599190611e0d565b506112f7565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820184905286169063a9059cbb906044016020604051808303815f875af11580156112d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f59190611e0d565b505b8373ffffffffffffffffffffffffffffffffffffffff166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611341573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113659190611c19565b505b5050505050565b806113d6576040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152848116602483015260448201849052851690630b0d9c099060640161105f565b8373ffffffffffffffffffffffffffffffffffffffff1663156e29f6846114268873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604481018590526064015f604051808303815f87803b158015611495575f80fd5b505af11580156114a7573d5f803e3d5ffd5b505050505050505050565b3d60405183815282600482015260406024820152816044820152815f606483013e602080601f8401040260640191508181fd5b5f73ffffffffffffffffffffffffffffffffffffffff831661151f575073ffffffffffffffffffffffffffffffffffffffff811631610df6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906370a0823190602401602060405180830381865afa158015611589573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ad9190611c19565b9050610df6565b5f8073ffffffffffffffffffffffffffffffffffffffff84165f5273ffffffffffffffffffffffffffffffffffffffff831660205260405f2090508473ffffffffffffffffffffffffffffffffffffffff1663f135baaa826040518263ffffffff1660e01b815260040161162a91815260200190565b602060405180830381865afa158015611645573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116699190611c19565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156116c2576116c2611672565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561170f5761170f611672565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611738575f80fd5b50565b803561174681611717565b919050565b5f60a0828403121561175b575f80fd5b61176361169f565b9050813561177081611717565b8152602082013561178081611717565b6020820152604082013562ffffff8116811461179a575f80fd5b60408201526060820135600281900b81146117b3575f80fd5b60608201526117c46080830161173b565b608082015292915050565b8015158114611738575f80fd5b5f606082840312156117ec575f80fd5b6040516060810167ffffffffffffffff8111828210171561180f5761180f611672565b6040529050808235611820816117cf565b815260208381013590820152604083013561183a81611717565b6040919091015292915050565b5f60408284031215611857575f80fd5b6040805190810167ffffffffffffffff8111828210171561187a5761187a611672565b604052905080823561188b816117cf565b8152602083013561189b816117cf565b6020919091015292915050565b5f67ffffffffffffffff8211156118c1576118c1611672565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f8301126118fc575f80fd5b813561190f61190a826118a8565b6116c8565b818152846020838601011115611923575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806101608587031215611953575f80fd5b61195d868661174b565b935061196c8660a087016117dc565b925061197c866101008701611847565b915061014085013567ffffffffffffffff811115611998575f80fd5b6119a4878288016118ed565b91505092959194509250565b5f80602083850312156119c1575f80fd5b823567ffffffffffffffff8111156119d7575f80fd5b8301601f810185136119e7575f80fd5b803567ffffffffffffffff8111156119fd575f80fd5b856020828401011115611a0e575f80fd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f611a7c6020830184611a1e565b9392505050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f6020830151805115156040840152602081015115156060840152506040830151611b47608084018273ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b5060608301518051151561012084015260208101516101408401526040015173ffffffffffffffffffffffffffffffffffffffff16610160830152608083015161018080840152611b9c6101a0840182611a1e565b949350505050565b5f60208284031215611bb4575f80fd5b815167ffffffffffffffff811115611bca575f80fd5b8201601f81018413611bda575f80fd5b8051611be861190a826118a8565b818152856020838501011115611bfc575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215611c29575f80fd5b5051919050565b5f60208284031215611c40575f80fd5b813567ffffffffffffffff811115611c56575f80fd5b82016101808185031215611c68575f80fd5b611c7061169f565b8135611c7b81611717565b8152611c8a8560208401611847565b6020820152611c9c856060840161174b565b6040820152611caf8561010084016117dc565b606082015261016082013567ffffffffffffffff811115611cce575f80fd5b611cda868285016118ed565b608083015250949350505050565b611d67818573ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b8251151560a0820152602083015160c0820152604083015173ffffffffffffffffffffffffffffffffffffffff1660e08201526101206101008201525f611669610120830184611a1e565b5f7f80000000000000000000000000000000000000000000000000000000000000008203611e07577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505f0390565b5f60208284031215611e1d575f80fd5b8151611a7c816117cf56fea264697066735822122098619b0c057e47edcbae987b35164fda2896bebf591be5f029988b67193a93d364736f6c634300081a003300000000000000000000000039bf2eff94201cfaa471932655404f63315147a4", + "nonce": "0x21", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x404a67", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x7bebfebe929ae028733b2a61af5b33e35153db820916dee5023fb9415ab2a790", + "transactionIndex": "0xc", + "blockHash": "0x86051f7d526eed731a30eb551256e16de113d3f8b13bd87206d1feb6f3b2b879", + "blockNumber": "0xd423e5", + "gasUsed": "0x1a44d5", + "effectiveGasPrice": "0x2d2d", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0xff34e285f8ed393e366046153e3c16484a4dd674", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x2754749673", + "l1GasPrice": "0xc20ca7c9", + "l1GasUsed": "0xb816" + } + ], + "libraries": [], + "pending": [], + "returns": { + "testSwapRouter": { + "internal_type": "contract PoolSwapTest", + "value": "0xFf34e285F8ED393E366046153e3C16484A4dD674" + } + }, + "timestamp": 1723573950, + "chain": 84532, + "commit": "d0faf02" +} \ No newline at end of file diff --git a/broadcast/DeployPosm.s.sol/84532/run-latest.json b/broadcast/DeployPosm.s.sol/84532/run-latest.json new file mode 100644 index 00000000..d96c8c6e --- /dev/null +++ b/broadcast/DeployPosm.s.sol/84532/run-latest.json @@ -0,0 +1,61 @@ +{ + "transactions": [ + { + "hash": "0x6868534dcf11b1774abdd69602eee0fc3b3d77b9f5e13437dedf8fbb145dea2c", + "transactionType": "CREATE2", + "contractName": "PositionManager", + "contractAddress": "0xa2f16f0bb5dea7c9a6675ec88193471dee805e6e", + "function": null, + "arguments": [ + "0x39BF2eFF94201cfAA471932655404F63315147a4", + "0x000000000022D473030F116dDEE9F6B43aC78BA3" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x65e448", + "value": "0x0", + "input": "0x03000000000000000000000000000000000000000000000000000000000000006101206040526001600855348015610015575f80fd5b5060405161591738038061591783398101604081905261003491610161565b808280806040518060400160405280601881526020017f556e697377617020563420506f736974696f6e73204e465400000000000000008152506040518060400160405280600b81526020016a554e492d56342d504f534d60a81b815250818282815f90816100a39190610231565b5060016100b08282610231565b50508151602083012060c052504660a05261012460c051604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666020820152908101919091524660608201523060808201525f9060a00160405160208183030381529060405280519060200120905090565b6080525050506001600160a01b0390811660e0529290921661010052506102eb92505050565b6001600160a01b038116811461015e575f80fd5b50565b5f8060408385031215610172575f80fd5b825161017d8161014a565b602084015190925061018e8161014a565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806101c157607f821691505b6020821081036101df57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561022c57805f5260205f20601f840160051c8101602085101561020a5750805b601f840160051c820191505b81811015610229575f8155600101610216565b50505b505050565b81516001600160401b0381111561024a5761024a610199565b61025e8161025884546101ad565b846101e5565b6020601f821160018114610290575f83156102795750848201515b5f19600385901b1c1916600184901b178455610229565b5f84815260208120601f198516915b828110156102bf578785015182556020948501946001909201910161029f565b50848210156102dc57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05160c05160e051610100516155716103a65f395f81816103250152818161075201528181610b10015261403c01525f81816106a701528181610d2901528181610fa6015281816117de015281816127ab0152818161334b0152818161341e0152818161348201528181613571015281816135e0015281816136b3015281816137a901528181613d9701528181613e3701528181613f9a015261400401525f610bb801525f610b6401525f610c1201526155715ff3fe60806040526004361061020e575f3560e01c8063502e1a161161011757806395d89b41116100ac578063c87b56dd1161007c578063dc4c90d311610062578063dc4c90d314610696578063dd46508f146106c9578063e985e9c5146106dc575f80fd5b8063c87b56dd14610611578063d737d0c714610663575f80fd5b806395d89b411461059f578063a22cb465146105b3578063ac9650d8146105d2578063b88d4fde146105f2575f80fd5b8063645add16116100e7578063645add161461053957806370a082311461054c57806375794a3c1461056b57806391dd734614610580575f80fd5b8063502e1a16146104b257806357b22ebf146104e85780636352211e14610507578063635ba6de14610526575f80fd5b806323b872dd116101a75780633aea60f01161017757806342842e0e1161015d57806342842e0e1461044057806345074cef1461045f5780634afe393c1461049f575f80fd5b80633aea60f0146103fb5780633b1fda971461040e575f80fd5b806323b872dd146103885780632b67b570146103a75780633355c213146103ba5780633644e515146103d9575f80fd5b8063095ea7b3116101e2578063095ea7b3146102e25780630f5730f11461030157806312261ee71461031457806316a2413114610347575f80fd5b80622a3e3a1461021257806301ffc9a71461022757806306fdde031461025b578063081812fc1461027c575b5f80fd5b6102256102203660046143bd565b610715565b005b348015610232575f80fd5b50610246610241366004614467565b6107c0565b60405190151581526020015b60405180910390f35b348015610266575f80fd5b5061026f6108a4565b60405161025291906144ce565b348015610287575f80fd5b506102bd6102963660046144e0565b60046020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610252565b3480156102ed575f80fd5b506102256102fc3660046144f7565b61092f565b61022561030f366004614521565b6109da565b34801561031f575f80fd5b506102bd7f000000000000000000000000000000000000000000000000000000000000000081565b348015610352575f80fd5b506102bd6103613660046144e0565b60076020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b348015610393575f80fd5b506102256103a236600461458f565b610aa7565b6102256103b53660046145cd565b610ad3565b3480156103c5575f80fd5b506102466103d43660046144e0565b610b4b565b3480156103e4575f80fd5b506103ed610b61565b604051908152602001610252565b61022561040936600461464d565b610c34565b348015610419575f80fd5b5061042d6104283660046146d4565b610cea565b60405160029190910b8152602001610252565b34801561044b575f80fd5b5061022561045a36600461458f565b610dad565b34801561046a575f80fd5b5061047e610479366004614738565b610f13565b6040516fffffffffffffffffffffffffffffffff9091168152602001610252565b6102256104ad3660046147a5565b610fd5565b3480156104bd575f80fd5b506103ed6104cc3660046144f7565b600660209081525f928352604080842090915290825290205481565b3480156104f3575f80fd5b506103ed6105023660046144e0565b611068565b348015610512575f80fd5b506102bd6105213660046144e0565b61109d565b610225610534366004614805565b61112d565b610225610547366004614875565b611491565b348015610557575f80fd5b506103ed6105663660046148b6565b61171e565b348015610576575f80fd5b506103ed60085481565b34801561058b575f80fd5b5061026f61059a3660046148d1565b6117c4565b3480156105aa575f80fd5b5061026f611846565b3480156105be575f80fd5b506102256105cd366004614910565b611853565b6105e56105e036600461493a565b611862565b604051610252919061496d565b3480156105fd575f80fd5b5061022561060c3660046149ee565b611970565b34801561061c575f80fd5b5061026f61062b3660046144e0565b5060408051808201909152601381527f68747470733a2f2f6578616d706c652e636f6d00000000000000000000000000602082015290565b34801561066e575f80fd5b507f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c6102bd565b3480156106a1575f80fd5b506102bd7f000000000000000000000000000000000000000000000000000000000000000081565b6102256106d7366004614a3f565b611ac7565b3480156106e7575f80fd5b506102466106f6366004614a87565b600560209081525f928352604080842090915290825290205460ff1681565b6040517f2a2d80d100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632a2d80d19061078d908790879087908790600401614b9c565b5f604051808303815f87803b1580156107a4575f80fd5b505af11580156107b6573d5f803e3d5ffd5b5050505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061085257507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061089e57507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f80546108b090614caf565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90614caf565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b505050505081565b5f8181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16338114801590610993575073ffffffffffffffffffffffffffffffffffffffff81165f90815260056020908152604080832033845290915290205460ff16155b156109ca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d5818484611b8e565b505050565b8380421115610a15576040517f5a9165ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610a1f8761109d565b9050610a2b8189611c0e565b604080517f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad8152602081018a9052908101889052606081018690526080810187905260a09020610a87610a7d82611c73565b8690869085611cbc565b610a918287611ff5565b610a9c828a8a611b8e565b505050505050505050565b610ab2838383612082565b5f8181526009602052604090205460ff1c156109d5576109d5818484612345565b6040517f2b67b57000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632b67b5709061078d908790879087908790600401614cfa565b5f8181526009602052604081205460ff1c61089e565b5f7f00000000000000000000000000000000000000000000000000000000000000004614610c0f57610c0a604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86660208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091524660608201523060808201525f9060a00160405160208183030381529060405280519060200120905090565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b8380421115610c6f576040517f5a9165ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c798888611c0e565b604080517f6673cb397ee2a50b6b8401653d3638b4ac8b3db9c28aa6870ffceb7574ec2f76815260208101899052908101879052606081018590526080810186905260a09020610cd5610ccb82611c73565b859085908c611cbc565b610cdf8986611ff5565b610a9c8989896123e8565b6040517f695c5bf50000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063695c5bf590610d64908890889088908890600401614e3e565b6020604051808303815f875af1158015610d80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da49190614e7a565b95945050505050565b610db8838383610aa7565b73ffffffffffffffffffffffffffffffffffffffff82163b1580610ea857506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af1158015610e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e849190614e95565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b6109d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064015b60405180910390fd5b5f80610f7130610f2960c0860160a08701614eb0565b610f3960e0870160c08801614eb0565b60408051602681018a905260068101929092526003820192909252918252603a600c8301205f91830182905260208301829052915290565b9050610fcd610f8f610f8836869003860186614fdf565b60a0902090565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908361247f565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c1615611044576040517f6f5ffb7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61104d3361251c565b61105984848484612542565b6110625f61251c565b50505050565b5f818152600960205260408120547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661089e565b5f8181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152606401610f0a565b919050565b338561113982826125db565b611187576040517f0ca968d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610f0a565b86866111ec816040805160c0830135603482015260a083013560318201526080830135602e8201526060830135601a8201528282013560178201526020808401356014830152923581526048600c8201205f9282018390529281018290525260011c90565b5f838152600960205260409020547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1614611256576040517fa640d5e000000000000000000000000000000000000000000000000000000000815260048101839052602401610f0a565b5f89815260096020908152604080832080547f8000000000000000000000000000000000000000000000000000000000000000179055600790915290205473ffffffffffffffffffffffffffffffffffffffff1680156112fa576040517f73a4164900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610f0a565b5f8a81526007602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8c1617905551611405908a907f140e8f140000000000000000000000000000000000000000000000000000000090611383908f908f908e908e90602401615035565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612696565b905080611436576114367ff0aa7ed4000000000000000000000000000000000000000000000000000000008a6126aa565b604080518c815273ffffffffffffffffffffffffffffffffffffffff8b1660208201527f5db0e562b58e88ae25b795493b5a9c538bb02bd38430aa3194dbf8c68f619f54910160405180910390a15050505050505050505050565b338461149d82826125db565b6114eb576040517f0ca968d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610f0a565b8585611550816040805160c0830135603482015260a083013560318201526080830135602e8201526060830135601a8201528282013560178201526020808401356014830152923581526048600c8201205f9282018390529281018290525260011c90565b5f838152600960205260409020547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16146115ba576040517fa640d5e000000000000000000000000000000000000000000000000000000000815260048101839052602401610f0a565b5f88815260096020908152604080832080547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff169055600790915281205473ffffffffffffffffffffffffffffffffffffffff169061161a4560646126dd565b90508173ffffffffffffffffffffffffffffffffffffffff1663a774548d828c8c8c8c6040518663ffffffff1660e01b815260040161165c9493929190615035565b5f604051808303815f88803b158015611673575f80fd5b5087f193505050508015611685575060015b505f8a8152600760205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055517fcf0a5b88aeaa4455f33d4a50e7ee5e61255edaad94b95183268b86c5f41f4eff9061170a908c90859091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60405180910390a150505050505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff821661179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152606401610f0a565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526003602052604090205490565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611835576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61183f8383612731565b9392505050565b600180546108b090614caf565b61185e3383836123e8565b5050565b60608167ffffffffffffffff81111561187d5761187d614ecb565b6040519080825280602002602001820160405280156118b057816020015b606081526020019060019003908161189b5790505b5090505f5b82811015611969575f80308686858181106118d2576118d261505e565b90506020028101906118e4919061508b565b6040516118f29291906150ec565b5f60405180830381855af49150503d805f811461192a576040519150601f19603f3d011682016040523d82523d5f602084013e61192f565b606091505b50915091508161194157805160208201fd5b808484815181106119545761195461505e565b602090810291909101015250506001016118b5565b5092915050565b61197b858585610aa7565b73ffffffffffffffffffffffffffffffffffffffff84163b1580611a5a57506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a02906119f69033908a908990899089906004016150fb565b6020604051808303815f875af1158015611a12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a369190614e95565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b611ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610f0a565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c1615611b36576040517f6f5ffb7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b3f3361251c565b8080421115611b7a576040517f70f65caa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b84848461276e565b506109d55f61251c565b5f8181526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361185e576040517f80e05c0000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80611c7d610b61565b6040517f190100000000000000000000000000000000000000000000000000000000000081526002810191909152602281019390935250506042902090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff163b5f03611ed8576041869003611d1b57611cf286880188615157565b909350915086866040818110611d0a57611d0a61505e565b919091013560f81c9150611da49050565b6040869003611d72575f611d3187890189615157565b9094507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811693509050611d6a60ff82901c601b6151a4565b915050611da4565b6040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080515f8082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611df5573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611e6d576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ed2576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611fec565b6040517f1626ba7e0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff861690631626ba7e90611f309089908c908c906004016151bd565b602060405180830381865afa158015611f4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f6f9190614e95565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f1626ba7e00000000000000000000000000000000000000000000000000000000146107b6576040517fb0669cbc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152600660209081526040808320600885901c808552925282208054600160ff861690811b918218928390559293909190818316900361207a576040517f1fb09b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b5f8181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d000000000000000000000000000000000000000000006044820152606401610f0a565b73ffffffffffffffffffffffffffffffffffffffff821661218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152606401610f0a565b3373ffffffffffffffffffffffffffffffffffffffff841614806121e1575073ffffffffffffffffffffffffffffffffffffffff83165f90815260056020908152604080832033845290915290205460ff165b8061220e57505f8181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b612274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610f0a565b73ffffffffffffffffffffffffffffffffffffffff8084165f81815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f838152600760205260408082205490516024810186905273ffffffffffffffffffffffffffffffffffffffff8581166044830152848116606483015290911691906123b79083907f876fda070000000000000000000000000000000000000000000000000000000090608401611383565b905080611ac057611ac07f263bc7b500000000000000000000000000000000000000000000000000000000836126aa565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b5f8061248b8484612842565b6040517f1e2eaeaf0000000000000000000000000000000000000000000000000000000081526004810182905290915073ffffffffffffffffffffffffffffffffffffffff861690631e2eaeaf906024015b602060405180830381865afa1580156124f8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da491906151d6565b807f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d50565b8281811461257c576040517faaad13f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8181101561207a575f8686838181106125995761259961505e565b919091013560f81c91506125d29050818686858181106125bb576125bb61505e565b90506020028101906125cd919061508b565b612892565b5060010161257e565b5f6125e58261109d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061264357505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b8061183f575060055f6126558461109d565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182015f9081209187168152925290205460ff16905092915050565b5f805f8351602085015f875af19392505050565b3d60405183815282600482015260406024820152816044820152815f606483013e602080601f8401040260640191508181fd5b5f61271082111561271a576040517fdeaa01e600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61271061272783856151ed565b61183f9190615204565b6060365f365f6127418787612a9a565b935093509350935061275584848484612542565b505060408051602081019091525f815295945050505050565b6040517f48c8949100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906348c89491906127e2908590859060040161523c565b5f604051808303815f875af11580156127fd573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109d5919081019061524f565b5f8061284d84612af7565b90505f61285b600683615301565b6040805160208101879052908101829052909150606001604051602081830303815290604052805190602001209250505092915050565b60098310156129b557826128da575f365f805f365f6128b18989612b33565b96509650965096509650965096506128ce87878787878787612b69565b50505050505050505050565b60018303612910575f365f805f365f6128f38989612b33565b96509650965096509650965096506128ce87878787878787612cf3565b6002830361294e57365f805f80365f6129298989612e6f565b96509650965096509650965096506128ce8787878761294788612e95565b8787612f42565b60038303612980575f365f80365f612966888861303b565b955095509550955095509550610a9c868686868686613069565b6040517f5cda29d700000000000000000000000000000000000000000000000000000000815260048101849052602401610f0a565b601183036129ce5781356020830135611ac08282613232565b601583036129ed5781356020830135604084013561207a838383613270565b60098303612a1d5781356020830135604084013561207a83612a0e83613298565b612a1885876132cb565b61332e565b60128303612a4d5781356020830135604084013561207a83612a3e84612e95565b612a48848761350e565b61351d565b60178303612a60578135611062816135c5565b60188303612a795781356020830135611ac08282613654565b601983036129805781356020830135611ac082612a9583612e95565b61370e565b813582016020818101913590848101358501808201918135918790038082019190830101861015612aed577f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5092959194509250565b6040515f90612b16908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b813560208301610100840135610120850135610140860135365f612b598989600b613757565b9150915092959891949750929550565b7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c87612b9682826125db565b612be4576040517f0ca968d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610f0a565b8888612c49816040805160c0830135603482015260a083013560318201526080830135602e8201526060830135601a8201528282013560178201526020808401356014830152923581526048600c8201205f9282018390529281018290525260011c90565b5f838152600960205260409020547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1614612cb3576040517fa640d5e000000000000000000000000000000000000000000000000000000000815260048101839052602401610f0a565b5f80612cca8c612cc28d613773565b8f8b8b6137a5565b91509150612ce48a8a612cdd85856138cd565b9190613913565b50505050505050505050505050565b7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c87612d2082826125db565b612d6e576040517f0ca968d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610f0a565b8888612dd3816040805160c0830135603482015260a083013560318201526080830135602e8201526060830135601a8201528282013560178201526020808401356014830152923581526048600c8201205f9282018390529281018290525260011c90565b5f838152600960205260409020547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1614612e3d576040517fa640d5e000000000000000000000000000000000000000000000000000000000815260048101839052602401610f0a565b5f80612e558c612e4c8d613773565b612cc290615314565b91509150612ce48a8a612e6885856138cd565b91906139f0565b8160e0810135610100820135610120830135610140840135365f612b598789600b613757565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73ffffffffffffffffffffffffffffffffffffffff831601612efa577f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c61089e565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff831601612f3e575030919050565b5090565b6008805460018101909155612f578482613a9c565b5f80612f6e8a612f668b613773565b8588886137a5565b91509150612f818888612cdd85856138cd565b612ff7612fe78b6040805160c0830135603482015260a083013560318201526080830135602e8201526060830135601a8201528282013560178201526020808401356014830152923581526048600c8201205f9282018390529281018290525260011c90565b5f85815260096020526040902055565b827f6cd04883f8403d89a9190c0a8c58275a0cd6a294ebca6f5e90f119f626b375848b604051613027919061534a565b60405180910390a250505050505050505050565b813560208301610100840135610120850135365f61305b8888600a613757565b915091509295509295509295565b7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c8661309682826125db565b6130e4576040517f0ca968d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610f0a565b8787613149816040805160c0830135603482015260a083013560318201526080830135602e8201526060830135601a8201528282013560178201526020808401356014830152923581526048600c8201205f9282018390529281018290525260011c90565b5f838152600960205260409020547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16146131b3576040517fa640d5e000000000000000000000000000000000000000000000000000000000815260048101839052602401610f0a565b5f6131be8b8b610f13565b6fffffffffffffffffffffffffffffffff169050801561320e575f806131f88c6131e785613773565b6131f090615314565b8f8c8c6137a5565b9150915061320b8b8b612e6885856138cd565b50505b5f8b8152600960205260408120556132258b613c33565b5050505050505050505050565b7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c6132628382612a1882613d7b565b6109d58282612a1885613d7b565b5f61327a82612e95565b905061328a8482612a4887613e1b565b6110628382612a4886613e1b565b5f816132a4573061089e565b7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c61089e565b5f7f80000000000000000000000000000000000000000000000000000000000000008303613319576133128273ffffffffffffffffffffffffffffffffffffffff16613eb2565b905061089e565b826133275761331282613d7b565b5090919050565b73ffffffffffffffffffffffffffffffffffffffff83166133d9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af11580156133b4573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061106291906151d6565b6040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a5841194906024015f604051808303815f87803b15801561345f575f80fd5b505af1158015613471573d5f803e3d5ffd5b50505050613480838383613f61565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af11580156134ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106291906151d6565b5f826133275761331282613e1b565b6040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528381166024830152604482018390527f00000000000000000000000000000000000000000000000000000000000000001690630b0d9c09906064015b5f604051808303815f87803b1580156135b3575f80fd5b505af1158015611fec573d5f803e3d5ffd5b5f61360773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016308461406b565b90507f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c5f821215613641576109d58382612a1885615314565b5f8213156109d5576109d583828461351d565b5f61365e83613e1b565b90508181116136e2576040517f80f0b44c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906380f0b44c9060440161359c565b6109d5837f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c8361351d565b5f61372e8373ffffffffffffffffffffffffffffffffffffffff16613eb2565b905080156109d5576109d573ffffffffffffffffffffffffffffffffffffffff841683836140e1565b365f805f6137668787876141dc565b9890975095505050505050565b805f811215611128576111287f93dafdf10000000000000000000000000000000000000000000000000000000061423f565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635a6bcfda885f0160405180608001604052808b60a00160208101906138049190614eb0565b60020b815260200161381c60e08d0160c08e01614eb0565b60020b81526020018a81526020018981525087876040518563ffffffff1660e01b815260040161384f9493929190615358565b60408051808303815f875af115801561386a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061388e91906153a7565b5f87815260096020526040902054919350915060ff1c156138c3576138c3856138bc368a90038a018a6153c9565b8884614247565b9550959350505050565b5f608082811d9084901d03600f83810b9085900b03610da46138ee836142df565b6138f7836142df565b6fffffffffffffffffffffffffffffffff1660809190911b1790565b5f61391e8460801d90565b600f0b12801561396357506139338360801d90565b61393c9061543a565b6fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff16105b806139b957505f61397484600f0b90565b600f0b1280156139b9575061398983600f0b90565b6139929061543a565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16105b156109d5576040517fe377983c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816fffffffffffffffffffffffffffffffff16613a18613a108560801d90565b600f0b614314565b6fffffffffffffffffffffffffffffffff161080613a655750806fffffffffffffffffffffffffffffffff16613a51613a1085600f0b90565b6fffffffffffffffffffffffffffffffff16105b156109d5576040517f9ad5ea6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152606401610f0a565b5f8181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e5445440000000000000000000000000000000000006044820152606401610f0a565b73ffffffffffffffffffffffffffffffffffffffff82165f81815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f8181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680613cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152606401610f0a565b73ffffffffffffffffffffffffffffffffffffffff81165f81815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558583526002825280832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915560049092528083208054909216909155518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b5f80613dbe73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016308561406b565b90505f811315613e12576040517f3351b26000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610f0a565b61183f81615314565b5f80613e5e73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016308561406b565b90505f81121561089e576040517f4c085bf100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610f0a565b5f73ffffffffffffffffffffffffffffffffffffffff8216613ed5575047919050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015613f3d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e91906151d6565b3073ffffffffffffffffffffffffffffffffffffffff831603613fbf576109d573ffffffffffffffffffffffffffffffffffffffff84167f0000000000000000000000000000000000000000000000000000000000000000836140e1565b6040517f36c7851600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152828116604483015284811660648301527f000000000000000000000000000000000000000000000000000000000000000016906336c785169060840161359c565b5f8073ffffffffffffffffffffffffffffffffffffffff84165f5273ffffffffffffffffffffffffffffffffffffffff831660205260405f2090508473ffffffffffffffffffffffffffffffffffffffff1663f135baaa826040518263ffffffff1660e01b81526004016124dd91815260200190565b5f73ffffffffffffffffffffffffffffffffffffffff841661413b575f805f8085875af1905080614136576141367f8549db5900000000000000000000000000000000000000000000000000000000846126aa565b611062565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f60408201525080611062576110627fb12c5f9c00000000000000000000000000000000000000000000000000000000856126aa565b600581901b8301358301803590602080820191869003016141fd8184615301565b851015614236576040517f3b99b53d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50935093915050565b805f5260045ffd5b5f8481526007602052604080822054905173ffffffffffffffffffffffffffffffffffffffff90911691906142ae9083907fa6ae447d0000000000000000000000000000000000000000000000000000000090611383908a908a908a908a90602401615476565b90508061207a5761207a7f0ab45b4000000000000000000000000000000000000000000000000000000000836126aa565b80600f81900b8114611128576111287f93dafdf10000000000000000000000000000000000000000000000000000000061423f565b5f8082600f0b1215612f3e57612f3e7f93dafdf10000000000000000000000000000000000000000000000000000000061423f565b73ffffffffffffffffffffffffffffffffffffffff8116811461436a575f80fd5b50565b803561112881614349565b5f8083601f840112614388575f80fd5b50813567ffffffffffffffff81111561439f575f80fd5b6020830191508360208285010111156143b6575f80fd5b9250929050565b5f805f80606085870312156143d0575f80fd5b84356143db81614349565b9350602085013567ffffffffffffffff8111156143f6575f80fd5b850160608188031215614407575f80fd5b9250604085013567ffffffffffffffff811115614422575f80fd5b61442e87828801614378565b95989497509550505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461436a575f80fd5b5f60208284031215614477575f80fd5b813561183f8161443a565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61183f6020830184614482565b5f602082840312156144f0575f80fd5b5035919050565b5f8060408385031215614508575f80fd5b823561451381614349565b946020939093013593505050565b5f805f805f8060a08789031215614536575f80fd5b863561454181614349565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614571575f80fd5b61457d89828a01614378565b979a9699509497509295939492505050565b5f805f606084860312156145a1575f80fd5b83356145ac81614349565b925060208401356145bc81614349565b929592945050506040919091013590565b5f805f808486036101008112156145e2575f80fd5b85356145ed81614349565b945060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08201121561461e575f80fd5b5060208501925060e085013567ffffffffffffffff811115614422575f80fd5b80358015158114611128575f80fd5b5f805f805f805f60c0888a031215614663575f80fd5b873561466e81614349565b9650602088013561467e81614349565b955061468c6040890161463e565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156146b5575f80fd5b6146c18a828b01614378565b989b979a50959850939692959293505050565b5f805f8084860360e08112156146e8575f80fd5b60a08112156146f5575f80fd5b5084935060a085013561470781614349565b925060c085013567ffffffffffffffff811115614422575f80fd5b5f60e08284031215614732575f80fd5b50919050565b5f80610100838503121561474a575f80fd5b8235915061475b8460208501614722565b90509250929050565b5f8083601f840112614774575f80fd5b50813567ffffffffffffffff81111561478b575f80fd5b6020830191508360208260051b85010111156143b6575f80fd5b5f805f80604085870312156147b8575f80fd5b843567ffffffffffffffff8111156147ce575f80fd5b6147da87828801614378565b909550935050602085013567ffffffffffffffff8111156147f9575f80fd5b61442e87828801614764565b5f805f805f610140868803121561481a575f80fd5b8535945061482b8760208801614722565b935061010086013561483c81614349565b925061012086013567ffffffffffffffff811115614858575f80fd5b61486488828901614378565b969995985093965092949392505050565b5f805f806101208587031215614889575f80fd5b8435935061489a8660208701614722565b925061010085013567ffffffffffffffff811115614422575f80fd5b5f602082840312156148c6575f80fd5b813561183f81614349565b5f80602083850312156148e2575f80fd5b823567ffffffffffffffff8111156148f8575f80fd5b61490485828601614378565b90969095509350505050565b5f8060408385031215614921575f80fd5b823561492c81614349565b915061475b6020840161463e565b5f806020838503121561494b575f80fd5b823567ffffffffffffffff811115614961575f80fd5b61490485828601614764565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156149e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526149cd858351614482565b94506020938401939190910190600101614993565b50929695505050505050565b5f805f805f60808688031215614a02575f80fd5b8535614a0d81614349565b94506020860135614a1d81614349565b935060408601359250606086013567ffffffffffffffff811115614858575f80fd5b5f805f60408486031215614a51575f80fd5b833567ffffffffffffffff811115614a67575f80fd5b614a7386828701614378565b909790965060209590950135949350505050565b5f8060408385031215614a98575f80fd5b8235614aa381614349565b91506020830135614ab381614349565b809150509250929050565b803565ffffffffffff81168114611128575f80fd5b8035614ade81614349565b73ffffffffffffffffffffffffffffffffffffffff1682526020810135614b0481614349565b73ffffffffffffffffffffffffffffffffffffffff16602083015265ffffffffffff614b3260408301614abe565b16604083015265ffffffffffff614b4b60608301614abe565b1660608301525050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152606060208201525f60c0820185357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1873603018112614bf2575f80fd5b860160208101903567ffffffffffffffff811115614c0e575f80fd5b8060071b3603821315614c1f575f80fd5b60608581015291829052905f9060e085015b81831015614c5657614c438185614ad3565b6080938401936001939093019201614c31565b614c6260208a0161436d565b73ffffffffffffffffffffffffffffffffffffffff16608087015260408981013560a08801819052878303918801919091529350614ca181888a614b55565b9a9950505050505050505050565b600181811c90821680614cc357607f821691505b602082108103614732577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff85168152614d206020820185614ad3565b5f6080850135614d2f81614349565b73ffffffffffffffffffffffffffffffffffffffff1660a08381019190915285013560c083015261010060e08301819052614d6d9083018486614b55565b9695505050505050565b803562ffffff81168114611128575f80fd5b8060020b811461436a575f80fd5b8035614da281614349565b73ffffffffffffffffffffffffffffffffffffffff1682526020810135614dc881614349565b73ffffffffffffffffffffffffffffffffffffffff16602083015262ffffff614df360408301614d77565b1660408301526060810135614e0781614d89565b60020b60608301526080810135614e1d81614349565b73ffffffffffffffffffffffffffffffffffffffff81166080840152505050565b614e488186614d97565b73ffffffffffffffffffffffffffffffffffffffff841660a082015260e060c08201525f614d6d60e083018486614b55565b5f60208284031215614e8a575f80fd5b815161183f81614d89565b5f60208284031215614ea5575f80fd5b815161183f8161443a565b5f60208284031215614ec0575f80fd5b813561183f81614d89565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614f3f57614f3f614ecb565b604052919050565b5f60a08284031215614f57575f80fd5b60405160a0810167ffffffffffffffff81118282101715614f7a57614f7a614ecb565b6040529050808235614f8b81614349565b81526020830135614f9b81614349565b6020820152614fac60408401614d77565b60408201526060830135614fbf81614d89565b60608201526080830135614fd281614349565b6080919091015292915050565b5f60a08284031215614fef575f80fd5b61183f8383614f47565b6150038282614d97565b60a081013561501181614d89565b60020b60a083015260c081013561502781614d89565b8060020b60c0840152505050565b8481526150456020820185614ff9565b6101206101008201525f614d6d61012083018486614b55565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126150be575f80fd5b83018035915067ffffffffffffffff8211156150d8575f80fd5b6020019150368190038213156143b6575f80fd5b818382375f9101908152919050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152836040820152608060608201525f61514c608083018486614b55565b979650505050505050565b5f8060408385031215615168575f80fd5b50508035926020909101359150565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff818116838216019081111561089e5761089e615177565b838152604060208201525f610da4604083018486614b55565b5f602082840312156151e6575f80fd5b5051919050565b808202811582820484141761089e5761089e615177565b5f82615237577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b602081525f610fcd602083018486614b55565b5f6020828403121561525f575f80fd5b815167ffffffffffffffff811115615275575f80fd5b8201601f81018413615285575f80fd5b805167ffffffffffffffff81111561529f5761529f614ecb565b6152d060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614ef8565b8181528560208385010111156152e4575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b8082018082111561089e5761089e615177565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361534457615344615177565b505f0390565b60e0810161089e8284614ff9565b6153628186614d97565b835160020b60a0820152602084015160020b60c0820152604084015160e082015260608401516101008201526101406101208201525f614d6d61014083018486614b55565b5f80604083850312156153b8575f80fd5b505080516020909101519092909150565b5f60e08284031280156153da575f80fd5b506040516060810167ffffffffffffffff811182821017156153fe576153fe614ecb565b60405261540b8484614f47565b815260a083013561541b81614d89565b602082015260c083013561542e81614d89565b60408201529392505050565b5f81600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361546e5761546e615177565b5f0392915050565b5f61014082019050858252845173ffffffffffffffffffffffffffffffffffffffff815116602084015273ffffffffffffffffffffffffffffffffffffffff602082015116604084015262ffffff6040820151166060840152606081015160020b608084015273ffffffffffffffffffffffffffffffffffffffff60808201511660a084015250602085015161551160c084018260020b9052565b50604085015161552660e084018260020b9052565b5061010082019390935261012001529291505056fea2646970667358221220c30b8b0386f2b6244c7ceb9a27e3a9944aa04174e0ed871e016d80b8f6caebdb64736f6c634300081a003300000000000000000000000039bf2eff94201cfaa471932655404f63315147a4000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3", + "nonce": "0x23", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x72f892", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x6868534dcf11b1774abdd69602eee0fc3b3d77b9f5e13437dedf8fbb145dea2c", + "transactionIndex": "0xd", + "blockHash": "0xa09987571186d1c7aeb03045042967627f80c1b6ce6773c166a9630a01758496", + "blockNumber": "0xd42418", + "gasUsed": "0x49c48d", + "effectiveGasPrice": "0x3140", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xa2f16f0bb5dea7c9a6675ec88193471dee805e6e", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x86b5d5b1a8", + "l1GasPrice": "0xcde1c41a", + "l1GasUsed": "0x25249" + } + ], + "libraries": [], + "pending": [], + "returns": { + "posm": { + "internal_type": "contract PositionManager", + "value": "0xA2f16f0BB5dEA7c9A6675Ec88193471dEe805e6e" + } + }, + "timestamp": 1723574053, + "chain": 84532, + "commit": "d0faf02" +} \ No newline at end of file diff --git a/broadcast/DeployQuoter.s.sol/84532/run-latest.json b/broadcast/DeployQuoter.s.sol/84532/run-latest.json new file mode 100644 index 00000000..03e79da6 --- /dev/null +++ b/broadcast/DeployQuoter.s.sol/84532/run-latest.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0xa0b95b295011dabcdde8df00f3ea4dec3c06b28a0e887dfa1f4d09284377bfee", + "transactionType": "CREATE", + "contractName": "Quoter", + "contractAddress": "0xf3a39c86dbd13c45365e57fb90fe413371f65af8", + "function": null, + "arguments": [ + "0x39BF2eFF94201cfAA471932655404F63315147a4" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x373b67", + "value": "0x0", + "input": "0x60a0604052348015600e575f80fd5b5060405161323f38038061323f833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f80fd5b81516001600160a01b0381168114605f575f80fd5b9392505050565b60805161317b6100c45f395f81816101a1015281816102570152818161038e015281816103fa015281816105900152818161071001528181610d0001528181610da0015281816112bd015281816113640152611621015261317b5ff3fe608060405234801561000f575f80fd5b50600436106100b9575f3560e01c806391dd734611610072578063ca253dc911610058578063ca253dc914610176578063ceebece714610189578063dc4c90d31461019c575f80fd5b806391dd734614610150578063aa2f150114610163575f80fd5b8063147d2af9116100a2578063147d2af91461010857806354b20ff61461012a5780636a36a38c1461013d575f80fd5b806302a00c25146100bd57806311359648146100e6575b5f80fd5b6100d06100cb366004611f55565b6101e8565b6040516100dd9190611fe0565b60405180910390f35b6100f96100f4366004612240565b6103f4565b6040516100dd93929190612332565b61011b610116366004612399565b610589565b6040516100dd93929190612540565b6100f9610138366004612240565b61070a565b6100d061014b3660046125ef565b6108d3565b6100d061015e366004612626565b610d86565b6100d06101713660046125ef565b610e0a565b61011b610184366004612399565b61135d565b6100d0610197366004611f55565b6113b7565b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100dd565b6060333014610223576040517f29c3b7ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61027d61024061023936869003860186612694565b60a0902090565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690611537565b509092505f9150819050806102ea61029a36889003880188612694565b6102aa60c0890160a08a016126ae565b6102ba60e08a0160c08b016126c7565b600f0b6102c69061270d565b6102d76101008b0160e08c01612743565b6102e56101008c018c61275e565b61161c565b919450925090505f60025b60405190808252806020026020018201604052801561031e578160200160208202803683370190505b50905061032b8460801d90565b610334906127c6565b815f8151811061034657610346612802565b600f92830b602091820292909201015284900b610362906127c6565b8160018151811061037557610375612802565b600f9290920b602092830291909101909101525f6103c37f00000000000000000000000000000000000000000000000000000000000000006103bc368b90038b018b612694565b88866117a8565b90505f8285836040516020016103db93929190612332565b6040516020818303038152906040529050805181602001fd5b60605f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c894916302a00c2560e01b8660405160240161044d919061282f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e084901b90921682526104dd91600401611fe0565b5f604051808303815f875af192505050801561053857506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105359190810190612922565b60015b610580573d808015610565576040519150601f19603f3d011682016040523d82523d5f602084013e61056a565b606091505b5061057481611af9565b93509350935050610582565b505b9193909250565b60608060607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c8949163aa2f150160e01b866040516024016105e39190612997565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e084901b909216825261067391600401611fe0565b5f604051808303815f875af19250505080156106ce57506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106cb9190810190612922565b60015b610580573d8080156106fb576040519150601f19603f3d011682016040523d82523d5f602084013e610700565b606091505b5061057481611b29565b60605f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c8949163ceebece760e01b86604051602401610763919061282f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e084901b90921682526107f391600401611fe0565b5f604051808303815f875af192505050801561084e57506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261084b9190810190612922565b60015b610580573d80801561087b576040519150601f19603f3d011682016040523d82523d5f602084013e610880565b606091505b50846060015173ffffffffffffffffffffffffffffffffffffffff165f036108ca575f80547fffffffffffffffffffffffffffffffff000000000000000000000000000000001690555b61057481611af9565b606033301461090e576040517f29c3b7ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61091c6020840184612ac9565b905090505f60405180606001604052808360016109399190612b2d565b67ffffffffffffffff81111561095157610951611ff2565b60405190808252806020026020018201604052801561097a578160200160208202803683370190505b5081526020018367ffffffffffffffff81111561099957610999611ff2565b6040519080825280602002602001820160405280156109c2578160200160208202803683370190505b5081526020018367ffffffffffffffff8111156109e1576109e1611ff2565b604051908082528060200260200182016040528015610a0a578160200160208202803683370190505b50905260408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290529192505b83811015610d64575f80610aaf8315610a6d578460c00151610a7a565b610a7a60208a018a612743565b610a8760208b018b612ac9565b86818110610a9757610a97612802565b9050602002810190610aa99190612b40565b90611b4d565b91509150610ac16102408360a0902090565b505060020b608086015250610b3b82828515610ae1578660200151610af1565b610af160608c0160408d016126c7565b600f0b610afd9061270d565b5f610b0b60208e018e612ac9565b89818110610b1b57610b1b612802565b9050602002810190610b2d9190612b40565b6102e590608081019061275e565b60020b60a087015273ffffffffffffffffffffffffffffffffffffffff1660e0860152845280610b86578351600f0b610b73906127c6565b845160801d610b81906127c6565b610ba2565b835160801d610b94906127c6565b8451600f0b610ba2906127c6565b600f90810b60608701520b604085018190528551805185908110610bc857610bc8612802565b60200260200101818151610bdc9190612b7c565b600f0b90525060608401518551610bf4856001612b2d565b81518110610c0457610c04612802565b60200260200101818151610c189190612b7c565b600f0b90525080610c2d57835160801d610c33565b8351600f0b5b6fffffffffffffffffffffffffffffffff16602080860191909152610c5a90890189612ac9565b84818110610c6a57610c6a612802565b9050602002810190610c7c9190612b40565b610c8a906020810190612743565b73ffffffffffffffffffffffffffffffffffffffff1660c085015260e08401516020860151805185908110610cc157610cc1612802565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d2f7f00000000000000000000000000000000000000000000000000000000000000008386608001518760a001516117a8565b85604001518481518110610d4557610d45612802565b63ffffffff909216602092830291909101909101525050600101610a50565b505f825f0151836020015184604001516040516020016103db93929190612540565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610df7576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e018383611c84565b90505b92915050565b6060333014610e45576040517f29c3b7ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e536020840184612ac9565b905090505f6040518060600160405280836001610e709190612b2d565b67ffffffffffffffff811115610e8857610e88611ff2565b604051908082528060200260200182016040528015610eb1578160200160208202803683370190505b5081526020018367ffffffffffffffff811115610ed057610ed0611ff2565b604051908082528060200260200182016040528015610ef9578160200160208202803683370190505b5081526020018367ffffffffffffffff811115610f1857610f18611ff2565b604051908082528060200260200182016040528015610f41578160200160208202803683370190505b50905260408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052919250835b801561133b57848114610f9f578260200151610faf565b610faf60608801604089016126c7565b5f80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83161781559092508061104d610ffe60208b018b612ac9565b611009600187612bca565b81811061101857611018612802565b905060200281019061102a9190612b40565b88851461103b578660c00151611b4d565b61104860208c018c612743565b611b4d565b9150915061105f6102408360a0902090565b505060020b6080870152506110ab8282156fffffffffffffffffffffffffffffffff87165f61109160208f018f612ac9565b61109c60018b612bca565b818110610b1b57610b1b612802565b60020b60a088015273ffffffffffffffffffffffffffffffffffffffff1660e087015285525f80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169055801561111e578451600f0b61110b906127c6565b855160801d611119906127c6565b61113a565b845160801d61112c906127c6565b8551600f0b61113a906127c6565b600f90810b60608801520b604086018190528651611159600186612bca565b8151811061116957611169612802565b6020026020010181815161117d9190612b7c565b600f0b9052506060850151865180518590811061119c5761119c612802565b602002602001018181516111b09190612b7c565b600f0b90525080156111cf578451600f0b6111ca906127c6565b6111dd565b845160801d6111dd906127c6565b6fffffffffffffffffffffffffffffffff16602080870191909152611204908a018a612ac9565b61120f600186612bca565b81811061121e5761121e612802565b90506020028101906112309190612b40565b61123e906020810190612743565b73ffffffffffffffffffffffffffffffffffffffff1660c086015260e0850151602087015161126e600186612bca565b8151811061127e5761127e612802565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112ec7f00000000000000000000000000000000000000000000000000000000000000008387608001518860a001516117a8565b60408701516112fc600186612bca565b8151811061130c5761130c612802565b602002602001019063ffffffff16908163ffffffff16815250505050808061133390612bdd565b915050610f88565b505f835f0151846020015185604001516040516020016103db93929190612540565b60608060607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c89491636a36a38c60e01b866040516024016105e39190612997565b60603330146113f2576040517f29c3b7ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611403610100830160e08401612743565b73ffffffffffffffffffffffffffffffffffffffff165f036114705761142f60e0830160c084016126c7565b5f80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b5f61148661024061023936869003860186612694565b509092505f9150819050806114e66114a336889003880188612694565b6114b360c0890160a08a016126ae565b6114c360e08a0160c08b016126c7565b6fffffffffffffffffffffffffffffffff166102d76101008b0160e08c01612743565b5f5492955090935091506fffffffffffffffffffffffffffffffff161561152f575f80547fffffffffffffffffffffffffffffffff000000000000000000000000000000001690555b5f60026102f5565b5f805f805f61154586611d43565b6040517f1e2eaeaf000000000000000000000000000000000000000000000000000000008152600481018290529091505f9073ffffffffffffffffffffffffffffffffffffffff891690631e2eaeaf90602401602060405180830381865afa1580156115b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d79190612c11565b905073ffffffffffffffffffffffffffffffffffffffff811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b5f805f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3cd914c8a60405180606001604052808c151581526020018b815260200161167f8b8e611d7f565b73ffffffffffffffffffffffffffffffffffffffff1681525088886040518563ffffffff1660e01b81526004016116b99493929190612c28565b6020604051808303815f875af11580156116d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f99190612c11565b5f549093506fffffffffffffffffffffffffffffffff161580159061175257508761172d576117288360801d90565b611737565b61173783600f0b90565b5f546fffffffffffffffffffffffffffffffff908116911614155b15611789576040517fe52970aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0892061179690610240565b50949b919a5098509650505050505050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081018290525f60088660600151866117eb9190612d5d565b60020b901d90505f6101008760600151876118069190612d5d565b6118109190612dd0565b90505f60088860600151876118259190612d5d565b60020b901d90505f6101008960600151886118409190612d5d565b61184a9190612dd0565b90505f61187961185b8b60a0902090565b73ffffffffffffffffffffffffffffffffffffffff8d169085611ddb565b9050600160ff83161b8116158015906118a1575060608a015161189c9089612dd0565b60020b155b80156118b257508760020b8960020b135b151560a08701525f6118e66118c88c60a0902090565b73ffffffffffffffffffffffffffffffffffffffff8e169088611ddb565b9050600160ff86161b81161580159061190e575060608b0151611909908b612dd0565b60020b155b801561191f57508860020b8a60020b125b15156080880152600184810b9087900b128061195157508360010b8660010b14801561195157508260ff168560ff1611155b1561197c57600186810b885260ff80871660408a01529085900b60208901528316606088015261199e565b600184810b885260ff80851660408a01529087900b6020890152851660608801525b50505060408401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff9091161b925050505b816020015160010b825f015160010b13611abf57816020015160010b825f015160010b03611a34576060820151611a0a9060ff612df1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff919091161c165b5f611a63611a438860a0902090565b845173ffffffffffffffffffffffffffffffffffffffff8b169190611ddb565b9050818116611a7181611ede565b611a7f9061ffff1686612e0a565b845190955084611a8e82612e26565b60010b9052507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92506119d2915050565b8160a0015115611ad757611ad4600184612e45565b92505b816080015115611aef57611aec600184612e45565b92505b5050949350505050565b60605f80611b0684611f09565b935083806020019051810190611b1c9190612ee7565b9196909550909350915050565b6060806060611b3784611f09565b935083806020019051810190611b1c9190612fa5565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091525f80611b866020860186612743565b90505f8073ffffffffffffffffffffffffffffffffffffffff80841690871610611bb1578286611bb4565b85835b909250905073ffffffffffffffffffffffffffffffffffffffff8087169083161493506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001886020016020810190611c2d9190613095565b62ffffff168152602001611c4760608a0160408b016130ae565b60020b8152602001611c5f60808a0160608b01612743565b73ffffffffffffffffffffffffffffffffffffffff1681525094505050509250929050565b60605f803073ffffffffffffffffffffffffffffffffffffffff168585604051611caf9291906130c7565b5f604051808303815f865af19150503d805f8114611ce8576040519150601f19603f3d011682016040523d82523d5f602084013e611ced565b606091505b50915091508115611d01579150610e049050565b80515f03611d3b576040517fa40afa3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160208201fd5b6040515f90611d62908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b5f73ffffffffffffffffffffffffffffffffffffffff831615611da25782610e01565b81611dcb57611dc6600173fffd8963efd1fc6a506488495d951d5263988d266130d6565b610e01565b610e016401000276a36001613102565b5f80611de684611d43565b90505f611df4600583612b2d565b60408051600187900b60208201529081018290529091505f90606001604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020909101207f1e2eaeaf00000000000000000000000000000000000000000000000000000000825260048201819052915073ffffffffffffffffffffffffffffffffffffffff881690631e2eaeaf90602401602060405180830381865afa158015611eaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed39190612c11565b979650505050505050565b5f805b8215610e045780611ef18161312e565b9150611f009050600184612bca565b83169250611ee1565b60608082511015611f5157816040517f6190b2b0000000000000000000000000000000000000000000000000000000008152600401611f489190611fe0565b60405180910390fd5b5090565b5f60208284031215611f65575f80fd5b813567ffffffffffffffff811115611f7b575f80fd5b82016101208185031215611f8d575f80fd5b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610e016020830184611f94565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561204257612042611ff2565b60405290565b6040516060810167ffffffffffffffff8111828210171561204257612042611ff2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156120b2576120b2611ff2565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff811681146120db575f80fd5b50565b803562ffffff811681146120f0575f80fd5b919050565b8035600281900b81146120f0575f80fd5b5f60a08284031215612116575f80fd5b61211e61201f565b9050813561212b816120ba565b8152602082013561213b816120ba565b602082015261214c604083016120de565b604082015261215d606083016120f5565b60608201526080820135612170816120ba565b608082015292915050565b803580151581146120f0575f80fd5b80356fffffffffffffffffffffffffffffffff811681146120f0575f80fd5b5f67ffffffffffffffff8211156121c2576121c2611ff2565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f8301126121fd575f80fd5b813561221061220b826121a9565b61206b565b818152846020838601011115612224575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612250575f80fd5b813567ffffffffffffffff811115612266575f80fd5b82016101208185031215612278575f80fd5b61228061201f565b61228a8583612106565b815261229860a0830161217b565b60208201526122a960c0830161218a565b604082015260e08201356122bc816120ba565b606082015261010082013567ffffffffffffffff8111156122db575f80fd5b6122e7868285016121ee565b608083015250949350505050565b5f8151808452602084019350602083015f5b82811015612328578151600f0b865260209586019590910190600101612307565b5093949350505050565b606081525f61234460608301866122f5565b905073ffffffffffffffffffffffffffffffffffffffff8416602083015263ffffffff83166040830152949350505050565b5f67ffffffffffffffff82111561238f5761238f611ff2565b5060051b60200190565b5f602082840312156123a9575f80fd5b813567ffffffffffffffff8111156123bf575f80fd5b8201606081850312156123d0575f80fd5b6123d8612048565b81356123e3816120ba565b8152602082013567ffffffffffffffff8111156123fe575f80fd5b8201601f8101861361240e575f80fd5b803561241c61220b82612376565b8082825260208201915060208360051b85010192508883111561243d575f80fd5b602084015b8381101561251d57803567ffffffffffffffff811115612460575f80fd5b850160a0818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215612493575f80fd5b61249b61201f565b60208201356124a9816120ba565b81526124b7604083016120de565b60208201526124c8606083016120f5565b604082015260808201356124db816120ba565b606082015260a082013567ffffffffffffffff8111156124f9575f80fd5b6125088d6020838601016121ee565b60808301525084525060209283019201612442565b506020850152506125339150506040830161218a565b6040820152949350505050565b606081525f61255260608301866122f5565b82810360208401528085518083526020830191506020870192505f5b818110156125a257835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161256e565b50508381036040850152845180825260209182019250908501905f5b818110156125e257825163ffffffff168452602093840193909201916001016125be565b5091979650505050505050565b5f602082840312156125ff575f80fd5b813567ffffffffffffffff811115612615575f80fd5b820160608185031215611f8d575f80fd5b5f8060208385031215612637575f80fd5b823567ffffffffffffffff81111561264d575f80fd5b8301601f8101851361265d575f80fd5b803567ffffffffffffffff811115612673575f80fd5b856020828401011115612684575f80fd5b6020919091019590945092505050565b5f60a082840312156126a4575f80fd5b610e018383612106565b5f602082840312156126be575f80fd5b610e018261217b565b5f602082840312156126d7575f80fd5b610e018261218a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7f8000000000000000000000000000000000000000000000000000000000000000820361273d5761273d6126e0565b505f0390565b5f60208284031215612753575f80fd5b8135611f8d816120ba565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612791575f80fd5b83018035915067ffffffffffffffff8211156127ab575f80fd5b6020019150368190038213156127bf575f80fd5b9250929050565b5f81600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081036127fa576127fa6126e0565b5f0392915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b602081526128b660208201835173ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b6020820151151560c08201526fffffffffffffffffffffffffffffffff60408301511660e082015273ffffffffffffffffffffffffffffffffffffffff6060830151166101008201525f60808301516101208084015261291a610140840182611f94565b949350505050565b5f60208284031215612932575f80fd5b815167ffffffffffffffff811115612948575f80fd5b8201601f81018413612958575f80fd5b805161296661220b826121a9565b81815285602083850101111561297a575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b602081525f6080820173ffffffffffffffffffffffffffffffffffffffff845116602084015260208401516060604085015281815180845260a08601915060a08160051b87010193506020830192505f5b81811015612aa0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018352835173ffffffffffffffffffffffffffffffffffffffff815116865262ffffff6020820151166020870152604081015160020b604087015273ffffffffffffffffffffffffffffffffffffffff60608201511660608701526080810151905060a06080870152612a8a60a0870182611f94565b95505060209384019392909201916001016129e8565b5050505060408401516fffffffffffffffffffffffffffffffff81166060850152509392505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612afc575f80fd5b83018035915067ffffffffffffffff821115612b16575f80fd5b6020019150600581901b36038213156127bf575f80fd5b80820180821115610e0457610e046126e0565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112612b72575f80fd5b9190910192915050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff8000000000000000000000000000000082121715610e0457610e046126e0565b81810381811115610e0457610e046126e0565b5f81612beb57612beb6126e0565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b5f60208284031215612c21575f80fd5b5051919050565b612ca7818673ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b8351151560a0820152602084015160c082015273ffffffffffffffffffffffffffffffffffffffff60408501511660e08201526101206101008201528161012082015281836101408301375f81830161014090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f8160020b8360020b80612d7357612d73612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083141615612dc757612dc76126e0565b90059392505050565b5f8260020b80612de257612de2612d30565b808360020b0791505092915050565b60ff8281168282160390811115610e0457610e046126e0565b63ffffffff8181168382160190811115610e0457610e046126e0565b5f8160010b617fff8103612e3c57612e3c6126e0565b60010192915050565b63ffffffff8281168282160390811115610e0457610e046126e0565b5f82601f830112612e70575f80fd5b8151612e7e61220b82612376565b8082825260208201915060208360051b860101925085831115612e9f575f80fd5b602085015b83811015612eca57805180600f0b8114612ebc575f80fd5b835260209283019201612ea4565b5095945050505050565b805163ffffffff811681146120f0575f80fd5b5f805f60608486031215612ef9575f80fd5b835167ffffffffffffffff811115612f0f575f80fd5b612f1b86828701612e61565b9350506020840151612f2c816120ba565b9150612f3a60408501612ed4565b90509250925092565b5f82601f830112612f52575f80fd5b8151612f6061220b82612376565b8082825260208201915060208360051b860101925085831115612f81575f80fd5b602085015b83811015612eca57612f9781612ed4565b835260209283019201612f86565b5f805f60608486031215612fb7575f80fd5b835167ffffffffffffffff811115612fcd575f80fd5b612fd986828701612e61565b935050602084015167ffffffffffffffff811115612ff5575f80fd5b8401601f81018613613005575f80fd5b805161301361220b82612376565b8082825260208201915060208360051b850101925088831115613034575f80fd5b6020840193505b8284101561305f57835161304e816120ba565b82526020938401939091019061303b565b80955050505050604084015167ffffffffffffffff81111561307f575f80fd5b61308b86828701612f43565b9150509250925092565b5f602082840312156130a5575f80fd5b610e01826120de565b5f602082840312156130be575f80fd5b610e01826120f5565b818382375f9101908152919050565b73ffffffffffffffffffffffffffffffffffffffff8281168282160390811115610e0457610e046126e0565b73ffffffffffffffffffffffffffffffffffffffff8181168382160190811115610e0457610e046126e0565b5f61ffff821661ffff8103612e3c57612e3c6126e056fea2646970667358221220f4ba8ac14ae069bff9e4bdb1bfce63907204639259133b9a38d025cd4de5dbec64736f6c634300081a003300000000000000000000000039bf2eff94201cfaa471932655404f63315147a4", + "nonce": "0x24", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x8011e1", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa0b95b295011dabcdde8df00f3ea4dec3c06b28a0e887dfa1f4d09284377bfee", + "transactionIndex": "0x10", + "blockHash": "0x68745f3e8f86f7a5ddfb12843e78cdef8cb4b4ddfd34db01174297d0a0e7f944", + "blockNumber": "0xd4244a", + "gasUsed": "0x2a7c77", + "effectiveGasPrice": "0x33d5", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0xf3a39c86dbd13c45365e57fb90fe413371f65af8", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x51d75ab15c", + "l1GasPrice": "0xd549e132", + "l1GasUsed": "0x15c82" + } + ], + "libraries": [], + "pending": [], + "returns": { + "state": { + "internal_type": "contract Quoter", + "value": "0xf3A39C86dbd13C45365E57FB90fe413371F65AF8" + } + }, + "timestamp": 1723574153, + "chain": 84532, + "commit": "d0faf02" +} \ No newline at end of file diff --git a/broadcast/DeployStateView.s.sol/84532/run-latest.json b/broadcast/DeployStateView.s.sol/84532/run-latest.json new file mode 100644 index 00000000..6fe34b0a --- /dev/null +++ b/broadcast/DeployStateView.s.sol/84532/run-latest.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0xb998c1967306d62218346705921f76c078f25ae631d8102ebc9960c3e48794cf", + "transactionType": "CREATE", + "contractName": "StateView", + "contractAddress": "0xfb3e0c6f74eb1a21cc1da29aec80d2dfe6c9a317", + "function": null, + "arguments": [ + "0x39BF2eFF94201cfAA471932655404F63315147a4" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x1466f7", + "value": "0x0", + "input": "0x60a0604052348015600e575f80fd5b5060405161127d38038061127d833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f80fd5b81516001600160a01b0381168114605f575f80fd5b9392505050565b6080516111b26100cb5f395f818161027f0152818161032801528181610374015281816103c60152818161041901528181610468015281816104b801528181610505015281816105560152818161059a015281816105f0015261063201526111b25ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c8063c815641c1161007d578063dc4c90d311610058578063dc4c90d31461027a578063f0928f29146102c6578063fa6793d5146102fa575f80fd5b8063c815641c146101d1578063caedab5414610229578063dacf1d2f14610267575f80fd5b80638a2bb9e6116100ad5780638a2bb9e61461016a57806397fd7b421461017d5780639ec538c8146101be575f80fd5b80631c7ccb4c146100d357806353e9c1fb146100f95780637c40f1fe14610121575b5f80fd5b6100e66100e1366004610ecb565b61030d565b6040519081526020015b60405180910390f35b61010c610107366004610f15565b610358565b604080519283526020830191909152016100f0565b61013461012f366004610f4e565b6103a8565b604080516fffffffffffffffffffffffffffffffff9095168552600f9390930b60208501529183015260608201526080016100f0565b61010c610178366004610f4e565b6103fd565b61019061018b366004610f78565b61044b565b604080516fffffffffffffffffffffffffffffffff90941684526020840192909252908201526060016100f0565b61010c6101cc366004610f98565b61049c565b6101e46101df366004610f98565b6104e7565b6040805173ffffffffffffffffffffffffffffffffffffffff909516855260029390930b602085015262ffffff918216928401929092521660608201526080016100f0565b61023c610237366004610f4e565b61053a565b604080516fffffffffffffffffffffffffffffffff9093168352600f9190910b6020830152016100f0565b610190610275366004610faf565b61057d565b6102a17f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f0565b6102d96102d4366004610f78565b6105d5565b6040516fffffffffffffffffffffffffffffffff90911681526020016100f0565b6102d9610308366004610f98565b610617565b5f61034f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168484610658565b90505b92915050565b5f8061039c73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686868661075b565b91509150935093915050565b5f8080806103ed73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001687876107f7565b9299919850965090945092505050565b5f8061044073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685856108fa565b915091509250929050565b5f808061048f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686866109e8565b9250925092509250925092565b5f806104de73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684610acf565b91509150915091565b5f80808061052b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686610b48565b93509350935093509193509193565b5f8061044073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168585610c2d565b5f80806105c473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168989898989610cf1565b925092509250955095509592505050565b5f61034f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168484610d48565b5f61035273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683610ded565b5f8061066384610e06565b90505f61067160058361101a565b60408051600187900b60208201529081018290529091505f90606001604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020909101207f1e2eaeaf00000000000000000000000000000000000000000000000000000000825260048201819052915073ffffffffffffffffffffffffffffffffffffffff881690631e2eaeaf90602401602060405180830381865afa15801561072c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107509190611052565b979650505050505050565b5f805f806107698888610acf565b915091505f8061077a8a8a8a6108fa565b915091505f8061078b8c8c8b6108fa565b915091505f61079a8d8d610b48565b50509150508a60020b8160020b12156107bc57828503985081840397506107e7565b8960020b8160020b126107d857848303985083820397506107e7565b82858803039850818487030397505b5050505050505094509492505050565b5f805f805f6108068787610e42565b6040517f35fd631a00000000000000000000000000000000000000000000000000000000815260048101829052600360248201529091505f9073ffffffffffffffffffffffffffffffffffffffff8a16906335fd631a906044015f60405180830381865afa15801561087a573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108bf9190810190611096565b602081015160408201516060909201516fffffffffffffffffffffffffffffffff82169c60809290921d9b5091995090975095505050505050565b5f805f6109078585610e42565b90505f73ffffffffffffffffffffffffffffffffffffffff87166335fd631a61093184600161101a565b60405160e083901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810191909152600260248201526044015b5f60405180830381865afa15801561098a573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109cf9190810190611096565b6020810151604090910151909890975095505050505050565b5f805f806109f68686610e96565b6040517f35fd631a00000000000000000000000000000000000000000000000000000000815260048101829052600360248201529091505f9073ffffffffffffffffffffffffffffffffffffffff8916906335fd631a906044015f60405180830381865afa158015610a6a573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610aaf9190810190611096565b60208101516040820151606090920151909a919950975095505050505050565b5f805f610adb84610e06565b90505f610ae960018361101a565b6040517f35fd631a00000000000000000000000000000000000000000000000000000000815260048101829052600260248201529091505f9073ffffffffffffffffffffffffffffffffffffffff8816906335fd631a90604401610970565b5f805f805f610b5686610e06565b6040517f1e2eaeaf000000000000000000000000000000000000000000000000000000008152600481018290529091505f9073ffffffffffffffffffffffffffffffffffffffff891690631e2eaeaf90602401602060405180830381865afa158015610bc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be89190611052565b905073ffffffffffffffffffffffffffffffffffffffff811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b5f805f610c3a8585610e42565b6040517f1e2eaeaf000000000000000000000000000000000000000000000000000000008152600481018290529091505f9073ffffffffffffffffffffffffffffffffffffffff881690631e2eaeaf90602401602060405180830381865afa158015610ca8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccc9190611052565b6fffffffffffffffffffffffffffffffff81169860809190911d975095505050505050565b60408051602681018390526006810184905260038101859052858152603a600c8201205f928201839052602082018390529082905281908190610d358a8a836109e8565b919c909b50909950975050505050505050565b5f80610d548484610e96565b6040517f1e2eaeaf0000000000000000000000000000000000000000000000000000000081526004810182905290915073ffffffffffffffffffffffffffffffffffffffff861690631e2eaeaf90602401602060405180830381865afa158015610dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de49190611052565b95945050505050565b5f80610df883610e06565b90505f610d5460038361101a565b6040515f90610e25908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b5f80610e4d84610e06565b90505f610e5b60048361101a565b60408051600287900b60208201529081018290529091506060015b604051602081830303815290604052805190602001209250505092915050565b5f80610ea184610e06565b90505f610eaf60068361101a565b6040805160208101879052908101829052909150606001610e76565b5f8060408385031215610edc575f80fd5b823591506020830135600181900b8114610ef4575f80fd5b809150509250929050565b8035600281900b8114610f10575f80fd5b919050565b5f805f60608486031215610f27575f80fd5b83359250610f3760208501610eff565b9150610f4560408501610eff565b90509250925092565b5f8060408385031215610f5f575f80fd5b82359150610f6f60208401610eff565b90509250929050565b5f8060408385031215610f89575f80fd5b50508035926020909101359150565b5f60208284031215610fa8575f80fd5b5035919050565b5f805f805f60a08688031215610fc3575f80fd5b85359450602086013573ffffffffffffffffffffffffffffffffffffffff81168114610fed575f80fd5b9350610ffb60408701610eff565b925061100960608701610eff565b949793965091946080013592915050565b80820180821115610352577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60208284031215611062575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f602082840312156110a6575f80fd5b815167ffffffffffffffff8111156110bc575f80fd5b8201601f810184136110cc575f80fd5b805167ffffffffffffffff8111156110e6576110e6611069565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff8211171561113157611131611069565b60405291825260208184018101929081018784111561114e575f80fd5b6020850194505b8385101561117157845180825260209586019590935001611155565b50969550505050505056fea2646970667358221220e3392799363126caf4101679e15da75a864c873bf04dacbe3be09a1b8b16869164736f6c634300081a003300000000000000000000000039bf2eff94201cfaa471932655404f63315147a4", + "nonce": "0x22", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x30c3f7", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb998c1967306d62218346705921f76c078f25ae631d8102ebc9960c3e48794cf", + "transactionIndex": "0x12", + "blockHash": "0x7b7a030204424316808e8c6bc75bd1b82297d58610f91337c3aadecc524c86be", + "blockNumber": "0xd423fa", + "gasUsed": "0xfb1ab", + "effectiveGasPrice": "0x2e83", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0xfb3e0c6f74eb1a21cc1da29aec80d2dfe6c9a317", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x19d5df2804", + "l1GasPrice": "0xb94e9f65", + "l1GasUsed": "0x7ea1" + } + ], + "libraries": [], + "pending": [], + "returns": { + "state": { + "internal_type": "contract StateView", + "value": "0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317" + } + }, + "timestamp": 1723573992, + "chain": 84532, + "commit": "d0faf02" +} \ No newline at end of file diff --git a/script/DeployQuoter.s.sol b/script/DeployQuoter.s.sol new file mode 100644 index 00000000..501f7761 --- /dev/null +++ b/script/DeployQuoter.s.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import "forge-std/console2.sol"; +import "forge-std/Script.sol"; + +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; +import {Quoter} from "../src/lens/Quoter.sol"; + +contract DeployQuoter is Script { + function setUp() public {} + + function run(address poolManager) public returns (Quoter state) { + vm.startBroadcast(); + + // forge script --broadcast --sig 'run(address)' --rpc-url --private-key --verify script/DeployQuoter.s.sol:DeployQuoter + state = new Quoter(IPoolManager(poolManager)); + console2.log("Quoter", address(state)); + console2.log("PoolManager", address(state.poolManager())); + + vm.stopBroadcast(); + } +}