
    BfN                       d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZmZmZ d dlmZ d dlmZ d dlmZmZ d dlm Z m!Z! d d	l"m#Z# d d
l$m%Z% d dl&m'Z' d dl"m(Z( d dl)m*Z* d dl+m,Z, d dlm-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7T d dl8m9Z9 d dl:m;Z;  ej<                    Z=ej<        >                                 dZ?d Z@d ZA eA            ZB e@            ZCd ZDd ZEd ZFd ZGd ZHd ZId  ZJd! ZKd" ZL ed#d$g           eeg          d%                         ZM ed#d$g           eeg          d&                         ZN ed#d$g           eeg          d'                         ZO G d( d)e          ZP G d* d+e          ZQ G d, d-e          ZR G d. d/e          ZS G d0 d1e          ZT G d2 d3e          ZU G d4 d5e          ZV G d6 d7e          ZW ed#d$g           eeg          d8                         ZX ed#d$g           eeg          d9                         ZY ed#d$g           eeg          d:                         ZZ ed#d$g           eeg          d;                         Z[ G d< d=e          Z\ G d> d?e          Z] G d@ dAe          Z^ G dB dCe          Z_ G dD dEe          Z` G dF dGe          Za G dH dIe          Zb G dJ dKe          Zc ed#d$g           eeg          dL                         Zd G dM dNe          Ze G dO dPe          Zf G dQ dRe          Zg ed#d$g           eeg          dS                         Zh G dT dUe          Zi G dV dWe          Zj G dX dYe          Zk G dZ d[e          Zl ed#d$g           eeg          d\                         Zm G d] d^e          Zn ed#d$g           eeg          d_                         Zo G d` dae          Zp G db dce          Zq ed#d$g           eeg          dd                         Zr G de dfe          Zs G dg dhe          Zt G di dje          Zu G dk dle          Zv G dm dne          Zw ed#d$g           eeg          do                         Zx G dp dqe          Zy G dr dse          Zz G dt due          Z{d dvl|m}Z}  ed#d$g           eeg          dw                         Z~ ed#d$g           eeg          dx                         Z G dy dze          Z G d{ d|e          Z G d} d~e          Z ed#d$g           eeg          d                         Z G d de          Z G d de          Z ed#d$g           eeg          d                         Z G d de          Z G d de          Z G d de          Z ed#d$g           eeg          d                         Z G d de          ZdS )    renderN)models)api_viewpermission_classesrenderer_classesauthentication_classes)Response)APIView)IsAuthenticatedAllowAny)make_passwordcheck_password)	send_mail)FileSystemStorage)get_template)EmailMultiAlternatives)authenticate)SQLAlchemyError)date	timedelta)timezone)	dbsession)JSONDateEncoder)ALLOWED_HOSTS)*)SQLAlchemyUserBackend)TokenAuthenticationi  c                  h    t           j                                                             d          } | S )Nz%H:%M:%Sdatetimenowstrftime)current_times    ]/Users/admin/Documents/Codsair Technologies R&D/Git new/IDPWOA/Idpwoa_Backend/idpwoa/views.pyget_current_timer&   :   s*    $((**33J??L    c                  d    t           j                                                             d          S )N%d-%m-%Yr     r'   r%   get_current_dater+   >   s%      ""++J777r'   c                 "    t          | d          S )Nzlanding page/index.htmlr   )requests    r%   landingpager.   H   s    '4555r'   c                 r   	 t          j                    }|                    t                                        t          j        | k                                              }t          |          dk    rdS dS # t          $ r3}|	                                 |
                                 Y d }~dS d }~ww xY wNr      F)r   SessionqueryUserRegistrationTblfilteridnoalllenr   rollbackclose)iddistrictsession
uid_lengthes        r%   checkIdNoExistr@   N   s    '}}011889L9QSU9UVVZZ\\*__ 
! !   		--///	   A3A9 9
B6(B11B6c                 2   t          d| z              t          j                    }| dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | d	k    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d
|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d
|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    rt          d           |                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | dk    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | d k    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d!|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d!|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S | d"k    r|                    t                                        t          j        | k                                              }|rd                    t          |j
                  dz             }d#|z   }t          ||           }|dk    ra|                    t                                        |                               d|i          }|                                 |dk    r|S dS d S d                    t          d          dz             }d#|z   }t          ||           }|dk    rt	                      }| |_        ||_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r|S dS d S d S )$Naaa
Trivandrumz{:03d}r1   zIDPWOA/TVM/r   )r<   r6   KollamzIDPWOA/KLM/PathanamthittazIDPWOA/PTA/	AlappuzhazIDPWOA/ALP/KottayamzIDPWOA/KTM/IdukkizIDPWOA/IDK/	ErnakulamzIDPWOA/EKM/ThrissurzIDPWOA/TSR/PalakkadzIDPWOA/PKD/
MalappuramzIDPWOA/MLP/	KozhikodeKKDzIDPWOA/KKD/WayanadzIDPWOA/WYD/KannurzIDPWOA/KNR/KasargodzIDPWOA/KGD/)printr   r2   r3   	userIdTblr5   r<   firstformatintr6   r@   	filter_byupdatecommitr!   r"   createddateaddrefreshr;   )r<   r=   idObjr;   idNouserIdsqluserObjs           r%   generateIdNorc   ]   s|   eHn#%%|# d	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! ! F	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! )) g	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! $ I	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! # k	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! ! M	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! $ o	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! # Q	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! # s	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! % U	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! $ w	!%LLLMM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! " Y	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! ! ;	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q! ! # 	!MM),,33I4F4PQQWWYYE !//#ej//A"566r#B&t&tH55vA+ !!--	22<<h<OOVVX^_aWbccCNN$$$Av !# q! ! //#c((Q,//r#B&t&tH55vA+ !'kkG'/G$#%GL*2*;*?*?*A*AG'KK(((NN$$$OOG,,,z1} !# q;	! 	!$! !r'   c                 r   	 t          j                    }|                    t                                        t          j        | k                                              }t          |          dk    rdS dS # t          $ r3}|	                                 |
                                 Y d }~dS d }~ww xY wr0   )r   r2   r3   loginTblr5   emailr7   r8   r   r9   r:   )rf   r=   email_lengthr?   s       r%   checkEmailExistrh     s    'x((//0EFFJJLL,! 
! !   		--///	rA   c                      d} d}t          d          D ]3}|| t          j        t          j                    dz                     z  }4|S )N
0123456789    
   )rangemathfloorrandom)digitsOTPis      r%   generateRandomOTPru     sL    
	
(( 2 2Q
6=??R/00	11##r'   c                 .    t          j        d          }|S )N   )secrets	token_hex)name
random_keys     r%   generate_key_from_namer|     s     "6**Jr'   c                    	 t          d           | d         | d         d}t          d          }t          d          }dd| d	         }}}|                    |          }|                    |          }t          ||||g          }	|	                    |d
           |	                                 |	rdS dS # t          $ r}
t          |
           Y d }
~
dS d }
~
ww xY w)Ninsideotp_valrz   )rs   rz   zemail/email.txtzemail/email.htmlWelcome to IDPWOAidpwoakeralawebsite@gmail.comrf   	text/htmlTF)rS   r   r   r   attach_alternativesend	Exceptionparamsctx	plaintexthtmlysubject
from_emailtotext_contenthtml_contentmsgr?   s              r%   sendOTPr   )  s   h#&>  !!233	 !344"57VX^_fXgR '',,||C(($WlJMM|[999


 	45   auuuuus   B3B9 9
