public function getValidationResult($queue)
 {
     global $cookieExpiration;
     $key = $this->generateKey($queue->getCustomerId(), $queue->getEventId());
     if (isset($_COOKIE[$key])) {
         try {
             $values = $_COOKIE[$key];
             $queueId = $values["QueueId"];
             $originalUrl = $values["OriginalUrl"];
             $placeInQueue = KnownUserFactory::decryptPlaceInQueue($values["PlaceInQueue"]);
             $redirectType = $values["RedirectType"];
             $timeStamp = $values["TimeStamp"];
             $actualHash = $values["Hash"];
             $expires = $values["Expires"];
             if (!is_numeric($expires)) {
                 return null;
             }
             $expirationTime = intval($expires);
             if ($expirationTime < time()) {
                 return null;
             }
             $expectedHash = $this->generateHash($queueId, $originalUrl, $placeInQueue, $redirectType, $timeStamp, $expirationTime);
             if ($actualHash != $expectedHash) {
                 return null;
             }
             if ($redirectType != RedirectType::Idle) {
                 $newExpirationTime = time() + $cookieExpiration;
                 $newHash = $this->generateHash($queueId, $originalUrl, $placeInQueue, $redirectType, $timeStamp, $newExpirationTime);
                 $this->writeCookie($queue, $queueId, $originalUrl, $placeInQueue, $redirectType, $timeStamp, $newHash, $newExpirationTime);
             }
             $parsedTimeStamp = new \DateTime("now", new \DateTimeZone("UTC"));
             $parsedTimeStamp->setTimestamp(intval($timeStamp));
             return new AcceptedConfirmedResult($queue, new Md5KnownUser($queueId, $placeInQueue, $parsedTimeStamp, $queue->getCustomerId(), $queue->getEventId(), $redirectType, $originalUrl), false);
         } catch (InvalidKnownUserUrlException $e) {
             return null;
         }
     }
     return $result;
 }