Ë
    ¡ëiE…  ã                   ó  — d dl Z d dlZ	 d dlmZ 	 e  G d„ d«      Z G d„ de«      Z G d„ d	e«      Z	 G d
„ de«      Z
 G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d „ d!«      Z ed"«      D � cg c]  } | ‘Œ c} Z ed"«      D � cg c]  } | ‘Œ c} Z ed#«      D ]
  Zd$ez  ee<   Œ  ed#d"«      D ](  Zeed%z
     eed&z
     z  eed'z
     z  eed#z
     z  ee<   Œ*  ed(«      D ]
  Zeeee   <   Œ  G d)„ d*«      Z G d+„ d,«      Z G d-„ d.«      Zy#  d dlmZ Y �ŒVxY w# e$ r eZY �Œ`w xY wc c} w c c} w )/é    N)Úzip_longest)Úizip_longestc                   óR   — e Zd ZdZdZdZd„ Zd„ Zed„ «       Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zy)ÚQRNr   c                 óX   — | j                   r| j                  |«      st        ‚|| _        y ©N)ÚvalidÚ
ValueErrorÚdata©Úselfr   s     úd/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/graphics/barcode/qrencoder.pyÚ__init__zQR.__init__*   s!   € Ø�:Š:˜dŸj™j¨Ô.ÜÐØˆ�	ó    c                 ó,   — t        | j                  «      S r   ©Úlenr   ©r   s    r   Ú__len__z
QR.__len__/   ó   € Ü�4—9‘9‹~Ðr   c                 óÔ   — | j                   €yt        t        | «      t        | j                   «      «      \  }}|t        | j                   «      z  t        | j                   d | «      z   S ©Nr   )ÚbitsÚdivmodr   Úsum)r   ÚqÚrs      r   Ú	bitlengthzQR.bitlength2   sR   € à�9‰9ÐØÜ”c˜$“i¤ T§Y¡Y£Ó0‰ˆˆ1Ø”3�t—y‘y“>Ñ!¤C¨¯	©	°"°1¨Ó$6Ñ6Ð6r   c                 ó¨   — d|cxk  rdk  rn n| j                   d   S |dk  r| j                   d   S |dk  r| j                   d   S t        d|z   «      ‚)Nr   é
   é   é   é)   é   zUnknown version: )Ú
lengthbitsr
   )r   Úvers     r   ÚgetLengthBitszQR.getLengthBits9   sY   € ØˆsŒ<�R�<Ø—?‘? 1Ñ%Ð%Ø�2ŠXØ—?‘? 1Ñ%Ð%Ø�2ŠXØ—?‘? 1Ñ%Ð%ÜÐ,¨sÑ2Ó3Ð3r   c                 ó,   — t        | j                  «      S r   r   r   s    r   Ú	getLengthzQR.getLengthB   r   r   c                 ó,   — t        | j                  «      S r   )Úreprr   r   s    r   Ú__repr__zQR.__repr__E   s   € Ü�D—I‘I‹Ðr   c                 ó®   — |j                  | j                  d«       | j                  |«      }|r&|j                  t        | j                  «      |«       y y )Né   ©ÚputÚmoder'   r   r   ©r   ÚbufferÚversionÚlenbitss       r   Úwrite_headerzQR.write_headerH   sB   € Ø�
‰
�4—9‘9˜aÔ Ø×$Ñ$ WÓ-ˆÙØ�J‰J”s˜4Ÿ9™9“~ wÕ0ð r   c                 ó†  — | j                  ||«       t        t        | j                  «      g| j                  z  Ž D ]ƒ  }d}d}t        | j                  «      D ]S  }||   €Œ	|t        | j                  «      z  }|| j                  j                  ||   «      z  }|| j                  |   z  }ŒU |j                  ||«       Œ… y r   )r6   r   Úiterr   ÚgroupÚranger   ÚcharsÚindexr   r0   )r   r3   r4   Úgr   ÚnÚis          r   ÚwritezQR.writeN   s·   € Ø×Ñ˜& 'Ô*Üœt D§I¡I›Ð/°$·*±*Ñ<Ð=ò 	 ˆAØˆDØˆAÜ˜4Ÿ:™:Ó&ò )�Ø�Q‘4Ñ#Øœ˜TŸZ™Z›Ñ(�AØ˜Ÿ™×)Ñ)¨!¨A©$Ó/Ñ/�AØ˜DŸI™I a™LÑ(‘Dð	)ð
 �J‰J�q˜$Õñ	 r   )Ú__name__Ú
__module__Ú__qualname__r	   r   r9   r   r   Úpropertyr   r'   r)   r,   r6   r@   © r   r   r   r   %   sH   „ Ø€EØ€DØ€Eòò
ð ñ7ó ð7ò4òòò1ó
 r   r   c                   óX   — e Zd Z ej                  d«      j
                  ZdZdZdZ	dZ
dZy)ÚQRNumberz[0-9]*$Ú
0123456789)r.   é   rI   rI   r"   )r    é   é   N©rA   rB   rC   ÚreÚcompileÚmatchr	   r;   r   r9   r1   r%   rE   r   r   rG   rG   Z   s1   „ ØˆB�J‰J�zÓ"×(Ñ(€EØ€EØ€DØ€EØ€DØ�Jr   rG   c                   óX   — e Zd Z ej                  d«      j
                  ZdZdZdZ	dZ
dZy)Ú
QRAlphaNumz[-0-9A-Z $%*+./:]*$z-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:)é   é   r$   )é	   é   é   NrL   rE   r   r   rQ   rQ   b   s2   „ ØˆB�J‰JÐ-Ó.×4Ñ4€EØ<€EØ€DØ€EØ€DØ�Jr   rQ   c                   ó(   — e Zd ZdZdZdZdZd„ Zd„ Zy)Ú
QR8bitByte)é   r"   r.   )rY   é   rZ   c                 ó`   — t        |t        «      r|j                  d«      | _        y || _        y )Nzutf-8)Ú
isinstanceÚunicodeÚencoder   r   s     r   r   zQR8bitByte.__init__p   s#   € Ü�dœGÔ$ØŸ™ GÓ,ˆD�IàˆD�Ir   c                 ó¤   — | j                  ||«       | j                  D ]/  }t        |t        «      rt	        |«      }|j                  |d«       Œ1 y )NrY   )r6   r   r\   ÚstrÚordr0   )r   r3   r4   Úcs       r   r@   zQR8bitByte.writev   sF   € Ø×Ñ˜& 'Ô*Ø—‘ò 	ˆAÜ˜!œSÔ!Ü˜“F�Ø�J‰J�q˜!Õñ	r   N)	rA   rB   rC   r   r9   r1   r%   r   r@   rE   r   r   rX   rX   j   s    „ Ø€DØ€EØ€DØ€Jòór   rX   c                   ó.   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	y)	ÚQRKanji©rV   r"   rY   ©rY   r    rJ   c                 ób   — 	 | j                  |«      | _        y # t        $ r t        d«      ‚w xY w)NzNot valid kanji)Úunicode_to_qrkanjir   ÚUnicodeEncodeErrorr
   r   s     r   r   zQRKanji.__init__ƒ   ó4   € ð	0Ø×/Ñ/°Ó5ˆD�IøÜ!ò 	0ÜÐ.Ó/Ð/ð	0úó   ‚ ™.c           
      ó"  — g }t        |«      D ]   \  }}	 |j                  d«      }	 t        t        |«      \  }}|dz  |z  }d|cxk  rdk  rn n|dz  }|d	z  dz	  d
z  |dz  z   }n7d|cxk  rdk  rn n|dz  }|d	z  dz	  d
z  |dz  z   }nt        d|||dz   d«      ‚|j                  |«       Œ¢ |S # t        $ r |\  }}Y Œ‰w xY w# t
        $ r$}t        d|||dz   |j                  d   «      ‚d }~wt        $ r t        d|||dz   d«      ‚w xY w)Nz	shift-jisÚqrkanjir"   r.   úillegal multibyte sequencerY   i@�  iüŸ  é ÿ  éÀ   éÿ   i@à  i¿ë  i@Á  ©	Ú	enumerater^   Úmapra   Ú	TypeErrorri   Úargsr
   Úappend©r   r   Úcodesr?   rb   ÚdÚes          r   rh   zQRKanji.unicode_to_qrkanji‰   s\  € ØˆÜ˜T“?ò 	‰CˆAˆaðGØ—H‘H˜[Ó)�ðÜœc 1›+‘C�A�að �Q‘˜‘
ˆAØ˜Ô#˜VÕ#Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=‘Ø˜1Ô& Õ&Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=‘ä(¨°D¸!¸Q¸q¹SØ)EóGð Gà�L‰L˜�Oð/	ð0 ˆøô' !ò à‘C�A’aðûô &ò MÜ(¨°D¸!¸Q¸q¹SÀ!Ç&Á&ÈÁ)ÓLÐLûÜò GÜ(¨°D¸!¸Q¸q¹SØ)EóGð GðGúó4   •C§B3Â3CÃCÃCÃCÃ	DÃC/Ã/Dc                 ón   — | j                  ||«       | j                  D ]  }|j                  |d«       Œ y ©NrV   ©r6   r   r0   ©r   r3   r4   rz   s       r   r@   zQRKanji.write¥   ó3   € Ø×Ñ˜& 'Ô*Ø—‘ò 	ˆAØ�J‰J�q˜"Õñ	r   N)
rA   rB   rC   r   r9   r1   r%   r   rh   r@   rE   r   r   rd   rd   }   s%   „ Ø€DØ€EØ€DØ€Jò0òó8r   rd   c                   ó4   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	d„ Z
y	)
ÚQRHanzire   r"   rV   rf   c                 ób   — 	 | j                  |«      | _        y # t        $ r t        d«      ‚w xY w)NzNot valid hanzi)Úunicode_to_qrhanzir   ri   r
   r   s     r   r   zQRHanzi.__init__°   rj   rk   c           
      ó"  — g }t        |«      D ]   \  }}	 |j                  d«      }	 t        t        |«      \  }}|dz  |z  }d|cxk  rdk  rn n|dz  }|d	z  dz	  d