CCCc                 D   d| d         i}t          d          }t          d          }dd| d         }}}|                    |          }|                    |          }t          ||||g          }	|	                    |d           |	                                 |	rd	S d
S )Nrs   r   zemail/forgotemail.txtzemail/forgotemail.htmlr   r   rf   r   TF)r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   s
             r%   forgotSendOTPr   A  s    fY 122233.0OQWX_Q`b*  %%S!!g|Z"FFk222 		r'   c                 v   	 d| d         i}t          d          }t          d          }dd| d         }}}|                    |          }|                    |          }t          ||||g          }	|	                    |d           |	                                 |	rdS d	S # t
          $ r}
Y d }
~
d	S d }
~
ww xY w)
Nrz   zemail/welcome.txtzemail/welcome.htmlr   r   rf   r   TF)r   r   r   r   r   r   r   s              r%   welcomeMailr   S  s    6&> !!455	 !566"57VX^_fXgR '',,||C(($WlJMM|[999


 	45   uuuuus   BB# #
B83B8GETPOSTc                    t          j                    }	 | j        d         }| j        d         }| j        d         dz   | j        d         z   }t          |          }t	          |           t          |          }t	          |           |dk    r|dk    rt                      }| j        d         |_        | j        d         |_        ||_	        | j        d         |_
        | j        d	         |_        | j        d
         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j                            d          dgk    rb| j                            d          D ]G}t'                      }	|	                    |j        |          }
|	                    |
          }||_        H| j                            d          dgk    rb| j                            d          D ]G}t'                      }	|	                    |j        |          }
|	                    |
          }||_        H| j        d         |_        | j        d         |_        | j        d         |_        d|_        d|_        d|_        t>          j                                         |_!        |"                    |           |#                                 |j$        dk    rtK                      }d|_&        | j        d         |_'        d|_(        d|_)        | j        d         |_*        |j$        |_+        ||_,        d|_        d|_-        d|_        t]                      |_/        d|_0        t>          j                                         |_!        |"                    |           |#                                 |1                    |           te                      }||_3        |j$        |_4        | j        d         |_5        tm          | j        d                   |_7        d|_-        d|_        | j        d         |_        t>          j                                         |_!        t]                      |_8        d|_9        d|_0        |"                    |           |#                                 |1                    |           |j$        dk    rE| j        d         |d}tu          |          }|;                                 ty          d d!d"          S ty          d#d$d"          S |;                                 ty          d#d$d"          S |;                                 ty          d#d%d"          S # tz          $ rS}t	          |           |>                                 |;                                 ty          d#d&d"          cY d }~S d }~ww xY w)'Nr<   rf   fname lnamer   r1   useraddressshopaddress	contactno
whatsappnoshoptype
bloodgroupgender	userimage	undefined	shopimageconstituency
panchayathActiveOnlinerk   orderidamountRecievedRegistration365passwordUserInactiverf   rz   SuccessAccount created successfullyresponsemessageError-Can't register now...! please try again later(An account with this email already exist/Something went wrong...! please try again later)?r   r2   datarh   rS   rc   r4   r   r   r6   r   r   r   r   r   r   rf   r   getlistr   saverz   urluserimageurlshopimageurlr<   r   r   statuspaymenttype
receipturlr!   r"   r[   r\   rZ   r;   
PaymentDtl	paymentidr   	signature	packageidr   uid	profileidtyper+   dateofpurchasedurationr]   re   login_iduseridusernamer   r   purchasedateaccountstatusr   r:   r
   r   r9   )r-   r=   r<   rf   rz   
emailExistr_   rb   ffsfilenameuploaded_file_urlPackagesDtlloginObjParamswelcomer?   s                    r%   user_registrationr   k  s    !!Gdj<
+W%|G$S(g)>>$U++
hH%%d? W	gax Sp-// 'W 5 'W 5#&-l=&A#&-l=&A#$+L$=!%,\,%?"#*<
#; %,\,%?" 'W 5!(h!7<''44{mC A$\11+>> A A.00#%7716!#4#4,.FF8,<,<)/@,,<''44{mC A$\11+>> A A.00#%7716!#4#4,.FF8,<,<)/@,,#*<
#; '.|N'C$%,\,%?"!)&.#%'"&.&7&;&;&=&=#G$$$   :q= ".!+K,.K)*1,y*AK',.K),.K))0h)?K&&-jKO,0K))3K&'5K$.6K+1A1C1CK.+0K(.6.?.C.C.E.EK+KK,,,NN$$$OOK000'zzH(,H%&-jHO(/W(=H%(5gl:6N(O(OH%$*HM&0HO%,\'%:HN+3+<+@+@+B+BH(,<,>,>H)-5H*(-H%KK)))NN$$$OOH---;q= 
t"<0#' F
 *&11GMMOOO#	Db$c$cddd#Bq$r$rsssG>m n noooMMOOO:deefff j j jaG6ghhiiiiiiii	js1   TV 3V %V +%V 
W.AW)#W.)W.c                 2   t          j                    }	 d}| j        d         }| j        d         }| j        d         dz   | j        d         z   }t          |          }t	          |           t          |          }t	          |           |dk    r|dk    rTt                      }| j        d         |_        | j        d         |_        ||_	        | j        d	         |_
        | j        d
         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j        d         |_        | j                            d          dgk    rb| j                            d          D ]G}	t'                      }
|
                    |	j        |	          }|
                    |          }||_        H| j                            d          dgk    rb| j                            d          D ]G}	t'                      }
|
                    |	j        |	          }|
                    |          }||_        H| j                            d          dgk    r]| j                            d          D ]B}	t'                      }
|
                    |	j        |	          }|
                    |          }|}C||_        | j        d         |_        | j        d         |_        | j        d         |_        d|_        d|_        t>          j                                         |_!        |"                    |           |#                                 |j$        dk    rtK                      }d|_&        | j        d         |_'        d|_(        d|_)        | j        d         |_*        |j$        |_+        ||_,        d|_        d|_-        d|_        ||_        | j        d         |_.        | j        d         |_/        | j        d         |_0        d|_1        t>          j                                         |_!        |"                    |           |#                                 |2                    |           tg                      }||_4        |j$        |_5        | j        d         |_6        to          | j        d                   |_8        d |_-        d!|_        | j        d         |_        t>          j                                         |_!        ts                      |_:        d|_;        d|_1        |"                    |           |#                                 |2                    |           |j$        dk    rE| j        d         |d"}ty          |          }|=                                 t}          d#d$d%          S t}          d&d'd%          S |=                                 t}          d&d'd%          S |=                                 t}          d&d(d%          S # t~          $ rS}t	          |           |@                                 |=                                 t}          d&d)d%          cY d }~S d }~ww xY w)*Nrk   r<   rf   r   r   r   r   r1   r   r   r   r   r   r   r   r   r   r   receiptimager   r   r   Offliner   r   r   r   	receiptnoreceiptdater   r   r   r   r   r   r   r   r   r   r   r   )Ar   r2   r   rh   rS   rc   r4   r   r   r6   r   r   r   r   r   r   rf   r   r   r   r   rz   r   r   r   r   r<   r   r   r   r   r!   r"   r[   r\   rZ   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r]   re   r   r   r   r   r   r+   r   r   r   r:   r
   r   r9   )r-   r=   r   r<   rf   rz   r   r_   rb   r   r   r   r   r   r   r   r   r?   s                     r%   user_OfflineRegistrationr     s%    !!Gqj
<
+W%|G$S(g)>>$U++
hH%%d? c	gax _p-// 'W 5 'W 5#&-l=&A#&-l=&A#$+L$=!%,\,%?"#*<
#; %,\,%?" 'W 5!(h!7<''44{mC A$\11+>> A A.00#%7716!#4#4,.FF8,<,<)/@,,<''44{mC A$\11+>> A A.00#%7716!#4#4,.FF8,<,<)/@,,<''77+F ;!(!5!5n!E!E ; ;A!2!4!4B')wwqva'8'8H02x0@0@-):JJ%/"#*<
#; '.|N'C$%,\,%?"!)&/#&.&7&;&;&=&=#G$$$   :q= (.!+K,.K)*1,y*AK',.K),.K))0h)?K&&-jKO,0K))3K&'5K$.7K+ .8K*,3L,EK).5l=.IK+18m1LK.+0K(.6.?.C.C.E.EK+KK,,,NN$$$OOK000'zzH(,H%&-jHO(/W(=H%(5gl:6N(O(OH%$*HM&0HO%,\'%:HN+3+<+@+@+B+BH(,<,>,>H)-5H*(-H%KK)))NN$$$OOH---;q= 
t"<0#' F
 *&11GMMOOO#	Db$c$cddd#Bq$r$rsssG>m n noooMMOOO:deefff j j jaG6ghhiiiiiiii	js1   WX9 X9 -%X9 %X9 9
ZAZZZc                    t          j                    }	 | j        d         }| j        d         }t          j                                                            d          }|                                 t          ||          }|r|j        r|j	        dk    r|j
        dk    r|j        r$t          |j                   t          j                            |j        d          }t          j                            t          j                                                            d          d          }||z
  j        }t          |           |d	k    rt          d
           	 t!                      }	|j        |	                    t          j                                        t          j        d          z             d}
t-          j        |
t1          d                    }|                    t4                                        t4          j        |j        k                                  d|i           |                    t:                                        |j                                                   t;                      }||_         t          j                                        |_!        |j        |_"        |#                    |           |$                                 i }d|d<   |j%        |d<   |
d         |d<   |j&        |d<   |j
        |d<   |j	        |d<   d|d<   t          j                                        t          j        d          z   |d<   |'                                 tQ          d|dd          |'                                 S # tR          $ rg}t          |           |*                                 |'                                 tQ          dd d!          cY d }~|'                                 S d }~ww xY wt          d"           	 t!                      }	|j        |	                    t          j                                        t          j        d          z             d}
t-          j        |
t1          d                    }|                    t4                                        t4          j        |j        k                                  d|i           |                    t:                                        |j                                                   t;                      }||_         t          j                                        |_!        |j        |_"        |#                    |           |$                                 i }||d<   |j%        |d<   |
d         |d<   |j&        |d<   |j
        |d<   |j	        |d<   |
d#         |d<   t          j                                        t          j        d          z   |d<   |'                                 tQ          d|d$d          |'                                 S # tR          $ rg}t          |           |*                                 |'                                 tQ          dd d!          cY d }~|'                                 S d }~ww xY w	 t!                      }	|j        |	                    t          j                                        t          j        d          z             d}
t-          j        |
t1          d                    }|                    t4                                        t4          j        |j        k                                  d|i           |                    t:                                        |j                                                   t;                      }||_         t          j                                        |_!        |j        |_"        |#                    |           |$                                 i }||d<   |j%        |d<   |
d         |d<   |j&        |d<   |j
        |d<   |j	        |d<   |
d#         |d<   t          j                                        t          j        d          z   |d<   |'                                 tQ          d|d$d          |'                                 S # tR          $ rg}t          |           |*                                 |'                                 tQ          dd d!          cY d }~|'                                 S d }~ww xY w|j	        dk    r|j
        d%k    rt          d"           	 t!                      }	|j        |	                    t          j                                        t          j        d          z             d}
t-          j        |
t1          d                    }|                    t4                                        t4          j        |j        k                                  d|i           |                    t:                                        |j                                                   t;                      }||_         t          j                                        |_!        |j        |_"        |#                    |           |$                                 i }||d<   |j%        |d<   |
d         |d<   |j
        |d<   |j	        |d<   |
d#         |d<   t          j                                        t          j        d          z   |d<   |'                                 tQ          d|d&          |'                                 S # tR          $ rg}t          |           |*                                 |'                                 tQ          dd d!          cY d }~|'                                 S d }~ww xY w|'                                 tQ          dd'd!          |'                                 S n&tQ          dd(d)          |'                                 S n# tV          $ ru}t          |           |*                                 |'                                 tQ          dd*tY          |          d+          cY d }~|'                                 S d }~wtR          $ ru}t          |           |*                                 |'                                 tQ          dd*tY          |          d+          cY d }~|'                                 S d }~ww xY w	 |'                                 d S # |'                                 w xY w),Nr   r   r   microsecond)	user_namer   r   r   r)   m  hiiii   )days)user_idexpiry
SECRET_KEYlast_logineddate)r   rk   tokenr   r   r   r   r   token_expiryi  minutesexpiry_timer   True)r   logindetailsExpiredr   z*Cant login now. Please try again later...!r   zinside activer   FalseAdmin)r   r   z/User account is not active please contact adminzPlease check your credentails)r   r   4Something went wrong please try again after sometimer   r   r   )-r   r2   r   r!   r"   replaceflushr   r;   r   r   r   rS   strptimer#   r   r   r   defaultr   todayr   jwtencodeenvr3   re   r5   rY   	AuthTokenrX   deletekeycreatedr   r\   rZ   r   r   r:   r
   r   r9   r   str)r-   r=   r   r   current_dateuserdate1date2days_differenceDateEncoderpayloadr   
auth_tokenadmin_detailsr?   s                  r%   adminAuthenticationr    sS    !!Gu<
+<
+(,,..6616EEhBBB b	[w _v;( ^vTY-> ^v( vzd/000 ( 1 : :4;Lj Y Y ( 1 : :8;L;P;P;R;R;[;[\f;g;gis t t+05=*>o...*3. K~!'NNN ~.=.?.?+/;+6+>+>x}?R?R?T?TW_WioqWrWrWr?r+s+s+" +"
 ),
7C<M<M(N(N 'h 7 7 > >xPTP[?[ \ \ c cew  yE  eF  !G  !G  !G 'i 8 8 B B4; B W W ^ ^ ` ` `-6[[
16
5=5F5J5J5L5L
 259[
 2 'J 7 7 7 ' 0 0 0029;g 6=A]j 9:A):Lh 7<@Mj 98<	f 5:>+h 7@Bn =?G?P?T?T?V?VW_WityWzWzWz?zm < ''/IUbms0t0t'u'uJ 	I $- ~ ~ ~ %a ' 0 0 2 2 2 ''/WO{1|1|'}'} } } } } }@ 	I~ "/222 ~.=.?.?+/;+6+>+>x}?R?R?T?TW_WioqWrWrWr?r+s+s+" +"
 ),
