Ë
    D<TfèB  ã                   ó¬  — 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    úJC:\Users\user\Documents\project_loop\venv\Lib\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Ò
,Ø	ŒS”Y˜q“\¤I¬c£NÑ2Ñ3Ñ3ˆô �A‹,œ¤3›Ñ
'¨1Ó
,ð �R‰Z˜1Ñ¤Ñ(Ð(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Ò
,Ø	ŒS”Y˜q“\¤I¬c£NÑ2Ñ3Ñ3ˆô �A‹,œ¤3›Ñ
'¨1Ó
,à�B‰J˜!ÑÐ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 ™U a™K¨1Ñ,€ rW   r   c                 ó   — | dz  dk(  S ro   re   rp   s     rU   rs   zmask_func.<locals>.<lambda>•   ó   € ˜A ™E Q™J€ 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/   € œTŸZ™Z¨¨A©Ó.´·±¸AÀ¹EÓ1BÑBÀaÑGÈ1Ñ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 ™U a™K¨1¨q©5°A©+Ñ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 !™e q™[¨A°©E°Q©;Ñ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   € Ü˜“L€Mà€Jä# G¨]Ó;€JØÔ$ W¨mÓ<Ñ<€JØÔ$ W¨mÓ<Ñ<€JØÔ$ W¨mÓ<Ñ<€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™ˆØˆØ ò 	3ˆCØ�s‰|˜CÑ  NÒ2Ø˜!‘‘à˜Q’;Ø˜fÓ%¨Ñ*Ó%Ø�Ø!(¨¡¨cÑ!2‘ð	3ð �Q‹;Ø�fÓ Ñ"Ôð#ð ”#ó ä   M°AÑ$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Ø˜H S¨1¡WÑ-Ò-ô Ð'¨Õ.Ø˜h s™mÒ+ØØ˜h s™mÒ+Øà˜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‘<ˆÜ#'Ð(;Ó#<Ð ØˆØ+ò 	5ˆCà˜S 1™WÒ%Ø˜S 1™WÒ%Ø   q¡Ò)Ø˜S 1™WÒ%Ø   q¡Ò)à˜S 1™WÒ%Ø   q¡Ò)Ø   q¡Ò)Ø$ S¨1¡WÒ-Ø$ S¨1¡WÒ-Ø$ S¨2¡XÒ.Ø# C¨!¡GÒ,Ø$ S¨1¡WÒ-Ø$ S¨1¡WÒ-Ø   q¡Ò)Ø   q¡Ò)Ø   r¡Ò*ð ˜bÑ �
ð ˜˜b™Ó!ÜÐ-¨tÕ4ñ;	5ð	!5ðF ò 5ˆÜ#'Ð(;Ó#<Ð ØˆØ+ò 	5ˆCà˜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Ñ �
Ø�s˜R‘xÑ  Ó%ÜÐ-¨tÕ4ñ1	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Ñ4€Gä”�W˜s‘] 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Øœ2Ÿ9™9¤YÓ/Ñ/°$Ñ6€MÜ
ˆ4ƒy�GÒÜ—j‘j ¨Ñ!3°eÑ!;Ó<ˆÜŸ
™
 4¨-Ñ#7¸%Ñ#?Ó@‰àœ3˜w›<×.Ñ.¨wÓ7Ñ7¸%Ñ?ˆ	Ü—j‘j ¨yÑ!8Ó9ˆÜŸ
™
 =°9Ñ#<Ó=ˆÜ˜d KÓ0€HØ!ò E‰ˆ�ÙÜ˜¤[¸UÔCÓCä'5°e¸]Ó'Kò EÑ#�˜)Ù)1•~´~�Ü˜Y¨T¸eÔ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Ó(ˆÙØØ—[‘[“] E§I¡I£KˆsˆÙØ˜˜f˜u˜Ð%Ò%Ø�D˜˜s�OÐ#Ò#Ø�C�Dˆzˆò ñ Ø�TˆkÓð ù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'   € ô
 �dœEÔ"Ü�4‹y×Ñ Ó(ˆØ€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Ó*ˆDŒIð ˆ�	ð ˆDŒIØœK¬¼ÐHÑHÜ .°°°aÐ 8Ó9Ð9Ù˜d¤\°$Ó%7Ò7Ü Ð#PÐQUÐPVÐ!WÓXÐXàˆ�	rW   c                 ó,   — t        | j                  «      S rQ   )r›   r^   ©rí   s    rU   Ú__len__zQRData.__len__º  s   € Ü�4—9‘9‹~ÐrW   c                 óÄ  — | j                   t        k(  ret        dt        | j                  «      d«      D ]A  }| j                  ||dz    }t
        t        |«         }|j                  t        |«      |«       ŒC y | j                   t        k(  r°t        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&  € Ø�9‰9œÒ#Ü˜1œc $§)¡)›n¨aÓ0ò 3�ØŸ	™	 ! a¨!¡eÐ,�Ü*¬3¨u«:Ñ6�
Ø—
‘
œ3˜u›: zÕ2ñ3ð �Y‰Yœ.Ò(Ü˜1œc $§)¡)›n¨aÓ0ò 9�ØŸ	™	 ! a¨!¡eÐ,�Ü�u“: ’>Ø—J‘JÜ!Ÿ™ u¨Q¡xÓ0°2Ñ5¼	¿¹ÀuÈQÁxÓ8PÑPÐRTõð —J‘JœyŸ~™~¨eÓ4°aÕ8ñ9ð —9‘9ˆDØò !�Ø—
‘
˜1˜aÕ ñ!rW   c                 ó,   — t        | j                  «      S rQ   )Úreprr^   rð   s    rU   Ú__repr__zQRData.__repr__Ó  s   € Ü�D—I‘I‹Ð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'   € Ø�x‰x¨¯©Ö5 Aœ˜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:   € Ü—J‘J˜u q™yÓ)ˆ	Ø—‘˜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Ø�L‰L˜3 6¨A¡:°¡>Ñ2°aÑ7¸AÑ=Õ>ñ	?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   € Ø—K‘K 1Ñ$ˆ	Üˆt�{‰{Ó˜yÒ(Ø�K‰K×Ñ˜qÔ!ÙØ�K‰K˜	Ó" d¨t¯{©{¸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Ó-ˆ
ä@EÀgÃÖO¸1�d˜VŸ]™]¨1¨v©:Ñ6Ó6ÐOˆ
ÐOØ�'Ñˆð ”c—n‘nÑ$Ü—_‘_¤S§^¡^°GÑ%<¸aÓ@‰Fä—_‘_ a S¨!Ó,ˆFÜ˜7“^ò H�Ø¤$§/¡/°1´d·i±iÀ³lÐ2CÀQÓ"GÑG‘ðHô —/‘/ *¬c°&«k¸A©oÓ>ˆà˜FÑ"ˆØˆ
Ü˜“\ GÑ+ˆ
Ü�w“ò 	KˆAØ˜:‘~ˆHØ×Ñ°HÀ²M˜g hÒ/ÈÕJð	Kð 	�‰�jÔ!Ø�‰�jÖ!ð9"ð< €DÜ�:Óò #ˆØò 	#ˆBØ”3�r“7‹{Ø—‘˜B˜q™EÕ"ñ	#ð#ô �:Óò #ˆØò 	#ˆBØ”3�r“7‹{Ø—‘˜B˜q™EÕ"ñ	#ð#ð
 €KùòC 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>1  s   è ø€ Ò@¨U�E×$Ñ$ 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Øò ˆØ�
‰
�4—9‘9˜aÔ Ø�
‰
”3�t“9œn¨T¯Y©Y¸Ó@ÔAØ�
‰
�6Õðô —‘˜wÐ(8Ó9€IÜÑ@°iÔ@Ó@€IÜ
ˆ6ƒ{�YÒÜ×*Ò*ä�6�{šIð'ó
ð 	
ô ”3�y¤3 v£;Ñ.°Ó2Ó3ò ˆØ�‰�uÕðô �&‹k˜A‰o€GÙÜ�q˜7‘{Ó#ò 	"ˆAØ�N‰N˜5Õ!ð	"ð ¤ V£Ñ,°Ñ2€MÜ�=Ó!ò  ˆØˆq‰5�AŠ:Ø�J‰J”t˜QÕà�J‰J”t˜QÕð	 ô ˜ 	Ó*Ð*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Ø�ð	€ð =€	Øˆr�z‰z˜% ) "§)¡)¨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¨t°G©}ó 1óh#+ùòyùós   Ä-GÄ?*GÅ)GÇG