z  |dz  z   }n7d|cxk  rdk  rn n|dz  }|d	z  dz	  d
z  |dz  z   }nt        d|||dz   d«      ‚|j                  |«       Œ¢ |S # t        $ r |\  }}Y Œ‰w xY w# t
        $ r$}t        d|||dz   |j                  d   «      ‚d }~wt        $ r t        d|||dz   d«      ‚w xY w)NÚgb2312Úqrhanzir"   r.   rn   rY   i¡¡  iþª  ro   é`   rq   i¡°  iþú  i¡¦  rr   rx   s          r   r…   zQRHanzi.unicode_to_qrhanzi¶   s\  € ØˆÜ˜T“?ò 	‰CˆAˆaðGØ—H‘H˜XÓ&�ðÜœc 1›+‘C�A�að �Q‘˜‘
ˆAØ˜Ô#˜VÕ#Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=‘Ø˜1Ô& Õ&Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=‘ä(¨°D¸!¸Q¸q¹SØ)EóGð Gà�L‰L˜�Oð/	ð0 ˆøô' !ò à‘C�A’aðûô &ò MÜ(¨°D¸!¸Q¸q¹SÀ!Ç&Á&ÈÁ)ÓLÐLûÜò GÜ(¨°D¸!¸Q¸q¹SØ)EóGð GðGúr|   c                 óÒ   — |j                  | j                  d«       |j                  dd«       | j                  |«      }|r&|j                  t        | j                  «      |«       y y )Nr.   r"   r/   r2   s       r   r6   zQRHanzi.write_headerÒ   sP   € Ø�
‰
�4—9‘9˜aÔ Ø�
‰
�1�aÔØ×$Ñ$ WÓ-ˆÙØ�J‰J”s˜4Ÿ9™9“~ wÕ0ð r   c                 ón   — | j                  ||«       | j                  D ]  }|j                  |d«       Œ y r~   r   r€   s       r   r@   zQRHanzi.writeÙ   r�   r   N)rA   rB   rC   r   r9   r1   r%   r   r…   r6   r@   rE   r   r   rƒ   rƒ   ª   s*   „ Ø€DØ€EØ€DØ€Jò0òò81ór   rƒ   c                   ó    — e Zd ZdZdZd„ Zd„ Zy)ÚQRECIé   ©r   r   r   c                 óV   — d|cxk  rdk  st        d«      ‚ t        d«      ‚|| _        y )Nr   i?B zECI out of range)r
   r   r   s     r   r   zQRECI.__init__ä   s3   € Ø�4Ô ˜&Ò äÐ/Ó0Ð0ð !äÐ/Ó0Ð0Øˆ�	r   c                 ó<  — | j                  ||«       | j                  dk  r|j                  | j                  d«       y | j                  dk  r |j                  | j                  dz  d«       y | j                  dk  r |j                  | j                  dz  d«       y y )	Né   rY   iÿ?  i €  rZ   iÿÿ i  À é   r   ©r   r3   r4   s      r   r@   zQRECI.writeê   s{   € Ø×Ñ˜& 'Ô*Ø�9‰9˜ÒØ�J‰J�t—y‘y !Õ$Ø�Y‰Y˜&Ò Ø�J‰J�t—y‘y 6Ñ)¨2Õ.Ø�Y‰Y˜(Ò"Ø�J‰J�t—y‘y 8Ñ+¨RÕ0ð #r   N©rA   rB   rC   r1   r%   r   r@   rE   r   r   r�   r�   à   s   „ Ø€DØ€Jòó1r   r�   c                   ó    — e Zd ZdZdZd„ Zd„ Zy)ÚQRStructAppendrI   r�   c                 ó¶   — d|cxk  rdk  st        d«      ‚ t        d«      ‚d|cxk  rdk  st        d«      ‚ t        d«      ‚|| _        || _        || _        y )Nr   rZ   zpart out of range [1,16]ztotal out of range [1,16])r
   ÚpartÚtotalÚparity)r   r™   rš   r›   s       r   r   zQRStructAppend.__init__÷   sg   € Ø�4Œ~˜2Š~ÜÐ7Ó8Ð8ð ÜÐ7Ó8Ð8Ø�5Œ˜BŠÜÐ8Ó9Ð9ð ÜÐ8Ó9Ð9ØˆŒ	ØˆŒ
Øˆ�r   c                 óÐ   — | j                  ||«       |j                  | j                  d«       |j                  | j                  d«       |j                  | j                  d«       y )Nr.   rY   )r6   r0   r™   rš   r›   r”   s      r   r@   zQRStructAppend.write   sH   € Ø×Ñ˜& 'Ô*Ø�
‰
�4—9‘9˜aÔ Ø�
‰
�4—:‘:˜qÔ!Ø�
‰
�4—;‘; Õ"r   Nr•   rE   r   r   r—   r—   ó   s   „ Ø€DØ€Jòó#r   r—   c                   ó    — e Zd ZdZdZd„ Zd„ Zy)ÚQRFNC1FirstrS   r�   c                  ó   — y r   rE   r   s    r   r   zQRFNC1First.__init__
  s   € Ør   c                 ó(   — | j                  ||«       y r   )r6   r”   s      r   r@   zQRFNC1First.write  s   € Ø×Ñ˜& 'Õ*r   Nr•   rE   r   r   rž   rž     s   „ Ø€DØ€Jòó+r   rž   c                   óR   — e Zd Z ej                  d«      j
                  ZdZdZd„ Z	y)ÚQRFNC1Secondz^([A-Za-z]|[0-9][0-9])$rT   r�   c                 ó´   — | j                  ||«       | j                  }t        |«      dk(  rt        |«      dz   }nt	        |«      }|j                  |d«       y )Nr"   éd   rY   )r6   r   r   ra   Úintr0   r€   s       r   r@   zQRFNC1Second.write  sJ   € Ø×Ñ˜& 'Ô*Ø�I‰IˆÜˆq‹6�QŠ;Ü�A“˜‘‰Aä�A“ˆAØ�
‰
�1�aÕr   N)
rA   rB   rC   rM   rN   rO   r	   r1   r%   r@   rE   r   r   r¢   r¢     s(   „ ØˆB�J‰JÐ0Ó1×7Ñ7€EØ€DØ€Jór   r¢   c                   óø   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	g d¢g d	¢g d
¢g d
¢g d
¢g d	¢g d¢gZ
d„ Zd„ Zd„ Zg d¢g d¢g d¢g d¢g d¢gZd„ Zd„ Zd„ Zd„ ZdZd„ Zd„ ZdZd„ Zd„ ZdZdZed„ «       Zed„ «       Zy)ÚQRCodec                 óX   — || _         || _        d | _        d| _        d | _        g | _        y r   )r4   ÚerrorCorrectLevelÚmodulesÚmoduleCountÚ	dataCacheÚdataList)r   r4   r©   s      r   r   zQRCode.__init__   s.   € ØˆŒØ!2ˆÔØˆŒØˆÔØˆŒØˆ�r   c                 óâ   — t        |t        «      r|}n+t        t        t        t
        fD ]  }	  ||«      } n t        ‚| j                  j                  |«       d | _	        y # t        $ r Y ŒCw xY wr   )