7C<M<M(N(N 'h 7 7 > >xPTP[?[ \ \ c cew  yE  eF  !G  !G  !G 'i 8 8 B B4; B W W ^ ^ ` ` `-6[[
16
5=5F5J5J5L5L
 259[
 2 'J 7 7 7 ' 0 0 0029>g 6=A]j 9:A):Lh 7<@Mj 98<	f 5:>+h 7@G@Qn =?G?P?T?T?V?VW_WityWzWzWz?zm < ''/IUbmt0u0u'v'vx 	w $- ~ ~ ~ %a ' 0 0 2 2 2 ''/WO{1|1|'}'} } } } } }n 	w~ z*9*;*;K'+{'2':':8=;N;N;P;PS[SekmSnSnSn;n'o'o' 'G
 %(JwL8I8I$J$JE#MM(33::8?DK;WXX__as  uA  aB  C  C  C#MM)44>>t{>SSZZ\\\)2J-2JN191B1F1F1H1HJ.15J.#KK
333#NN,,,,.M5:M'29=M*56=i6HM(38<M*548IM&16:kM(3<CH<MM.9;C;L;P;P;R;RS[SepuSvSvSv;vM-8#MMOOO#+	Q^ip,q,q#r#rt 	s  ) z z z!!HHH#,,...#MMOOO#+Kw-x-x#y#yyyyyyj 	sz [(* $vty'/A $vo...z*9*;*;K'+{'2':':8=;N;N;P;PS[SekmSnSnSn;n'o'o' 'G
 %(JwL8I8I$J$JE#MM(33::8?DK;WXX__as  uA  aB  C  C  C#MM)44>>t{>SSZZ\\\)2J-2JN191B1F1F1H1HJ.15J.#KK
333#NN,,,,.M5:M'29=M*56=i6HM(348IM&16:kM(3<CH<MM.9;C;L;P;P;R;RS[SepuSvSvSv;vM-8#MMOOO#+	Q^,_,_#`#`, 	+  ) z z z!!HHH#,,...#MMOOO#+Kw-x-x#y#yyyyyy" 	+z MMOOO#Bs$t$tuu 	[_vB w9XYYZZ 	[_vD    aG7mvyz{v|v|}}~~~~~~~ 	    aG7mvyz{v|v|}}~~~~~~~O_vZ 	s  Er7 )H"N   
P*AP2P3r7 Pr7 $H(Y! !
[+A[3[4r7 [r7 H(d 
fAe?%f&r7 ?f*r7 /Ho! !
q+Aq3q4r7 q(r7 r7 6w 7
v3At1v3w 1v3>Av.v3w .v33w w#c                        e Zd ZefZefZd ZdS )get_UserListc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nzselect idpwoalogin.userid,idpwoalogin.status as loginstatus,idpwoauserregistartion.* from idpwoalogin inner join idpwoauserregistartion on idpwoauserregistartion.id = idpwoalogin.userid  where idpwoalogin.status="Active" order by id descc                 ,    g | ]}t          |          S r*   dict.0rows     r%   
<listcomp>z%get_UserList.post.<locals>.<listcomp>L      555cS		555r'   r   r   r   userlistr   No data foundr   r   r   r   r2   executetextfetchallr8   r:   r
   r   rS   r9   r  r   selfr-   r=   ra   rb   userObjsr?   s          r%   postzget_UserList.postG  s7   #%%	 ACood3ii0099;;G55W555H8}}Q PI J JKK MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   A:C $%C 
G(AE>G?G G%AG;G<G GG G3N__name__
__module____qualname__r   r   r   r	   r'  r*   r'   r%   r  r  D  5        ),14    r'   r  c                        e Zd ZefZefZd ZdS )getUserByStatusc                 0   t          j                    }	 t          d           |j        d         }d|z   dz   }|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          d	d
d          |                                 S # t          $ ru}t          |           |                                 |                                 t          d	dt          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          d	dt          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Ninside loginr   zselect idpwoalogin.userid,idpwoalogin.status as loginstatus,idpwoauserregistartion.* from idpwoalogin inner join idpwoauserregistartion on idpwoauserregistartion.id = idpwoalogin.userid  where idpwoalogin.status="" order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z(getUserByStatus.post.<locals>.<listcomp>l  r  r'   r   r   r  r   r  r   r   r   r   r2   rS   r   r!  r"  r#  r8   r:   r
   r   r9   r  r   )r%  r-   r=   r   ra   rb   r&  r?   s           r%   r'  zgetUserByStatus.postd  sk   #%%	.!!!\(+F i  jp  p  qE  ECood3ii0099;;G55W555H8}}Q PI J JKK MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   BD  %D   
G<
AE: G<!G? :G<AG7G<G? 7G<<G? ?HNr)  r*   r'   r%   r/  r/  a  5        ),14    r'   r/  c                        e Zd ZefZefZd ZdS )getUser_ByIDc                 ^   t          j                    }	 t          d           |j        d         }d}d}d|z   dz   }|                    t          |                                                    }d |D             }|                    t                    	                    t          j
        |k                                              }	|	rt          |	j                   |	j        }
t                      }t          j                            |
d          }t          j                            t          j                                                            d          d          }||z
  j        }t          |           |dk    rd	}n|dk    rd
}t'          |          dk    r<|                                 t+          d|||d          |                                 S |                                 t+          ddd          |                                 S # t,          $ ru}t          |           |                                 |                                 t+          ddt1          |          d          cY d }~|                                 S d }~wt2          $ ru}t          |           |                                 |                                 t+          ddt1          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr1  r;   rk   z0select * from idpwoauserregistartion where id =""c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z%getUser_ByID.post.<locals>.<listcomp>  r  r'   r)   r   r   r   r   r   )r   r  r   r   r   r  r   r   r   )r   r2   rS   r   r!  r"  r#  r3   r   r5   r   one_or_noner   r+   r!   r   r"   r#   r   r8   r:   r
   r   r9   r  r   )r%  r-   r=   r;   r  r   ra   rb   r&  
