anchor.diff:  
   (defvar *logged-in-users* nil)
   (defvar *current-user-session* nil)
  +
  +
  +(defun dod-controller-OTP-request-page ()
  +  (let ((phone (hunchentoot:parameter "phone"))
  +	(context (hunchentoot:parameter "context")))
  +    (with-no-navbar-page  "New Store Request"   
  +      (with-html-form  "form-hhubotppage" "hhubotpsubmitaction" 
  +	(:img :class "profile-img" :src "/img/logo.png" :alt "")
  +	(:div :id "withCountDownTimerExpired"
  +	    (with-html-div-row
  +	      (with-html-div-col
  +		(with-html-input-hidden "context" context)
  +		(with-html-input-password "otp" (cl-who:str (format nil "OTP has been sent to your phone ~A" (concatenate 'string "xxxxx" (subseq phone 6)))) "OTP" nil T "Please enter OTP" "1")))
  +	    (with-html-div-row
  +	      (with-html-div-col
  +		(:p :id "withCountDownTimer")))
  +	    
  +	    (with-html-div-row
  +	      (with-html-div-col
  +		(:div :class "form-group"
  +		      (:button :class "submit center-block btn btn-primary btn-block" :type "submit" "Send OTP")))))
  +	
  +	(with-html-form  "form-hhubotpresendpage" "hhubotpregenerateaction"
  +	  (with-html-div-row
  +	    (with-html-div-col
  +	      (:div :class "form-group"
  +		    (with-html-input-hidden "phone" phone)
  +		    (with-html-input-hidden "context" context)
  +		    (:button :class "submit center-block btn btn-primary btn-block" :type "submit" (cl-who:str  (format nil "Regenerate OTP for ~A " (concatenate 'string "xxxxx" (subseq phone 6))))))))))
  +	(hhub-html-page-footer)
  +	(:script "window.onload = function() {countdowntimer(0,0,5,0);}"))))
  +
  +(defun dod-controller-otp-submit-action ()
  +  (let ((otp (hunchentoot:parameter "otp"))
  +	(context (hunchentoot:parameter "context"))
  +	(sessionotp (hunchentoot:session-value :genericotp)))
  +   ;; (hunchentoot:log-message* :info (format nil "context is ~A otp is ~A sessionotp is ~A" context otp sessionotp))
  +    (if (equal (parse-integer otp) sessionotp)
  +	(hunchentoot:redirect (format nil "/hhub/~A" context))
  +	;;else
  +	(hunchentoot:redirect "https://www.highrisehub.com"))))
  +  
  +
  +(defun dod-controller-otp-regenerate-action ()
  +  (let ((phone (hunchentoot:parameter "phone"))
  +	(context (hunchentoot:parameter "context")))
  +	(generateotp&redirect phone context)))
  +   
  +
  +(defun generateotp&redirect (phone context)
  +:description "This function will generate OTP, save it to the session, send SMS to the phone number with OTP message and then redirect to OTP entering page, also remembering the context where to redirect after entering the OTP successfully."
  +  (let ((otp (random 99999)))
  +    ;; Set the otp to the session value 
  +    (setf (hunchentoot:session-value :genericotp ) otp)
  +    ;; Send SMS to the phone with OTP template text 
  +    ;;(hunchentoot:log-message* :info (format nil "sessionotp is ~A" otp))
  +    (send-sms-notification phone *HHUBAWSSNSSENDERID* (format nil *HHUBAWSSNSOTPTEMPLATETEXT* otp))
  +    ;; redirect to the OTP page 
  +    (hunchentoot:redirect (format nil "/hhub/otppage?phone=~A&context=~A" phone context))))
   
   (defun com-hhub-transaction-suspend-account ()
     :documentation "This is a controller method which will suspend an Account"
  
positive.code: 	(hunchentoot:create-regex-dispatcher "^/hhub/dodcustlowbalanceorderitems" 'dod-controller-low-wallet-balance-for-orderitems)
  	(hunchentoot:create-regex-dispatcher "^/hhub/dodcustwallet" 'dod-controller-cust-wallet-display)
  	(hunchentoot:create-regex-dispatcher "^/hhub/custsignup1action" 'dod-controller-cust-register-page)
  	(hunchentoot:create-regex-dispatcher "^/hhub/dodcustregisteraction" 'com-hhub-transaction-customer&vendor-create)
  	(hunchentoot:create-regex-dispatcher "^/hhub/duplicate-cust.html" 'dod-controller-duplicate-customer)
  	(hunchentoot:create-regex-dispatcher "^/hhub/custsignup1.html" 'dod-controller-company-search-page)
  
negative.code:   (remhash username *logged-in-users*))
  
  
  (defun dod-controller-new-store-request-step2 ()
  (let*  ((custname (hunchentoot:parameter "custname"))
  	  (email (hunchentoot:parameter "email"))
  	  (phone (hunchentoot:parameter "phone"))
  	  (cmpname (hunchentoot:parameter "cmpname"))
  