r\   r   rG   rQ   rd   rX   r
   r­   rw   r¬   )r   r   ÚnewDataÚconvs       r   ÚaddDatazQRCode.addData(  so   € Ü�dœBÔØ‰Gä!¤:¬w¼
ÐCò !�ðÙ" 4›j�GÙð!ô !Ð à�‰×Ñ˜WÔ%Øˆ�øô "ò Ùðús   ®A"Á"	A.Á-A.c                 ó&   — | j                   |   |   S r   )rª   )r   ÚrowÚcols      r   ÚisDarkzQRCode.isDark8  s   € Ø�|‰|˜CÑ  Ñ%Ð%r   c                 ó   — | j                   S r   )r«   r   s    r   ÚgetModuleCountzQRCode.getModuleCount;  s   € Ø×ÑÐr   c                 ó  — t        dd«      D ]z  }t        j                  || j                  «      }t	        d„ |D «       «      }d}| j
                  D ]*  }|dz  }||j                  |«      z  }||j                  z  }Œ, ||dz  k  sŒy |S  S )Nr"   é(   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )Ú	dataCount)Ú.0Úblocks     r   ú	<genexpr>z+QRCode.calculate_version.<locals>.<genexpr>B  s   è ø€ Ò G°U §¥Ñ Gùs   ‚r   r.   rY   )r:   Ú	QRRSBlockÚgetRSBlocksr©   r   r­   r'   r   )r   r4   ÚrsBlocksÚtotalDataCountÚlengthr   s         r   Úcalculate_versionzQRCode.calculate_version>  s¡   € ä˜Q “|ò 		ˆGÜ ×,Ñ,¨W°d×6LÑ6LÓMˆHÜ Ñ G¸hÔ GÓGˆNØˆFØŸ™ò )�Ø˜!‘�Ø˜$×,Ñ,¨WÓ5Ñ5�Ø˜$Ÿ.™.Ñ(‘ð)ð ˜¨!Ñ+Ó+ØØˆð		ð ˆr   c                 ó†   — | j                   €| j                  «       | _         | j                  d| j                  «       «       y )NF)r4   rÄ   ÚmakeImplÚgetBestMaskPatternr   s    r   ÚmakezQRCode.makeL  s3   € Ø�<‰<ÐØ×1Ñ1Ó3ˆDŒLØ�‰�e˜T×4Ñ4Ó6Õ7r   c                 ó¶  — | j                   dz  dz   | _        t        | j                  «      D �cg c]  }dg| j                  z  ‘Œ c}| _        | j	                  dd«       | j	                  | j                  dz
  d«       | j	                  d| j                  dz
  «       | j                  «        | j                  «        | j                  ||«       | j                   dk\  r| j                  |«       | j                  d k(  r:t        j                  | j                   | j                  | j                  «      | _	        | j                  | j                  |«       y c c}w )Nr.   é   Fr   rŽ   )r4   r«   r:   rª   ÚsetupPositionProbePatternÚsetupPositionAdjustPatternÚsetupTimingPatternÚsetupTypeInfoÚsetupTypeNumberr¬   r§   Ú
createDatar©   r­   ÚmapData)r   ÚtestÚmaskPatternÚxs       r   rÆ   zQRCode.makeImplQ  s  € ØŸ<™<¨!Ñ+¨bÑ0ˆÔä"'¨×(8Ñ(8Ó"9ö<Øð  ˜ 4×#3Ñ#3Ó3ò <ˆŒà×&Ñ& q¨!Ô,Ø×&Ñ& t×'7Ñ'7¸!Ñ';¸QÔ?Ø×&Ñ& q¨$×*:Ñ*:¸QÑ*>Ô?Ø×'Ñ'Ô)Ø×ÑÔ!Ø×Ñ˜4 Ô-Ø�L‰L˜AÒØ× Ñ  Ô&Ø�N‰N˜dÒ"Ü#×.Ñ.¨t¯|©|Ø/3×/EÑ/EØ/3¯}©}ó>ˆDŒNð 	�‰�T—^‘^ [Õ1ùò<s   ¯E)TTTTTTT)TFFFFFT)TFTTTFTc                 óÂ  — |dk(  rSdgdz  | j                   |dz      ||dz    |dk(  rd| j                   |dz      |dz   <   n5d| j                   |dz      |dz
  <   ndgdz  | j                   |dz
     ||dz    t        | j                  «      D ]S  \  }}|| j                   ||z      ||dz    |dk(  rd| j                   ||z      |dz   <   Œ<d| j                   ||z      |dz
  <   ŒU y )Nr   FrŽ   r"   rY   )rª   rs   Ú_positionProbePattern)r   r³   r´   r   r   s        r   rË   z QRCode.setupPositionProbePatternm  s  € Ø�!Š8Ø.3¨W°q©[ˆD�L‰L˜˜Q™Ñ  C¨¡EÐ*Ø�aŠxØ-2�—‘˜S ™UÑ# C¨¡EÒ*à-2�—‘˜S ™UÑ# C¨¡EÒ*ð /4¨W°q©[ˆD�L‰L˜˜Q™Ñ  C¨¡EÐ*ä  ×!;Ñ!;Ó<ò 	3‰GˆAˆtØ-1ˆD�L‰L˜˜Q™Ñ  C¨¡EÐ*Ø�aŠxØ-2�—‘˜S ™UÑ# C¨¡EÒ*à-2�—‘˜S ™UÑ# C¨¡EÒ*ñ	3r   c                 óš   — d}d}t        d«      D ]8  }| j                  d|«       t        j                  | «      }|dk(  s||kD  sŒ5|}|}Œ: |S )Nr   rY   T)r:   rÆ   ÚQRUtilÚgetLostPoint)r   ÚminLostPointÚpatternr?   Ú	lostPoints        r   rÇ   zQRCode.getBestMaskPattern  s\   € ØˆØˆÜ�q“ò 	ˆAØ�M‰M˜$ Ô"Ü×+Ñ+¨DÓ1ˆIØ�Q’˜,¨Ó2Ø(�Ø‘ð	ð ˆr   c                 ó  — t        d| j                  dz
  «      D ]  }|dz  dk(  | j                  |   d<   Œ t        j                  t        j
                  ddg«      | j                  dz
  «      | j                  d   d| j                  dz
   y )NrY   r$   r   rR   TFrZ   )r:   r«   rª   Ú	itertoolsÚisliceÚcycle)r   r   s     r   rÍ   zQRCode.setupTimingPatternŠ  s…   € Ü�q˜$×*Ñ*¨QÑ.Ó/ò 	.ˆAØ"# a¡%¨1¡*ˆD�L‰L˜‰O˜AÒð	.ä2;×2BÑ2BÜ�O‰O˜T 5˜MÓ*¨D×,<Ñ,<¸rÑ,Aó3Cˆ�‰�Q‰˜˜$×*Ñ*¨QÑ.Ñ/r   )TTTTT)TFFFT)TFTFTc                 óH  — t         j                  | j                  «      }| j                  dz
  }t	        j
                  ||«      D ][  \  }}|dk  r|dk  s||k\  rŒ||k\  r|dk  rŒ!t        | j                  «      D ]#  \  }}|| j                  ||z   dz
     |dz
  |dz    Œ% Œ] y )NrY   r$   rI   )	rØ   ÚgetPatternPositionr4   r«   rÞ   Úproductrs   Ú_positionAdjustPatternrª   )r   ÚposÚmaxposr³   r´   r   r   s          r   rÌ   z!QRCode.setupPositionAdjustPattern˜  s¯   € Ü×'Ñ'¨¯©Ó5ˆØ×!Ñ! AÑ%ˆÜ!×)Ñ)¨#¨sÓ3ò 	>‰HˆC�Ø�aŠx˜S AšX¨°ªØØ˜’ 3¨!¢8ØÜ$ T×%@Ñ%@ÓAò >‘��4Ø9=�—‘˜S 1™W q™[Ñ)¨#¨a©%°°A±Ñ6ñ>ñ	>r   c                 ón  — t         j                  | j                  «      }t        d«      D ]=  }| xr ||z	  dz  dk(  }|| j                  |dz     |dz  | j
                  z   dz
  dz
  <   Œ? t        d«      D ]=  }| xr ||z	  dz  dk(  }|| j                  |dz  | j
                  z   dz
  dz
     |dz  <   Œ? y )Né   r"   rI   rY   )rØ   ÚgetBCHTypeNumberr4   r:   rª   r«   )r   rÒ   r   r?   Úmods        r   rÏ   zQRCode.setupTypeNumber£  sÔ   € Ü×&Ñ& t§|¡|Ó4ˆÜ�r“ò 	JˆAØ�8Ò7 4¨1¡9°¡/°aÑ 7ˆCØEHˆD�L‰L˜˜a™Ñ   Q¡¨×)9Ñ)9Ñ!9¸AÑ!=ÀÑ!AÒBð	Jô �r“ò 	JˆAØ�8Ò7 4¨1¡9°¡/°aÑ 7ˆCØEHˆD�L‰L˜˜Q™ ×!1Ñ!1Ñ1°AÑ5¸Ñ9Ñ:¸1À¹6ÒBñ	Jr   c                 ó~  — | j                   dz  |z  }t        j                  |«      }t        d«      D ]g  }| xr ||z	  dz  dk(  }|dk  r|| j                  |   d<   Œ+|dk  r|| j                  |dz      d<   ŒF|| j                  | j
                  dz
  |z      d<   Œi t        d«      D ]s  }| xr ||z	  dz  dk(  }|dk  r#|| j                  d   | j
                  |z
  dz
  <   Œ;|dk  r|| j                  d   d|z
  dz
  dz   <   Œ\|| j                  d   d|z
  dz
  <   Œu | | j                  | j
                  dz
     d<   y )NrI   é   r"   rR   rY   rT   )r©   rØ   ÚgetBCHTypeInfor:   rª   r«   )r   rÒ   rÓ   r   r   r?   rê   s          r   rÎ   zQRCode.setupTypeInfo¬  sg  € Ø×&Ñ&¨!Ñ+¨{Ñ:ˆÜ×$Ñ$ TÓ*ˆä�r“ò 	AˆAØ�8Ò7 4¨1¡9°¡/°aÑ 7ˆCØ�A’Ø%(�—‘˜Q‘ Ò"Ø�a’%Ø),�—‘˜Q ™UÑ# AÒ&à=@�—‘˜T×-Ñ-°Ñ2°QÑ6Ñ7¸Ò:ð	Aô �r“ò 	2ˆAØ�8Ò7 4¨1¡9°¡/°aÑ 7ˆCØ�A’Ø<?�—‘˜Q‘ × 0Ñ 0°1Ñ 4°qÑ 8Ò9Ø�a’%Ø25�—‘˜Q‘  Q¡¨¡