paymentObjr   currentdater
  r  r?   s                  r%   r'  zgetUser_ByID.post  sU   #%%)	.!!!d#B OFDRGKCood3ii0099;;G55W555H z2299*.B:NOO[[]]J &j/000!+!:.00 )22>:NN )2283D3H3H3J3J3S3ST^3_3_akll#(5="6o&&&"S( &'FF$s* &%F8}}Q PIQ`jp q qrr MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   F3H %H 
L!AJ7L8L LAL4L5L LL L,Nr)  r*   r'   r%   r8  r8    5        ),14+ + + + +r'   r8  c                        e Zd ZefZefZd ZdS )editUserProfilec                 h   t          j                    }	 |j        d         }|j        d         }|                    t                                        ||                                          }|j        d         |_        |j        d         |_        |j        d         |_	        |j        d         |_
        |j        d         |_        |j        d	         |_        |j        d
         |_        |j        d         |_        |j        d         |_        |j                            d          dgk    rb|j                            d          D ]G}t#                      }|                    |j        |          }|                    |          }	|	|_        H|j                            d          dgk    rb|j                            d          D ]G}t#                      }|                    |j        |          }|                    |          }	|	|_        H|j        d         |_        |j        d         |_        |j        d         |_        d|_        t6          j                                        |_        |                    |           |                                 |j         dk    r:|!                                 tE          ddd          |!                                 S |!                                 tE          ddd          |!                                 S # tF          $ ru}
tI          |
           |%                                 |!                                 tE          ddtM          |
          d          cY d }
~
|!                                 S d }
~
wtN          $ ru}
tI          |
           |%                                 |!                                 tE          ddtM          |
          d          cY d }
~
|!                                 S d }
~
ww xY w# |!                                 w xY w)Nr   r6   )r;   r6   r   r   r   r   r   r   r   r   r   r   r   r   r<   r   r   r   r   r   Updated successfullyr   r   Can't update valuer   r   )(r   r2   r   r3   r4   rX   oner   r   r   r   r   r   r   r   r   r   r   r   rz   r   r   r   r<   r   r   r   r!   r"   r[   r\   rZ   r;   r:   r
   r   rS   r9   r  r   )r%  r-   r=   r;   r6   rb   r   r   r   r   r?   s              r%   r'  zeditUserProfile.post  s'   #%%2	h'B<'Dmm$788BBbtBTTXXZZG#L1GM#L1GM"),}"=G"),}"=G '[ 9G!(l!;G&|J7G!(l!;G$\(3GN|##K00;-? = --k:: = =A*,,B!wwqva00H(*x(8(8%+<G((|##K00;-? = --k:: = =A*,,B!wwqva00H(*x(8(8%+<G((&|J7G#*<#?G !(l!;G%GN"*"3"7"7"9"9GKK   NNz1} UI@V W WXX MMOOOO G>R S STT MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   J8L "%L 
P&AN<P=P P#AP9P:P PP P1Nr)  r*   r'   r%   rA  rA    s5        ),144 4 4 4 4r'   rA  c                        e Zd ZefZefZd ZdS )get_UserByDistrictc                 0   t          j                    }	 t          d           |j        d         }d|z   dz   }|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          d	d
d          |                                 S # t          $ ru}t          |           |                                 |                                 t          d	dt          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          d	dt          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr1  r<   zselect idpwoalogin.userid,idpwoalogin.status as loginstatus,idpwoauserregistartion.* from idpwoalogin inner join idpwoauserregistartion on idpwoauserregistartion.id = idpwoalogin.userid  where idpwoauserregistartion.district="r2  c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z+get_UserByDistrict.post.<locals>.<listcomp>  r  r'   r   r   r  r   r  r   r   r   r4  )r%  r-   r=   didra   rb   r&  r?   s           r%   r'  zget_UserByDistrict.post  sk   #%%	.!!!,z*C v  wz  z  {O  OCood3ii0099;;G55W555H8}}Q PI J JKK MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr5  Nr)  r*   r'   r%   rG  rG    r6  r'   rG  c                        e Zd ZefZefZd ZdS )getUser_Requestc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nzselect idpwoalogin.userid,idpwoalogin.status as loginstatus,idpwoauserregistartion.* from idpwoalogin inner join idpwoauserregistartion on idpwoauserregistartion.id = idpwoalogin.userid  where idpwoalogin.status="Inactive" order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z(getUser_Request.post.<locals>.<listcomp>  r  r'   r   r   r  r   r  r   r   r   r   r$  s          r%   r'  zgetUser_Request.post  s7   #%%	 DCood3ii0099;;G55W555H8}}Q PI J JKK MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr(  Nr)  r*   r'   r%   rL  rL    r-  r'   rL  c                        e Zd ZefZefZd ZdS )approveUserc                    t          j                    }	 |j        d         }|j        d         }|                    t                                        |                                          }|rA||_        |                                 t          ddd          |
                                 S t          ddd          |
                                 S # t          $ ru}t          |           |                                 |
                                 t          d	d
t          |          d          cY d }~|
                                 S d }~wt          $ ru}t          |           |                                 |
                                 t          d	d
t          |          d          cY d }~|
                                 S d }~ww xY w# |
                                 w xY w)Nr   r   )r   r   rC  r   Warning!Cant update value try again laterr   r   r   )r   r2   r   r3   re   rX   rU   r   rZ   r
   r:   r   rS   r9   r  r   )r%  r-   r=   r   r   r	  r?   s          r%   r'  zapproveUser.post/  s4   #%%	\(+F\(+F==**44F4CCIIKKD f$   YCY Z Z[[ MMOOOO  I@c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   BC 2C 
G"AE8G9G GAG5G6G GG G-Nr)  r*   r'   r%   rP  rP  ,  r-  r'   rP  c                        e Zd ZefZefZd ZdS )activeOrInactiveUsersc                    t          j                    }	 |j        d         }|                    t                                        t          j        dk                                  d|i           |                                 t          ddd          |
                                 S # t          $ ru}t          |           |                                 |
                                 t          ddt          |          d          cY d }~|
                                 S d }~wt          $ ru}t          |           |                                 |
                                 t          ddt          |          d          cY d }~|
                                 S d }~ww xY w# |
                                 w xY w)	Nr   r   r   rC  r   r   r   r   )r   r2   r   r3   re   r5   r   rY   rZ   r
   r:   r   rS   r9   r  r   )r%  r-   r=   r   r?   s        r%   r'  zactiveOrInactiveUsers.postK  s   #%%	\(+FMM(##**8=G+CDDKKXW]L^___NN?UVVWW MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsJ   BB, ,
F(6AD&F(F+ &F(3AF#	F(
F+ #F((F+ +GNr)  r*   r'   r%   rV  rV  H  s5        ),14    r'   rV  c                    t          j                    }	 | j        d         }| j        d         }| j        d         }t          |          }|dk    r:|                                 t          ddd          |                                 S t          j                    }t          j        t                     t                      }t          j                                                            d	          }|t          j        d
          z   }	t                      }|||	d}
|||	| j        d         |d}|rMt          |          }|dk    rt!                      }| j        d         |_        ||_        t'          j                    }t          j                                        |_        t,          |_        t1          |          }||_        d|_        ||_        ||_        d|_        |                    |           |                                 |                                 t          d|d          |                                 S |                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t@          $ ru}tC          |           |"                                 |                                 t          ddtG          |          d          cY d }~|                                 S d }~wtH          $ r}tC          d           tC          |           |"                                 |                                 t          ddtG          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nrf   rz   phoner1   r   r   r   r   r      r   )r   otp_created_timeotp_exp_time)r   otp_cre_timeotp_expire_timerf   rz   Tr   Pendingr   )r   r  zDCant send otp to the email you provided...!please check you email idz+Cant send otp now..! please try again laterr   r   z
inside try)%r   r2   r   rh   r:   r
   sysgetrecursionlimitsetrecursionlimit	new_limitru   r!   r"   r   r   r   Otpdtlrf   otpr   r   r[   r$   createdtimer|   r  r   rz   rY  r   r\   rZ   r   rS   r9   r  r   )r-   r=   rf   rz   rY  r   current_limitOtpr]  r^  r   	otpParamsresultotpDtlr   r  r?   s                    r%   sendUserOtprl  b  s    !!G>W%|F#W%$U++
? ,	nMMOOO:deeffn MMOOOOi  133M!),,,#%%C#,0022::q:IIL*8+=+J+J+JJO#%%C!$LZijjF!-#2W- I  n ++T> K#XXF#*<#8FL!$FJ JLLE)1):)>)>)@)@F&)5F&066C!$FJ"0FK"&FK#(FL$-FMKK'''NN$$$MMOOO#	$D$DEE& MMOOOO# MMOOO#  CI  %J  %J  K  K  MMOOOO G>k l lmm MMOOOO    aG7mvyz{v|v|}}~~~~~~~ MMOOOO    laG7mvyz{v|v|}}~~~~~~~MMOOOO MMOOOOs]   A!K  F,K  %K  %K   
O
AL: O!O :OA%O,O-O OO O$c                 n   t          j                    }	 | j        d         }| j        d         }| j        d         }|                    t                                        ||                                          }|j        dk    r\t          j	        d          }t          j
        |j                  }t          j                    }||z
  |k    r<|                                 t          dd	d
d          |                                 S |j        |k    r|                    t                                        |                              ddi          }	|                                 |                                 t          ddd
          |                                 S |                                 t          ddd
          |                                 S |                                 t          ddd
          |                                 S # t$          $ ru}
t'          |
           |                                 |                                 t          ddt+          |
          d          cY d }
~
|                                 S d }
~
wt,          $ ru}
t'          |
           |                                 |                                 t          ddt+          |
          d          cY d }
~
|                                 S d }
~
ww xY w# |                                 w xY w)Nre  r  rf   )rf   r  r_     r   r   zOTP expiredr   i  )r   )r  r   Verifiedr   zOTP VerifiedzIncorrect OTPrR  zAccount already verifiedr   r   )r   r2   r   r3   rd  rX   rE  r   r   r   
make_awarer[   r"   r:   r
   re  rY   rZ   r   rS   r9   r  r   )r-   r=   re  r  rf   otpValexpiration_time
created_atr$   ra   r?   s              r%   verifyUserOtprt    s    !!G(l5!l5!W%v&&00u0EEIIKK
 =I% 	Y&0<<<O!,V-?@@J#<>>Lj(?: TW N NWZ[[[0 MMOOOO- :$ T!--//99c9BBII8T^J_``CNN$$$MMOOO#	N$S$STT$ MMOOOO! MMOOO#/$R$RSS MMOOOO MMOOO	<VWWXX MMOOOO    aG7mvyz{v|v|}}~~~~~~~ MMOOOO    aG7mvyz{v|v|}}~~~~~~~MMOOOO MMOOOOs]   C%H BH +%H %%H 
L)AJ?L L L&AL<L=L LL L4c                    t          j                    }	 | j        d         }t          |          }|dk    r&t	          ddd          |                                 S |dk    ryt                      }t          j                                        	                    d          }|t          j
        d	          z   }t                      }|||| j        d         d
}nt          d           |rt          |          }|dk    r?|                    t                                        |                                          }	|	j        }
t%                      }| j        d         |_        ||_        d|_        d|_        t/          j                    }t          j                                        |_        t5                      |_        t9          d          }||_        |                    |           |                                 |                                 t	          d||
d          |                                 S |                                 t	          ddd          |                                 S |                                 t	          ddd          |                                 S # t@          $ ru}t          |           |!                                 |                                 t	          ddtE          |          d          cY d }~|                                 S d }~wtF          $ ru}t          |           |!                                 |                                 t	          ddtE          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nrf   r   r   z!Account with this email not existr   r1   r   rZ  r   )r   r]  r^  rf   rk   T)rf   zForgot passwordr_  rz   r   )r   r  keyidz!Cant Send OTP to your given emailr   r   )$r   r2   r   rh   r
   r:   ru   r!   r"   r   r   rS   r   r3   re   rX   rE  r   rd  rf   re  r   r   r   r   r[   r&   rf  r|   r  r\   rZ   r   r9   r  r   )r-   r=   rf   r   rh  r]  r^  ri  rj  loginDtlkeyIdrk  r   r  r?   s                  r%   fogetPasswordOtpry    s    !!G6W%$U++
? 	G>a b bccd MMOOOOc !^ 	#%%C#,0022::q:IIL*8+=+J+J+JJO#%%C$)W-	 II "III 	s"9--F~ d"==22<<U<KKOOQQ )&|G4 
/ )
%-%6%:%:%<%<"%5%7%7",V44 
F###   IC N NOO$ MMOOOO! G>a b bcc MMOOOO MMOOO:pqqrr MMOOOO    aG7mvyz{v|v|}}~~~~~~~ MMOOOO    aG7mvyz{v|v|}}~~~~~~~MMOOOO MMOOOOs\   3J7 GJ7 %J7 =%J7 7
N3AL1N3N6 1N3>AN.N3N6 .N33N6 6Oc                    t          j                    }	 | j        d         }| j        d         }| j        d         }|                    t                                        ||                                          }t          | j        d                   |_        |	                    |           |
                                 |                    |           |j        dk    r:|                                 t          ddd          |                                 S |                                 t          d	d
d          |                                 S # t          $ ru}t!          |           |                                 |                                 t          d	dt%          |          d          cY d }~|                                 S d }~wt&          $ ru}t!          |           |                                 |                                 t          d	dt%          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nrf   r   rv  )rf   r   r   r   Password changed successfullyr   r   zCan't change passwordr   r   )r   r2   r   r3   re   rX   rE  r   r   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )r-   r=   rf   r   rx  rw  r?   s          r%   foget_PasswordChanger|    sR    !!GW%<
+W%==**44UE4RRVVXX*7<
+CDDH!!!;q= 	UMMOOO=\]]^^  MMOOOO MMOOO;RSSTT MMOOOO    aG7mvyz{v|v|}}~~~~~~~ MMOOOO    aG7mvyz{v|v|}}~~~~~~~MMOOOO MMOOOOsP   C5E %E 
I#AG9I:I I AI6I7I II I.c                        e Zd ZefZefZd ZdS )changePasswordc                 6   t          j                    }	 |j        d         }|j        d         }|j        d         }|j        d         }|                    t                                        t          j        |k                                              }|r0|                    |          rt          |          }|                    t                    
                    ||                              d|i          }	|                                 |	dk    r:|                                 t          dd	d
          |                                 S |                                 t          ddd
          |                                 S |                                 t          ddd
          |                                 S |                                 t          ddd
          |                                 S # t          $ ru}
t!          |
           |                                 |                                 t          ddt%          |
          d          cY d }
~
|                                 S d }
~
wt&          $ ru}
t!          |
           |                                 |                                 t          ddt%          |
          d          cY d }
~
|                                 S d }
~
ww xY w# |                                 w xY w)Noldpasswordnewpasswordr   r6   )r   r   r   r   r   r{  r   r   zcan't change passwordzOld password is incorrectr   r   )r   r2   r   r3   re   r5   r   rE  r   r   rX   rY   rZ   r:   r
   r   rS   r9   r  r   )r%  r-   r=   oldPasswordnewPasswordr   r6   r	  r   ra   r?   s              r%   r'  zchangePassword.post8  s6   #%%$	!,}5K!,}5K\(+F<'D==**11(/V2KLLPPRRD Z&&{33 `,[99H!--11;;6SW;XX__aklt`uvvCNN$$$1u `'IHg(h(hii, MMOOOO)  'GF](^(^__& MMOOOO# MMOOO#B]$^$^__  MMOOOO I@W X XYY MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOs\   D+H %H %H 	%H 
K?AI=#K?$L =K?
AK: K?!L :K??L LNr)  r*   r'   r%   r~  r~  5  s5        ),14& & & & &r'   r~  c                        e Zd ZefZefZd ZdS )addUsefullLinksc                    t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        H|j        d         |_
        |j        d         |_        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t+          ddd	          |                                 S |                                 t+          d
