
    g                        d dl Z d dlmZ d dlmZ  eede j                  j                  e j                  j                  e j                  j                  e
      dd                  Z eedd      Z eed	d
      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z e eedd            Z eed d       Z eed!d"      Z eed#d      Z eed$d%      Z eed&d'      Z eed(d      Z  eed)d'      Z! eed*d+      Z"eekD  reecZZd, Z#d1d-Z$d. Z%d/ Z&d0 Z'y)2    N)settings)import_stringCAPTCHA_FONT_PATHz..zfonts/Vera.ttfCAPTCHA_FONT_SIZE   CAPTCHA_LETTER_ROTATION)i#   CAPTCHA_BACKGROUND_COLORz#ffffffCAPTCHA_FOREGROUND_COLORz#001100CAPTCHA_LETTER_COLOR_FUNCTCAPTCHA_CHALLENGE_FUNCTz%captcha.helpers.random_char_challengeCAPTCHA_NOISE_FUNCTIONS)zcaptcha.helpers.noise_arcszcaptcha.helpers.noise_dotsCAPTCHA_FILTER_FUNCTIONS)zcaptcha.helpers.post_smoothCAPTCHA_WORDS_DICTIONARYz/usr/share/dict/wordsCAPTCHA_PUNCTUATIONz_"',.;:-CAPTCHA_FLITE_PATHCAPTCHA_SOX_PATHCAPTCHA_TIMEOUT   CAPTCHA_LENGTH   CAPTCHA_DICTIONARY_MIN_LENGTHCAPTCHA_DICTIONARY_MAX_LENGTHc   CAPTCHA_IMAGE_SIZECAPTCHA_MATH_CHALLENGE_OPERATOR*CAPTCHA_GET_FROM_POOLFCAPTCHA_GET_FROM_POOL_TIMEOUTCAPTCHA_TEST_MODECAPTCHA_2X_IMAGETc                 T    t        |       r| S t        | t              rt        |       S y N)callable
isinstancestrr   )string_or_callables    X/var/www/html/brdwt/brdwt/brdwtenv/lib/python3.12/site-packages/captcha/conf/settings.py_callable_from_stringr)   ;   s-    "#!!	&	,/00 
-    c                 (    t        | xs t              S r#   )r)   r   )	generators    r(   get_challenger-   B   s     !E.EFFr*   c                  :    t         rt        t        t               S g S r#   )r   mapr)    r*   r(   noise_functionsr1   F   s    (*ABBIr*   c                  :    t         rt        t        t               S g S r#   )r   r/   r)   r0   r*   r(   filter_functionsr3   L   s    (*BCCIr*   c                 F    t         r t        t               | |      S t        S r#   )r   r)   r   )index	challenges     r(   get_letter_colorr7   R   s!    !@$%?@	RR##r*   r#   )(osdjango.confr   django.utils.module_loadingr   getattrpathnormpathjoindirname__file__r   r   r   r
   r   r   r   r   r   r   r   r   r   r   intr   r   r   r   r   r   r   r    r!   r)   r-   r1   r3   r7   r0   r*   r(   <module>rB      s   	   5 GGRWW\\"''//(";TCSTU 
 H&92> !(,EyQ "8-GS "8-GS $X/KTR !')P  "@ 
 #(*J  #(*A  h(=~N X';TB 8%7> ($5q9WX'7;< '2QST U  '2QSU V X';TB ")/#   *A5I  '2QST U H&95A 8%7>  !#@@%% A!#@1G$r*   