¨Q¡Ò/à.1�—‘˜Q‘  Q¡¨¡
Ò+ð	2ð 6:°ˆ�‰�T×%Ñ%¨Ñ)Ñ*¨1Ò-r   c           
   #   ó¾  K  — t        j                  t        | j                  dz
  dd«      t        ddd«      «      }t	        t        d| j                  dz
  «      «      t	        t        j                  t        d«      t        d| j                  «      «      «      t	        t        d| j                  «      «      f}t        d	„ |D «       «      }t        j                  | j                  «      }t        t         j                  j                  d
„ |D «       «      «      }| j                  dz
  }|D ]°  }||}}|dk  rd}n|| j                  dz
  k\  rd}nd}||   D ]ƒ  }t        d«      D ]s  }	||	z
  }	| j                  dk\  r0|dk  r|	| j                  dz
  k\  rŒ/|dk  r|| j                  dz
  k\  rŒG||v r#|	|v r|dk  r
|	dk  s|	|kD  s|	dk  r
|dk  s||kD  sŒn|	|f–— Œu Œ… Œ² y ­w)Nr"   rR   éþÿÿÿrS   r   rT   rY   rŽ   c              3   óD   K  — | ]  }t        t        |«      «      –— Œ y ­wr   )ÚlistÚreversed)r¼   r   s     r   r¾   z*QRCode._dataPosIterator.<locals>.<genexpr>Ê  s   è ø€ Ò7¨Q”tœH Q›K×(Ñ7ùs   ‚ c              3   óB   K  — | ]  }|d z
  |dz
  ||dz   |d z   f–— Œ y­w)r$   r"   NrE   )r¼   Úps     r   r¾   z*QRCode._dataPosIterator.<locals>.<genexpr>Í  s0   è ø€ ò 13Ø()ˆQˆq‰S�!�A‘#�q˜!˜A™#˜q ™sÔ#ñ13ùs   ‚rU   r$   )rÞ   Úchainr:   r«   rñ   ÚtuplerØ   râ   r4   ÚsetÚfrom_iterable)
r   ÚcolsÚrowsÚrrowsÚpposræ   r´   Úrowidxr³   rb   s
             r   Ú_dataPosIteratorzQRCode._dataPosIteratorÄ  sÞ  è ø€ Ü�‰œu T×%5Ñ%5¸Ñ%9¸1¸bÓAÜ$ Q¨¨2›ó0ˆä”U˜1˜d×.Ñ.°Ñ2Ó3Ó4Ü”Y—_‘_¤U¨1£X¬u°Q¸×8HÑ8HÓ/IÓJÓKÜ”U˜1˜d×.Ñ.Ó/Ó0ð2ˆô Ñ7°$Ô7Ó7ˆä×(Ñ(¨¯©Ó6ˆÜ”9—?‘?×0Ñ0ñ 13Ø-1ô13ó 3ó 4ˆà×!Ñ! BÑ&ˆàò 	#ˆCØ �%ˆDØ�aŠx !™Ø˜×(Ñ(¨1Ñ,Ò,°q©fØ�&Ø˜F‘|ò #�Ü˜q›ò #�AØ˜a™�AØ—|‘| qÒ(Ø š7 q¨D×,<Ñ,<¸rÑ,AÒ'AØ$Ø  1šW¨°×0@Ñ0@À2Ñ0EÒ)EØ$Ø˜d‘{ q¨D¡yØ # b¢¨a°"ªf¸¸Fº
Ø šF¨¨bª°C¸&²LØ$à˜c˜(“Nñ#ñ#ñ	#ùs   ‚GGNc                 ón   — | j                   st        | j                  «       «      | _         | j                   S r   )Ú_dataPosListrñ   rþ   r   s    r   ÚdataPosIteratorzQRCode.dataPosIteratorç  s-   € Ø× Ò Ü $ T×%:Ñ%:Ó%<Ó =ˆDÔØ× Ñ Ð r   c              #   óH   K  — |D ]  }dD ]  }t        ||z  «      –— Œ Œ y ­w)N)é€   é@   é    rZ   rY   r.   r$   r"   )Úbool)r   r   ÚbyteÚbits       r   Ú_dataBitIteratorzQRCode._dataBitIteratorì  s5   è ø€ Øò 	'ˆDð0ò '�ä˜4 #™:Ó&Ó&ñ'ñ	'ùs   ‚ "c                 ó‚   — | j                   st        | j                  |«      «      | _         t        | j                   «      S r   )Ú_dataBitListrñ   r	  r8   r   s     r   ÚdataBitIteratorzQRCode.dataBitIteratoró  s4   € Ø× Ò Ü $ T×%:Ñ%:¸4Ó%@Ó AˆDÔÜ�D×%Ñ%Ó&Ð&r   c                 óÖ   — | j                  |«      }t        j                  |«      }t        | j	                  «       |d¬«      D ]$  \  \  }}}| |||«      z  | j
                  |   |<   Œ& y )NF©Ú	fillvalue)r  rØ   ÚgetMaskr   r  rª   )r   r   rÓ   r   Úmaskr´   r³   Údarks           r   rÑ   zQRCode.mapDataø  sk   € Ø×#Ñ# DÓ)ˆÜ�~‰~˜kÓ*ˆä +¨D×,@Ñ,@Ó,BÀDØ6;ô!=ò 	;Ñ‰JˆS�#˜à%)©D°°c«NÑ%:ˆD�L‰L˜Ñ˜cÒ"ñ	;r   éì   rÊ   c                 óð  — t         j                  | |«      }t        «       }|D ]  }|j                  || «       Œ d}|D ]  }||j                  z  }Œ |j                  «       |dz  kD  r!t        d|j                  «       |dz  fz  «      ‚|j                  «       dz   |dz  k  r|j                  dd«       |j                  «       dz  dk7  r(|j                  d«       |j                  «       dz  dk7  rŒ(	 |j                  «       |dz  k\  rnX|j                  t        j                  d«       |j                  «       |dz  k\  rn!|j                  t        j                  d«       Œot        j                  ||«      S )Nr   rY   zcode length overflow. (%d > %d)r.   F)r¿   rÀ   ÚQRBitBufferr@   r»   ÚgetLengthInBitsÚ	Exceptionr0   ÚputBitr§   ÚPAD0ÚPAD1ÚcreateBytes)r4   r©   r­   rÁ   r3   r   rÂ   r½   s           r   rÐ   zQRCode.createData  s{  € ä×(Ñ(¨Ð2CÓDˆÜ“ˆØò 	(ˆDØ�J‰J�v˜wÕ'ð	(ð ˆØò 	.ˆEØ˜eŸo™oÑ-‰Nð	.à×"Ñ"Ó$ ~¸Ñ'9Ò9ÜÐ=Ø#×3Ñ3Ó5°~ÈÑ7IÐJñKó Lð Lð ×"Ñ"Ó$ qÑ(¨N¸QÑ,>Ò>Ø�J‰J�q˜!Ôà×%Ñ%Ó'¨!Ñ+¨qÒ0Ø�M‰M˜%Ô ð ×%Ñ%Ó'¨!Ñ+¨qÓ0ð Ø×&Ñ&Ó(¨N¸QÑ,>Ò>ØØ�J‰J”v—{‘{ AÔ&Ø×&Ñ&Ó(¨N¸QÑ,>Ò>ØØ�J‰J”v—{‘{ AÔ&ð ô ×!Ñ! &¨(Ó3Ð3r   c           	      óà  — d}d}d}d}g }g }|D �]  }||j                   z  }|j                  }	|j                   |	z
  }
t        ||	«      }t        ||
«      }|j                  | j                  |||	z    «       ||	z  }t
        j                  |
«      }t        |d   |j                  «       dz
  «      }|j                  |«      }|j                  «       dz
  }|j                  «       }|j                  t        ||z
  |«      D �cg c]  }|dk\  r|j                  |«      nd‘Œ c}«       �Œ t        j                  t        |Ž t        |Ž «      D ��cg c]  }|D ]  }|�|‘Œ Œ }}}|S c c}w c c}}w )Nr   éÿÿÿÿr"   )Ú