dd	          |                                 S # t,          $ ru}t/          |           |                                 |                                 t+          d
dt3          |          d          cY d }~|                                 S d }~wt4          $ ru}t/          |           |                                 |                                 t+          d
dt3          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nimager   descriptionlinkr   r   r   Added successfullyr   r   #Can't add now please tryagain laterr   r   )r   r2   usefullLinksTblr   r   r   r   rz   r   imageurlr  r  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   linksObjr   r   r   r   r?   s	            r%   r'  zaddUsefullLinks.postg  s   #%%!	&((H|##G,,{m; : --g66 : :A*,,B!wwqva00H(*x(8(8%(9H%%#*<#>H #L0HM&HO#+#4#8#8#:#:H KK!!!NNOOH%%%{1} fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   EF/ 5%F/ /
J+9AH)J+J. )J+6AJ&J+J. &J++J. .KNr)  r*   r'   r%   r  r  d  5        ),14# # # # #r'   r  c                        e Zd ZefZefZd ZdS )getuseFullLinksc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nz1select * from idpwoausefulllinks order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z(getuseFullLinks.post.<locals>.<listcomp>  r  r'   r   r   r   usefulllinklistr   r  r   r   r   r   r$  s          r%   r'  zgetuseFullLinks.post  s4   #%%	ECood3ii0099;;G55W555H8}}Q PI Q QRR MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr(  Nr)  r*   r'   r%   r  r    r-  r'   r  c                        e Zd ZefZefZd ZdS )get_useFullLinksByIdc                 8   t          j                    }	 t          j                    }|j        d         }d|z   dz   }|                    t	          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          dd	d
          |                                 S # t          $ ru}t          |           |                                 |                                 t          ddt          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          ddt          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr;   z-select * from idpwoausefulllinks where id = "r:  c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z-get_useFullLinksById.post.<locals>.<listcomp>  r  r'   r   r   r  r   r  r   r   r   r   r2   r   r!  r"  r#  r8   r:   r
   r   rS   r9   r  r   )r%  r-   r=   r;   ra   rb   r&  r?   s           r%   r'  zget_useFullLinksById.post  sX   #%%	'))Gd#BA"DSHCood3ii0099;;G55W555H8}}Q PI Q QRR MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   B D 
%D 
H AE>$H %H >H AG;!H "H ;H  H HNr)  r*   r'   r%   r  r    5        ),14    r'   r  c                        e Zd ZefZefZd ZdS )editUsefullLinksc                    t          j                    }	 |j        d         }|                    t                                        |                                          }|j                            d          dgk    rb|j                            d          D ]G}t                      }|	                    |j
        |          }|                    |          }||_        H|j        d         |_        |j        d         |_        |                                 |                    |           |j        dk    r:|                                 t'          dd	d
          |                                 S |                                 t'          ddd
          |                                 S # t(          $ ru}	t+          |	           |                                 |                                 t'          ddt/          |	          d          cY d }	~	|                                 S d }	~	wt0          $ ru}	t+          |	           |                                 |                                 t'          ddt/          |	          d          cY d }	~	|                                 S d }	~	ww xY w# |                                 w xY w)Nr;   r;   r  r   r  r  r   r   rC  r   r   rD  r   r   )r   r2   r   r3   r  rX   rE  r   r   r   rz   r   r  r  r  rZ   r]   r;   r:   r
   r   rS   r9   r  r   )
r%  r-   r=   r;   r  r   r   r   r   r?   s
             r%   r'  zeditUsefullLinks.post  s   #%%&	d#B}}_55??2?FFJJLLH|##G,,{m; : --g66 : :A*,,B!wwqva00H(*x(8(8%(9H%%#*<#>H #L0HMNNOOH%%%{1} UI@V W WXX& MMOOOO# G>R S STT  MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r    s5        ),14( ( ( ( (r'   r  c                        e Zd ZefZefZd ZdS )deleteUsefullLinksc                    t          j                    }	 |j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wNr;   r  r   r   zDeleted successfully r   r   zcan't delete nowr   r   )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r%  r-   r=   r;   ra   r?   s         r%   r'  zdeleteUsefullLinks.post  s?   #%%	d#B--00::b:AAHHJJCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   BC0 6%C0 0
G,:AE*G,G/ *G,7AG'G,G/ 'G,,G/ /HNr)  r*   r'   r%   r  r    r-  r'   r  c                        e Zd ZefZefZd ZdS )	addbannerc                 j   t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        H|j        d         |_
        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t)          ddd          |                                 S |                                 t)          d	d
d          |                                 S # t*          $ ru}t-          |           |                                 |                                 t)          d	dt1          |          d          cY d }~|                                 S d }~wt2          $ ru}t-          |           |                                 |                                 t)          d	dt1          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr  r   linkurlr   r   r   r  r   r   r  r   r   )r   r2   	bannerTblr   r   r   r   rz   r   r  r  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   	bannerObjr   r   r   r   r?   s	            r%   r'  zaddbanner.post  s   #%%	!I|##G,,{m; ; --g66 ; ;A*,,B!wwqva00H(*x(8(8%):I&& 'Y 7I'I$,$5$9$9$;$;I!KK	"""NNOOI&&&|A~ fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   D9F #%F 
J'AH=J>J J$AJ:J;J JJ J2Nr)  r*   r'   r%   r  r    5        ),14! ! ! ! !r'   r  c                        e Zd ZefZefZd ZdS )getBannerListc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nz+select * from idpwoabanner order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z&getBannerList.post.<locals>.<listcomp>?      999$s))999r'   r   r   r   
bannerlistr   r  r   r   r   r   )r%  r-   r=   ra   r  
bannerObjsr?   s          r%   r'  zgetBannerList.post:  s5   #%%	?CS		22;;==I99y999J:q  PI: N NOO MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr(  Nr)  r*   r'   r%   r  r  7  r-  r'   r  c                    	 t          j                    }d}|                    t          |                                                    }d |D             }|                    t                                                    }|r]t          d|j	        z              t          |j	                  dz   |_	        |                    |           |                                 nat                      }d|_	        t          j                                        |_        |                    |           |                                 t!          |          dk    r&|                                 t%          d|d          S |                                 t%          d	d
d          S # t&          $ rS}t          |           |                                 |                                 t%          d	dd          cY d }~S d }~ww xY w)NzBselect * from idpwoabanner where status ="Active" order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z%getUserBannerList.<locals>.<listcomp>Z      555Cd3ii555r'   dhadjr1   1r   r   r  r   r  r   r   )r   r2   r!  r"  r#  r3   VisitorsDtlrU   rS   countrW   r\   rZ   r!   r"   r[   r8   r:   r
   r   r9   )r-   r=   ra   r  r  countObjvistObjr?   s           r%   getUserBannerListr  S  s   j#%%ROODII..7799	559555
 ==--3355 
	'8>)*** 00!3HNKK!!!NN!mmGGM"*"3"7"7"9"9GKK   NNz??1 	L]]___
KKLLLMMOOO/JJKKK j j jaG6ghhiiiiiiii	js%   E9F" <%F" "
G?,AG:4G?:G?c                        e Zd ZefZefZd ZdS )deleteBannerc                    t          j                    }	 |j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteBanner.postx  s?   #%%	d#B--	**444;;BBDDCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  u  r-  r'   r  c                        e Zd ZefZefZd ZdS )updateBannerStatusc                    t          j                    }	 |j        d         }|j        d         }|                    t                                        |                                          }|rA||_        |                                 t          ddd          |
                                 S t          ddd          |
                                 S # t          $ ru}t          |           |                                 |
                                 t          d	d
t          |          d          cY d }~|
                                 S d }~wt          $ ru}t          |           |                                 |
                                 t          d	d
t          |          d          cY d }~|
                                 S d }~ww xY w# |
                                 w xY w)Nr;   r   r  r   rC  r   rR  rS  r   r   r   )r   r2   r   r3   r  rX   rU   r   rZ   r
   r:   r   rS   r9   r  r   )r%  r-   r=   r;   r   bannerr?   s          r%   r'  zupdateBannerStatus.post  s4   #%%	d#B\(+F]]9--7727>>DDFFF f &   YCY Z Z[[ MMOOOO  I@c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOrT  Nr)  r*   r'   r%   r  r    r-  r'   r  c                        e Zd ZefZefZd ZdS )	addMarquec                    t          j                    }	 t          j                    }t                      }|j        d         |_        d|_        |j        d         |_        t          j                                        |_	        |
                    |           |                                 |                    |           |j        dk    r:|                                 t          ddd          |                                 S |                                 t          dd	d          |                                 S # t           $ ru}t#          |           |                                 |                                 t          dd
t'          |          d          cY d }~|                                 S d }~wt(          $ ru}t#          |           |                                 |                                 t          dd
t'          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nmarquer   r   r   r   r  r   r   r  r   r   )r   r2   	marqueTblr   r  r   r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )r%  r-   r=   	marqueObjr?   s        r%   r'  zaddMarque.post  s~   #%%	'))G!I&|H5I'I$\&1IN$,$5$9$9$;$;I!KK	"""NNOOI&&&|A~ fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   CE %E 
H=AF;!H="I  ;H=AH8H=I  8H==I   INr)  r*   r'   r%   r  r    s5        ),14    r'   r  c                    	 t          j                    }| j        d         }|dk    rCd}|                    t	          |                                                    }d |D             }nHd|z   dz   }|                    t	          |                                                    }d |D             }t          |          dk    r&|                                 t          d	|d
          S |                                 t          ddd          S # t          $ rS}t          |           |                                 |                                 t          ddd          cY d }~S d }~ww xY w)Nr   Allz+select * from idpwoamarque order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z!getMarqueList.<locals>.<listcomp>  r  r'   z'select * from idpwoamarque where type="r2  c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z!getMarqueList.<locals>.<listcomp>  r  r'   r   r   )r   
marquelistr   r  r   r   )r   r2   r   r!  r"  r#  r8   r:   r
   r   rS   r9   )r-   r=   r   ra   r  
