
    @wgB                        d dl Z d dlZd dlmZ d dlmZmZmZ d dlm	Z	 dZ
dZdZdZe
d	ed
edediZe
dededed	iZe
dededediZdZ ej$                  d ej&                  e      z   dz         Zd	dddZg g ddgddgddgddgddgg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g d*g d+g d,g d-g d.g d/g d0g d1g d2g d3g d4g d5g d6g d7g d8g d9g d:g d;g d<Zd=Zd>Zd?Zd@ZdAZdB Z ed      D  cg c]>  } d g eddC      D cg c]%  }d e ee ej@                  ||                   z  ' c}z   @ c}} Z!dD Z"dE Z#dF Z$dG Z%dH Z&dI Z'dJ Z(dK Z)dL Z*dM Z+dN Z,dO Z-dP Z.d]dQZ/dR Z0dS Z1dT Z2 G dU dV      Z3 G dW dX      Z4dYe4dZee	   fd[Z5d\ Z6yc c}w c c}} w )^    N)List)LUTbase
exceptions)RSBlock            
   	                  s-   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:s   ^[s   ]*\Z   )   r	   r                  "   )r   r   &   )r      *   )r   r   .   )r      2   )r   r   6   )r       :   )r   r   >   )r   r   r   B   )r   r   0   F   )r   r   r    J   )r   r   r!   N   )r   r   8   R   )r   r   r#   V   )r   r   r$   Z   )r   r   r    H   ^   )r   r   r    r(   b   )r   r   r!   r)   f   )r   r   r!   P   j   )r   r"   r#   T   n   )r   r   r#   r,   r   )r   r   r$   r-   v   )r   r   r    r(   r0   z   )r   r   r!   r)   r1   ~   )r   r   4   r)   h      )r   r   r*   r+   l      )r   r   <   r,   p      )r   r   r#   r,   r6      )r   r   r$   r-   r7      )r   r   r!   r)   r1   r9      )r   r   r    L   r1         )r   r   r!   r2   r3         )r   r"   r#   r4   r5         )r   r   r!   r+   r5   rA      )r   r   r#   r,   r6   rB      i7  i%  iT        c                     | j                   S N
