solc-0.8.36-memorymasking-07 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d via-ir-low-runs
9460 bytes
5f1960805260a06040526004361015610016575f80fd5b5f3560e01c8063018a2c371461026957806301ffc9a71461026457806306fdde031461025f578063081812fc1461025a578063095ea7b314610255578063109695231461025057806318160ddd1461024b57806318e20a381461024657806323b872dd146102415780632f745c591461023c57806334918dfd146102375780633ccfd60b1461023257806342842e0e1461022d5780634f6ccce71461022857806355f804b314610223578063571dff3b1461021e578063607e20e3146102195780636352211e146102145780636c0360eb1461020f57806370a082311461020a578063715018a6146102055780637a3f451e146102005780637d17fcbe146101fb5780638da5cb5b146101f657806395d89b41146101f1578063a22cb465146101ec578063a723533e146101e7578063b0f67427146101e2578063b88d4fde146101dd578063bb8a16bd146101d8578063c87b56dd146101d3578063cb774d47146101ce578063e36d6498146101c9578063e985e9c5146101c4578063e9866550146101bf578063eb8d2444146101ba5763f2fde38b146101b5575f80fd5b611309565b6112e7565b61121f565b6111cb565b6111ae565b611191565b61115e565b611141565b6110e7565b611095565b610fd6565b610f0f565b610e6a565b610e49565b610e16565b610df4565b610db5565b610d1a565b610c88565b610c6a565b610bd8565b610a30565b610958565b6108cc565b6108a3565b610857565b61081f565b610775565b61074c565b6106ff565b6106e2565b6105fe565b610445565b6103f9565b61031f565b6102a9565b346102935760203660031901126102935760043561028e607451600a541633146113bf565b601055005b5f80fd5b6001600160e01b031981160361029357565b34610293576020366003190112610293576004356102c681610297565b60645160e01b165f525f602052602060ff60405f2054166040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061031c9281815201906102e7565b90565b34610293575f366003190112610293576040515f60065461033f81610a5e565b80845290600181169081156103d55750600114610377575b6103738361036781850382610560565b6040519182918261030b565b0390f35b60065f9081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f939250905b8082106103bb57509091508101602001610367610357565b9192600181602092548385880101520191019092916103a3565b60ff191660208086019190915291151560051b840190910191506103679050610357565b3461029357602036600319011261029357602061041760043561140a565b60405190607451168152f35b600435906074518216820361029357565b602435906074518216820361029357565b346102935760403660031901126102935761045e610423565b60243561046a81611657565b916074518316806074518316146104e2576104af936104aa91610498610491336074511690565b6074511690565b9081149182156104b1575b5050611485565b611a5d565b005b6104db9250906104c36104d492611633565b90607451165f5260205260405f2090565b5460ff1690565b5f806104a3565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b634e487b7160e01b5f52604160045260245ffd5b6040810190811060685182111761055b57604052565b610531565b90601f8019910116810190811060685182111761055b57604052565b606851811161055b57601f01601f191660200190565b92919261059e8261057c565b916105ac6040519384610560565b829481845281830111610293578281602093845f960137010152565b60206003198201126102935760043590606851821161029357806023830112156102935781602461031c93600401359101610592565b346102935761060c366105c8565b61061d607451600a541633146113bf565b8051606851811161055b5761063c81610637600b54610a5e565b61150f565b602091601f821160011461067a5761066a925f918361066f575b50508160011b915f199060031b1c19161790565b600b55005b015190505f80610656565b600b5f52601f198216925f5160206124b45f395f51905f52915f5b8581106106ca575083600195106106b2575b505050811b01600b55005b01515f1960f88460031b161c191690555f80806106a7565b91926020600181928685015181550194019201610695565b34610293575f366003190112610293576020600254604051908152f35b34610293575f366003190112610293576020601054604051908152f35b60609060031901126102935760043560745181168103610293579060243560745181168103610293579060443590565b34610293576104af61075d3661071c565b9161077061076b8433611a9e565b6115cd565b611bb3565b346102935760403660031901126102935761078e610423565b60243590607451165f52600160205260405f2081815411156107cf57610373916107b79161205b565b90549060031b1c604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608490fd5b34610293575f36600319011261029357610840607451600a541633146113bf565b600f5460ff80821615169060ff191617600f555f80f35b34610293575f36600319011261029357610878607451600a541633146113bf565b5f8080804781811561089a575b3390f11561088f57005b6040513d5f823e3d90fd5b506108fc610885565b34610293576104af6108b43661071c565b90604051926108c4602085610560565b5f84526118c6565b3461029357602036600319011261029357600435806002541115610908576108f661037391612070565b50546040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608490fd5b3461029357610966366105c8565b610977607451600a541633146113bf565b8051606851811161055b5761099681610991600954610a5e565b61156e565b602091601f82116001146109c8576109c3925f918361066f5750508160011b915f199060031b1c19161790565b600955005b60095f52601f198216925f5160206124945f395f51905f52915f5b858110610a1857508360019510610a00575b505050811b01600955005b01515f1960f88460031b161c191690555f80806109f5565b919260206001819286850151815501940192016109e3565b34610293575f36600319011261029357602060405160148152f35b634e487b7160e01b5f525f60045260245ffd5b90600182811c92168015610a8c575b6020831014610a7857565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610a6d565b604051905f8260095491610aa983610a5e565b8083529260018116908115610b1b5750600114610acf575b610acd92500383610560565b565b5060095f90815290915f5160206124945f395f51905f525b818310610aff575050906020610acd92820101610ac1565b6020919350806001915483858901015201910190918492610ae7565b60209250610acd94915060ff191682840152151560051b820101610ac1565b9060405191825f825492610b4d84610a5e565b8084529360018116908115610bb65750600114610b72575b50610acd92500383610560565b90505f9291925260205f20905f915b818310610b9a575050906020610acd928201015f610b65565b6020919350806001915483858901015201910190918492610b81565b905060209250610acd94915060ff191682840152151560051b8201015f610b65565b34610293575f366003190112610293576040515f600b54610bf881610a5e565b80845290600181169081156103d55750600114610c1f576103738361036781850382610560565b600b5f9081525f5160206124b45f395f51905f52939250905b808210610c5057509091508101602001610367610357565b919260018160209254838588010152019101909291610c38565b34610293576020366003190112610293576020610417600435611657565b34610293575f366003190112610293576040515f600954610ca881610a5e565b80845290600181169081156103d55750600114610ccf576103738361036781850382610560565b60095f9081525f5160206124945f395f51905f52939250905b808210610d0057509091508101602001610367610357565b919260018160209254838588010152019101909291610ce8565b3461029357602036600319011261029357607451610d36610423565b168015610d5d575f52600160205261037360405f2054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b34610293575f36600319011261029357600a545f6074518216610dd93382146113bf565b5f5160206124545f395f51905f528280a36074511916600a55005b34610293575f36600319011261029357602060405167011c37937e0800008152f35b34610293575f36600319011261029357610e37607451600a541633146113bf565b610e43600d54156116ff565b43600c55005b34610293575f366003190112610293576020607451600a5416604051908152f35b34610293575f366003190112610293576040515f600754610e8a81610a5e565b80845290600181169081156103d55750600114610eb1576103738361036781850382610560565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610ef557509091508101602001610367610357565b919260018160209254838588010152019101909291610edd565b3461029357604036600319011261029357610f28610423565b602435801515810361029357607451821691338314610f955781610f52610f63926104c333611633565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606490fd5b602036600319011261029357600435610ff9610ff4600f5460ff1690565b61174b565b6110066014821115611797565b61101f61101582600254611cda565b600e5410156117ed565b61103361102b82611cee565b34101561184a565b5f5b81811061106e57600c541580611055575b61104c57005b6104af43600c55565b50600254600e5414806110465750601054421015611046565b600190600254600e548110611085575b5001611035565b61108f9033611d63565b5f61107e565b34610293575f366003190112610293576110b6607451600a541633146113bf565b6002545f5b601e81106110c557005b808201908183116110e2576110dc60019233611d63565b016110bb565b611896565b3461029357608036600319011261029357611100610423565b611108610434565b9060443560643592606851841161029357366023850112156102935761113b6104af943690602481600401359101610592565b926118c6565b34610293575f366003190112610293576020600e54604051908152f35b346102935760203660031901126102935761037361117d600435611904565b6040519182916020835260208301906102e7565b34610293575f366003190112610293576020600d54604051908152f35b34610293575f366003190112610293576020600c54604051908152f35b3461029357604036600319011261029357602060ff6112136111eb610423565b6111f3610434565b90607451165f526005845260405f2090607451165f5260205260405f2090565b54166040519015158152f35b34610293575f3660031901126102935761123b600d54156116ff565b600c5480156112a35761125561125a91600e5490406119fb565b600d55565b60ff611268600c5443611ff2565b11611285575b600d54801561127957005b6112556104af91611c82565b61129e61125561129443611a19565b40600e54906119fb565b61126e565b606460405162461bcd60e51b815260206004820152602060248201527f5374617274696e6720696e64657820626c6f636b206d757374206265207365746044820152fd5b34610293575f36600319011261029357602060ff600f54166040519015158152f35b3461029357602036600319011261029357611322610423565b600a5490611335336074518416146113bf565b6074518116801561136b576074516104af93165f5160206124545f395f51905f525f80a36074511660745119600a541617600a55565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b156113c657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b611413816121b3565b1561142b575f52600460205260745160405f20541690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561148c57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608490fd5b9161150b9183549060031b91821b915f19901b19161790565b9055565b90601f821161151c575050565b808211611527575050565b600b5f5260205f206020601f830160051c9210611566575b81601f9101920160051c03905f5b82811061155957505050565b5f8282015560010161154d565b5f915061153f565b90601f821161157b575050565b808211611586575050565b60095f5260205f206020601f830160051c92106115c5575b81601f9101920160051c03905f5b8281106115b857505050565b5f828201556001016115ac565b5f915061159e565b156115d457565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b607451165f52600560205260405f2090565b607451165f52600160205260405f2090565b60405190611666606083610560565b602982527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460208301526832b73a103a37b5b2b760b91b60408301525f52600360205260405f20549081156116d757505f1981019081116110e2576116ca90612070565b5060016074519101541690565b60405162461bcd60e51b8152602060048201529081906116fb9060248301906102e7565b0390fd5b1561170657565b60405162461bcd60e51b815260206004820152601d60248201527f5374617274696e6720696e64657820697320616c7265616479207365740000006044820152606490fd5b1561175257565b60405162461bcd60e51b815260206004820152601f60248201527f53616c65206d7573742062652061637469766520746f206d696e7420417065006044820152606490fd5b1561179e57565b60405162461bcd60e51b815260206004820152602160248201527f43616e206f6e6c79206d696e7420323020746f6b656e7320617420612074696d6044820152606560f81b6064820152608490fd5b156117f457565b60405162461bcd60e51b815260206004820152602860248201527f507572636861736520776f756c6420657863656564206d617820737570706c79604482015267206f66204170657360c01b6064820152608490fd5b1561185157565b60405162461bcd60e51b815260206004820152601f60248201527f45746865722076616c75652073656e74206973206e6f7420636f7272656374006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b60300190816030116110e257565b90600182018092116110e257565b91610acd93916118ed936118dd61076b8433611a9e565b6118e8838383611bb3565b612177565b611e8f565b805191908290602001825e015f815290565b61190d816121b3565b1561199e5761192c611927825f52600860205260405f2090565b610b3a565b90611935610a96565b9182511561199857805161197b57506119679161196d61195761031c93611f37565b60405194859360208501906118f2565b906118f2565b03601f198101835282610560565b61031c91509161196d6119679360405194859360208501906118f2565b91505090565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b8115611a05570690565b634e487b7160e01b5f52601260045260245ffd5b5f198101919082116110e257565b805f52600460205260405f206074511981541690555f607451611a4983611657565b165f5160206124d45f395f51905f528280a4565b815f52600460205260405f20607451821660745119825416179055607451611a8483611657565b169060745116905f5160206124d45f395f51905f525f80a4565b611aa7826121b3565b15611b0157611ab582611657565b607451821660745182168114938415611ae8575b50508215611ad657505090565b61031c9250906104c36104d492611633565b611af49192945061140a565b6074511614915f80611ac9565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15611b6257565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90611bbd83611657565b90607451831680926074511603611c2b57611c1790611bfd85611bf8607451841696611bea881515611b5b565b611bf383611a27565b611645565b6121ff565b50611c1085611c0b83611645565b61229d565b508461204b565b505f5160206124745f395f51905f525f80a4565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608490fd5b60018101908181116110e2578110611c975790565b60405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606490fd5b908101908181116110e2578110611c975790565b8067011c37937e080000029067011c37937e08000082048082036110e25703611d145790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b90604051611d72602082610560565b5f81526074518316918215611e0b57611d8a816121b3565b611dc75783816118ed94611da482611c0b610acd99611645565b50611daf838361204b565b505f5f5160206124745f395f51905f528180a4612104565b60405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60207131b2b4bb32b91034b6b83632b6b2b73a32b960711b917f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581520152565b15611e9657565b60405162461bcd60e51b81526020600482015260326024820152608490611ebf60448201611e4f565bfd5b5f1981146110e25760010190565b90611ed98261057c565b611ee66040519182610560565b8281528092611ef7601f199161057c565b0190602036910137565b80156110e2575f190190565b634e487b7160e01b5f52603260045260245ffd5b908151811015611f32570160200190565b611f0d565b908115611fd1575f82805b611fb65750611f59611f5382611ecf565b91611a19565b92805b611f6557509150565b611fb090611f91611f81611f7b600a84066118aa565b60ff1690565b60f81b6001600160f81b03191690565b94611fa8611f9e82611f01565b965f1a9185611f21565b53600a900490565b80611f5c565b90611fc3611fcb91611ec1565b91600a900490565b80611f42565b9050604051611fe1604082610560565b60018152600360fc1b602082015290565b908181116120065781039081116110e25790565b60405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606490fd5b61031c9160745116906002612307565b8054821015611f32575f5260205f2001905f90565b600254811015611f325760025f5260205f209060011b01905f90565b8054821015611f32575f5260205f209060011b01905f90565b909260809261031c9594607451168352607451166020830152604082015281606082015201906102e7565b604051906120df606083610560565b60328252610acd60208301611e4f565b90816020910312610293575161031c81610297565b9091813b1561216f576121356121439361196d604051938492630a85bd0160e11b60208501525f33602486016120a5565b61213d6120d0565b916123a3565b8051630a85bd0160e11b916001600160e01b03199161216a916020918101820191016120ef565b161490565b505050600190565b92919091823b156121aa576121439361196d61213592604051948593630a85bd0160e11b602086015233602486016120a5565b50505050600190565b5f52600360205260405f2054151590565b805480156121eb575f1901906121da828261205b565b8154905f199060031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b906001820190805f528160205260405f2054918215155f14612295575f1983019283116110e25783545f1981019081116110e2578461228f9461227c61226d61224c612282955f9a61205b565b90549060031b1c9261226884612262838861205b565b906114f2565b6118b8565b9185905f5260205260405f2090565b556121c4565b905f5260205260405f2090565b55600190565b505050505f90565b6001810190825f528160205260405f2054155f14612300578054600160401b81101561055b576122ed6122d782600187940185558461205b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b91906001830192815f528360205260405f205480155f14612380575060405161232f81610545565b828152602081019384528154600160401b81101561055b57806001612357920184558361208c565b91909161237b5761228f94600191518355519101555492905f5260205260405f2090565b610a4b565b92935090505f1982019182116110e25760019161239c9161208c565b5001555f90565b9190823b156123f2575f8161031c948260208195519301915af13d156123ea573d906123ce8261057c565b916123dc6040519384610560565b82523d5f602084013e612437565b606090612437565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b90919015612443575090565b8151156116d75750805190602001fdfe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db98c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925