totalCountr»   Úmaxrw   r3   rØ   ÚgetErrorCorrectPolynomialÚQRPolynomialr)   rê   r:   ÚgetrÞ   rõ   r   )r3   rÁ   ÚoffsetÚ
maxDcCountÚ
maxEcCountÚtotalCodeCountÚdcdataÚecdatar½   ÚdcCountÚecCountÚrsPolyÚrawPolyÚmodPolyÚrLenÚmLenr?   Úddrz   r   s                       r   r  zQRCode.createBytes   s�  € àˆØˆ
Øˆ
ØˆØˆØˆØó 	?ˆEØ˜e×.Ñ.Ñ.ˆNØ—o‘oˆGØ×&Ñ&¨Ñ0ˆGÜ˜Z¨Ó1ˆJÜ˜Z¨Ó1ˆJØ�M‰M˜&Ÿ-™-¨¨v°g©~Ð>Ô?Ø�gÑˆFÜ×5Ñ5°gÓ>ˆFÜ" 6¨"¡:¨v×/?Ñ/?Ó/AÀAÑ/EÓFˆGØ—k‘k &Ó)ˆGØ×#Ñ#Ó%¨Ñ)ˆDØ×$Ñ$Ó&ˆDØ�M‰MÜ#(¨°©°dÓ#;ö>Øð 01°Aªv˜WŸ[™[¨œ^¸1Ñ<ò >ö ?ð	?ô  'Ÿ_™_Ü˜VÐ$¤k°6Ð&:ó<÷ /�ràò/à  ò ð /�ð /ˆñ /ð ˆùò>ùó/s   Ä E%
ÅE*)rA   rB   rC   r   r±   rµ   r·   rÄ   rÈ   rÆ   rÖ   rË   rÇ   rÍ   rä   rÌ   rÏ   rÎ   rþ   r   r  r	  r  r  rÑ   r  r  ÚstaticmethodrÐ   r  rE   r   r   r§   r§     s×   „ òòò &ò òò8ò
2ò& 	9Ú8Ú8Ú8Ú8Ú8Ú8ð
Ðò3ò$	òCò 	+Ú*Ú*Ú*Ú*ð
Ðò	>òJò;ò0#ðB €Lò!ò
'ð €Lò'ò
;ð €DØ€Dàñ4ó ð4ð8 ñó ñr   r§   c                   ó   — e Zd ZdZdZdZdZy)ÚQRErrorCorrectLevelr"   r   rI   r$   N)rA   rB   rC   ÚLÚMÚQÚHrE   r   r   r3  r3  >  s   „ Ø	€AØ	€AØ	€AØ	�Ar   r3  c                   ó,   — e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
ÚQRMaskPatternr   r"   r$   rI   r.   rS   rR   rŽ   N)rA   rB   rC   Ú
PATTERN000Ú
PATTERN001Ú
PATTERN010Ú
PATTERN011Ú
PATTERN100Ú
PATTERN101Ú
PATTERN110Ú
PATTERN111rE   r   r   r9  r9  D  s*   „ Ø€JØ€JØ€JØ€JØ€JØ€JØ€JØ�Jr   r9  c            	       ó6  — e Z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 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(¢‘Zd)Zd*Zd+Zed,„ «       Zed-„ «       Z	ed.„ «       Z
ed/„ «       Zd0„ d1„ d2„ d3„ d4„ d5„ d6„ d7„ d8œZed9„ «       Zed:„ «       Zed;„ «       Zed<„ «       Zeg d=¢fd>„«       Zed?„ «       Zed@„ «       ZyA)BrØ   rR   rè   é   é   é   é"   )rR   rC  é&   )rR   r“   é*   )rR   rD  é.   )rR   é   é2   )rR   rE  é6   )rR   r  é:   )rR   rF  é>   )rR   rD  rI  éB   )rR   rD  é0   éF   )rR   rD  rK  éJ   )rR   rE  rL  éN   )rR   rE  é8   éR   )rR   rE  rM  éV   )rR   rF  rN  éZ   )rR   rJ  rK  éH   é^   )rR   rD  rK  rR  éb   )rR   rE  rL  rS  éf   )rR   rJ  rL  éP   éj   )rR   r  rM  éT   én   )rR   rE  rM  rV  ér   )rR   rF  rN  rW  év   )rR   rD  rK  rR  rZ  éz   )rR   rE  rL  rS  r[  é~   )rR   rD  é4   rS  éh   é‚   )rR   rE  rT  rU  él   é†   )rR   rF  é<   rV  ép   éŠ   )rR   rE  rM  rV  r`  éŽ   )rR   rF  rN  rW  ra  é’   )rR   rE  rL  rS  r[  rc  é–   )rR   r“   rK  éL   r[  r  éš   )rR   rJ  rL  r\  r]  é„   éž   )rR   r  rM  r^  r_  éˆ   é¢   )rR   rD  rL  rU  r_  rk  é¦   )rR   rE  rM  rV  r`  rl  éª   i7  i%  iT  c                 óÊ  — | dz  }t         j                  |«      t         j                  t         j                  «      z
  dk\  rŠ|t         j                  t         j                  |«      t         j                  t         j                  «      z
  z  z  }t         j                  |«      t         j                  t         j                  «      z
  dk\  rŒŠ| dz  |z  t         j                  z  S )Nr    r   )rØ   ÚgetBCHDigitÚG15ÚG15_MASK©r   rz   s     r   rí   zQRUtil.getBCHTypeInfo€  s±   € à�B‰JˆÜ×!Ñ! !Ó$¤v×'9Ñ'9¼&¿*¹*Ó'EÑEÈÒJØ”&—*‘*¤×!3Ñ!3°AÓ!6Ü!'×!3Ñ!3´F·J±JÓ!?ñ"@ñ Bñ DˆAô ×!Ñ! !Ó$¤v×'9Ñ'9¼&¿*¹*Ó'EÑEÈÓJð ˜"‘* Ñ!¤V§_¡_Ñ4Ð4r   c                 ó¨  — | dz  }t         j                  |«      t         j                  t         j                  «      z
  dk\  rŠ|t         j                  t         j                  |«      t         j                  t         j                  «      z
  z  z  }t         j                  |«      t         j                  t         j                  «      z
  dk\  rŒŠ| dz  |z  S )NrJ   r   )rØ   rx  ÚG18r{  s     r   ré   zQRUtil.getBCHTypeNumberˆ  s¨   € à�B‰JˆÜ×!Ñ! !Ó$¤v×'9Ñ'9¼&¿*¹*Ó'EÑEÈÒJØ”&—*‘*¤×!3Ñ!3°AÓ!6Ü!'×!3Ñ!3´F·J±JÓ!?ñ"@ñ Bñ DˆAô ×!Ñ! !Ó$¤v×'9Ñ'9¼&¿*¹*Ó'EÑEÈÓJð ˜‘
˜aÑÐr   c                 ó4   — d}| dk7  r|dz  }| dz  } | dk7  rŒ|S ©Nr   r"   rE   )r   Údigits     r   rx  zQRUtil.getBCHDigit�  s0   € àˆØ�qŠyØ�Q‰JˆEØ�Q‰JˆDð �q‹yð ˆr   c                 ó.   — t         j                  | dz
     S ©Nr"   )rØ   ÚPATTERN_POSITION_TABLE)r4   s    r   râ   zQRUtil.getPatternPosition˜  s   € ä×,Ñ,¨W°q©[Ñ9Ð9r   c                 ó   — | |z   dz  dk(  S ©Nr$   r   rE   ©r?   Újs     r   ú<lambda>zQRUtil.<lambda>�  ó   € ˜˜A™ ‘{ aÑ'€ r   c                 ó   — | dz  dk(  S r…  rE   r†  s     r   rˆ  zQRUtil.<lambda>ž  ó   € �q˜1‘u ‘z€ r   c                 ó   — |dz  dk(  S ©NrI   r   rE   r†  s     r   rˆ  zQRUtil.<lambda>Ÿ  r‹  r   c                 ó   — | |z   dz  dk(  S r�  rE   r†  s     r   rˆ  zQRUtil.<lambda>   r‰  r   c                 ó$   — | dz  |dz  z   dz  dk(  S ©Nr$   rI   r   rE   r†  s     r   rˆ  zQRUtil.<lambda>¡  s   € ˜˜Q™  a¡™¨1Ñ,°Ñ1€ r   c                 ó*   — | |z  dz  | |z  dz  z   dk(  S r�  rE   r†  s     r   rˆ  zQRUtil.<lambda>¢  s    € ˜˜!™˜Q‘w ! A¡# q¡Ñ(¨AÑ-€ r   c                 ó0   — | |z  dz  | |z  dz  z   dz  dk(  S r�  rE   r†  s     r   rˆ  zQRUtil.<lambda>£  ó%   € ˜!˜a™% 1™¨¨A©°¡{Ñ2°aÑ7¸1Ñ<€ r   c                 ó0   — | |z  dz  | |z   dz  z   dz  dk(  S )NrI   r$   r   rE   r†  s     r   rˆ  zQRUtil.<lambda>¤  r“  r   )r   r"   r$   rI   r.   rS   rR   rŽ   c                 ó    — | j                   |   S r   )rÓ   )ÚclsrÓ   s     r   r  zQRUtil.getMask§  s   € à�‰˜{Ñ+Ð+r   c           	      ó    — t        dgd«      }t        | «      D ]2  }|j                  t        dt        j	                  |«      gd«      «      }Œ4 |S )Nr"   r   )r!  r:   ÚmultiplyÚQRMathÚgexp)ÚerrorCorrectLengthÚar?   s      r   r   z QRUtil.getErrorCorrectPolynomial«  sN   € ä˜!˜˜aÓ ˆÜÐ)Ó*ò 	BˆAØ—
‘
œ<¨¬F¯K©K¸«NÐ(;¸QÓ?ÓA‰Að	Bàˆr   c                 ó²  — d}dg}d }|D ]‹  }|r…t        ||«      D ��cg c]
  \  }}||z  ‘Œ }}}t        ||d¬«      D ��cg c]  \  }}|dk\  r|xr |dz
  dz   ‘Œ }	}}|t        |	«      z  }t        ||d¬«      D ��cg c]  \  }}|rdn|dz   ‘Œ }}}|}Œ� |t        |D �cg c]  }|dk\  sŒ	|dz
  dz   ‘Œ c}«      z  }|S c c}}w c c}}w c c}}w c c}w )Nr   r  r.   rI   r"   )Úzipr   r   )
