ó
    ùŠÂjD  ã                   ó  • S SK r S SK Jr  S SKJrJrJrJr  S SKrS SK	J
r
  S SKJr  S SKJr   " S S\R                   R"                  R$                  5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)é    N)ÚDecimal)ÚOptionalÚUnionÚoverloadÚLiteral)ÚET©Úsvg)ÚQRModuleDrawerc                   óö   ^ • \ rS rSr% SrSrSrSr\R                  r
\\   \S'   U 4S jr\S\\\4   S	\S
   S\4S j5       r\SS\\\4   S	\S   S\4S jj5       rSS jrSS jrS rS rSS jrS rSrU =r$ )ÚSvgFragmentImageé   zH
SVG image builder

Creates a QR-code image as a SVG document fragment.
zhttp://www.w3.org/2000/svgÚSVG)r   Údefault_drawer_classc                 ó¨   >• [         R                  " SU R                  5        [        TU ]  " U0 UD6  U R                  U R                  5      U l        g )Nr
   )r   Úregister_namespaceÚ_SVG_namespaceÚsuperÚ__init__ÚunitsÚbox_sizeÚ	unit_size©ÚselfÚargsÚkwargsÚ	__class__s      €ÚF/var/www/website/venv/lib/python3.13/site-packages/qrcode/image/svg.pyr   ÚSvgFragmentImage.__init__   s?   ø€ Ü
×Ò˜e T×%8Ñ%8Ô9Ü‰Ò˜$Ð) &Ò)àŸ™ D§M¡MÓ2ˆ�ó    ÚpixelsÚtextFÚreturnc                 ó   • g ©N© ©r   r!   r"   s      r   r   ÚSvgFragmentImage.units   s   € ØSVr    Tc                 ó   • g r%   r&   r'   s      r   r   r(       s   € ØUXr    c                 óV  • [        U5      S-  nU(       d  U$ UR                  [        S5      5      n[        R                  " [        R                  /S9n [        S5      [        S5      [        S5      4 H  nUR                  XTS9nM     U S3$ ! [        R                   a     Nf = f)	z(
A box_size of 10 (default) equals 1mm.
é
   z0.001)Útrapsz0.01z0.1Ú0)ÚcontextÚmm)r   ÚquantizeÚdecimalÚContextÚInexact)r   r!   r"   r   r.   Úds         r   r   r(   #   s›   € ô ˜“ "Ñ$ˆÞØˆLØ—‘œw wÓ/Ó0ˆÜ—/’/¬¯©Ð(9Ñ:ˆð	Ü˜f“o¤w¨u£~´w¸s³|ÓD�ØŸ™ q˜Ð:’ñ Eð �˜ˆ|Ðøô �‰ó 	Ùð	ús   Á6B ÂB(Â'B(c                 óD   • U R                  US9  U R                  U5        g )N)Úkind)Ú
check_kindÚ_write)r   Ústreamr6   s      r   ÚsaveÚSvgFragmentImage.save3   s   € Ø�‰˜TˆÑ"Ø�‰�FÕr    c                 óD   • [         R                  " U R                  40 UD6$ r%   )r   ÚtostringÚ_img©r   r   s     r   Ú	to_stringÚSvgFragmentImage.to_string7   s   € Ü�{Š{˜4Ÿ9™9Ñ/¨Ñ/Ð/r    c                 ó&   • U R                   " S0 UD6$ )Nr&   )Ú_svgr?   s     r   Ú	new_imageÚSvgFragmentImage.new_image:   s   € Ø�yŠyÑ"˜6Ñ"Ð"r    c                 ó¶   • Uc!  [         R                  " U R                  S5      nU R                  U R                  5      n[         R
                  " U4UUUS.UD6$ )Nr
   )ÚwidthÚheightÚversion)r   ÚQNamer   r   Ú
pixel_sizeÚElement)r   ÚtagrI   r   Ú	dimensions        r   rC   ÚSvgFragmentImage._svg=   s[   € Ø‰;Ü—(’(˜4×.Ñ.°Ó6ˆCØ—J‘J˜tŸ™Ó/ˆ	Ü�zŠzØð
àØØñ	
ð
 ñ
ð 	
r    c                 ó`   • [         R                  " U R                  5      R                  USS9  g )NF)Úxml_declaration©r   ÚElementTreer>   Úwrite©r   r9   s     r   r8   ÚSvgFragmentImage._writeI   s"   € Ü
�Š�t—y‘yÓ!×'Ñ'¨ÀÐ'ÒFr    )r   )Tr%   )Nz1.1)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r6   Úallowed_kindsÚsvg_drawersÚSvgSquareDrawerr   Útyper   Ú__annotations__r   r   r   Úintr   r   r   Ústrr:   r@   rD   rC   r8   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s°   ø‡ ñð 2€NØ€DØ€MØ1<×1LÑ1LÐ˜$˜~Ñ.ÓLõ3ð ØV˜E # w ,Ñ/ÐV°w¸u±~ÐVÈ'ÓVó ØVàÙX˜E # w ,Ñ/ÐX°w¸t±}ÐXÐPSÔXó ØXôô ò0ò#ô

÷Gð Gr    r   c                   ó  ^ • \ rS rSr% SrSr\\   \S'   \	R                  0 4\	R                  S\" S5      04\	R                  S\" S5      04S.r\R                  R                   R"                  \S'   SU 4S	 jjrS
 rSrU =r$ )ÚSvgImageéM   zU
Standalone SVG image builder

Creates a QR-code image as a standalone SVG document.
NÚ
backgroundÚ
size_ratioçš™™™™™é?©Úcirclezgapped-circlezgapped-squareÚdrawer_aliasesc                 óê   >• [         TU ]  " SSU0UD6nUR                  SU R                  5        U R                  (       a2  UR                  [        R                  " SU R                  SSSSS95        U$ )NrM   ÚxmlnsÚrectr-   z100%)ÚfillÚxÚyrG   rH   r&   )r   rC   Úsetr   ri   Úappendr   rL   )r   rM   r   r
   r   s       €r   rC   ÚSvgImage._svg[   si   ø€ Ü‰gŠlÑ-˜sÐ- fÑ-ˆØ�‰�˜×,Ñ,Ô-Ø�?�?Ø�J‰JÜ—
’
ØØŸ™ØØØ Ø!ñô	ð ˆ
r    c                 ób   • [         R                  " U R                  5      R                  USSS9  g )NzUTF-8T)ÚencodingrQ   rR   rU   s     r   r8   ÚSvgImage._writek   s%   € Ü
�Š�t—y‘yÓ!×'Ñ'¨¸ÐRVÐ'ÒWr    r&   r	   )rW   rX   rY   rZ   r[   ri   r   rb   r`   r]   ÚSvgCircleDrawerr   r^   rn   ÚqrcodeÚimageÚbaseÚDrawerAliasesrC   r8   rc   rd   re   s   @r   rg   rg   M   sƒ   ø‡ ñð !%€J�˜‘Ó$à×.Ñ.°Ð3Ø%×5Ñ5¸ÁgÈcÃlÐ7SÐTØ%×5Ñ5¸ÁgÈcÃlÐ7SÐTñ7€N�F—L‘L×%Ñ%×3Ñ3ó ÷÷ Xð Xr    rg   c                   ó  ^ • \ rS rSr% SrSSSSS.rSrS	r\\	R                     \S
'   \R                  r\\   \S'   \R"                  0 4\R"                  S\" S5      04\R                  S\" S5      04S.rU 4S jrSU 4S jjrS rSrU =r$ )ÚSvgPathImageéo   zg
SVG image builder with one single <path> element (removes white spaces
between individual QR points).
z#000000Ú1ÚnonzeroÚnone)rr   zfill-opacityz	fill-ruleÚstrokeTNÚpathr   rj   rk   rl   c                 ó4   >• / U l         [        TU ]  " U0 UD6  g r%   )Ú	_subpathsr   r   r   s      €r   r   ÚSvgPathImage.__init__‹   s   ø€ Ø$&ˆŒÜ‰Ò˜$Ð) &Ó)r    c                 ó€   >• Uc)  U R                  U R                  SS9nSR                  US9n[        TU ]  " SSU0UD6$ )NF)r"   z0 0 {d} {d})r4   ÚviewBoxr&   )r   rK   Úformatr   rC   )r   rŒ   r   rN   r   s       €r   rC   ÚSvgPathImage._svg�   sH   ø€ Ø‰?ØŸ
™
 4§?¡?¸˜
Ð?ˆIØ#×*Ñ*¨YÐ*Ð7ˆGÜ‰wŠ|Ñ6 GÐ6¨vÑ6Ð6r    c                 ó  • [         R                  " [         R                  " S5      4SR                  U R                  5      SS.U R
                  D6U l        / U l        U R                  R                  U R                  5        g )Nr‡   Ú zqr-path)r4   Úid)	r   rL   rJ   Újoinr‰   ÚQR_PATH_STYLEr‡   r>   rv   )r   s    r   ÚprocessÚSvgPathImage.process•   sg   € ô —J’JÜ�HŠH�VÓð
