solc-0.8.36-memorymasking-07 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d via-ir

9595 bytes

5f1960805260a06040526004361015610016575f80fd5b5f3560e01c8063018a2c371461026957806301ffc9a71461026457806306fdde031461025f578063081812fc1461025a578063095ea7b314610255578063109695231461025057806318160ddd1461024b57806318e20a381461024657806323b872dd146102415780632f745c591461023c57806334918dfd146102375780633ccfd60b1461023257806342842e0e1461022d5780634f6ccce71461022857806355f804b314610223578063571dff3b1461021e578063607e20e3146102195780636352211e146102145780636c0360eb1461020f57806370a082311461020a578063715018a6146102055780637a3f451e146102005780637d17fcbe146101fb5780638da5cb5b146101f657806395d89b41146101f1578063a22cb465146101ec578063a723533e146101e7578063b0f67427146101e2578063b88d4fde146101dd578063bb8a16bd146101d8578063c87b56dd146101d3578063cb774d47146101ce578063e36d6498146101c9578063e985e9c5146101c4578063e9866550146101bf578063eb8d2444146101ba5763f2fde38b146101b5575f80fd5b61139b565b611379565b6112b1565b61125d565b611240565b611223565b6111f0565b6111d3565b611179565b611127565b611068565b610f90565b610eeb565b610eca565b610e97565b610e75565b610e23565b610d88565b610ce3565b610cc5565b610c20565b610a65565b61097a565b6108ee565b6108c5565b610879565b610841565b610797565b61076e565b610721565b610704565b61060d565b610447565b6103fb565b610321565b6102a9565b346102935760203660031901126102935760043561028e607451600a54163314611464565b601055005b5f80fd5b6001600160e01b031981160361029357565b34610293576020366003190112610293576004356102c681610297565b63ffffffff60e01b165f525f602052602060ff60405f2054166040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061031e9281815201906102e9565b90565b34610293575f366003190112610293576040515f60065461034181610a93565b80845290600181169081156103d75750600114610379575b610375836103698185038261056f565b6040519182918261030d565b0390f35b60065f9081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f939250905b8082106103bd57509091508101602001610369610359565b9192600181602092548385880101520191019092916103a5565b60ff191660208086019190915291151560051b840190910191506103699050610359565b346102935760203660031901126102935760206104196004356114af565b60405190607451168152f35b600435906074518216820361029357565b602435906074518216820361029357565b3461029357604036600319011261029357610460610425565b60243561046c816116e9565b916074518316806074518316146104f1576104b1936104ac9161049a610493336074511690565b6074511690565b9081149182156104b3575b5050611536565b611b0e565b005b6104ea9250906104d26104e392607451165f52600560205260405f2090565b90607451165f5260205260405f2090565b5460ff1690565b5f806104a5565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b634e487b7160e01b5f52604160045260245ffd5b6040810190811060685182111761056a57604052565b610540565b90601f8019910116810190811060685182111761056a57604052565b606851811161056a57601f01601f191660200190565b9291926105ad8261058b565b916105bb604051938461056f565b829481845281830111610293578281602093845f960137010152565b60206003198201126102935760043590606851821161029357806023830112156102935781602461031e936004013591016105a1565b346102935761061b366105d7565b61062c607451600a54163314611464565b8051606851811161056a5761064b81610646600b54610a93565b6115c5565b602091601f821160011461068957610679925f918361067e575b50508160011b915f199060031b1c19161790565b600b55005b015190505f80610665565b600b5f52601f198216927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9915f5b8581106106ec575083600195106106d4575b505050811b01600b55005b01515f1960f88460031b161c191690555f80806106c9565b919260206001819286850151815501940192016106b7565b34610293575f366003190112610293576020600254604051908152f35b34610293575f366003190112610293576020601054604051908152f35b60609060031901126102935760043560745181168103610293579060243560745181168103610293579060443590565b34610293576104b161077f3661073e565b9161079261078d8433611b62565b611683565b611c90565b34610293576040366003190112610293576107b0610425565b60243590607451165f52600160205260405f2081815411156107f157610375916107d991612194565b90549060031b1c604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608490fd5b34610293575f36600319011261029357610862607451600a54163314611464565b600f5460ff80821615169060ff191617600f555f80f35b34610293575f3660031901126102935761089a607451600a54163314611464565b5f808080478181156108bc575b3390f1156108b157005b6040513d5f823e3d90fd5b506108fc6108a7565b34610293576104b16108d63661073e565b90604051926108e660208561056f565b5f8452611958565b346102935760203660031901126102935760043580600254111561092a57610918610375916121a9565b50546040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608490fd5b3461029357610988366105d7565b610999607451600a54163314611464565b8051606851811161056a576109b8816109b3600954610a93565b611624565b602091601f82116001146109ea576109e5925f918361067e5750508160011b915f199060031b1c19161790565b600955005b60095f52601f198216927f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af915f5b858110610a4d57508360019510610a35575b505050811b01600955005b01515f1960f88460031b161c191690555f8080610a2a565b91926020600181928685015181550194019201610a18565b34610293575f36600319011261029357602060405160148152f35b634e487b7160e01b5f525f60045260245ffd5b90600182811c92168015610ac1575b6020831014610aad57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610aa2565b604051905f8260095491610ade83610a93565b8083529260018116908115610b635750600114610b04575b610b029250038361056f565b565b5060095f90815290917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b818310610b47575050906020610b0292820101610af6565b6020919350806001915483858901015201910190918492610b2f565b60209250610b0294915060ff191682840152151560051b820101610af6565b9060405191825f825492610b9584610a93565b8084529360018116908115610bfe5750600114610bba575b50610b029250038361056f565b90505f9291925260205f20905f915b818310610be2575050906020610b02928201015f610bad565b6020919350806001915483858901015201910190918492610bc9565b905060209250610b0294915060ff191682840152151560051b8201015f610bad565b34610293575f366003190112610293576040515f600b54610c4081610a93565b80845290600181169081156103d75750600114610c6757610375836103698185038261056f565b600b5f9081527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9939250905b808210610cab57509091508101602001610369610359565b919260018160209254838588010152019101909291610c93565b346102935760203660031901126102935760206104196004356116e9565b34610293575f366003190112610293576040515f600954610d0381610a93565b80845290600181169081156103d75750600114610d2a57610375836103698185038261056f565b60095f9081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af939250905b808210610d6e57509091508101602001610369610359565b919260018160209254838588010152019101909291610d56565b3461029357602036600319011261029357607451610da4610425565b168015610dcb575f52600160205261037560405f2054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b34610293575f36600319011261029357600a545f6074518216610e47338214611464565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36074511916600a55005b34610293575f36600319011261029357602060405167011c37937e0800008152f35b34610293575f36600319011261029357610eb8607451600a54163314611464565b610ec4600d5415611791565b43600c55005b34610293575f366003190112610293576020607451600a5416604051908152f35b34610293575f366003190112610293576040515f600754610f0b81610a93565b80845290600181169081156103d75750600114610f3257610375836103698185038261056f565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610f7657509091508101602001610369610359565b919260018160209254838588010152019101909291610f5e565b3461029357604036600319011261029357610fa9610425565b6024358015158103610293576074518216913383146110235781610fe0610ff1926104d233607451165f52600560205260405f2090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b60203660031901126102935760043561108b611086600f5460ff1690565b6117dd565b6110986014821115611829565b6110b16110a782600254611de6565b600e54101561187f565b6110c56110bd82611dfa565b3410156118dc565b5f5b81811061110057600c5415806110e7575b6110de57005b6104b143600c55565b50600254600e5414806110d857506010544210156110d8565b600190600254600e548110611117575b50016110c7565b6111219033611e6f565b5f611110565b34610293575f36600319011261029357611148607451600a54163314611464565b6002545f5b601e811061115757005b808201908183116111745761116e60019233611e6f565b0161114d565b611928565b3461029357608036600319011261029357611192610425565b61119a610436565b906044356064359260685184116102935736602385011215610293576111cd6104b19436906024816004013591016105a1565b92611958565b34610293575f366003190112610293576020600e54604051908152f35b346102935760203660031901126102935761037561120f600435611996565b6040519182916020835260208301906102e9565b34610293575f366003190112610293576020600d54604051908152f35b34610293575f366003190112610293576020600c54604051908152f35b3461029357604036600319011261029357602060ff6112a561127d610425565b611285610436565b90607451165f526005845260405f2090607451165f5260205260405f2090565b54166040519015158152f35b34610293575f366003190112610293576112cd600d5415611791565b600c548015611335576112e76112ec91600e549040611a99565b600d55565b60ff6112fa600c544361212b565b11611317575b600d54801561130b57005b6112e76104b191611d8c565b6113306112e761132643611ab7565b40600e5490611a99565b611300565b606460405162461bcd60e51b815260206004820152602060248201527f5374617274696e6720696e64657820626c6f636b206d757374206265207365746044820152fd5b34610293575f36600319011261029357602060ff600f54166040519015158152f35b34610293576020366003190112610293576113b4610425565b600a54906113c733607451841614611464565b60745181168015611410576074516104b193167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36074511660745119600a541617600a55565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b1561146b57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6114c4815f52600360205260405f2054151590565b156114dc575f52600460205260745160405f20541690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561153d57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b916115c19183549060031b91821b915f19901b19161790565b9055565b90601f82116115d2575050565b8082116115dd575050565b600b5f5260205f206020601f830160051c921061161c575b81601f9101920160051c03905f5b82811061160f57505050565b5f82820155600101611603565b5f91506115f5565b90601f8211611631575050565b80821161163c575050565b60095f5260205f206020601f830160051c921061167b575b81601f9101920160051c03905f5b82811061166e57505050565b5f82820155600101611662565b5f9150611654565b1561168a57565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b604051906116f860608361056f565b602982527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460208301526832b73a103a37b5b2b760b91b60408301525f52600360205260405f205490811561176957505f1981019081116111745761175c906121a9565b5060016074519101541690565b60405162461bcd60e51b81526020600482015290819061178d9060248301906102e9565b0390fd5b1561179857565b60405162461bcd60e51b815260206004820152601d60248201527f5374617274696e6720696e64657820697320616c7265616479207365740000006044820152606490fd5b156117e457565b60405162461bcd60e51b815260206004820152601f60248201527f53616c65206d7573742062652061637469766520746f206d696e7420417065006044820152606490fd5b1561183057565b60405162461bcd60e51b815260206004820152602160248201527f43616e206f6e6c79206d696e7420323020746f6b656e7320617420612074696d6044820152606560f81b6064820152608490fd5b1561188657565b60405162461bcd60e51b815260206004820152602860248201527f507572636861736520776f756c6420657863656564206d617820737570706c79604482015267206f66204170657360c01b6064820152608490fd5b156118e357565b60405162461bcd60e51b815260206004820152601f60248201527f45746865722076616c75652073656e74206973206e6f7420636f7272656374006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b603001908160301161117457565b906001820180921161117457565b91610b02939161197f9361196f61078d8433611b62565b61197a838383611c90565b6122b0565b611fc8565b805191908290602001825e015f815290565b6119ab815f52600360205260405f2054151590565b15611a3c576119ca6119c5825f52600860205260405f2090565b610b82565b906119d3610acb565b91825115611a36578051611a195750611a0591611a0b6119f561031e93612070565b6040519485936020850190611984565b90611984565b03601f19810183528261056f565b61031e915091611a0b611a05936040519485936020850190611984565b91505090565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b8115611aa3570690565b634e487b7160e01b5f52601260045260245ffd5b5f1981019190821161117457565b805f52600460205260405f206074511981541690555f607451611ae7836116e9565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b815f52600460205260405f20607451821660745119825416179055607451611b35836116e9565b169060745116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4565b611b77825f52600360205260405f2054151590565b15611bde57611b85826116e9565b607451821660745182168114938415611bc5575b50508215611ba657505090565b61031e9250906104d26104e392607451165f52600560205260405f2090565b611bd1919294506114af565b6074511614915f80611b99565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15611c3f57565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90611c9a836116e9565b90607451831680926074511603611d3557611d0e90611ce785611ce2607451841696611cc7881515611c38565b611cd083611ac5565b607451165f52600160205260405f2090565b612327565b50611d0785611d0283607451165f52600160205260405f2090565b6123c5565b5084612184565b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608490fd5b6001810190818111611174578110611da15790565b60405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606490fd5b90810190818111611174578110611da15790565b8067011c37937e080000029067011c37937e08000082048082036111745703611e205790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b90604051611e7e60208261056f565b5f81526074518316918215611f4457611ea2815f52600360205260405f2054151590565b611eff57838161197f94611ec982611d02610b0299607451165f52600160205260405f2090565b50611ed48383612184565b505f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a461223d565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60207131b2b4bb32b91034b6b83632b6b2b73a32b960711b917f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581520152565b15611fcf57565b60405162461bcd60e51b81526020600482015260326024820152608490611ff860448201611f88565bfd5b5f1981146111745760010190565b906120128261058b565b61201f604051918261056f565b8281528092612030601f199161058b565b0190602036910137565b8015611174575f190190565b634e487b7160e01b5f52603260045260245ffd5b90815181101561206b570160200190565b612046565b90811561210a575f82805b6120ef575061209261208c82612008565b91611ab7565b92805b61209e57509150565b6120e9906120ca6120ba6120b4600a840661193c565b60ff1690565b60f81b6001600160f81b03191690565b946120e16120d78261203a565b965f1a918561205a565b53600a900490565b80612095565b906120fc61210491611ffa565b91600a900490565b8061207b565b905060405161211a60408261056f565b60018152600360fc1b602082015290565b9081811161213f5781039081116111745790565b60405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606490fd5b61031e916074511690600261242f565b805482101561206b575f5260205f2001905f90565b60025481101561206b5760025f5260205f209060011b01905f90565b805482101561206b575f5260205f209060011b01905f90565b909260809261031e9594607451168352607451166020830152604082015281606082015201906102e9565b6040519061221860608361056f565b60328252610b0260208301611f88565b90816020910312610293575161031e81610297565b9091813b156122a85761226e61227c93611a0b604051938492630a85bd0160e11b60208501525f33602486016121de565b612276612209565b916124cb565b8051630a85bd0160e11b916001600160e01b0319916122a391602091810182019101612228565b161490565b505050600190565b92919091823b156122e35761227c93611a0b61226e92604051948593630a85bd0160e11b602086015233602486016121de565b50505050600190565b80548015612313575f1901906123028282612194565b8154905f199060031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b906001820190805f528160205260405f2054918215155f146123bd575f1983019283116111745783545f19810190811161117457846123b7946123a46123956123746123aa955f9a612194565b90549060031b1c926123908461238a8388612194565b906115a8565b61194a565b9185905f5260205260405f2090565b556122ec565b905f5260205260405f2090565b55600190565b505050505f90565b6001810190825f528160205260405f2054155f14612428578054600160401b81101561056a576124156123ff826001879401855584612194565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b91906001830192815f528360205260405f205480155f146124a8575060405161245781610554565b828152602081019384528154600160401b81101561056a5780600161247f92018455836121c5565b9190916124a3576123b794600191518355519101555492905f5260205260405f2090565b610a80565b92935090505f198201918211611174576001916124c4916121c5565b5001555f90565b9190823b1561251a575f8161031e948260208195519301915af13d15612512573d906124f68261058b565b91612504604051938461056f565b82523d5f602084013e61255f565b60609061255f565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b9091901561256b575090565b8151156117695750805190602001fd