solc-0.8.36-fakeopcode 0xd86756dbb01e75a11aadacb75c8495759ed92033 optimized-high-runs

12833 bytes

608060405234801561000f575f5ffd5b506004361061021b575f3560e01c806370a0823111610123578063c2376dff116100b8578063dd62ed3e11610088578063e696393a1161006e578063e696393a14610587578063f51b0fd414610590578063f9854bfc14610598575f5ffd5b8063dd62ed3e14610512578063e5c4fffe14610557575f5ffd5b8063c2376dff146104dc578063c7af3352146104e4578063cd6dc687146104ec578063d38bfff4146104ff575f5ffd5b80639d01fc72116100f35780639d01fc72146104905780639dc29fac146104a3578063a9059cbb146104b6578063baa9c9db146104c9575f5ffd5b806370a08231146104345780637a46a9c5146104475780637d0d66ff1461044f57806395d89b4114610457575f5ffd5b806339a7919f116101b35780635d36b19011610183578063609350cd11610169578063609350cd146103c25780636691cb3d146103f75780636b96be39146103ff575f5ffd5b80635d36b190146103855780635f5a85771461038d575f5ffd5b806339a7919f1461031057806340c10f1914610323578063430bf08a14610336578063456ee28614610356575f5ffd5b80630c340a24116101ee5780630c340a24146102b857806318160ddd146102e557806323b872dd146102ee578063313ce56714610301575f5ffd5b806306a2da3d1461021f57806306fdde0314610234578063077f22b71461027f578063095ea7b314610295575b5f5ffd5b61023261022d366004612eee565b6105c0565b005b60408051808201909152600c81527f4f726967696e204574686572000000000000000000000000000000000000000060208201525b6040516102769190612f09565b60405180910390f35b610287610966565b604051908152602001610276565b6102a86102a3366004612f5c565b61097e565b6040519015158152602001610276565b6102c06109f7565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610276565b610287609a5481565b6102a86102fc366004612f86565b610a20565b60405160128152602001610276565b61023261031e366004612fc4565b610be9565b610232610331366004612f5c565b610e5c565b609c546102c09073ffffffffffffffffffffffffffffffffffffffff1681565b610378610364366004612eee565b60a26020525f908152604090205460ff1681565b6040516102769190613008565b61023261105b565b6102c061039b366004612eee565b60a46020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6102876103d0366004612eee565b73ffffffffffffffffffffffffffffffffffffffff165f90815260a1602052604090205490565b610287611142565b6102c061040d366004612eee565b60a56020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610287610442366004612eee565b611155565b609f54610287565b609e54610287565b60408051808201909152600481527f4f455448000000000000000000000000000000000000000000000000000000006020820152610269565b61023261049e366004613047565b611272565b6102326104b1366004612f5c565b611a58565b6102a86104c4366004612f5c565b611be1565b6102326104d7366004612eee565b611cb4565b610232611da8565b6102a8611db1565b6102326104fa366004612f5c565b611e0d565b61023261050d366004612eee565b611fc2565b610287610520366004613047565b73ffffffffffffffffffffffffffffffffffffffff9182165f908152609b6020908152604080832093909416825291909152205490565b61056a610565366004612eee565b6120dc565b604080519384526020840192909252151590820152606001610276565b61028760a05481565b61023261211c565b6105ab6105a6366004612eee565b612125565b60408051928352602083019190915201610276565b6105c8611db1565b8061068b5750609c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663570d8e1d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610638573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065c919061307e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060448201527f476f7665726e6f7200000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8181165f90815260a46020526040902054166107a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff8082165f90815260a46020526040812054909116906107dc83611155565b90505f6107e883611155565b73ffffffffffffffffffffffffffffffffffffffff84165f908152609d6020526040812054919250610819836121be565b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a56020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116909155948c16835260a48252808320805490951690945560a280825284832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116600117909155609d8084528685208c905594845290825284832080549091166002179055919091529081208290559091506108e6836121fe565b6108ef836121fe565b6108f991906130c6565b905061090d81610908876121fe565b6122b3565b6040805173ffffffffffffffffffffffffffffffffffffffff808a168252881660208201527fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3910160405180910390a150505050505050565b5f633b9aca00609e5461097991906130ec565b905090565b335f818152609b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109e59086815260200190565b60405180910390a35060015b92915050565b5f6109797f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a5490565b5f73ffffffffffffffffffffffffffffffffffffffff8316610a9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5472616e7366657220746f207a65726f206164647265737300000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff84165f908152609b6020908152604080832033845290915290205480831115610b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f416c6c6f77616e636520657863656564656400000000000000000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff85165f908152609b6020908152604080832033845290915290208382039055610b778585856122f7565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bd691815260200190565b60405180910390a3506001949350505050565b609c5473ffffffffffffffffffffffffffffffffffffffff163314610c6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865205661756c740000000000000000006044820152606401610713565b5f609a5411610cd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616e6e6f7420696e637265617365203020737570706c7900000000000000006044820152606401610713565b80609a5403610d2857609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a150565b6fffffffffffffffffffffffffffffffff8111610d455780610d57565b6fffffffffffffffffffffffffffffffff5b609a81905560a0545f91610d6b9190613124565b905080600182609e54670de0b6b3a7640000610d879190613137565b610d91919061314e565b610d9b9190613124565b610da591906130ec565b609f819055610e10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c6964206368616e676520696e20737570706c7900000000000000006044820152606401610713565b609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a1505b50565b609c5473ffffffffffffffffffffffffffffffffffffffff163314610edd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865205661756c740000000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff8216610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d696e7420746f20746865207a65726f206164647265737300000000000000006044820152606401610713565b5f5f610f6e84610f69856121fe565b61233e565b91509150610f7c82826122b3565b82609a54610f8a919061314e565b609a8190556fffffffffffffffffffffffffffffffff11611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4d617820737570706c79000000000000000000000000000000000000000000006044820152606401610713565b60405183815273ffffffffffffffffffffffffffffffffffffffff8516905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a350505050565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201527f6d706c6574652074686520636c61696d000000000000000000000000000000006064820152608401610713565b611140336126d2565b565b5f633b9aca00609f5461097991906130ec565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a2602052604081205460ff16600381600481111561119157611191612fdb565b036111bf57505073ffffffffffffffffffffffffffffffffffffffff165f908152609d602052604090205490565b5f6111c984612758565b73ffffffffffffffffffffffffffffffffffffffff85165f908152609d602052604090205461120090670de0b6b3a7640000613137565b61120a91906130ec565b9050600482600481111561122057611220612fdb565b0361126b5773ffffffffffffffffffffffffffffffffffffffff8085165f90815260a560209081526040808320549093168252609d905220546112639082613124565b949350505050565b9392505050565b61127a611db1565b8061133d5750609c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663570d8e1d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130e919061307e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060448201527f476f7665726e6f720000000000000000000000000000000000000000000000006064820152608401610713565b73ffffffffffffffffffffffffffffffffffffffff8216611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f7765640000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff81166114c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5a65726f20746f2061646472657373206e6f7420616c6c6f77656400000000006044820152606401610713565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f742064656c656761746520746f2073656c660000000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff8181165f90815260a56020526040902054161580156115b0575073ffffffffffffffffffffffffffffffffffffffff8181165f90815260a4602052604090205416155b80156115e0575073ffffffffffffffffffffffffffffffffffffffff8281165f90815260a5602052604090205416155b8015611610575073ffffffffffffffffffffffffffffffffffffffff8281165f90815260a4602052604090205416155b61169b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c65676160448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610713565b73ffffffffffffffffffffffffffffffffffffffff8083165f90815260a2602052604080822054928416825281205460ff9283169216908260048111156116e4576116e4612fdb565b1480611701575060018260048111156116ff576116ff612fdb565b145b8061171d5750600282600481111561171b5761171b612fdb565b145b611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c69642072656261736553746174652066726f6d00000000000000006044820152606401610713565b5f81600481111561179657611796612fdb565b14806117b3575060018160048111156117b1576117b1612fdb565b145b806117cf575060028160048111156117cd576117cd612fdb565b145b611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c696420726562617365537461746520746f000000000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a1602052604081205490036118695761186984612799565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a160205260409020541561189c5761189c83612a14565b5f6118a685611155565b90505f6118b285611155565b73ffffffffffffffffffffffffffffffffffffffff86165f908152609d60205260408120549192506118ec6118e7848661314e565b6121be565b73ffffffffffffffffffffffffffffffffffffffff8981165f81815260a46020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116968f1696871790915585845260a5835281842080549091168517905592825260a280825283832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090811660031790915560a18352848420670de0b6b3a76400009055609d8084528585208c9055958452908252838320805490911660041790559290925281208290559091506119d2836121fe565b6119db836121fe565b6119e591906130c6565b90506119fd816119f4876121fe565b61090890613161565b6040805173ffffffffffffffffffffffffffffffffffffffff808c1682528a1660208201527f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3910160405180910390a1505050505050505050565b609c5473ffffffffffffffffffffffffffffffffffffffff163314611ad9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865205661756c740000000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff8216611b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f20616464726573730000000000006044820152606401610713565b8015611bdd575f5f611b7484611b6b856121fe565b610f6990613161565b91509150611b8282826122b3565b82609a54611b909190613124565b609a556040518381525f9073ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161104d565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff8316611c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5472616e7366657220746f207a65726f206164647265737300000000000000006044820152606401610713565b611c6a3384846122f7565b60405182815273ffffffffffffffffffffffffffffffffffffffff84169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016109e5565b611cbc611db1565b611d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520476f7665726e6f720000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff8116611d9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606401610713565b610e5981612a14565b61114033612799565b5f611dda7f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a5490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b611e15611db1565b611e7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520476f7665726e6f720000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff8216611ef8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f5a65726f207661756c74206164647265737300000000000000000000000000006044820152606401610713565b609c5473ffffffffffffffffffffffffffffffffffffffff1615611f78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610713565b609f55609c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b611fca611db1565b612030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520476f7665726e6f720000000000006044820152606401610713565b612058817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b8073ffffffffffffffffffffffffffffffffffffffff166120977f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a5490565b73ffffffffffffffffffffffffffffffffffffffff167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609d60205260408120548190819061210e85612758565b909590945060019350915050565b61114033612a14565b5f5f5f61213184612758565b9050806b033b2e3c9fd0803ce8000000036121725773ffffffffffffffffffffffffffffffffffffffff9093165f908152609d602052604090205493915050565b73ffffffffffffffffffffffffffffffffffffffff84165f908152609d60205260409020546121a690633b9aca00906130ec565b6121b4633b9aca00836130ec565b9250925050915091565b5f670de0b6b3a76400006001609f54846121d89190613137565b6121ea90670de0b6b3a764000061314e565b6121f49190613124565b6109f191906130ec565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156122af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e743235360000000000000000000000000000000000000000000000006064820152608401610713565b5090565b81156122db576122d7826122c8609e546121fe565b6122d29190613197565b612c8a565b609e555b8015611bdd576122f0816122c860a0546121fe565b60a0555050565b5f5f61230685611b6b856121fe565b915091505f5f61231986610f69876121fe565b909250905061233561232b8386613197565b6109088386613197565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260a26020526040812054819060ff168161237a61237587611155565b6121fe565b90505f6123878683613197565b12156123ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610713565b5f6123fd6122d28784613197565b9050600383600481111561241357612413612fdb565b036124db5773ffffffffffffffffffffffffffffffffffffffff8088165f90815260a460205260408120549091169061244b82611155565b90505f61245b6118e7858461314e565b73ffffffffffffffffffffffffffffffffffffffff84165f908152609d602052604090205490915061248c906121fe565b612495826121fe565b61249f91906130c6565b73ffffffffffffffffffffffffffffffffffffffff808c165f908152609d602052604080822088905595909116815293909320555094506126c8565b60048360048111156124ef576124ef612fdb565b036125ab5773ffffffffffffffffffffffffffffffffffffffff8088165f90815260a560209081526040808320549093168252609d905290812054612538906118e7908461314e565b73ffffffffffffffffffffffffffffffffffffffff89165f908152609d6020526040902054909150612569906121fe565b612572826121fe565b61257c91906130c6565b73ffffffffffffffffffffffffffffffffffffffff89165f908152609d602052604090209190915594506126c8565b6125b487612cf5565b73ffffffffffffffffffffffffffffffffffffffff87165f90815260a16020526040902054801561264d5786945080670de0b6b3a7640000146126215773ffffffffffffffffffffffffffffffffffffffff88165f90815260a160205260409020670de0b6b3a764000090555b73ffffffffffffffffffffffffffffffffffffffff88165f908152609d602052604090208290556126c6565b5f612657836121be565b73ffffffffffffffffffffffffffffffffffffffff8a165f908152609d6020526040902054909150612688906121fe565b612691826121fe565b61269b91906130c6565b73ffffffffffffffffffffffffffffffffffffffff8a165f908152609d602052604090209190915595505b505b5050509250929050565b73ffffffffffffffffffffffffffffffffffffffff811661274f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e657720476f7665726e6f7220697320616464726573732830290000000000006044820152606401610713565b610e5981612e28565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a1602052604081205480156127895792915050565b5050609f54919050565b50919050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a1602052604090205415612825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4163636f756e74206d757374206265207265626173696e6700000000000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a2602052604090205460ff16600281600481111561286157612861612fdb565b148061287d57505f81600481111561287b5761287b612fdb565b145b612909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201527f63616e206f7074206f75740000000000000000000000000000000000000000006064820152608401610713565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609d60205260408120549061293884611155565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a18252808320670de0b6b3a76400009055609d909152902081905590506129c46129b2836121fe565b6129bb90613161565b610908836121fe565b60405173ffffffffffffffffffffffffffffffffffffffff851681527f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e906020015b60405180910390a150505050565b5f612a1e82611155565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054909150151580612a75575073ffffffffffffffffffffffffffffffffffffffff82165f908152609d6020526040902054155b612adb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4163636f756e74206d757374206265206e6f6e2d7265626173696e67000000006044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260a2602052604090205460ff166001816004811115612b1757612b17612fdb565b1480612b3357505f816004811115612b3157612b31612fdb565b145b612bbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201527f6e74732063616e206f707420696e0000000000000000000000000000000000006064820152608401610713565b5f612bc9836121be565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600217905560a18252808320839055609d90915290208190559050612c44612c3b826121fe565b6119f4856121fe565b60405173ffffffffffffffffffffffffffffffffffffffff851681527f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f90602001612a06565b5f5f8212156122af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610713565b73ffffffffffffffffffffffffffffffffffffffff81163b5f811580612da15750816017148015612da157508273ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181525f908060200190933c612d5c906131be565b7fffffff0000000000000000000000000000000000000000000000000000000000167fef01000000000000000000000000000000000000000000000000000000000000145b905080158015612de7575073ffffffffffffffffffffffffffffffffffffffff83165f90815260a2602052604081205460ff166004811115612de557612de5612fdb565b145b8015612e15575073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054155b15612e2357612e2383612799565b505050565b8073ffffffffffffffffffffffffffffffffffffffff16612e677f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a5490565b73ffffffffffffffffffffffffffffffffffffffff167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a37f7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a55565b8073ffffffffffffffffffffffffffffffffffffffff168114610e59575f5ffd5b5f60208284031215612efe575f5ffd5b813561126b81612ecd565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f5f60408385031215612f6d575f5ffd5b8235612f7881612ecd565b946020939093013593505050565b5f5f5f60608486031215612f98575f5ffd5b8335612fa381612ecd565b92506020840135612fb381612ecd565b929592945050506040919091013590565b5f60208284031215612fd4575f5ffd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6020810160058310613041577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91905290565b5f5f60408385031215613058575f5ffd5b823561306381612ecd565b9150602083013561307381612ecd565b809150509250929050565b5f6020828403121561308e575f5ffd5b815161126b81612ecd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181035f8312801583831316838312821617156130e5576130e5613099565b5092915050565b5f8261311f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b818103818111156109f1576109f1613099565b80820281158282048414176109f1576109f1613099565b808201808211156109f1576109f1613099565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361319157613191613099565b505f0390565b8082018281125f8312801582168215821617156131b6576131b6613099565b505092915050565b805160208201517fffffff000000000000000000000000000000000000000000000000000000000016906003811015612793577fffffff0000000000000000000000000000000000000000000000000000000000600391820390911b1b1691905056