r–  rª   ÚscoreÚ	lastCountÚlastRowr³   rœ  ÚbÚchangedÚscoress
             r   ÚmaskScoreRule1vertzQRUtil.maskScoreRule1vert²  s  € àˆØ�Cˆ	ØˆØò 	ˆCáÜ,/°°WÓ,=×>¡S Q q˜1˜q›5Ð>�Ñ>ä% g¨yÀAÔF÷%©C¨A¨aà !šVð š-  1¡ Q¡™-ð %�ñ %ð œ˜V›Ñ$�ä(3°G¸YØ>?ô)A÷BÙ!$  1ñ #$™Q¨¨Q©Ñ.ð B�	ñ Bð ‰Gð	ð 	” YÖ9 °!°q³&�a˜‘c˜!“eÒ9Ó:Ñ:ˆØˆùó ?ùó%ùóBùò
 :s   žCÁCÁ>CÂ"
C
Â-
C
c                 ó®   — d}|d   }|dd  D ]E  }|d   |d   }}t        |dd  |dd  «      D ]"  \  }}||cxk(  r|cxk(  r|k(  rn n|dz  }||}}Œ$ |}ŒG |S )Nr   r"   rI   )rž  )	r–  rª   rŸ  r¡  r³   ÚlastCol0ÚlastCol1Úcol0Úcol1s	            r   ÚmaskScoreRule2zQRUtil.maskScoreRule2Ç  sŽ   € àˆØ˜!‘*ˆØ˜1˜2�;ò 	ˆCØ!$ Q¡¨°©�hˆHÜ! # a b '¨7°1°2¨;Ó7ò 0‘
��dØ˜4Ô7 8Ô7¨xÕ7Ø˜Q‘J�EØ%)¨4˜(‘ð0ð ‰Gð	ð ˆr   )TFTTTFTFFFFc                 óœ   — t        |«      }d}|D ]9  }d}t        |«      |z
  }||k  sŒ||||z    |k(  r|dz  }||z  }n|dz  }||k  rŒ!Œ; |S )Nr   r¹   r"   )r   )r–  rª   rÛ   Ú
patternlenrŸ  r³   r‡  Úmaxjs           r   ÚmaskScoreRule3horzQRUtil.maskScoreRule3horÕ  sy   € ô
 ˜“\ˆ
ØˆØò 	ˆCØˆAÜ�s“8˜jÑ(ˆDØ�d“(Ø�q˜˜:™Ð&¨'Ò1Ø˜R‘K�EØ˜‘O‘Aà˜‘F�Að �d”(ð	ð ˆr   c                 óv   — t        |«      dz  }t        d„ |D «       «      }dt        d|z  |z  dz
  «      dz  z  S )Nr$   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )r   )r¼   r³   s     r   r¾   z(QRUtil.maskScoreRule4.<locals>.<genexpr>ë  s   è ø€ Ò0 ”C˜—HÑ0ùs   ‚r    r¤   rK  rS   )r   r   Úabs)r–  rª   Ú	cellCountÚcounts       r   ÚmaskScoreRule4zQRUtil.maskScoreRule4è  sB   € ä˜“L !‘Oˆ	ÜÑ0¨Ô0Ó0ˆØ”S˜˜u™¨	Ñ1°BÑ6Ó7¸1Ñ<Ñ=Ð=r   c                 óŠ  — d}|| j                  |j                  «      z  }|| j                  t        |j                  Ž «      z  }|| j                  |j                  «      z  }|| j	                  |j                  «      z  }|| j	                  t        |j                  Ž «      z  }|| j                  |j                  «      z  }|S r   )r¥  rª   rž  r«  r¯  rµ  )r–  ÚqrCoderÜ   s      r   rÙ   zQRUtil.getLostPointî  s­   € àˆ	à�S×+Ñ+¨F¯N©NÓ;Ñ;ˆ	Ø�S×+Ñ+¬C°·±Ð,@ÓAÑAˆ	à�S×'Ñ'¨¯©Ó7Ñ7ˆ	à�S×*Ñ*¨6¯>©>Ó:Ñ:ˆ	Ø�S×*Ñ*¬3°·±Ð+?Ó@Ñ@ˆ	à�S×'Ñ'¨¯©Ó7Ñ7ˆ	ØÐr   N)rA   rB   rC   rƒ  ry  r}  rz  r1  rí   ré   rx  râ   rÓ   Úclassmethodr  r   r¥  r«  r¯  rµ  rÙ   rE   r   r   rØ   rØ   N  sÐ  „ ð)Ø
ð)à	
ˆBˆð)ð 
ˆBˆð)ð 
ˆBˆð	)ð
 
ˆBˆð)ð 
ˆBˆð)ò 	ð)ò 	ð)ò 	ð)ò 	ð)ò 	ð)ò 	ð)ò 	ð)ò 	ð)ò 	ð)ò  	ð!)ò" 	ð#)ò$ 	ð%)ò& 	ð')ò( 	ð))ò* 	ð+)ò, 	ð-)ò. 	ð/)ò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€Cð*€CàF€Hàñ5ó ð5ð ñ ó ð ð ñó ðð ñ:ó ð:ñ (Ù!Ù!Ù'Ù1Ù-Ù<Ù<ñ	
€Kð ñ,ó ð,ð ñó ðð ñó ðð( ñó ðð ò/òó ðð$ ñ>ó ð>ð
 ñó ñr   rØ   c                   ó,   — e Zd Zed„ «       Zed„ «       Zy)r™  c                 ó@   — | dk  rt        d| z   dz   «      ‚t        |    S )Nr"   zglog(ú))r  Ú	LOG_TABLE©r>   s    r   ÚglogzQRMath.glogþ  s'   € à�ŠEÜ˜G a™K¨#Ñ-Ó.Ð.Ü˜‰|Ðr   c                 óT   — | dk  r| dz  } | dk  rŒ| dk\  r| dz  } | dk\  rŒt         |    S )Nr   rq   é   )Ú	EXP_TABLEr½  s    r   rš  zQRMath.gexp  s>   € à�!ŠeØ�‰HˆAð �!‹eà�3ŠhØ�‰HˆAð �3‹hä˜‰|Ðr   N)rA   rB   rC   r1  r¾  rš  rE   r   r   r™  r™  ý  s(   „ Øñó ðð
 ñó ñr   r™  rÀ  rY   r"   r.   rS   rR   rq   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r!  c                 óÞ   — t        |«      dk(  rt        t        |«      dz   |z   «      ‚d}|t        |«      k  r$||   dk(  r|dz  }|t        |«      k  r	||   dk(  rŒ||d  dg|z  z   | _        y )Nr   ú/r"   )r   r  Únum)r   rÅ  Úshiftr#  s       r   r   zQRPolynomial.__init__  s{   € Ü�‹H˜ŠMÜœC ›H s™N¨UÑ2Ó3Ð3ØˆØ”s˜3“xÒ C¨¡K°1Ò$4Ø�a‰KˆFð ”s˜3“xÒ C¨¡K°1Ó$4à�v�w�< 1 # e¡)Ñ+ˆ�r   c                 ó    — | j                   |   S r   )rÅ  )r   r<   s     r   r"  zQRPolynomial.get  s   € Ø�x‰x˜‰Ðr   c                 ó,   — t        | j                  «      S r   )r   rÅ  r   s    r   r)   zQRPolynomial.getLength"  s   € Ü�4—8‘8‹}Ðr   c                 ó¶  — dg| j                  «       |j                  «       z   dz
  z  }t        | j                  «       «      D ]Š  }t        |j                  «       «      D ]l  }|||z   xx   t        j                  t        j	                  | j                  |«      «      t        j	                  |j                  |«      «      z   «      z  cc<   Œn ŒŒ t        |d«      S r  )r)   r:   r™  rš  r¾  r"  r!  )r   r{   rÅ  r?   r‡  s        r   r˜  zQRPolynomial.multiply%  s¹   € Øˆc�T—^‘^Ó%¨¯©«Ñ5¸Ñ9Ñ:ˆÜ�t—~‘~Ó'Ó(ò 	CˆAÜ˜1Ÿ;™;›=Ó)ò C�Ø�A˜‘E“