data_count)blocks    B/var/www/horilla/myenv/lib/python3.12/site-packages/qrcode/util.py_data_countrV   e   s        )   c                     | dz  }t        |      t        t              z
  dk\  rD|t        t        |      t        t              z
  z  z  }t        |      t        t              z
  dk\  rD| dz  |z  t        z  S )Nr   r   )	BCH_digitG15G15_MASKdatads     rU   BCH_type_infor`   s   si    
A
A,3
'1
,	SYq\IcN233 A,3
'1
, RZ1((rW   c                     | dz  }t        |      t        t              z
  dk\  rD|t        t        |      t        t              z
  z  z  }t        |      t        t              z
  dk\  rD| dz  |z  S )Nr   r   )rZ   G18r]   s     rU   BCH_type_numberrc   {   sb    
A
A,3
'1
,	SYq\IcN233 A,3
'1
,BJ!rW   c                 4    d}| dk7  r|dz  }| dz  } | dk7  r|S )Nr   r    )r^   digits     rU   rZ   rZ      s0    E
!)

 !) LrW   c                     t         | dz
     S Nr   )PATTERN_POSITION_TABLEversions    rU   pattern_positionrl      s    !'A+..rW   c                     | dk(  rd S | dk(  rd S | dk(  rd S | dk(  rd S | d	k(  rd
 S | dk(  rd S | dk(  rd S | dk(  rd S t        d| z         )z>
    Return the mask function for the given mask pattern.
    r   c                     | |z   dz  dk(  S Nr	   r   re   ijs     rU   <lambda>zmask_func.<locals>.<lambda>       QUaK1, rW   r   c                     | dz  dk(  S ro   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>       AEQJ rW   r	   c                     |dz  dk(  S Nr   r   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>   rv   rW   r   c                     | |z   dz  dk(  S rx   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>   rt   rW   r
   c                 p    t        j                  | dz        t        j                  |dz        z   dz  dk(  S Nr	   r   r   )mathfloorrp   s     rU   rs   zmask_func.<locals>.<lambda>   s/    TZZA.AE1BBaG1L rW      c                 *    | |z  dz  | |z  dz  z   dk(  S r{   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>   s     QUaK1q5A+5: rW   r   c                 0    | |z  dz  | |z  dz  z   dz  dk(  S r{   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>   %    a!eq[AEQ;6!;q@ rW   r   c                 0    | |z  dz  | |z   dz  z   dz  dk(  S )Nr   r	   r   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>   r   rW   zBad mask pattern: )	TypeError)patterns    rU   	mask_funcr      s}     !|,,!|&&!|&&!|,,!|LL!|::!|@@!|@@
(72
33rW   c                 :    | dk  rt         S | dk  rt        S t        S )Nr      )MODE_SIZE_SMALLMODE_SIZE_MEDIUMMODE_SIZE_LARGErj   s    rU   mode_sizes_for_versionr      s"    |	2rW   c                     | t         t        t        t        fvrt	        d|  d      t        |       t        |      |    S )NInvalid mode ())MODE_NUMBERMODE_ALPHA_NUMMODE_8BIT_BYTE
MODE_KANJIr   check_versionr   )moderk   s     rU   length_in_bitsr      s?    KLL.a011'!'*400rW   c                 6    | dk  s| dkD  rt        d|  d      y )Nr   (   zInvalid version (was z, expected 1 to 40))
ValueErrorrj   s    rU   r   r      s*    {gl0	9LMNN #rW   c                     t        |       }d}t        | |      }|t        | |      z  }|t        | |      z  }|t	        | |      z  }|S Nr   )len_lost_point_level1_lost_point_level2_lost_point_level3_lost_point_level4)modulesmodules_count
lost_points      rU   r   r      sX    LMJ#G];J$Wm<<J$Wm<<J$Wm<<JrW   c           	        	 d}t        |      }dg|dz   z  	|D ]O  }| |   }|d   }d}|D ])  }||   |k(  r|dz  }|dk\  r	|xx   dz  cc<   d}||   }+ |dk\  sC	|xx   dz  cc<   Q |D ]S  }| d   |   }d}|D ]/  }| |   |   |k(  r|dz  }|dk\  r	|xx   dz  cc<   d}| |   |   }1 |dk\  sG	|xx   dz  cc<   U |t        	fdt        d|dz         D              z  }|S )Nr   r   r~   c              3   4   K   | ]  }|   |d z
  z    yw)r	   Nre   ).0each_length	containers     rU   	<genexpr>z%_lost_point_level1.<locals>.<genexpr>   s'       	++/2s   )rangesum)
r   r   r   modules_rangerowthis_rowprevious_colorlengthcolr   s
            @rU   r   r      sn   J-(M}q()I #3<!!  	/C}.!Q;f%*%!)#	/ Q;f"#  # C  	3Cs|C N2!Q;f%*%!(c!2	3 Q;f"# #  MA$56  J
 rW   c                     d}t        |dz
        }|D ]X  }| |   }| |dz      }t        |      }|D ]9  }||dz      }	|	||dz      k7  rt        |d        #|	||   k7  r,|	||   k7  r5|dz  }; Z |S )Nr   r   r   r   iternext)
r   r   r   r   r   r   next_rowmodules_range_iterr   	top_rights
             rU   r   r      s    J-!+,M  3<37# "-0% 	 C q)IHS1W-- '.hsm+hsm+a
	  ( rW   c                    t        |      }t        |dz
        }d}|D ]  }| |   }t        |      }d}|D ]  }||dz      s||dz      r}||dz      su||dz      rm||dz      se||dz      r(||dz      r ||d	z      r||d
z      s||dz      s||dz      r0||dz      s-||dz      s%||d	z      s||d
z      r||dz      r||dz      r|dz  }||dz      st        |d          |D ]  }t        |      }d}|D ]  }| |dz      |   s| |dz      |   r| |dz      |   s| |dz      |   r| |dz      |   s| |dz      |   r7| |dz      |   r,| |d	z      |   r!| |d
z      |   s| |dz      |   s| |dz      |   rB| |dz      |   s<| |dz      |   s1| |d	z      |   s&| |d
z      |   r| |dz      |   r| |dz      |   r|dz  }| |dz      |   st        |d          |S )Nr   r   r   r
   r~   r   r   r	   r   r   r   r   r   )	r   r   r   modules_range_shortr   r   r   modules_range_short_iterr   s	            rU   r   r     s   
 -(M 23J !53<#'(;#< + 	5CS1W%S1W% q)S1W% q)S1W% q) q)$S1W-$S1W-$S2X.#C!G,$S1W-$S1W- q) q) r* b 
 b!-t4;	5	!5F  5#'(;#< + 	5CC!G$S)C!G$S)a(-C!G$S)a(-C!G$S)a(-a(-#C!G,S1#C!G,S1#C"H-c2"37+C0#C!G,S1#C!G,S1a(-a(-b)#. b 
sRx %-t41	55: rW   c                     t        t        t         |             }t        |      |dz  z  }t        t	        |dz  dz
        dz        }|dz  S )Nr	   d   r    r~   r   )r   mapfloatintabs)r   r   
dark_countpercentratings        rU   r   r   [  sN    Sg&'JJ=!#34GWs]R'(1,-FB;rW   c              #   L  K   t        |       } d}dt        j                  t              z   dz   }t	        |       |k  r7t        j
                  d|z   dz         }t        j
                  d|z   dz         }nPdt        |      j                  d      z   dz   }t        j
                  ||z         }t        j
                  ||z         }t        | |      }|D ]N  \  }}|rt        |t        d	
       t        ||      D ]#  \  }}	|rt        nt        }
t        |	|
d	
       % P yw)z
    An iterator returning QRData chunks optimized to the data content.

    :param minimum: The minimum number of bytes in a row to split as a chunk.
    s   \d   [   ]   ^s   +$   {asciis   ,}F)r   
check_dataN)to_bytestringreescape	ALPHA_NUMr   compilestrencode_optimal_splitQRDatar   r   r   )r^   minimumnum_patternalpha_pattern	re_repeatnum_bitsis_numchunkis_alpha	sub_chunkr   s              rU   optimal_data_chunksr   c  s     DK299Y//$6M
4yGjj!3e!;<

4-#7%#?@3w<..w77%?	jjy!89

=9#<=dK0H! E[UCC'5e]'K E#))1~~YTeDDE	Es   D"D$c              #      K   | rUt        j                  ||       }|sn<|j                         |j                         }}|r	d| d | f d| || f | |d  } | rU| rd| f y y w)NFT)r   searchstartend)r^   r   matchr   r   s        rU   r   r   }  s}     
		'4([[]EIIKsfu%%DsO##CDz  Tk s   AA$
A$c                 Z    t        | t              st        |       j                  d      } | S )z^
    Convert data to a (utf-8 encoded) byte-string if it isn't a byte-string
    already.
    zutf-8)
isinstancebytesr   r   r^   s    rU   r   r     s'    
 dE"4y(KrW   c                 p    | j                         rt        S t        j                  |       rt        S t
        S )z<
    Calculate the optimal mode for this chunk of data.
    )isdigitr   RE_ALPHA_NUMr   r   r   r   s    rU   optimal_moder     s-     ||~$rW   c                   *    e Zd ZdZddZd Zd Zd Zy)r   zS
    Data held in a QR compatible format.

    Doesn't currently handle KANJI.
    Nc                     |rt        |      }|t        |      | _        || _        y|| _        |t        t        t
        fvrt        d| d      |r|t        |      k  rt        d|       || _        y)zg
        If ``mode`` isn't provided, the most compact QR data type possible is
        chosen.
        Nr   r   z-Provided data can not be represented in mode )	r   r   r   r   r   r   r   r   r^   )selfr^   r   r   s       rU   __init__zQRData.__init__  s    
  &D<$T*DI 	 DIKHH.a 899d\$%77 #PQUPV!WXX	rW   c                 ,    t        | j                        S rQ   )r   r^   r   s    rU   __len__zQRData.__len__  s    499~rW   c                    | j                   t        k(  ret        dt        | j                        d      D ]A  }| j                  ||dz    }t
        t        |         }|j                  t        |      |       C y | j                   t        k(  rt        dt        | j                        d      D ]  }| j                  ||dz    }t        |      dkD  rE|j                  t        j                  |d         dz  t        j                  |d         z   d       h|j                  t        j                  |      d        y | j                  }|D ]  }|j                  |d        y )	Nr   r   r	   r   -   r   r   r   )r   r   r   r   r^   NUMBER_LENGTHputr   r   r   find)r   bufferrq   chars
bit_lengthr^   cs          rU   writezQRData.write  s&   99#1c$))na0 3		!a!e,*3u:6


3u:z23 YY.(1c$))na0 9		!a!e,u:>JJ!uQx025	uQx8PPRT JJy~~e4a89 99D !

1a !rW   c                 ,    t        | j                        S rQ   )reprr^   r   s    rU   __repr__zQRData.__repr__  s    DIIrW   )NT)__name__
__module____qualname____doc__r   r   r   r   re   rW   rU   r   r     s    &!,rW   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)	BitBufferc                      g | _         d| _        y r   )r   r   r   s    rU   r   zBitBuffer.__init__  s    !#rW   c                 p    dj                  | j                  D cg c]  }t        |       c}      S c c}w )N.)joinr   r   )r   ns     rU   r   zBitBuffer.__repr__  s'    xx5AQ5665s   3c                 n    t        j                  |dz        }| j                  |   d|dz  z
  z	  dz  dk(  S )Nr   r   r   )r|   r}   r   )r   index	buf_indexs      rU   getzBitBuffer.get  s:    JJuqy)	Y'A	M:a?AEErW   c                 d    t        |      D ]"  }| j                  |||z
  dz
  z	  dz  dk(         $ y rh   )r   put_bit)r   numr   rq   s       rU   r   zBitBuffer.put  s8    v 	?ALL36A:>2a7A=>	?rW   c                     | j                   S rQ   )r   r   s    rU   r   zBitBuffer.__len__  s    {{rW   c                    | j                   dz  }t        | j                        |k  r| j                  j                  d       |r'| j                  |xx   d| j                   dz  z	  z  cc<   | xj                   dz  c_         y )Nr   r   rF   r   )r   r   r   append)r   bitr  s      rU   r  zBitBuffer.put_bit  se    KK1$	t{{y(KKq!KK	"dt{{Q&??"qrW   N)	r   r   r  r   r   r  r   r   r  re   rW   rU   r  r    s!    7F?rW   r  r   	rs_blocksc           	         d}d}d}g }g }|D ]~  }|j                   }|j                  |z
  }	t        ||      }t        ||	      }t        |      D 
cg c]  }
d| j                  |
|z      z   }}
||z  }|	t
        j                  v r(t        j                  t
        j                  |	   d      }nUt        j                  dgd      }t        |	      D ]0  }
|t        j                  dt        j                  |
      gd      z  }2 t        j                  |t        |      dz
        }||z  }g }t        |      |	z
  }t        |	      D ]"  }
|
|z   }|j                  |dk\  r||   nd       $ |j                  |       |j                  |        g }t        |      D ],  }
|D ]%  }|
t        |      k  s|j                  ||
          ' . t        |      D ],  }
|D ]%  }|
t        |      k  s|j                  ||
          ' . |S c c}
w )Nr      r   )rS   total_countmaxr   r   r   
rsPoly_LUTr   
Polynomialgexpr   r  )r   r  offset
maxDcCount
maxEcCountdcdataecdatars_blockdcCountecCountrq   
current_dcrsPolyrawPolymodPoly
current_ec
mod_offsetmodIndexr^   dcecs                        rU   create_bytesr.    s   FJJ F F "%%&&0W-
W-
@EgO1dV]]1v:66O
O' cnn$__S^^G%<a@F__aS!,F7^ H$//1diil2CQ"GGH //*c&kAo>F"
\G+
w 	KA:~HHMgh/J	K 	j!j!9"< D: # 	#B3r7{BqE"	## : # 	#B3r7{BqE"	##
 KC Ps   Hc                 ,   t               }|D ]^  }|j                  |j                  d       |j                  t        |      t	        |j                  |              |j                  |       ` t        j                  | |      }t        d |D              }t        |      |kD  r%t        j                  dt        |      d|d      t        t        |t        |      z
  d            D ]  }|j                  d        t        |      dz  }|r$t        d|z
        D ]  }|j                  d        |t        |      z
  dz  }	t        |	      D ]7  }
