solc-0.8.36-memorymasking-03 0xd86756dbb01e75a11aadacb75c8495759ed92033 via-ir-high-runs

9506 bytes

60a0806040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526004361015610036575f80fd5b5f3560e01c90816306a2da3d146113625750806306fdde031461130b578063077f22b7146112e8578063095ea7b3146112705780630c340a241461122b57806318160ddd1461120e57806323b872dd146110f9578063313ce567146110de57806339a7919f146110ac57806340c10f1914610f76578063430bf08a14610f50578063456ee28614610f0c5780635d36b19014610da25780635f5a857714610d61578063609350cd14610d295780636691cb3d14610d065780636b96be3914610cc557806370a0823114610c9a5780637a46a9c514610c7d5780637d0d66ff14610c6057806395d89b4114610c055780639d01fc72146106205780639dc29fac146105e5578063a9059cbb14610572578063baa9c9db14610508578063c2376dff146104ef578063c7af3352146104a6578063cd6dc68714610389578063d38bfff4146102c3578063dd62ed3e1461026f578063e5c4fffe14610221578063e696393a14610204578063f51b0fd4146101e95763f9854bfc146101b6575f80fd5b346101e55760206003193601126101e55760406101d96101d46115a7565b611c46565b82519182526020820152f35b5f80fd5b346101e5575f6003193601126101e557610202336122e5565b005b346101e5575f6003193601126101e557602060a054604051908152f35b346101e55760206003193601126101e557606061023c6115a7565b6001600160a01b0381165f52609d60205261025b60405f205491612133565b604051918252602082015260016040820152f35b346101e55760406003193601126101e5576102886115a7565b6001600160a01b036102986115bd565b91165f52609b6020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b346101e55760206003193601126101e5576102dc6115a7565b6103116001600160a01b037f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a54163314611bfb565b807f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db556001600160a01b03807f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a54169116907fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d5f80a3005b346101e55760406003193601126101e5576001600160a01b036103aa6115a7565b6103d8827f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a54163314611bfb565b16801561046257609c546001600160a01b03811661041e57602435609f557fffffffffffffffffffffffff00000000000000000000000000000000000000001617609c55005b606460405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601260248201527f5a65726f207661756c74206164647265737300000000000000000000000000006044820152fd5b346101e5575f6003193601126101e55760206001600160a01b037f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a541633146040519015158152f35b346101e5575f6003193601126101e5576102023361215a565b346101e55760206003193601126101e5576102026105246115a7565b6105596001600160a01b037f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a54163314611bfb565b61056d6001600160a01b0382161515611719565b6122e5565b346101e55760406003193601126101e55761058b6115a7565b6024356105ae816001600160a01b038416936105a88515156117e0565b33611dd6565b6040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b346101e55760406003193601126101e5576102026106016115a7565b6106176001600160a01b03609c5416331461182b565b60243590611b4a565b346101e55760406003193601126101e5576106396115a7565b6106416115bd565b6001600160a01b037f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a541633148015610b68575b61067e906116a8565b6001600160a01b038216918215610b24576001600160a01b0382168015610ae057808414610a9c57805f5260a56020526001600160a01b0360405f2054161580610a7f575b80610a62575b80610a45575b156109dc57835f5260a260205260ff60405f205416815f5260a260205260ff60405f20541690600581101590816109405780159182156109cf575b82156109be575b50501561097a576005811015908161094057801591821561096d575b821561092f575b5050156108eb57836108ab6108a66108a06108b1947f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3985f5260a160205260405f2054156108dd575b805f5260a160205260405f20546108cf575b61089a61089461079e89611a63565b966107a88b611a63565b93805f52609d6020526107c86107c360405f2054968b611883565b611c96565b91805f5260a460205260405f20827fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055815f5260a560205260405f20817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055805f5260a260205260405f20600360ff19825416179055805f5260a1602052670de0b6b3a764000060405f20555f52609d6020528860405f2055805f5260a260205260405f20600460ff198254161790555f52609d6020528060405f2055611cdc565b91611cdc565b90611764565b92611cdc565b611b1e565b90611d8b565b604080516001600160a01b03928316815292909116602083015290a1005b6108d8886122e5565b61078f565b6108e68761215a565b61077d565b606460405162461bcd60e51b815260206004820152601660248201527f496e76616c696420726562617365537461746520746f000000000000000000006044820152fd5b909150610940576002148580610734565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b506001811491505f61072d565b606460405162461bcd60e51b815260206004820152601860248201527f496e76616c69642072656261736553746174652066726f6d00000000000000006044820152fd5b909150610940576002148680610711565b506001811491505f61070a565b608460405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c65676160448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152fd5b50835f5260a46020526001600160a01b0360405f205416156106cf565b50835f5260a56020526001600160a01b0360405f205416156106c9565b50805f5260a46020526001600160a01b0360405f205416156106c3565b606460405162461bcd60e51b815260206004820152601760248201527f43616e6e6f742064656c656761746520746f2073656c660000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601b60248201527f5a65726f20746f2061646472657373206e6f7420616c6c6f77656400000000006044820152fd5b606460405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f7765640000006044820152fd5b50600460206001600160a01b03609c5416604051928380927f570d8e1d0000000000000000000000000000000000000000000000000000000082525afa908115610bfa5761067e916001600160a01b03915f91610bcb575b501633149050610675565b610bed915060203d602011610bf3575b610be5818361161b565b810190611689565b85610bc0565b503d610bdb565b6040513d5f823e3d90fd5b346101e5575f6003193601126101e557610c5c604051610c2660408261161b565b600481527f4f455448000000000000000000000000000000000000000000000000000000006020820152604051918291826115d3565b0390f35b346101e5575f6003193601126101e5576020609e54604051908152f35b346101e5575f6003193601126101e5576020609f54604051908152f35b346101e55760206003193601126101e5576020610cbd610cb86115a7565b611a63565b604051908152f35b346101e55760206003193601126101e5576001600160a01b03610ce66115a7565b165f5260a560205260206001600160a01b0360405f205416604051908152f35b346101e5575f6003193601126101e5576020633b9aca00609f5404604051908152f35b346101e55760206003193601126101e5576001600160a01b03610d4a6115a7565b165f5260a1602052602060405f2054604051908152f35b346101e55760206003193601126101e5576001600160a01b03610d826115a7565b165f5260a460205260206001600160a01b0360405f205416604051908152f35b346101e5575f6003193601126101e5576001600160a01b037f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db54163303610ea2573315610e5e57336001600160a01b037f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a54167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a5f80a3337f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a55005b606460405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f7220697320616464726573732830290000000000006044820152fd5b608460405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201527f6d706c6574652074686520636c61696d000000000000000000000000000000006064820152fd5b346101e55760206003193601126101e5576001600160a01b03610f2d6115a7565b165f5260a260205260ff60405f2054166040516005821015610940576020918152f35b346101e5575f6003193601126101e55760206001600160a01b03609c5416604051908152f35b346101e55760406003193601126101e557610f8f6115a7565b602435610fa86001600160a01b03609c5416331461182b565b6001600160a01b038216918215611068576108ab610fcf91610fc984611cdc565b90611e07565b6fffffffffffffffffffffffffffffffff610fec82609a54611883565b80609a551015611024577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60205f92604051908152a3005b606460405162461bcd60e51b815260206004820152600a60248201527f4d617820737570706c79000000000000000000000000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f206164647265737300000000000000006044820152fd5b346101e55760206003193601126101e5576110d36001600160a01b03609c5416331461182b565b610202600435611890565b346101e5575f6003193601126101e557602060405160128152f35b346101e55760606003193601126101e5576111126115a7565b61111a6115bd565b6001600160a01b03811691604435916111348415156117e0565b6001600160a01b03821692835f52609b60205260405f206001600160a01b0333165f5260205260405f2054928382116111ca57816020936111b8927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef96885f52609b875260405f206001600160a01b0333165f5287528360405f2091039055611dd6565b604051908152a3602060405160018152f35b606460405162461bcd60e51b815260206004820152601260248201527f416c6c6f77616e636520657863656564656400000000000000000000000000006044820152fd5b346101e5575f6003193601126101e5576020609a54604051908152f35b346101e5575f6003193601126101e55760207f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a546001600160a01b0360405191168152f35b346101e55760406003193601126101e5576112896115a7565b6001600160a01b0360243591335f52609b60205260405f208282165f526020528260405f205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101e5575f6003193601126101e5576020633b9aca00609e5404604051908152f35b346101e5575f6003193601126101e557610c5c60405161132c60408261161b565b600c81527f4f726967696e20457468657200000000000000000000000000000000000000006020820152604051918291826115d3565b346101e55760206003193601126101e55761137b6115a7565b6001600160a01b037f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a54163314918215611509575b506113db7fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3926116a8565b6001600160a01b03811690815f5260a46020526114066001600160a01b0360405f2054161515611719565b815f5260a46020526108b16001600160a01b0360405f205416926108ab61089461142f85611a63565b9261089a61089461143f89611a63565b92895f52609d60205261145660405f205494611c96565b908a5f5260a560205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055805f5260a460205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055805f5260a260205260405f20600160ff198254161790555f52609d6020528660405f2055895f5260a260205260405f20600260ff19825416179055895f52609d6020528060405f2055611cdc565b91506020826004816001600160a01b03609c54167f570d8e1d0000000000000000000000000000000000000000000000000000000082525afa8015610bfa576001600160a01b036113db917fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3945f91611588575b5016331492506113b0565b6115a1915060203d602011610bf357610be5818361161b565b8561157d565b600435906001600160a01b03821682036101e557565b602435906001600160a01b03821682036101e557565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761165c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b908160209103126101e557516001600160a01b03811681036101e55790565b156116af57565b608460405162461bcd60e51b815260206004820152602860248201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060448201527f476f7665726e6f720000000000000000000000000000000000000000000000006064820152fd5b1561172057565b606460405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152fd5b81810392915f13801582851316918412161761177c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81156117b3570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b156117e757565b606460405162461bcd60e51b815260206004820152601860248201527f5472616e7366657220746f207a65726f206164647265737300000000000000006044820152fd5b1561183257565b606460405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865205661756c740000000000000000006044820152fd5b9190820391821161177c57565b9190820180921161177c57565b609a548015611a1f578181146119d957506fffffffffffffffffffffffffffffffff8111156119d457506fffffffffffffffffffffffffffffffff5b80609a556118dc60a05482611876565b609e5490670de0b6b3a76400008202828104670de0b6b3a7640000148315171561177c578161190a91611883565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191821161177c5761193e916117a9565b9182609f5582156119905761198b7f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e25723593604051938493846040919493926060820195825260208201520152565b0390a1565b606460405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206368616e676520696e20737570706c7900000000000000006044820152fd5b6118cc565b609e54609f54604080519384526020840192909252908201527f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359150806060810161198b565b606460405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420696e637265617365203020737570706c7900000000000000006044820152fd5b6001600160a01b038116805f5260a260205260ff60405f2054169160058310156109405760038314611b0c57815f52609d60205260405f205490670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561177c57600491611acd611ad392612133565b906117a9565b9214611add575090565b90611b09915f5260a56020526001600160a01b0360405f2054165f52609d60205260405f205490611876565b90565b5090505f52609d60205260405f205490565b7f8000000000000000000000000000000000000000000000000000000000000000811461177c575f0390565b906001600160a01b038216908115611bb7578015611bb257602081611b9a6108ab5f96610fc96108a67fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef97611cdc565b611ba681609a54611876565b609a55604051908152a3565b505050565b606460405162461bcd60e51b815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f20616464726573730000000000006044820152fd5b15611c0257565b606460405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520476f7665726e6f720000000000006044820152fd5b906001600160a01b03611c5883612133565b926b033b2e3c9fd0803ce80000008403611c7d57165f52609d60205260405f20549190565b165f52609d602052633b9aca008060405f205404920490565b609f549081810291818304149015171561177c57670de0b6b3a764000081019081811161177c57670de0b6b3a763ffff0190811161177c57670de0b6b3a7640000900490565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111611d065790565b608460405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e743235360000000000000000000000000000000000000000000000006064820152fd5b9190915f838201938412911290801582169115161761177c57565b80611dbb575b5080611d9a5750565b611db1611db691611dac60a054611cdc565b611d70565b612479565b60a055565b611db1611dcd91611dac609e54611cdc565b609e555f611d91565b611e0592611dff611dff610fc994611df76108ab95610fc96108a687611cdc565b969094611cdc565b92611d70565b565b90915f915f926001600160a01b03821694855f5260a260205260ff60405f20541692611e3a611e3582611a63565b611cdc565b5f611e458483611d70565b126120ef57611db183611e5792611d70565b9360058110156109405760038103611ed55750505050835f5260a46020526001600160a01b0360405f205416611e986107c383611e9384611a63565b611883565b91611eba611ea584611cdc565b835f52609d60205261089a60405f2054611cdc565b955f52609d60205260405f20555f52609d60205260405f2055565b600403611f3e575050506107c3611f0e91855f5260a56020526001600160a01b0360405f2054165f52609d60205260405f205490611883565b611f2f611f1a82611cdc565b855f52609d60205261089a60405f2054611cdc565b935f52609d60205260405f2055565b809692963b8015908115612019575b501580611ff9575b80611fe5575b611fd6575b505f82815260a16020526040902054948515611fc85750937ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000001611fad575b5f52609d60205260405f2055565b805f5260a1602052670de0b6b3a764000060405f2055611f9f565b9450509350611f0e90611c96565b611fdf9061215a565b5f611f60565b50825f5260a160205260405f205415611f5b565b50825f5260a260205260ff60405f20541660058110156109405715611f55565b60179150148061202a575b5f611f4d565b50803b67ffffffffffffffff811161165c577fffffff00000000000000000000000000000000000000000000000000000000008160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f7fef01000000000000000000000000000000000000000000000000000000000000950116016120b5604051918261161b565b81815260208101915f83873c51905182811691600381106120da575b50501614612024565b839250829060030360031b1b16165f806120d1565b606460405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152fd5b6001600160a01b03165f90815260a1602052604090205480156121535790565b50609f5490565b6001600160a01b03811690815f5260a160205260405f20546122a157815f5260a260205260ff60405f20541660058110156109405760028114908115612298575b501561222e57816122256020927f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e945f52609d84526108ab6108946108a66121e760405f205494611a63565b93865f5260a2885260405f20600160ff19825416179055865f5260a18852670de0b6b3a764000060405f2055865f52609d88528460405f2055611cdc565b604051908152a1565b608460405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201527f63616e206f7074206f75740000000000000000000000000000000000000000006064820152fd5b9050155f61219b565b606460405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265207265626173696e6700000000000000006044820152fd5b6001600160a01b036122f682611a63565b911690815f5260a160205260405f205415801590612465575b1561242157815f5260a260205260ff60405f20541660058110156109405760018114908115612418575b50156123ae577f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f91612225826108ab6108a66108a0612379602097611c96565b865f5260a2885260405f20600260ff19825416179055865f5260a188525f6040812055865f52609d88528060405f2055611cdc565b608460405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201527f6e74732063616e206f707420696e0000000000000000000000000000000000006064820152fd5b9050155f612339565b606460405162461bcd60e51b815260206004820152601c60248201527f4163636f756e74206d757374206265206e6f6e2d7265626173696e67000000006044820152fd5b50815f52609d60205260405f20541561230f565b5f81126124835790565b606460405162461bcd60e51b815260206004820152602060248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152fdfea2646970667358221220fbd59dd14c455a6fcafd453d192ad9f1797f8b45530e37d39b5226167c16a31f64736f6c637827302e382e33362d6d656d6f72796d61736b696e672d30332b636f6d6d69742e62633866633738330058