à�g‰g�d—n‘nÓ%Øñ
ð × Ñ ñ	
ˆŒ	ð ˆŒØ�	‰	×Ñ˜Ÿ™Õ#r    )r‰   r‡   r%   )rW   rX   rY   rZ   r[   r“   Úneeds_processingr‡   r   r   rL   r`   r]   ÚSvgPathSquareDrawerr   r_   r   ÚSvgPathCircleDrawerr   rn   r   rC   r”   rc   rd   re   s   @r   r�   r�   o   s­   ø‡ ñð ØØØñ	€Mð ÐØ!%€Dˆ(�2—:‘:Ñ
Ó%Ø1<×1PÑ1PÐ˜$˜~Ñ.ÓPà×2Ñ2°BÐ7à×+Ñ+Ø™7 3›<Ð(ð
ð
 ×+Ñ+Ø™7 3›<Ð(ð
ñ
€Nõ*÷7÷
$ð 
$r    r�   c                   ó   • \ rS rSrSrSrSrg)ÚSvgFillImageé¢   z1
An SvgImage that fills the background to white.
Úwhiter&   N©rW   rX   rY   rZ   r[   ri   rc   r&   r    r   rš   rš   ¢   ó   † ñð ƒJr    rš   c                   ó   • \ rS rSrSrSrSrg)ÚSvgPathFillImageéª   z5
An SvgPathImage that fills the background to white.
rœ   r&   Nr�   r&   r    r   r    r    ª   rž   r    r    )r1   r   Útypingr   r   r   r   Úqrcode.image.baser|   Úqrcode.compat.etreer   Ú!qrcode.image.styles.moduledrawersr
   r]   Ú&qrcode.image.styles.moduledrawers.baser   r}   r~   ÚBaseImageWithDrawerr   rg   r�   rš   r    r&   r    r   Ú<module>r¨      sq   ðÛ Ý ß 5Ó 5ã Ý "Ý @Ý Aô?G�v—|‘|×(Ñ(×<Ñ<ô ?GôDXÐô XôD0$�8ô 0$ôf�8ô ô�|õ r    