|
dz  d	k(  r|j                  t        d       "|j                  t        d       9 t!        ||      S )
Nr
   c              3   :   K   | ]  }|j                   d z    yw)r   NrR   )r   rT   s     rU   r   zcreate_data.<locals>.<genexpr>0  s     @UE$$q(@s   z!Code length overflow. Data size (z) > size available (r   Fr   r	   r   )r  r   r   r   r   r   r   r  r   r   DataOverflowErrorr   minr  PAD0PAD1r.  )rk   error_correction	data_listr   r^   r  	bit_limit_delimitbytes_to_fillrq   s              rU   create_datar;  '  sj   [F 

499a 

3t9nTYY@A

6 w(89I@i@@I
6{Y**6{I'
 	
 3y3v;.23 u &kAoGq7{# 	"ANN5!	" V,2M=!  q5A:JJtQJJtQ	  	**rW   )r
   )7r|   r   typingr   qrcoder   r   r   qrcode.baser   r   r   r   r   r   r   r   r   r   r   r   r   ri   r[   rb   r\   r3  r4  rV   r   r   r   r  BIT_LIMIT_TABLEr`   rc   rZ   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r.  r;  )r5  rk   s   00rU   <module>r@     s    	  ( (  
 AA	 BB	  BB	 =	rzz%)"))I"66AB 1#))G) G) G	)
 G) G) ) ) ) ) ) ) ) ) )  !)" #)$ %)& ')( ))* +), -). /)0 1)2 3)4 5)6 7)8 9): ;)< =)> ?)@ A)B C)D E)F #G)H #I)J #K)L #M)N #O)P #Q) V R  C "!H 	 C Q| 	
CK9I!JKLL)/4.1O

(V6IXE44 4n 81 1tG} 1h"+ys   -G?*G)GG