Users will be unable to claim emissions from veSatin tokens if they withdraw it or merge it
The function `_calculateClaim()` uses the variable lockEndTime when checking if a veSatin is entitled to emissions for a particular week (code with mitigation from TRST-H-1):\\n```\\n           if ((lockEndTime - weekCursor) > (minLockDurationForReward)) {\\n            toDistribute +=\\n        (balanceOf * tokensPerWeek[weekCursor]) / veSupply[weekCursor];\\n        weekCursor += WEEK;\\n       }\\n```\\n\\nHowever lockEndTime is set to 0 whenever a user withdraws a veSatin by calling `withdraw()` or merges one by calling `merge()`. When this is the case the operation lockEndTime - weekCursor underflows, thus reverting. This results in users being unable to claim veSatin emissions if they withdraw or merge it first
In the `withdraw()` and `merge()` functions, call `claim()` in VeDist.sol to claim emissions before setting the lock end timestamp to 0. In `merge()` this is only necessary for the veSatin passed as _from
```\\n           if ((lockEndTime - weekCursor) > (minLockDurationForReward)) {\\n            toDistribute +=\\n        (balanceOf * tokensPerWeek[weekCursor]) / veSupply[weekCursor];\\n        weekCursor += WEEK;\\n       }\\n```\\n