œfŸk™k¬&¯+©+°d·h±h¸q³kÓ*CÜ*0¯+©+°a·e±e¸A³hÓ*@ñ+Aó Cñ C”
ñCð	Cô ˜C Ó#Ð#r   c           
      ó  — | j                  «       |j                  «       k  r| S t        j                  | j                  d   «      t        j                  |j                  d   «      z
  }t	        | j                  |j                  «      D ��cg c]3  \  }}|t        j                  t        j                  |«      |z   «      z  ‘Œ5 }}}|| j                  |j                  «       d  z  }t        |d«      j                  |«      S c c}}w r   )r)   r™  r¾  rÅ  rž  rš  r!  rê   )r   r{   ÚratioÚnnÚenrÅ  s         r   rê   zQRPolynomial.mod-  sË   € Ø�N‰NÓ˜qŸ{™{›}Ò,ØˆKÜ—‘˜DŸH™H Q™KÓ)¬F¯K©K¸¿¹¸a¹Ó,BÑBˆä §¡¨!¯%©%Ó0÷2Ù�2�bð ”F—K‘K¤§¡¨B£°%Ñ 7Ó8Ó8ð 2ˆñ 2àˆt�x‰x˜Ÿ™›˜Ð'Ñ'ˆä˜C Ó#×'Ñ'¨Ó*Ð*ùó	2s   Â8DN)rA   rB   rC   r   r"  r)   r˜  rê   rE   r   r   r!  r!    s   „ ò,òòò%ó,r   r!  c                   ó6  — e Zd Z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 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 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<¢‘g d=¢‘g d>¢‘g d?¢‘g d@¢‘g dA¢‘g dB¢‘g dC¢‘g dD¢‘g dE¢‘g dF¢‘g dG¢‘g dH¢‘g dI¢‘g dJ¢‘g dK¢‘g dL¢‘g dM¢‘g dN¢‘g dO¢‘g dP¢‘g dQ¢‘g dR¢‘g dS¢‘g dT¢‘g dU¢‘g dV¢‘g dW¢‘g dX¢‘g dY¢‘g dZ¢‘g d[¢‘g d\¢‘g d]¢‘g d^¢‘g d_¢‘g d`¢‘g da¢‘g db¢‘g dc¢‘g dd¢‘g de¢‘g df¢‘g dg¢‘g dh¢‘g di¢‘g dj¢‘g dk¢‘g dl¢‘g dm¢‘g dn¢‘g do¢‘g dp¢‘g dq¢‘g dr¢‘g ds¢‘g dt¢‘g du¢‘g dv¢‘g dw¢‘g dx¢‘g dy¢‘g dz¢‘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 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 ¢‘Zd¡„ Zed¢„ «       Zed£„ «       Zy¤)¥r¿   )r"   rD  é   )r"   rD  rZ   )r"   rD  rV   )r"   rD  rT   )r"   é,   rF  )r"   rÐ  rJ  )r"   rÐ  rC  )r"   rÐ  rZ   )r"   rQ  é7   )r"   rQ  rÐ  )r$   é#   rÊ   )r$   rÒ  rV   )r"   r¤   r\  )r$   rK  r  )r$   rK  r“   )r.   é   rT   )r"   rh  rg  )r$   éC   é+   )r$   é!   rì   r$   rF  rZ   )r$   rÖ  rU   r$   rF  rJ   )r$   rV  éD   )r.   rÕ  r!   )r.   rÕ  rÏ  )r.   rÕ  rì   )r$   rZ  rS  )r.   é1   é   )r$   r  rK   r.   rÖ  rì   )r.   é'   rV   r"   r¹   rK   )r$   éy   éa   )r$   ri  rG  r$   é=   rÚ  )r.   r¹   rè   r$   r#   rÏ  )r.   r¹   rK   r$   r#   rì   )r$   rm  ét   )rI   rM  é$   r$   é;   é%   )r.   rß  rZ   r.   rá  rÊ   )r.   rß  rJ   r.   rá  rV   )r$   rV  r×  r$   éW   éE   )r.   rã  rÕ  r"   rQ  rÐ  )rR   rÕ  rÏ  r$   rÐ  é   )rR   rÕ  rì   r$   rÐ  rZ   )r.   ée   éQ   )r"   r\  rK  r.   ræ  é3   )r.   rK  rC  r.   rç  é   )rI   rß  rJ   rY   rá  rV   )r$   rÞ  é\   r$   éu   é]   )rR   rM  rß  r$   rà  rá  )r.   rI  rä  rR   é/   é   )rŽ   rH  rK   r.   rÕ  rì   )r.   é…   ék   )rY   rà  rá  r"   ri  rG  )rY   rÐ  rä  r.   é-   rí  )rJ   rÖ  rU   r.   rF  rJ   )rI   é‘   és   r"   rm  rÞ  )r.   r  r¹   rS   éA   r#   )rU   rß  rZ   rS   rá  rÊ   )rU   rß  rJ   rS   rá  rV   )rS   ém   râ  r"   r_  éX   )rS   ró  r#   rS   rO  rH  )rS   rL  r“   rŽ   rÑ  rÓ  )rU   rß  rJ   )rS   rb  rZ  r"   é{   éc   )rŽ   éI   rð  rI   rR  rI  )rì   rÕ  rÏ  r$   rÐ  rä  )rI   rð  rì   rV   rI  rZ   )r"   é‡   rï  rS   rs  rg  )r    rR  rI  r"   éK   rì  )r"   rK  rC  rì   rç  rè  )r$   rH  rK   rÊ   rÕ  rì   )rS   rn  éx   r"   é—   rÛ  )rT   rã  rÕ  r.   rQ  rÐ  )rÊ   rK  rC  r"   rç  rè  )r$   rH  rK   rÏ  rÕ  rì   )rI   é�   éq   r.   rl  r`  )rI   rQ  rÐ  rU   éG   rð  )rÊ   rì  rí  r.   rP  rC  )rT   rÚ  rV   rZ   r¹   rK   )rI   rù  rï  rS   rs  rg  )rI   rÔ  r#   rV   r×  rH  )rì   rL  r“   rS   rÑ  rÓ  )rì   rÕ  rì   r    rÐ  rZ   )r.   é�   rÞ  r.   rñ  rê  )rÊ   r×  rH  )rÊ   rK  rC  rR   rç  rè  )rÏ  rI  rZ   rR   rì  rÊ   )r$   é‹   éo   rŽ   éŒ   rj  )rÊ   rR  rI  )rŽ   rL  r“   rZ   rÑ  rÓ  )rF  rá  rV   )r.   rü  rÛ  rS   é˜   rb  )r.   rú  rì  rK   ro  rP  )rU   rL  r“   rK   rÑ  rÓ  )rZ   rð  rì   rK   rI  rZ   )rR   é“   rê  r.   é”   ra  )rR   rø  rð  rK   rR  rI  )rU   rL  r“   rZ   rÑ  rÓ  )rE  rI  rZ   r$   rì  rÊ   )rY   rq  r]  r.   rî  rï  )rY   rú  rì  rV   ro  rP  )rŽ   rL  r“   rC  rÑ  rÓ  )rC  rð  rì   rV   rI  rZ   )r    rl  r`  r$   é�   rò  )rÏ  rR  rI  r.   rú  rì  )rJ  rK  rC  rR   rç  rè  )rÖ  rI  rZ   r.   rì  rÊ   )rY   r  rb  r.   é™   rö  )rC  rø  rð  rI   rR  rI  )rY   é5   rè  rD  rL  r“   )rJ   rð  rì   rJ  rI  rZ   )rI   r  rê  r    r  ra  )rI   rø  rð  rè  rR  rI  )r.   rL  r“   rÙ  rÑ  rÓ  )rU   rð  rì   rÙ  rI  rZ   )rŽ   rm  rÞ  rŽ   r  rê  )rí  rø  rð  rŽ   rR  rI  )r"   r	  rè  rá  rL  r“   )rÏ  rð  rì   rD  rI  rZ   )rS   rñ  rò  r    rm  rÞ  )rÏ  rú  rì  r    ro  rP  )rì   rL  r“   rÓ  rÑ  rÓ  )rè  rð  rì   rÓ  rI  rZ   )rV   rñ  rò  rI   rm  rÞ  )r$   rR  rI  é   rú  rì  )rH  rL  r“   r"   rÑ  rÓ  )rè  rð  rì   rJ  rI  rZ   )rÊ   rñ  rò  )r    rR  rI  rè  rú  rì  )r    rL  r“   rÒ  rÑ  rÓ  )rÏ  rð  rì   rÒ  rI  rZ   )rÊ   rñ  rò  r"   rm  rÞ  )rK   rR  rI  rí  rú  rì  )r
  rL  r“   rÏ  rÑ  rÓ  )rU   rð  rì   rI  rI  rZ   )rV   rñ  rò  rR   rm  rÞ  )rK   rR  rI  rè  rú  rì  )rÐ  rL  r“   rŽ   rÑ  rÓ  )rà  rI  rZ   r"   rì  rÊ   )rJ   rü  rÛ  rŽ   r  rb  )rJ   rú  rì  rD  ro  rP  )rÚ  rL  r“   rK   rÑ  rÓ  )rC  rð  rì   r#   rI  rZ   )rR   rü  rÛ  rK   r  rb  )rR   rú  rì  rF  ro  rP  )rI  rL  r“   r    rÑ  rÓ  )r$   rð  rì   r  rI  rZ   )rÊ   r  rb  r.   r  rö  )r
  rR  rI  rK   rú  rì  )rØ  rL  r“   r    rÑ  rÓ  )r“   rð  rì   rI  rI  rZ   )r.   r  rb  rè   r  rö  )rV   rR  rI  r  rú  rì  )rP  rL  r“   rK   rÑ  rÓ  )rH  rð  rì   r  rI  rZ   )rä  r  rê  r.   r  ra  )r¹   rú  rì  rŽ   ro  rP  )rÕ  rL  r“   rC  rÑ  rÓ  )r    rð  rì   rÔ  rI  rZ   )rÏ  r  ra  rR   é•   éw   )rè   rú  rì  rÙ  ro  rP  )rF  rL  r“   rF  rÑ  rÓ  )rä  rð  rì   rÝ  rI  rZ   c                 ó    — || _         || _        y r   )r  r»   )r   r  r»   s      r   r   zQRRSBlock.__init__0  s   € Ø$ˆŒØ"ˆ�r   c                 ó<  — t         j                  | |«      }|d k(  rt        d| z   dz   |z   «      ‚t        |«      dz  }g }t	        |«      D ]N  }||dz  dz      }||dz  dz      }||dz  dz      }t	        |«      D ]  }	|j                  t        ||«      «       Œ ŒP |S )Nzbad rs block @ version:z/errorCorrectLevel:rI   r   r"   r$   )r¿   ÚgetRsBlockTabler  r   r:   rw   )