marqueObjsr?   s          r%   getMarqueListr    s~   j#%%|F#5= 	:?CS		22;;==I99y999JJ;D@AUUCS		22;;==I99y999Jz??1 	L]]___
KKLLLMMOOO/JJKKK j j jaG6ghhiiiiiiii	js%   C)D ,%D 
E/AE*$E/*E/c                        e Zd ZefZefZd ZdS )get_MarqueByIdc                    t          j                    }	 |j        d         }d|z   dz   }|                    t	          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          dd	d
          |                                 S # t          $ ru}t          |           |                                 |                                 t          ddt          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          ddt          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr;   z'select * from idpwoamarque where id = "r:  c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z'get_MarqueById.post.<locals>.<listcomp>  r  r'   r   r   )r   r  r   r  r   r   r   r  )r%  r-   r=   r;   ra   r  r  r?   s           r%   r'  zget_MarqueById.post  sK   #%%	d#B;B>sBCS		22;;==I99y999J:q  PIy I IJJ MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   BC1 7%C1 1
G-;AE+G-G0 +G-8AG(G-G0 (G--G0 0HNr)  r*   r'   r%   r  r    5        ),14    r'   r  c                        e Zd ZefZefZd ZdS )
editMarquec                    t          j                    }	 |j        d         }|                    t                                        |                                          }|j        d         |_        |j        d         |_        |	                                 |
                    |           |j        dk    r:|                                 t          ddd          |                                 S |                                 t          d	d
d          |                                 S # t          $ ru}t          |           |                                 |                                 t          d	dt#          |          d          cY d }~|                                 S d }~wt$          $ ru}t          |           |                                 |                                 t          d	dt#          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr;   r  r  r   r   r   rC  r   r   rD  r   r   )r   r2   r   r3   r  rX   rE  r  r   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )r%  r-   r=   r;   r  r?   s         r%   r'  zeditMarque.post  sp   #%%	d#Bi00::b:AAEEGGI&|H5I$\&1INNNOOI&&&|A~ UI@V W WXX MMOOOO G>R S STT MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   C
D. 4%D. .
H*8AF(H*H- (H*5AH%H*H- %H**H- -INr)  r*   r'   r%   r  r  	  r6  r'   r  c                        e Zd ZefZefZd ZdS )deleteMarquec                    t          j                    }	 |j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteMarque.post+  s?   #%%	d#B--	**444;;BBDDCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  (  r  r'   r  c                        e Zd ZefZefZd ZdS )aboutUsc                 0   t          j                    }	 |                    t                                                    }|r5t          d           t          |d         j                   |                    t                                        |d         j                                                  }|j	        d         |_
        d|_        |                                 |                    |           |j        dk    r:|                                 t          ddd          |                                 S |                                 t          d	d
d          |                                 S t                      }|j	        d         |_
        d|_        t           j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t          ddd          |                                 S |                                 t          d	d
d          |                                 S # t(          $ ru}t          |           |                                 |                                 t          d	dt-          |          d          cY d }~|                                 S d }~wt.          $ ru}t          |           |                                 |                                 t          d	dt-          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr~   r   r  aboutr   r   rC  r   r   rD  r   r   )r   r2   r3   
aboutUsTblr7   rS   r;   rX   rE  r   r  r   rZ   r]   r:   r
   r!   r"   r[   r\   r   r9   r  r   )r%  r-   r=   r  aboutObjr?   s         r%   r'  zaboutUs.postK  s   #%%)	MM*--1133E YheAhk""""==44>>%(+>NNRRTT!(g!6"*   )));q= YMMOOO#	DZ$[$[\\: MMOOOO7 MMOOO#BV$W$WXX4 MMOOOO1 &<<!(g!6"*'/'8'<'<'>'>$H%%%   )));q= YMMOOO#	DZ$[$[\\ MMOOOO MMOOO#BV$W$WXX MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOs]   DJ  ?%J  9B8J  %J   
M<
AK: M<!M? :M<AM7M<M? 7M<<M? ?NNr)  r*   r'   r%   r  r  H  r?  r'   r  c                 ,   	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r&|                                 t          d|d          S |                                 t          ddd          S # t          $ rS}t          |           |
                                 |                                 t          dd	d          cY d }~S d }~ww xY w)
Nz,select * from idpwoaaboutus order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  zgetAboutUs.<locals>.<listcomp>      3333T#YY333r'   r   r   )r   aboutusr   r  r   r   r   r2   r!  r"  r#  r8   r:   r
   r   rS   r9   )r-   r=   ra   r  	aboutObjsr?   s         r%   
getAboutUsr  x  s   j#%%<??499--668833(333	y>>! 	L]]___YGGHHHMMOOO/JJKKK j j jaG6ghhiiiiiiii	j%   BB6 %B6 6
D ADDDc                        e Zd ZefZefZd ZdS )deleteAboutUsc                    t          j                    }	 |j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteAboutUs.post  s?   #%%	d#B--
++555<<CCEECNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r    r-  r'   r  c                    	 t          j                    }t                      }| j        d         |_        | j        d         |_        | j        d         |_        | j        d         |_        d|_        t          j	        
                                |_        |                    |           |                                 |                    |           |j        dk    r&|                                 t#          ddd	          S |                                 t#          d
dd	          S # t$          $ rS}t'          |           |                                 |                                 t#          d
dd	          cY d }~S d }~ww xY w)Nr   r   r<   r   r_  r   r   r  r   r   r  r   )r   r2   contactFormTblr   r   r   r<   r   r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   )r-   r=   
contactObjr?   s       r%   addContactFormr    sz   j#%%#%%
"<0
"<0
%l:6
$\)4
%
!)!2!6!6!8!8
J
###=? 	b]]___=QRRSSSMMOOO:_``aaa j j jaG6ghhiiiiiiii	js%   DD* %D* *
F4AF<FFc                        e Zd ZefZefZd ZdS )getContactFormc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nz0select * from idpwoacontactform order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z'getContactForm.post.<locals>.<listcomp>      ;;;499;;;r'   r   r   )r   formlistr   r  r   r   r   r   )r%  r-   r=   ra   r  contactObjsr?   s          r%   r'  zgetContactForm.post  s7   #%%	DC c33<<>>J;;
;;;K;! PI M MNN MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr(  Nr)  r*   r'   r%   r  r    r  r'   r  c                        e Zd ZefZefZd ZdS )
addGalleryc                 F   t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        Hd|_
        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t'          ddd          |                                 S |                                 t'          dd	d          |                                 S # t(          $ ru}t+          |           |                                 |                                 t'          dd
t/          |          d          cY d }~|                                 S d }~wt0          $ ru}t+          |           |                                 |                                 t'          dd
t/          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr  r   r   r   r   r  r   r   r  r   r   )r   r2   
galleryTblr   r   r   r   rz   r   r  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   
galleryObjr   r   r   r   r?   s	            r%   r'  zaddGallery.post  s   #%%	#J|##G,,{m; < --g66 < <A*,,B!wwqva00H(*x(8(8%*;J'' (J%-%6%:%:%<%<J"KK
###NNOOJ'''}Q fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   D'F %F 
JAH+J,J
 JAJ(J)J
 JJ
 
J Nr)  r*   r'   r%   r  r    r  r'   r  c                 ,   	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r&|                                 t          d|d          S |                                 t          ddd          S # t          $ rS}t          |           |
                                 |                                 t          dd	d          cY d }~S d }~ww xY w)
Nz,select * from idpwoagallery order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  zgetgallery.<locals>.<listcomp>	  s    777StCyy777r'   r   r   )r   gallerylistr   r  r   r   r  )r-   r=   ra   r  galleryObjsr?   s         r%   
getgalleryr  
	  s    j#%%<__T#YY//88::
77J777{A 	L]]___MMNNNMMOOO/JJKKK j j jaG6ghhiiiiiiii	jr  c                        e Zd ZefZefZd ZdS )deleteGalleryc                 6   t          j                    }	 t          j                    }|j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteGallery.post!	  sM   #%%	'))Gd#B--
++555<<CCEECNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOP   BD 	%D 
G?AE=#G?$H =G?
AG: G?!H :G??H HNr)  r*   r'   r%   r	  r	  	  r  r'   r	  c                        e Zd ZefZefZd ZdS )addRateChartc                    t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        H|j        d         |_
        |j        d         |_        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t+          ddd	          |                                 S |                                 t+          d
dd	          |                                 S # t,          $ ru}t/          |           |                                 |                                 t+          d
dt3          |          d          cY d }~|                                 S d }~wt4          $ ru}t/          |           |                                 |                                 t+          d
dt3          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nfiler   r<   r  r   r   r   r  r   r   r  r   r   )r   r2   rateChartTblr   r   r   r   rz   r   r  r<   r  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   chartObjr   r   r   r   r?   s	            r%   r'  zaddRateChart.postA	  s   #%% 	#~~H|##F++k]: 6 --f55 6 6A*,,B!wwqva00H(*x(8(8%$5HMM 'Z 8H#*<#>H &HO#+#4#8#8#:#:H KK!!!NNOOH%%%{1} fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  >	  5        ),14" " " " "r'   r  c                        e Zd ZefZefZd ZdS )getRateChartc                    t          j                    }	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nz.select * from idpwoaratechart order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z%getRateChart.post.<locals>.<listcomp>n	      777sc777r'   r   r   r   ratechartlistr   r  r   r   r   r   )r%  r-   r=   ra   r  	chartObjsr?   s          r%   r'  zgetRateChart.posth	  sC   #%%	'))GBCtCyy11::<<H77h777I9~~a PIi P PQQ MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  e	  r  r'   r  c                        e Zd ZefZefZd ZdS )deleteRateChartc                 6   t          j                    }	 t          j                    }|j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteRateChart.post	  sM   #%%	'))Gd#B----7727>>EEGGCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  	  r  r'   r  c                        e Zd ZefZefZd ZdS )	addEventsc                 j   t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        H|j        d         |_
        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t)          ddd          |                                 S |                                 t)          d	d
d          |                                 S # t*          $ ru}t-          |           |                                 |                                 t)          d	dt1          |          d          cY d }~|                                 S d }~wt2          $ ru}t-          |           |                                 |                                 t)          d	dt1          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr  r   	eventnamer   r   r   r  r   r   r  r   r   )r   r2   upcommingEventsr   r   r   r   rz   r   r  r!  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   eventObjr   r   r   r   r?   s	            r%   r'  zaddEvents.post	  s   #%% 	&((H|##G,,{m; : --g66 : :A*,,B!wwqva00H(*x(8(8%(9H%%!(k!:H&HO#+#4#8#8#:#:H KK!!!NNOOH%%%{1} fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  	  r  r'   r  c                 ,   	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r&|                                 t          d|d          S |                                 t          ddd          S # t          $ rS}t          |           |
                                 |                                 t          dd	d          cY d }~S d }~ww xY w)
Nz4select * from idpwoaupcommingevents order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  zgetEvents.<locals>.<listcomp>	  r  r'   r   r   r  r   r  r   r   r  )r-   r=   ra   r  r  r?   s         r%   	getEventsr&  	  s   j#%%D??499--668833(333	y>>! 	L]]___9MMNNNMMOOO/JJKKK j j jaG6ghhiiiiiiii	jr  c                        e Zd ZefZefZd ZdS )deleteEventsc                 6   t          j                    }	 t          j                    }|j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r"  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteEvents.post	  sM   #%%	'))Gd#B--00::b:AAHHJJCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r(  r(  	  r  r'   r(  c                        e Zd ZefZefZd ZdS )getDashboardCountsc           
         t          j                    }	 d}|                    t          |                                                    }|d         d         }d}|                    t          |                                                    }d |D             }d}|                    t          |                                                    }	d |	D             }
t          |          dk    r?|                                 t          d|ddd||
d          |                                 S |                                 t          d	d
d          |                                 S # t          $ ru}t          |           |
                                 |                                 t          d	dt          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          d	dt          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)NzCselect count(id) from idpwoauserregistartion where status ="Active"r   a2  select idpwoalogin.userid,idpwoalogin.status as loginstatus,idpwoauserregistartion.id,idpwoauserregistartion.fname,idpwoauserregistartion.lname from idpwoalogin inner join idpwoauserregistartion on idpwoauserregistartion.id = idpwoalogin.userid  where idpwoalogin.status="Inactive" order by id desc limit 5c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z+getDashboardCounts.post.<locals>.<listcomp>

  r  r'   z<select * from idpwoaupcommingevents order by id desc limit 5c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z+getDashboardCounts.post.<locals>.<listcomp>
  r  r'   r   )r   membesrscountopeningbalanceincomeexpenseuserrequestseventsr   r  r   r   r   r   )r%  r-   r=   ra   
membersObjmembersObjssql1
requestObjrequestObjs	eventsObj
eventsObjsr?   s               r%   r'  zgetDashboardCounts.post
  s   #%%	WC c33<<>>J$Q-*K HD d44==??J;;
;;;KQDT

33<<>>I99y999J:q  PIkcdnoz{  LW  ak  !l  !l  m  m MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   DE) /%E) )
I%3AG#	I%
I( #I%0AI I%I(  I%%I( (I>Nr)  r*   r'   r%   r+  r+  	  s5        ),14         r'   r+  c                   ,    e Zd ZefZefZddlmZ d ZdS )addAccountsr   )r!   c                 "   t          j                    }	 |j        d         }t          j                            |d          }t                      }|j        d         |_        |j        d         |_        |j        d         |_        |j        d         |_	        |j        d         |_
        t          |j                  dz   t          |j                  z   |_        |j        d         |_        |j        d	         |_        |j                            d
          dgk    rb|j                            d
          D ]G}t#                      }|                    |j        |          }|                    |          }	|	|_        H|j        d         |_        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t?          ddd          |                                 S |                                 t?          ddd          |                                 S # t@          $ ru}
tC          |
           |"                                 |                                 t?          ddt          |
          d          cY d }
~
|                                 S d }
~
wtF          $ ru}
tC          |
           |"                                 |                                 t?          ddt          |
          d          cY d }
~
|                                 S d }
~
ww xY w# |                                 w xY w)Ncollecteddater)   amountrecievedpaidbyr  r   -collectedbypositionr  r   r   r   r   r   zAdded successfully..!r   r   z%can't add value now.! try again laterr   r   )$r   r2   r   r!   r   accountsTblr@  rA  r  r   r?  r  monthyearrC  rD  r   r   r   rz   r   fileurlr   r   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r   )r%  r-   r=   r   date_object
accountObjr   r   r   r   r?   s              r%   r'  zaddAccounts.post*
  s   #%%)	<0D"+44T:FFK$J(/5E(FJ% 'X 6J%,\-%@J"%,\-%@J"'.|O'DJ$";#455c9#k>N:O:OOJ%,\-%@J""),z":J|##G,,{m; ; --g66 ; ;A*,,B!wwqva00H(*x(8(8%):J&&%l62JO (J%-%6%:%:%<%<J"KK
###NNOOJ'''}Q iIAX Y YZZ MMOOOO G?f g ghh MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   HI9 ?%I9 9
M5AK3M5M8 3M5 AM0M5M8 0M55M8 8NN)	r*  r+  r,  r   r   r   r	   r!   r'  r*   r'   r%   r=  r=  &
  sG        ),14!!!!!!+ + + + +r'   r=  )Sumc                    t          j                    }	 t          j                            t          d                    d         }t          |          }t          j                                        }t          j                                        }t          d|||d          S # t          $ rS}t          |           |                                 |                                 t          ddd          cY d }~S d }~ww xY w)	Nr  )vistorsCountrM  r   )r   
userscountvistorscounteventscountr   r   r   )r   r2   visitorstblobjects	aggregaterK  rW   userregistartionr  upcommingeventsr
   r   rS   r9   r:   )r-   r=   rM  total_count_int
usersCounteventsCountr?   s          r%   	getCountsrY  Z
  s    !!Gj"*44#g,,4OOP^_l++%-3355
%-3355IJVe  vA  B  B  C  C  	C j j jaG6ghhiiiiiiii	js   BB' '
D1AC?9D?Dc                    t          j                    }	 | j        d         }|dk    r|                    t                                        dd                                          }|rt          d          }t          d          }d}dd	i}t          |j	                  d
z  }|dddd}	t          j        |||	||f          }
t          |
                                           |
j        dk    r[|                                 t!          dd|
                                t          d          d          |                                 S |                                 t!          ddd          |                                 S |                                 t!          ddd          |                                 S |dk    ra|                    t                                        dd                                          }|rt          d          }t          d          }d}dd	i}t          |j	                  d
z  }|dddd}	t          j        |||	||f          }
t          |
                                           |
j        dk    r[|                                 t!          dd|
                                t          d          d          |                                 S |                                 t!          ddd          |                                 S n# t"          $ ru}t          |           |                                 |                                 t!          ddt'          |          d          cY d }~|                                 S d }~wt(          $ ru}t          |           |                                 |                                 t!          ddt'          |          d          cY d }~|                                 S d }~ww xY w|                                 d S # |                                 w xY w)Nr   Registerr   )r   r   Test_Key_IDTest_Key_Secretz"https://api.razorpay.com/v1/orderszcontent-typezapplication/jsond   INRqwsaq1F)r   currencyreceiptpartial_payment)headersjsonauth   r   zOrder created successfully)r   r   ordersrv  r   z)Failed to create order..! Try again laterr   Renewelr   r   )r   r2   r   r3   RegistrationDtlrX   rU   r  rW   feerequestsr'  rS   re  status_coder:   r
   r   r9   r  r   )r-   r=   r   feeObjkey_id
key_secretr   rd  r   r  r   r?   s               r%   createOrderrq  o
  s    !!GcV$: ,	l]]?33==XT^=__eeggF  (lm,, !233
 ; #$6
 fj//#-$ %'',	  $=gGSY[eRfggghmmoo&&& '3. 	p MMOOO#	D`jrjwjwjyjy  CF  GT  CU  CU  %V  %V  W  W| MMOOOOu MMOOO#Bm$n$noor MMOOOOm G>i j jkkj MMOOOOi 9 (	p]]?33==XT^=__eeggF  $pm,, !233
 ; #$6
 fj//#-$ %'',	  $=gGSY[eRfggghmmoo&&& '3. 	p MMOOO#	D`jrjwjwjyjy  CF  GT  CU  CU  %V  %V  W  W" MMOOOO MMOOO#Bm$n$noo MMOOOO    aG7mvyz{v|v|}}~~~~~~~ MMOOOO    aG7mvyz{v|v|}}~~~~~~~MMOOOO MMOOOOOGMMOOOOsi   D&L- %L- 
%L- DL- 2%L- ,Q -
P)7AN'P)Q 'P)4AP$
P)Q $P))Q Qc                        e Zd ZefZefZd ZdS )paymentHistoryc                    t          j                    }	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)N  select payamenttbl.*,idpwoauserregistartion.fname,idpwoauserregistartion.lname,idpwoauserregistartion.district,idpwoauserregistartion.constituency,idpwoauserregistartion.panchayath,idpwoauserregistartion.userimageurl,idpwoauserregistartion.gender,idpwoauserregistartion.shoptype,idpwoauserregistartion.contactno from payamenttbl inner join idpwoauserregistartion on idpwoauserregistartion.id = payamenttbl.uid order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z'paymentHistory.post.<locals>.<listcomp>
  r  r'   r   r   r   paymentlistr   r  r   r   r   r   )r%  r-   r=   ra   r=  paymentObjsr?   s          r%   r'  zpaymentHistory.post
  sH   #%%	'))G C c33<<>>J;;
;;;K;! PIJ O OPP MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   rs  rs  
  r  r'   rs  c                        e Zd ZefZefZd ZdS )getPaymentHistoryByStatusc                 ,   t          j                    }	 t          j                    }|j        d         }d}|                    t	          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd	          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd
t          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd
t          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nstatusxru  c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z2getPaymentHistoryByStatus.post.<locals>.<listcomp>  r  r'   r   r   rw  r   r  r   r   r   r  )r%  r-   r=   r   ra   r=  ry  r?   s           r%   r'  zgetPaymentHistoryByStatus.post
  sT   #%%	'))G\),F C c33<<>>J;;
;;;K;! PIJ O OPP MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   BC> %C> >
G:AE8G:G= 8G:AG5G:G= 5G::G= =HNr)  r*   r'   r%   r{  r{  
  r  r'   r{  c                        e Zd ZefZefZd ZdS )get_paymentHistoryFilterc                 8   t          j                    }	 t          j                    }|j        d         }d|z   dz   }|                    t	          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          dd	d
          |                                 S # t          $ ru}t          |           |                                 |                                 t          ddt          |          d          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          ddt          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr<   a  select payamenttbl.*,idpwoauserregistartion.fname,idpwoauserregistartion.lname,idpwoauserregistartion.district,idpwoauserregistartion.constituency,idpwoauserregistartion.panchayath,idpwoauserregistartion.userimageurl,idpwoauserregistartion.gender,idpwoauserregistartion.shoptype,idpwoauserregistartion.contactno from payamenttbl inner join idpwoauserregistartion on idpwoauserregistartion.id = payamenttbl.uid where idpwoauserregistartion.district = "r2  c                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z1get_paymentHistoryFilter.post.<locals>.<listcomp>   r  r'   r   r   rw  r   r  r   r   r   r  )r%  r-   r=   r<   ra   r=  ry  r?   s           r%   r'  zget_paymentHistoryFilter.post  sn   #%%	'))G|J/H X  Ya  a  bv  vC c33<<>>J;;
;;;K;! PIJ O OPP MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r    r  r'   r  c                 D   t          j                    }	 | j        d         }| j        d         }t                      }d|_        | j        d         |_        d|_        d|_        | j        d         |_        ||_	        ||_
        d|_        d|_        t                      |_        d|_        t           j                                        |_        |                    |           |                                 |                    |           |                    t.                                        t.          j        |k                                  t                      d	dd
           |                                 |j        dk    r&|                                 t;          ddd          S t;          ddd          S # t<          $ rS}t?          |           |                                  |                                 t;          ddd          cY d }~S d }~ww xY w)Nr;   r6   rk   r   r   r   Renewalr   r   )r   r   r   r   r   r   r   r   r   r   )!r   r2   r   r   r   r   r   r   r   r   r   r   r   r+   r   r   r!   r"   r[   r\   rZ   r]   r3   re   r5   r   rY   r;   r:   r
   r   rS   r9   )r-   r=   r;   r6   r   r?   s         r%   renewAccountr  7  s    !!Gj\$|F#\\ "%l95 " "$\(3 $'$%5%7%7"$"*"3"7"7"9"9K   $$$h&&x':;;BBScSeSev~  KP  DQ  DQ  	R  	R  	R>! 	lMMOOO	<Z[[\\\:ijjkkk j j jaG6ghhiiiiiiii	js%   FG 0G 
HAHHHc                        e Zd ZefZefZd ZdS )addFormsandCircularsc                 j   t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        H|j        d         |_
        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t)          ddd          |                                 S |                                 t)          d	d
d          |                                 S # t*          $ ru}t-          |           |                                 |                                 t)          d	dt1          |          d          cY d }~|                                 S d }~wt2          $ ru}t-          |           |                                 |                                 t)          d	dt1          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr  r   circularnamer   r   r   r  r   r   r  r   r   )r   r2   formsandcircularsTblr   r   r   r   rz   r   r  r  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   formsObjr   r   r   r   r?   s	            r%   r'  zaddFormsandCirculars.postd  s   #%%	+--H|##G,,{m; : --g66 : :A*,,B!wwqva00H(*x(8(8%(9H%%$+L$@H!&HO#+#4#8#8#:#:H KK!!!NNOOH%%%{1} fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  a  r  r'   r  c                        e Zd ZefZefZd ZdS )getFormsCircularsc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nz3select * from formsandcircularstbl order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z*getFormsCirculars.post.<locals>.<listcomp>  r  r'   r   r   r   	formslistr   r  r   r   r   r   )r%  r-   r=   ra   r  	formsObjsr?   s          r%   r'  zgetFormsCirculars.post  s5   #%%	GCtCyy11::<<H77h777I9~~a PI) L LMM MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr(  Nr)  r*   r'   r%   r  r    r-  r'   r  c                 ,   	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r&|                                 t          d|d          S |                                 t          ddd          S # t          $ rS}t          |           |
                                 |                                 t          dd	d          cY d }~S d }~ww xY w)
NzJselect * from formsandcircularstbl where status ="Active" order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z*get_userFormsCirculars.<locals>.<listcomp>  r  r'   r   r   r  r   r  r   r   r  )r-   r=   ra   r  r  r?   s         r%   get_userFormsCircularsr    s   j#%%Z??499--668833(333	y>>! 	L]]___xHHIIIMMOOO/JJKKK j j jaG6ghhiiiiiiii	jr  c                        e Zd ZefZefZd ZdS )deleteFormsCircularsc                    t          j                    }	 |j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteFormsCirculars.post  s@   #%%	d#B-- 455??2?FFMMOOCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r    r-  r'   r  c                        e Zd ZefZefZd ZdS )addLatestUpdatesc                    t          j                    }	 t                      }|j                            d          dgk    rb|j                            d          D ]G}t                      }|                    |j        |          }|                    |          }||_	        H|j        d         |_
        |j        d         |_        |j        d         |_        d|_        t          j                                        |_        |                    |           |                                 |                    |           |j        dk    r:|                                 t-          dd	d
          |                                 S |                                 t-          ddd
          |                                 S # t.          $ ru}t1          |           |                                 |                                 t-          ddt5          |          d          cY d }~|                                 S d }~wt6          $ ru}t1          |           |                                 |                                 t-          ddt5          |          d          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nr  r   r  headingcontentr   r   r   r  r   r   r  r   r   )r   r2   latestupdatesTblr   r   r   r   rz   r   r  r  r  r  r   r!   r"   r[   r\   rZ   r]   r;   r:   r
   r   rS   r9   r  r   )	r%  r-   r=   	latestObjr   r   r   r   r?   s	            r%   r'  zaddLatestUpdates.post  s   #%%!	(**I|##G,,{m; ; --g66 ; ;A*,,B!wwqva00H(*x(8(8%):I&& 'Y 7I 'Y 7I 'Y 7I'I$,$5$9$9$;$;I!KK	"""NNOOI&&&|A~ fI@T U UVV MMOOOO G>c d dee MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOsP   EG %G 
J=AH;!J="K  ;J=AJ8J=K  8J==K   KNr)  r*   r'   r%   r  r    r  r'   r  c                        e Zd ZefZefZd ZdS )getLatestUpdatesc                    t          j                    }	 d}|                    t          |                                                    }d |D             }t          |          dk    r:|                                 t          d|d          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |
                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY w)Nz/select * from latestupdatestbl order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z)getLatestUpdates.post.<locals>.<listcomp>  r  r'   r   r   r   
latestlistr   r  r   r   r   r   )r%  r-   r=   ra   r  
latestObjsr?   s          r%   r'  zgetLatestUpdates.post  s5   #%%	CCS		22;;==I99y999J:q  PI: N NOO MMOOOO Go N NOO MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr(  Nr)  r*   r'   r%   r  r    r-  r'   r  c                 ,   	 t          j                    }d}|                    t          |                                                    }d |D             }t          |          dk    r&|                                 t          d|d          S |                                 t          ddd          S # t          $ rS}t          |           |
                                 |                                 t          dd	d          cY d }~S d }~ww xY w)
NzFselect * from latestupdatestbl where status ="Active" order by id descc                 ,    g | ]}t          |          S r*   r  r  s     r%   r  z)get_UserLatestUpdates.<locals>.<listcomp>!  r  r'   r   r   r  r   r  r   r   r  )r-   r=   ra   r  r  r?   s         r%   get_UserLatestUpdatesr    s   j#%%VOODII..7799	559555
z??1 	L]]___	JJKKKMMOOO/JJKKK j j jaG6ghhiiiiiiii	jr  c                        e Zd ZefZefZd ZdS )deleteLatestUpdatesc                    t          j                    }	 |j        d         }|                    t                                        |                                          }|                                 |dk    r:|                                 t          ddd          |                                 S |                                 t          ddd          |                                 S # t          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~wt          $ ru}t          |           |                                 |                                 t          dd	t          |          d
          cY d }~|                                 S d }~ww xY w# |                                 w xY wr  )r   r2   r   r3   r  rX   r  rZ   r:   r
   r   rS   r9   r  r   r  s         r%   r'  zdeleteLatestUpdates.post1  s@   #%%	d#B-- 011;;r;BBIIKKCNN1u SI@W X XYY MMOOOO G>P Q QRR MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  C MMOOOO  	C 	C 	C!HHHMMOOO;qz}~  {A  {A  B  B  C  C  C  C  C  C  CMMOOOO	C MMOOOOr  Nr)  r*   r'   r%   r  r  .  r-  r'   r  )django.shortcutsr   io	django.dbr   calendarr!   reosro   rq   re  r   r`  hashlibstringrx   environrl  rest_framework.decoratorsr   r   r   r	   rest_framework.responser
   rest_framework.viewsr   rest_framework.permissionsr   r   django.contrib.auth.hashersr   r   django.core.mailr   django.core.files.storager   django.template.loaderr   r   django.contrib.authr   sqlalchemy.excr   r   r   django.utilsr   Idpwoa_Backendr   !Idpwoa_Backend.JSONDateSerializerr   Idpwoa_Backend.settingsr   idpwoa.models.Idpwoa_Backend.SQLAlchemyAuthenticationBackendr   2Idpwoa_Backend.userrestframeworkTokenAuthenticaionr   Envr  read_envrc  r&   r+   r  r$   r.   r@   rc   rh   ru   r|   r   r   r   r   r   r  r  r/  r8  rA  rG  rL  rP  rV  rl  rt  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r&  r(  r+  r=  django.db.modelsrK  rY  rq  rs  r{  r  r  r  r  r  r  r  r  r  r  r*   r'   r%   <module>r     s?   # # # # # # 				         				 				          



      l k k k k k k k k k k k , , , , , , ( ( ( ( ( ( ? ? ? ? ? ? ? ? E E E E E E E E & & & & & & 7 7 7 7 7 7 / / / / / / 3 3 3 3 3 3 , , , , , , + * * * * * $ $ $ $ $ $ $ $ ! ! ! ! ! ! $ $ $ $ $ $ = = = = = = 1 1 1 1 1 1     P P P P P P R R R R R Rgkmm       	  8 8 8  !!  !!6 6 6  g! g! g!R     
 
 
  0  $  0 
5.XL!!fj fj "! fjR 
5.XL!!sj sj "! sj` 
5.XL!!w w "! wt    7   :    g   @. . . . .7 . . .b7 7 7 7 7g 7 7 7t       F    g   :    '   8    G   4 
5.XL!!@ @ "! @D 
5.XL!!* * "! *\ 
5.XL!!8 8 "! 8t 
5.XL!!  "! B) ) ) ) )W ) ) )^& & & & &g & & &P    g   8    7   <+ + + + +w + + +Z       <$ $ $ $ $ $ $ $L    G   8 
5.XL!!j j "! j@    7   8       >               D 
5.XL!!j j "! j0    W   :       >    7   @. . . . .g . . .` 
5.XL!!j j "! j$    G   < 
5.XL!!j j "! j2    W   >$ $ $ $ $ $ $ $L 
5.XL!!j j "! j$    G   @% % % % %7 % % %N    7   :    g   >% % % % % % % %P 
5.XL!!j j "! j$    7   B# # # # # # # #P/ / / / /' / / /f !          	5.XL!!j j "! j& 
5.XL!!e e "! eT    W   :       <    w   B 
5.XL!!!j !j "! !jP$ $ $ $ $7 $ $ $L       8 
5.XL!!j j "! j$    7   >& & & & &w & & &P    w   8 
5.XL!!j j "! j$    '     r'   