r4   r©   ÚrsBlockrÃ   rñ   r?   r´  r  r»   r‡  s
             r   rÀ   zQRRSBlock.getRSBlocks4  sÍ   € ä×+Ñ+¨GÐ5FÓGˆØ�dŠ?ÜÐ5¸Ñ?Ø1ñ2Ø4EñFó Gð Gä�W“ Ñ"ˆØˆÜ�v“ò 	>ˆAØ˜A ™E A™IÑ&ˆEØ   Q¡¨¡Ñ+ˆJØ   Q¡¨¡Ñ+ˆIÜ˜5“\ò >�Ø—‘œI j°)Ó<Õ=ñ>ð		>ð ˆr   c                 ó|  — |t         j                  k(  rt        j                  | dz
  dz  dz      S |t         j                  k(  rt        j                  | dz
  dz  dz      S |t         j
                  k(  rt        j                  | dz
  dz  dz      S |t         j                  k(  rt        j                  | dz
  dz  dz      S y )Nr"   r.   r   r$   rI   )r3  r4  r¿   ÚRS_BLOCK_TABLEr5  r6  r7  )r4   r©   s     r   r  zQRRSBlock.getRsBlockTableD  s½   € àÔ 3× 5Ñ 5Ò5Ü×+Ñ+¨W°q©[¸AÑ,=ÀÑ,AÑBÐBØÔ"5×"7Ñ"7Ò7Ü×+Ñ+¨W°q©[¸AÑ,=ÀÑ,AÑBÐBØÔ#6×#8Ñ#8Ò8Ü×+Ñ+¨W°q©[¸AÑ,=ÀÑ,AÑBÐBØÔ#6×#8Ñ#8Ò8Ü×+Ñ+¨W°q©[¸AÑ,=ÀÑ,AÑBÐBàr   N)rA   rB   rC   r  r   r1  rÀ   r  rE   r   r   r¿   r¿   7  s6  „ ðvò 	ðvò 	ðvò 	ðvò 	ðvò 	ðvò 	ðvò 	ðvò  	ð!vò& 	ð'vò( 	ð)vò* 	ð+vò, 	ð-vò2 	ð3vò4 	ð5vò6 	ð7vò8 	ð9vò> 	ð?vò@ 	ðAvòB 	ðCvòD 	ðEvòJ 	ðKvòL 	ðMvòN 	ðOvòP 	ðQvòV 	ðWvòX 	ðYvòZ 	ð[vò\ 	ð]vòb 	ðcvòd 	ðevòf 	ðgvòh 	ðivòn 	ðovòp 	ðqvòr 	ðsvòt 	ðuvòz 	ð{vò| 	ð}vò~ 	ðvò@ 	ðAvòF 	ðGvòH 	ðIvòJ 	ðKvòL 	ðMvòR 	!ðSvòT 	ðUvòV 	ðWvòX 	ðYvò^ 	ð_vò` 	ðavòb 	ðcvòd 	 ðevòj 	#ðkvòl 	ðmvòn 	 ðovòp 	 ðqvòv 	!ðwvòx 	ðyvòz 	ð{vò| 	ð}vòB 	!ðCvòD 	ðEvòF 	 ðGvòH 	 ðIvòN 	#ðOvòP 	 ðQvòR 	 ðSvòT 	 ðUvòZ 	#ð[vò\ 	ð]vò^ 	 ð_vò` 	 ðavòf 	#ðgvòh 	 ðivòj 	 ðkvòl 	 ðmvòr 	#ðsvòt 	 ðuvòv 	 ðwvòx 	!ðyvò~ 	#ðvò@ 	ðAvòB 	 ðCvòD 	 ðEvòJ 	#ðKvòL 	ðMvòN 	 ðOvòP 	ðQvòV 	#ðWvòX 	 ðYvòZ 	!ð[vò\ 	!ð]vòb 	#ðcvòd 	 ðevòf 	!ðgvòh 	 ðivòn 	#ðovòp 	 ðqvòr 	 ðsvòt 	!ðuvòz 	$ð{vò| 	 ð}vò~ 	 ðvò@ 	 ðAvòF 	#ðGvòH 	 ðIvòJ 	 ðKvòL 	!ðMvòR 	$ðSvòT 	 ðUvòV 	 ðWvòX 	!ðYvò^ 	#ð_vò` 	 ðavòb 	 ðcvòd 	!ðevòj 	$ðkvòl 	!ðmvòn 	!ðovòp 	!ðqvòv 	$ðwvòx 	 ðyvòz 	 ð{vò| 	!ð}vòB 	ðCvòD 	!ðEvòF 	!ðGvòH 	!ðIvòN 	$ðOvòP 	!ðQvòR 	!ðSvòT 	!ðUvòZ 	$ð[vò\ 	!ð]vò^ 	 ð_vò` 	 ðavòf 	$ðgvòh 	!ðivòj 	!ðkvòl 	!ðmvòr 	$ðsvòt 	 ðuvòv 	!ðwvòx 	 ðyvò~ 	$ðvò@ 	!ðAvòB 	!ðCvòD 	!ðEvòJ 	$ðKvòL 	!ðMvòN 	!ðOvòP 	!ðQvòV 	$ðWvòX 	 ðYvòZ 	!ð[vò\ 	!ð]vòb 	$ðcvòd 	!ðevòf 	!ðgvòh 	!ðiv€Nòp#ð ñó ðð ñ
ó ñ
r   r¿   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r  c                 ó    — g | _         d| _        y r   )r3   rÃ   r   s    r   r   zQRBitBuffer.__init__R  s   € ØˆŒØˆ�r   c                 óp   — dj                  | j                  D �cg c]  }t        |«      ‘Œ c}«      S c c}w )Nú.)Újoinr3   r`   )r   r>   s     r   r,   zQRBitBuffer.__repr__V  s'   € Ø�x‰x¨¯©Ö5 Aœ˜Q�Ò5Ó6Ð6ùÒ5s   š3c                 óH   — |dz  }| j                   |   d|dz  z
  z	  dz  dk(  S )NrY   rŽ   r"   )r3   )r   r<   ÚbufIndexs      r   r"  zQRBitBuffer.getY  s1   € Ø˜A‘:ˆØ—+‘+˜hÑ'¨A°¸±	©MÑ:¸qÑ@ÀQÑFÐFr   c                 ód   — t        |«      D ]"  }| j                  |||z
  dz
  z	  dz  dk(  «       Œ$ y r‚  )r:   r  )r   rÅ  rÃ   r?   s       r   r0   zQRBitBuffer.put]  s:   € Ü�v“ò 	AˆAØ�K‰K˜C F¨Q¡J°¡NÑ3¸Ñ9¸aÑ?Õ@ñ	Ar   c                 ó   — | j                   S r   )rÃ   r   s    r   r  zQRBitBuffer.getLengthInBitsa  s   € Ø�{‰{Ðr   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 )NrY   r   r  r"   )rÃ   r   r3   rw   )r   r  r  s      r   r  zQRBitBuffer.putBitd  se   € Ø—;‘; !Ñ#ˆÜˆt�{‰{Ó˜xÒ'Ø�K‰K×Ñ˜qÔ!ÙØ�K‰K˜Ó! d¨t¯{©{¸Q©Ñ&?ÑAÓ!Ø�Š�qÑŽr   N)	rA   rB   rC   r   r,   r"  r0   r  r  rE   r   r   r  r  Q  s"   „ òò7òGòAòór   r  )rM   rÞ   r   r   r]   Ú	NameErrorr`   r   rG   rQ   rX   rd   rƒ   r�   r—   rž   r¢   r§   r3  r9  rØ   r™  r:   rÁ  r¼  r?   r!  r¿   r  )rÔ   s   0r   ú<module>r     sß  ðó0 
Û ð6Ý%ðÙ÷
3 ñ 3 ôjˆrô ô�ô ô�ô ô&+ˆbô +ôZ2ˆbô 2ôl1ˆBô 1ô&#�Rô #ô&+�"ô +ô�2ô ÷\ñ \÷~
ñ 
÷ñ ÷mñ m÷^ñ ñ ˜c›
Ö#�1ŠQÒ#€	Ù˜c›
Ö#�1ŠQÒ#€	Ù	ˆq‹ò €AØ˜‘6€Iˆa‚Lðá	ˆq�#‹ò 9€AØ˜a !™eÑ$ y°°Q±Ñ'7Ñ7Ø˜a !™eÑ$ñ%Ø'0°°Q±Ñ'7ñ8€Iˆa‚Lð9ñ 
ˆs‹ò !€AØ €Iˆi˜‰lÒð!÷,ñ ,÷BXñ X÷tò øðk!6ß5Ð5ûð ò àƒGðüòV $ùÚ#s(   ŠE ‘E) Â<	E7Ã	E<ÅE&Å)E4Å3E4