Ë
    ¡ëi§{  ã                   óö  — d Z dZddlmZ ddl­ ddl­ ddlmZmZ ddl	m
Z
 ddlmZ ddl	m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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d+„ Ze d,k(  r e«        y-y-).z3.3.0aô  This file is a collection of widgets to produce some common signs and symbols.

Widgets include:

- ETriangle (an equilateral triangle),
- RTriangle (a right angled triangle),
- Octagon,
- Crossbox,
- Tickbox,
- SmileyFace,
- StopSign,
- NoEntry,
- NotAllowed (the red roundel from 'no smoking' signs),
- NoSmoking,
- DangerSign (a black exclamation point in a yellow triangle),
- YesNo (returns a tickbox or a crossbox depending on a testvalue),
- FloppyDisk,
- ArrowOne, and
- ArrowTwo
- CrossHair
é    )Úcolors)Ú*)ÚisStrÚ	asUnicode)Úshapes)ÚWidget)Ú	renderPDFc                   ó°   — e Zd ZdZdZ e eed¬«       eed¬«       eed¬«       eed¬«       ee«       ee«       ee«       ee«      ¬«      Z	d„ Z
d	„ Zy
)Ú_SymbolzcAbstract base widget
    possible attributes:
    'x', 'y', 'size', 'fillColor', 'strokeColor'
    é   zsymbol x coordinate©Údesczsymbol y coordinatezsymbol x coordinate adjustment)ÚxÚyÚdxÚdyÚsizeÚ	fillColorÚstrokeColorÚstrokeWidthc                 óÐ   — | j                   j                  dk7  sJ d«       ‚dx| _        x| _        x| _        | _        d| _        t        j                  | _	        d | _
        d| _        y )Nr   z#Abstract class _Symbol instantiatedr   éd   çš™™™™™¹?)Ú	__class__Ú__name__r   r   r   r   r   r   Úredr   r   r   ©Úselfs    új/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/graphics/widgets/signsandsymbols.pyÚ__init__z_Symbol.__init__8   s^   € Ø�~‰~×&Ñ&¨	Ò1ÐXÐ3XÓXÐ1Ø./Ð/ˆŒÐ/�”Ð/˜$œ' D¤GØˆŒ	ÜŸ™ˆŒØˆÔØˆÕó    c           
      ó¬  — t        j                  dd«      }t        | j                  «      }| j	                  «       }d|_        d|_        |j                  «        |j                  |«       |j                  t        j                  |j
                  |dz  z   |j                  dz
  |j                  j                  t        j                  dd¬	«      «       |S )
NéÈ   r   é2   r   é   é   Úmiddleé
   ©r   Ú
textAnchorÚfontSize)r   ÚDrawingÚfloatr   r   r   r   ÚdrawÚaddÚStringr   r   Úblack)r   ÚDÚsÚobs       r   Údemoz_Symbol.demo@   s�   € Ü�N‰N˜3 Ó$ˆÜ�$—)‘)ÓˆØ�^‰^ÓˆØˆŒØˆŒØ
�‰Œ	Ø	�‰ˆbŒ	Ø	�‰Œf�m‰m˜BŸD™D ! A¡#™J¨¯©¨R©ØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%'ô)ô 	*ð ˆr!   N)r   Ú
__module__Ú__qualname__Ú__doc__Ú_nodocÚAttrMapÚAttrMapValueÚisNumberÚisColorOrNoneÚ_attrMapr    r5   © r!   r   r   r   (   sn   „ ñð €FÙÙ˜Ð'<Ô=Ù˜Ð'<Ô=Ù˜(Ð(HÔIÙ˜(Ð(HÔIÙ˜HÓ%Ù  Ó/Ù" =Ó1Ù" 8Ó,ô	
€Hòór!   r   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú	ETriangleú#This draws an equilateral triangle.c                 ó.   — t         j                  | «       y ©N)r   r    r   s    r   r    zETriangle.__init__P   s   € Ü×Ñ˜Õr!   c           	      ó€  — t        | j                  «      }t        j                  «       }|dz  }t        j                  | j
                  | j                  | j
                  |z   | j                  | j
                  |dz  z   | j                  |z   g| j                  | j                  |dz  ¬«      }|j                  |«       |S )Nç      À?r%   ç      I@©Úpointsr   r   r   ©
r-   r   r   ÚGroupÚPolygonr   r   r   r   r/   ©r   r3   ÚgÚaeÚtriangles        r   r.   zETriangle.drawS   s›   € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð ˆu‰WˆÜ—>‘>Ø�F‰F�D—F‘FØ�F‰F�1‰H�d—f‘fØ�F‰F�A�a‘C‰L˜Ÿ™ ™ð,#ð  Ÿ>™>Ø!×-Ñ-Ø˜S™5ô"ˆð 	
�‰ˆhŒØˆr!   N©r   r6   r7   r8   r    r.   r?   r!   r   rA   rA   M   s   „ Ù-òór!   rA   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú	RTrianglez€This draws a right-angled triangle.

        possible attributes:
        'x', 'y', 'size', 'fillColor', 'strokeColor'

        c                 óf   — d| _         d| _        d| _        t        j                  | _        d | _        y ©Nr   r   )r   r   r   r   Úgreenr   r   r   s    r   r    zRTriangle.__init__l   s*   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒØˆÕr!   c           	      ót  — t        | j                  «      }t        j                  «       }|dz  }t        j                  | j
                  | j                  | j
                  |z   | j                  | j
                  | j                  |z   g| j                  | j                  |dz  ¬«      }|j                  |«       |S )NrF   rG   rH   rJ   rM   s        r   r.   zRTriangle.draws   s“   € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð ˆu‰WˆÜ—>‘>Ø�F‰F�D—F‘FØ�F‰F�1‰H�d—f‘fØ�F‰F�4—6‘6˜!‘8ð,ð  Ÿ>™>Ø!×-Ñ-Ø˜S™5ô"ˆð 	
�‰ˆhŒØˆr!   NrQ   r?   r!   r   rS   rS   d   s   „ ñò ór!   rS   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚOctagonzvThis widget draws an Octagon.

        possible attributes:
        'x', 'y', 'size', 'fillColor', 'strokeColor'

    c                 óf   — d| _         d| _        d| _        t        j                  | _        d | _        y rU   )r   r   r   r   Úyellowr   r   r   s    r   r    zOctagon.__init__Œ   s*   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒØˆÕr!   c                 óž  — t        | j                  «      }t        j                  «       }|dz  }t        j                  | j
                  |z   | j                  | j
                  | j                  |z   | j
                  | j                  |dz  z   | j
                  |z   | j                  |z   | j
                  |dz  z   | j                  |z   | j
                  |z   | j                  |dz  z   | j
                  |z   | j                  |z   | j
                  |dz  z   | j                  g| j                  | j                  d¬«      }|j                  |«       |S )Né   r%   r(   ©rI   r   r   r   )
r-   r   r   rK   rL   r   r   r   r   r/   )r   r3   rN   ÚathirdÚoctagons        r   r.   zOctagon.draw“   s  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð �‰sˆä—.‘.¨¯©°©¸¿¹Ø.2¯f©f°d·f±f¸V±mØ.2¯f©f°d·f±f¸fÀQ¹hÑ6GØ.2¯f©f°V©m¸T¿V¹VÀA¹XØ.2¯f©f°f¸Q±hÑ.?ÀÇÁÈÁØ.2¯f©f°Q©h¸¿¹ÀÀqÁÑ8IØ.2¯f©f°Q©h¸¿¹¸v¹Ø.2¯f©f°f¸Q±hÑ.?ÀÇÁð)Ið 59×4DÑ4DØ26·.±.Ø24ô
6ˆð 	
�‰ˆgŒØˆr!   NrQ   r?   r!   r   rY   rY   „   s   „ ñò ór!   rY   c                   óJ   — e Zd ZdZ ee ee«       ee«      ¬«      Z	d„ Z
d„ Zy)ÚCrossboxz¥This draws a black box with a red cross in it - a 'checkbox'.

        possible attributes:
        'x', 'y', 'size', 'crossColor', 'strokeColor', 'crosswidth'

    )ÚBASEÚ
crossColorÚ
crosswidthc                 óº   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        t        j                  | _	        d| _
        y ©Nr   r   r(   )r   r   r   r   Úwhiter   r   rd   r1   r   re   r   s    r   r    zCrossbox.__init__¶   s@   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒÜ Ÿ*™*ˆŒÜ!Ÿ<™<ˆÔØˆ�r!   c           	      óF  — t        | j                  «      }t        j                  «       }t        j                  | j
                  dz   | j                  dz   |dz
  |dz
  | j                  | j                  d¬«      }|j                  |«       t        j                  | j
                  |dz  z   | j                  |dz  z   | j
                  |dz  z   | j                  |dz  z   | j                  | j                  | j                  ¬«      }|j                  |«       t        j                  | j
                  |dz  z   | j                  |dz  z   | j
                  |dz  z   | j                  |dz  z   | j                  | j                  | j                  ¬«      }|j                  |«       |S )Nr   r%   ©r   r   r   ç333333Ã?ç333333ë?)r-   r   r   rK   ÚRectr   r   r   r   r/   ÚLinerd   re   )r   r3   rN   ÚboxÚ
crossLine1Ú
crossLine2s         r   r.   zCrossbox.draw¿   sP  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆô �k‰k˜$Ÿ&™& ™( D§F¡F¨1¡H¨a°©c°1°Q±3ØŸ>™>Ø!×-Ñ-Øôˆð 	
�‰ˆcŒ
ä—[‘[ §¡¨¨4©¡°$·&±&¸!¸D¹&±/À4Ç6Á6È1ÈTÉ6Á?ÐTX×TZÑTZÐ\]Ð^bÑ\bÑTcØŸ?™?Ø!Ÿ_™_Ø!Ÿ_™_ô.ˆ
ð 	
�‰ˆjÔä—[‘[ §¡¨¨4©¡°$·&±&¸!¸D¹&±/À4Ç6Á6È1ÈTÉ6Á?ÐTX×TZÑTZÐ\]Ð^bÑ\bÑTcØŸ?™?Ø!Ÿ_™_Ø!Ÿ_™_ô.ˆ
ð 	
�‰ˆjÔàˆr!   N©r   r6   r7   r8   r:   r   r;   r=   r<   r>   r    r.   r?   r!   r   rb   rb   ©   s/   „ ññ ˜GÙ! -Ó0Ù! (Ó+ô
€Hò
ór!   rb   c                   óJ   — e Zd ZdZ ee ee«       ee«      ¬«      Z	d„ Z
d„ Zy)ÚTickboxz¤This draws a black box with a red tick in it - another 'checkbox'.

        possible attributes:
        'x', 'y', 'size', 'tickColor', 'strokeColor', 'tickwidth'

)rc   Ú	tickColorÚ	tickwidthc                 óº   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        t        j                  | _	        d| _
        y rg   )r   r   r   r   r   ru   r1   r   rh   r   rv   r   s    r   r    zTickbox.__init__ç   s@   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒÜ!Ÿ<™<ˆÔÜŸ™ˆŒØˆ�r!   c                 óº  — t        | j                  «      }t        j                  «       }t        j                  | j
                  dz   | j                  dz   |dz
  |dz
  | j                  | j                  d¬«      }|j                  |«       t        j                  | j
                  |dz  z   | j                  |dz  z   | j
                  |dz  z   | j                  |dz  z   | j
                  |dz  z   | j                  |dz  z   | j
                  |dz  z   | j                  |dz  z   g| j                  | j                  | j                  ¬«      }|j                  |«       |S )Nr   r%   rj   rk   çffffffÖ?rl   rH   )r-   r   r   rK   rm   r   r   r   r   r/   ÚPolyLineru   rv   )r   r3   rN   ro   ÚtickLines        r   r.   zTickbox.drawð   s+  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆô �k‰k˜$Ÿ&™& ™( D§F¡F¨1¡H¨a°©c°1°Q±3ØŸ>™>Ø!×-Ñ-Øôˆð 	
�‰ˆcŒ
ä—?‘?¨T¯V©V°Q°t±V©_¸d¿f¹fÀaÈÁf¹oÈtÏvÉvÐWXÐY]ÑW]ÉÐ`d×`fÑ`fÐhiÐjnÑhnÑ`oØ-1¯V©V°Q°t±V©_¸d¿f¹fÀaÈÁf¹oÈtÏvÉvÐWXÐY]ÑW]ÉÐ`d×`fÑ`fÐhiÐjnÑhnÑ`oð-qàŸ>™>Ø!Ÿ^™^Ø!Ÿ^™^ô	-ˆð
 	
�‰ˆhŒàˆr!   Nrr   r?   r!   r   rt   rt   Ú   s/   „ ññ ˜GÙ  Ó/Ù  Ó*ô
€Hò
ór!   rt   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú
SmileyFacezkThis draws a classic smiley face.

        possible attributes:
        'x', 'y', 'size', 'fillColor'

    c                 ó¬   — t         j                  | «       d| _        d| _        d| _        t
        j                  | _        t
        j                  | _	        y rU   )
r   r    r   r   r   r   r[   r   r1   r   r   s    r   r    zSmileyFace.__init__  s<   € Ü×Ñ˜ÔØˆŒØˆŒØˆŒ	ÜŸ™ˆŒÜ!Ÿ<™<ˆÕr!   c                 ód  — t        | j                  «      }t        j                  «       }|j	                  t        j
                  | j                  |dz  z   | j                  |dz  z   |dz  | j                  | j                  t        |dz  | j                  «      ¬«      «       dD ]„  }|j	                  t        j                  | j                  |dz  |z  z   | j                  |dz  dz  z   |dz  |dz  | j                  | j                  t        |dz  | j                  «      ¬«      «       Œ† | j                  |dz  z   }| j                  |dz  z   }|dz  }|}|}d	}	d
}
d}g }|j                  }ddlm}m}m} |dz  }||z  }|	|z  }|
|z  }||k  r|d|z  z   }||k  rŒ|}||k  r7| ||«      |z  z   }| ||«      |z  z   } ||«        ||«       ||z   }||k  rŒ7t        j$                  || j                  | j                  t        |dz  | j                  «      ¬«      }|j	                  |«       |S )Nr%   g      C@©ÚcxÚcyÚrr   r   r   )r   r%   r]   é   r(   rj   r#   iT  r   r   ©ÚsinÚcosÚpiç     €f@)r-   r   r   rK   r/   ÚCircler   r   r   r   Úmaxr   ÚEllipseÚappendÚmathr†   r‡   rˆ   rz   )r   r3   rN   ÚiÚcenterxÚcenteryÚradiusÚyradiusÚxradiusÚstartangledegreesÚendangledegreesÚdegreedeltaÚ
pointslistÚar†   r‡   rˆ   ÚdegreestoradiansÚradiansdeltaÚ
startangleÚendangleÚangler   r   Úsmiles                            r   r.   zSmileyFace.draw  s9  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð 	
�‰Œf�m‰m˜tŸv™v q¨¡s™|°·±¸¸!¹±ÀÀ!ÁØŸ.™.°d×6FÑ6FÜ  #¡ d×&6Ñ&6Ó7ô9ô 	:ð ò 	>ˆAØ�E‰E”&—.‘. §¡¨¨1©¨a©¡°·±¸¸!¹¸Q±w±ÀÀ"ÁÀaÈÁdØ"×.Ñ.¸d×>NÑ>NÜ # A c¡E¨$×*:Ñ*:Ó ;ô=õ >ð	>ð —‘˜˜!™‘ˆØ—‘˜˜!™‘ˆØ�‰sˆØˆØˆØÐØˆØˆØˆ
Ø×Ñˆß%Ñ%Ø˜e™8ÐØ"Ð#3Ñ3ˆØ&Ð'7Ñ7ˆ
Ø"Ð#3Ñ3ˆØ�zÒ!Ø! ! B¡$™ˆhð �zÓ!àˆØ�HŠnØ™#˜e›* VÑ+Ñ+ˆAØ™#˜e›* WÑ,Ñ,ˆAÙˆaŒD‘!�A”$Ø˜,Ñ&ˆEð	 �H‹nô —‘ 
Ø×+Ñ+Ø!×-Ñ-Ü   3¡ t×'7Ñ'7Ó8ô:ˆð 	
�‰ˆeŒàˆr!   NrQ   r?   r!   r   r}   r}     s   „ ñò(ó0r!   r}   c                   ó@   — e Zd ZdZ ee eed¬«      ¬«      Zd„ Z	d„ Z
y)ÚStopSignzbThis draws a (British) stop sign.

        possible attributes:
        'x', 'y', 'size'

        zcolor of the word stopr   )rc   Ú	stopColorc                 ó¬   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        t        j                  | _	        y rU   )
r   r   r   r   r1   r   Ú	orangeredr   Ú
ghostwhiter¢   r   s    r   r    zStopSign.__init__R  s=   € ØˆŒØˆŒØˆŒ	Ü!Ÿ<™<ˆÔÜ×)Ñ)ˆŒÜ×*Ñ*ˆ�r!   c                 ó:  — t        | j                  «      }t        j                  «       }|dz  }t        j                  | j
                  |z   | j                  | j
                  | j                  |z   | j
                  | j                  |dz  z   | j
                  |z   | j                  |z   | j
                  |dz  z   | j                  |z   | j
                  |z   | j                  |dz  z   | j
                  |z   | j                  |z   | j
                  |dz  z   | j                  g| j                  d d¬«      }|j                  |«       t        j                  | j
                  |z   |dz  z   | j                  |dz  z   | j
                  |dz  z   | j                  |z   |dz  z   | j
                  |dz  z   | j                  |dz  z   |dz  z
  | j
                  |z   |dz  z   | j                  |z   |dz  z
  | j
                  |dz  z   |dz  z
  | j                  |z   |dz  z
  | j
                  |z   |dz  z
  | j                  |dz  z   |dz  z
  | j
                  |z   |dz  z
  | j                  |z   |dz  z   | j
                  |dz  z   |dz  z
  | j                  |dz  z   gd | j                  d¬«      }|j                  |«       | j                  rX|j                  t        j                  | j
                  |dz  z   | j                  |dz  z   d	| j                  d
|dz  d¬«      «       |S )Nr]   r%   r   r^   éK   r   ç      à?çš™™™™™Ù?ÚSTOPr'   zHelvetica-Bold)r   r*   r+   ÚfontName)r-   r   r   rK   rL   r   r   r   r/   r   r¢   r0   )r   r3   rN   r_   ÚouterOctagonÚinnerOctagons         r   r.   zStopSign.drawZ  sÕ  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð �‰sˆä—~‘~¨d¯f©f°V©m¸T¿V¹VØ.2¯f©f°d·f±f¸V±mØ.2¯f©f°d·f±f¸fÀQ¹hÑ6GØ.2¯f©f°V©m¸T¿V¹VÀA¹XØ.2¯f©f°f¸Q±hÑ.?ÀÇÁÈÁØ.2¯f©f°Q©h¸¿¹ÀÀqÁÑ8IØ.2¯f©f°Q©h¸¿¹¸v¹Ø.2¯f©f°f¸Q±hÑ.?ÀÇÁð.Ið 59×4DÑ4DØ26Ø23ô
5ˆð 	
�‰ˆlÔä—~‘~¨d¯f©f°V©m¸Q¸r¹TÑ.BÀDÇFÁFÈAÈbÉDÁMØ.2¯f©f°a¸±d©m¸T¿V¹VÀF¹]ÈAÈbÉDÑ=QØ.2¯f©f°a¸±d©m¸T¿V¹VÀVÈAÁXÑ=NÐPQÐRTÑPTÑ=UØ.2¯f©f°V©m¸Q¸r¹TÑ.BÀDÇFÁFÈ1ÁHÈaÐPRÉdÁOØ.2¯f©f°f¸Q±hÑ.?ÀÀ2ÁÑ.FÈÏÉÐPQÉÐTUÐVXÑTXÑHYØ/3¯v©v°a©x¸!¸B¹$Ñ.?ÀÇÁÈÐPQÉÑARÐTUÐVXÑTXÑAYØ/3¯v©v°a©x¸!¸B¹$Ñ.?ÀÇÁÈÁÐPQÐRTÑPTÑAUØ.2¯f©f°f¸Q±hÑ.?ÀÀ2ÁÑ.FÈÏÉÐPQÐRTÑPTÉð.Wð 59Ø26·.±.Ø23ô
5ˆð 	
�‰ˆlÔà�>Š>Ø�E‰E”&—-‘- §¡¨¨#©¡¨t¯v©v°q¸±u©~Ø"¨d¯n©nÈØ%& q¡SÐ3CôEô Fð ˆr!   N©r   r6   r7   r8   r:   r   r;   r=   r>   r    r.   r?   r!   r   r¡   r¡   G  s*   „ ññ ˜GÙ  Ð4LÔMô
€Hò+ó'r!   r¡   c                   ó@   — e Zd ZdZ ee eed¬«      ¬«      Zd„ Z	d„ Z
y)ÚNoEntryz�This draws a (British) No Entry sign - a red circle with a white line on it.

        possible attributes:
        'x', 'y', 'size'

        zcolor of the inner barr   )rc   ÚinnerBarColorc                 ó¬   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        t        j                  | _	        y rU   )
r   r   r   r   r1   r   r¤   r   r¥   r±   r   s    r   r    zNoEntry.__init__�  s>   € ØˆŒØˆŒØˆŒ	Ü!Ÿ<™<ˆÔÜ×)Ñ)ˆŒÜ#×.Ñ.ˆÕr!   c                 ó°  — t        | j                  «      }t        j                  «       }| j                  rW|j                  t        j                  | j                  |dz  z   | j                  |dz  z   |dz  d | j                  d¬«      «       | j                  r]|j                  t        j                  | j                  |dz  z   | j                  |dz  z   |dz  |dz  z
  | j                  d d¬«      «       | j                  }|rR|j                  t        j                  | j                  |dz  z   | j                  |dz  z   |dz  |d	z  ||dd¬
«      «       |S )Nr%   r   r€   r$   r   r   r©   çš™™™™™é?çš™™™™™É?)ÚwidthÚheightr   r   ÚstrokeLineCapr   )r-   r   r   rK   r   r/   rŠ   r   r   r   r±   rm   )r   r3   rN   r±   s       r   r.   zNoEntry.draw˜  sQ  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð ×ÒØ�E‰E”&—-‘- d§f¡f¨a°©c¡l¸4¿6¹6À1ÀQÁ3¹<ÈaÐPQÉcÐ_cÐsw÷  tDñ  tDð  RSô  Tô  Uà�>Š>Ø�E‰E”&—-‘- d§f¡f¨a°©c¡l¸$¿&¹&À!ÀAÁ#¹,ÈqÐQRÉsÐUVÐWYÑUYÉlÐim×iwÑiwð  HLð  Z[ô  \ô  ]à×*Ñ*ˆÙØ�E‰E”&—+‘+˜dŸf™f a¨¡e™n¨d¯f©f°a¸±e©nÀAÀcÁEÐRSÐTWÑRWÐerð  CPð  bcð  stô  uô  vØˆr!   Nr®   r?   r!   r   r°   r°   „  s*   „ ññ ˜GÙ$ ]Ð8PÔQô
€Hò/ór!   r°   c                   ó.   — e Zd ZdZ ee¬«      Zd„ Zd„ Zy)Ú
NotAllowedzƒThis draws a 'forbidden' roundel (as used in the no-smoking sign).

        possible attributes:
        'x', 'y', 'size'

        )rc   c                 ó‚   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        y rU   )r   r   r   r   r   r   rh   r   r   s    r   r    zNotAllowed.__init__´  s.   € ØˆŒØˆŒØˆŒ	Ü!Ÿ:™:ˆÔÜŸ™ˆ�r!   c           	      ó  — t        | j                  «      }t        j                  «       }| j                  }t        j
                  | j                  |dz  z   | j                  |dz  z   |dz  |dz  z
  | j                  ||dz  ¬«      }|j                  |«       | j                  |z   }| j                  |dz  z   |dz  z
  }||dz  z
  }|dz  }|dz  }	d}
d}d}g }|j                  }d	d
lm}m}m} |dz  }||z  }|
|z  }||z  }||k  r|d|z  z   }||k  rŒ|}||k  r7| ||«      |z  z   }| ||«      |z  z   } ||«        ||«       ||z   }||k  rŒ7t        j                  ||||dz  ¬«      }|j                  |«       |S )Nr%   r(   g      $@r€   é   r   i°ÿÿÿéZ   r   r…   r‰   rj   )r-   r   r   rK   r   rŠ   r   r   r   r/   r�   rŽ   r†   r‡   rˆ   rz   )r   r3   rN   r   ÚouterCircler�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   r†   r‡   rˆ   rš   r›   rœ   r�   rž   r   r   Úcrossbars                             r   r.   zNotAllowed.draw»  sÏ  € ä�$—)‘)ÓˆÜ�L‰L‹NˆØ×&Ñ&ˆô —m‘m¨$¯&©&°!°A±#©,¸t¿v¹vÀqÈÁs¹|ÐSTÐUVÑSVÐYZÐ[]ÑY]ÑR^Ðlp×lzÑlzð  KVð  deð  fiñ  diô  jˆØ	�‰ˆkÔà—‘�q‘ˆØ—‘˜˜!™‘˜a ™cÑ"ˆØ�!�A‘#‰wˆØ˜‘(ˆØ˜‘(ˆØÐØˆØˆØˆ
Ø×Ñˆß%Ñ%Ø˜e™8ÐØ"Ð#3Ñ3ˆØ&Ð'7Ñ7ˆ
Ø"Ð#3Ñ3ˆØ�zÒ!Ø  "¡‘}ˆHð �zÓ!àˆØ�HŠnØ™#˜e›* VÑ+Ñ+ˆAØ™#˜e›* WÑ,Ñ,ˆAÙˆaŒD‘!�A”$Ø˜,Ñ&ˆEð	 �H‹nô
 —?‘? :¸;ÐVaÐqrÐsvÑqvÔwˆØ	�‰ˆhŒØˆr!   N)	r   r6   r7   r8   r:   r   r>   r    r.   r?   r!   r   rº   rº   ©  s   „ ññ ˜Gô 
€Hò&ó#r!   rº   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú	NoSmokingz^This draws a no-smoking sign.

        possible attributes:
        'x', 'y', 'size'

        c                 ó.   — t         j                  | «       y rD   )rº   r    r   s    r   r    zNoSmoking.__init__é  s   € Ü×Ñ˜DÕ!r!   c           	      ó2  — t        | j                  «      }t        j                  | «      }| j                  |dz  z   |dz  z
  }| j
                  |dz  z   |dz  z
  }t        j                  |||dz  |dz  t        j                  t        j                  d¬«      }||dz  z   |dz  z   }|j                  d|«       t        j                  |||d	z  |dz  t        j                  d d¬«      }||d
z  z   }|j                  d|«       t        j                  |||d	z  |dz  t        j                  d d¬«      }||d
z  z   }|j                  d|«       t        j                  |||d	z  |dz  t        j                  d d¬«      }||d
z  z   }|j                  d|«       |S )Nr%   g      @é    é   r   ©r   r   r¶   r·   r   r   r   é@   éÿÿÿÿéP   é#   )r-   r   rº   r.   r   r   r   rm   r   r¥   ÚgrayÚinsertr¤   )	r   r3   rN   ÚnewxÚnewyÚcigarrette1Úcigarrette2Úcigarrette3Úcigarrette4s	            r   r.   zNoSmoking.drawì  s‡  € ä�$—)‘)ÓˆÜ�O‰O˜DÓ!ˆð �v‰v�q˜‘s‰|˜Q˜s™UÑ#ˆØ�v‰v�q˜‘s‰|˜Q˜r™TÑ"ˆÜ—k‘k d°¸qÀ¹sÈaÐPRÉdÜ"×-Ñ-¼V¿[¹[ÐVWôYˆà�1�Q‘3‰Z˜˜2™ÑˆØ	�‰��KÔ ä—k‘k d°¸qÀ¹tÈqÐQSÉtÜ"×,Ñ,¸DÈaôQˆà�A�b‘D‰kˆØ	�‰��KÔ ä—k‘k d°¸qÀ¹tÈqÐQSÉtÜ"×,Ñ,¸DÈaôQˆà�A�b‘D‰kˆØ	�‰��KÔ ä—k‘k d°¸qÀ¹tÈqÐQSÉtÜ"×,Ñ,¸DÈaôQˆà�A�b‘D‰kˆØ	�‰��KÔ àˆr!   NrQ   r?   r!   r   rÂ   rÂ   á  s   „ ñò"ór!   rÂ   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú
DangerSignz´This draws a 'danger' sign: a yellow box with a black exclamation point.

        possible attributes:
        'x', 'y', 'size', 'strokeColor', 'fillColor', 'strokeWidth'

        c                 óª   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        | j                  dz  | _        y )Nr   r   rF   )	r   r   r   r   r1   r   Úgoldr   r   r   s    r   r    zDangerSign.__init__  s>   € ØˆŒØˆŒØˆŒ	Ü!Ÿ<™<ˆÔÜŸ™ˆŒØŸ9™9 U™?ˆÕr!   c                 ó8  — t        | j                  «      }t        j                  «       }| j                  }|dz  }| j                  }|dz  }t        j
                  | j                  | j                  | j                  |z   | j                  | j                  |dz  z   | j                  |z   gd | j                  d¬«      }|j                  |«       t        j
                  | j                  |dz  z   | j                  |dz  z   | j                  |z   |dz  z
  | j                  |dz  z   | j                  |dz  z   | j                  |z   |dz  z
  g| j                  d d¬«      }|j                  |«       t        j
                  | j                  |dz  z   |dz  z
  | j                  |dz  z   | j                  |dz  z   |dz  z   | j                  |dz  z   | j                  |dz  z   |dz  z   |dz  z   | j                  |d	z  z   | j                  |dz  z   |dz  z
  |dz  z
  | j                  |d	z  z   g| j                  d ¬
«      }|j                  |«       t        j
                  | j                  |dz  z   |dz  z
  | j                  |z   | j                  |dz  z   |dz  z   | j                  |z   | j                  |dz  z   |dz  z   | j                  |dz  z   | j                  |dz  z   |dz  z
  | j                  |dz  z   g| j                  d ¬
«      }|j                  |«       |S )NrF   r%   r   rH   r$   r§   g      @r½   g      @)rI   r   r   )r-   r   r   rK   r   rL   r   r   r   r/   r   )	r   r3   rN   ÚewrO   ÚouterTriangleÚinnerTriangleÚexmarkÚexdots	            r   r.   zDangerSign.draw  sÚ  € ä�$—)‘)ÓˆÜ�L‰L‹NˆØ×ÑˆØˆu‰Wˆð
 ×ÑˆØˆu‰WˆäŸ™Ø�F‰F�D—F‘FØ�F‰F�1‰H�d—f‘fØ�F‰F�A�a‘C‰L˜Ÿ™ ™ð1#ð  Ø!×-Ñ-Øôˆð 	
�‰ˆmÔäŸ™Ø�F‰F�A�b‘D‰M˜4Ÿ6™6 1 R¡4™=Ø�V‰V�A‰X˜˜"™Ñ˜tŸv™v q¨¡t™}Ø�F‰F�A�a‘C‰L˜$Ÿ&™& ™( Q r¡TÑ*ð1,ð  Ÿ>™>Ø!Øôˆð 	
�‰ˆmÔä—‘Ø�f‰f�Q�q‘S‰j˜"˜Q™$Ñ §¡¨¨3©¡Ø�f‰f�Q�q‘S‰j˜"˜Q™$Ñ §¡¨¨3©¡Ø�f‰f�Q�q‘S‰j˜B˜q™DÑ" B q¡DÑ)¨D¯F©F°2°c±6©MØ�f‰f�Q�q‘S‰j˜B˜q™DÑ" B q¡DÑ)¨D¯F©F°2°c±6©Mð	(;ð
  ×+Ñ+Ø!ô#ˆð 	
�‰ˆfŒä—‘Ø�f‰f�Q�q‘S‰j˜"˜Q™$Ñ §¡¨¡Ø�f‰f�Q�q‘S‰j˜"˜Q™$Ñ §¡¨¡Ø�f‰f�Q�q‘S‰j˜"˜Q™$Ñ §¡¨¨1©¡Ø�f‰f�Q�q‘S‰j˜"˜Q™$Ñ §¡¨¨1©¡ð	'.ð
  ×+Ñ+Ø!ô#ˆð 	
�‰ˆeŒàˆr!   NrQ   r?   r!   r   rÕ   rÕ     s   „ ñò+ó1r!   rÕ   c                   ó^   — e Zd ZdZ ee ee«       ee«       ee«      ¬«      Z	d„ Z
d„ Zd„ Zy)ÚYesNoaI  This widget draw a tickbox or crossbox depending on 'testValue'.

        If this widget is supplied with a 'True' or 1 as a value for
        testValue, it will use the tickbox widget. Otherwise, it will
        produce a crossbox.

        possible attributes:
        'x', 'y', 'size', 'tickcolor', 'crosscolor', 'testValue'

)rc   Ú	tickcolorÚ
crosscolorÚ	testValuec                 ó�   — d| _         d| _        d| _        t        j                  | _        t        j                  | _        d| _        y )Nr   r   r   )	r   r   r   r   rV   rà   r   rá   râ   r   s    r   r    zYesNo.__init__a  s4   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒÜ Ÿ*™*ˆŒØˆ�r!   c                 ó  — | j                   rt        «       }| j                  |_        nt	        «       }| j
                  |_        | j                  |_        | j                  |_        | j                  |_	        |j                  «        |S rD   )râ   rt   rà   ru   rb   rá   rd   r   r   r   r.   )r   Úyns     r   r.   z
YesNo.drawi  s\   € Ø�>Š>Ü‹yˆBØŸ™ˆB�Lä‹zˆBØŸ/™/ˆBŒMØ�V‰VˆŒØ�V‰VˆŒØ—	‘	ˆŒØ
�‰Œ	Øˆ	r!   c           
      óª  — t        j                  dd«      }t        «       }d|_        d|_        d|_        d|_        |j                  «        |j                  |«       t        «       }d|_        d|_        d|_        d|_        |j                  «        |j                  |«       d	}|j                  t        j                  |j                  |j
                  d
z  z   |j                  d|z  z
  dt        j                  d|¬«      «       |j                  t        j                  |j                  |j
                  d
z  z   |j                  d|z  z
  dt        j                  d|¬«      «       d}|j                  t        j                  |j                  dz   |j                  dz
  | j                  j                  t        j                  d|¬«      «       |S )Nr#   r   é   é   éF   r   éx   r   é   r%   ç333333ó?ztestValue=0r'   r)   ztestValue=1r(   éU   é   )r   r,   rß   r   r   r   râ   r.   r/   r0   r   r1   r   r   )r   r2   rå   Úyn2ÚlabelFontSizes        r   r5   z
YesNo.demow  si  € Ü�N‰N˜3 Ó$ˆÜ‹WˆØˆŒØˆŒØˆŒØˆŒØ
�‰Œ	Ø	�‰ˆbŒ	Ü‹gˆØˆŒØˆŒØˆŒØˆŒØ�‰Œ
Ø	�‰ˆcŒ
ØˆØ	�‰Œf�m‰m˜BŸD™D "§'¡'¨!¡)Ñ,¨b¯d©d°C¸Ñ4EÑ.FØ)´V·\±\ÈhØ%2ô4ô 	5ð 	
�‰Œf�m‰m˜CŸE™E 3§8¡8¨A¡:Ñ.°·±°s¸=Ñ7HÑ0IØ)´V·\±\ÈhØ%2ô4ô 	5ð ˆØ	�‰Œf�m‰m˜BŸD™D ™G R§T¡T¨"¡WØ ŸN™N×3Ñ3¼v¿|¹|ÐX`Ø%2ô4ô 	5ð ˆr!   N)r   r6   r7   r8   r:   r   r;   ÚisColorÚ	isBooleanr>   r    r.   r5   r?   r!   r   rß   rß   O  s<   „ ñ	ñ ˜GÙ  Ó)Ù! 'Ó*Ù  Ó+ô
€Hòòór!   rß   c                   ó<   — e Zd ZdZ ee ee«      ¬«      Zd„ Z	d„ Z
y)Ú
FloppyDiskzyThis widget draws an icon of a floppy disk.

        possible attributes:
        'x', 'y', 'size', 'diskcolor'

        )rc   Ú	diskColorc                 óX   — d| _         d| _        d| _        t        j                  | _        y rU   )r   r   r   r   r1   rõ   r   s    r   r    zFloppyDisk.__init__   s"   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆ�r!   c           	      ó<  — t        | j                  «      }t        j                  «       }t        j                  | j
                  | j                  |dz  z   |||dz  z
  | j                  d d¬«      }|j                  |«       t        j                  | j
                  |dz  z   | j                  |z   |dz  z
  |dz  |dz  t        j                  d d¬«      }|j                  |«       t        j                  | j
                  |dz  z   | j                  |z   |dz  z
  |dz  |dz  t        j                  d d¬«      }|j                  |«       t        j                  | j
                  |d	z  z   | j                  d
|z  z   | j
                  |dz  z   | j                  d
|z  z   t        j                  t        j                  d¬«      }|j                  |«       t        j                  | j
                  |d	z  z   | j                  d|z  z   | j
                  |dz  z   | j                  d|z  z   t        j                  t        j                  d¬«      }|j                  |«       t        j                  | j
                  |d	z  z   | j                  d|z  z   | j
                  |dz  z   | j                  d|z  z   t        j                  t        j                  d¬«      }|j                  |«       t        j                  | j
                  |dz  z   | j                  |dz  |dz  t        j                  d d¬«      }	|j                  |	«       t        j                  | j
                  |dz  z   | j                  |dz  z   |dz  |dz  | j                  d d¬«      }
|j                  |
«       |S )Nr   r   rÇ   r   r¨   r´   g¸…ëQ¸Þ?g{®Gáz´?rk   g333333ã?rl   )Úx1Úy1Úx2Úy2r   r   r   gffffffæ?rµ   ry   gìQ¸…ëÑ?gìQ¸…ë¡?g¸…ëQ¸¾?)r-   r   r   rK   rm   r   r   rõ   r/   r   Ú
whitesmokeÚ	royalbluern   r1   Úsilver)r   r3   rN   ÚdiskBodyÚlabelÚlabelsplashÚline1Úline2Úline3Ú
metalcoverÚ	coverslots              r   r.   zFloppyDisk.draw¦  s  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆô —;‘; §¡¨4¯6©6°1°S±5©>ÀÈ1ÈaÐPSÉeÉ9ØŸ>™>Ø!Øôˆð 	
�‰ˆhŒä—‘˜dŸf™f a¨¡e™n°·±¸±¸A¸c¹EÑ0BÈ!ÈCÉ%ÐXYÐZ^ÑX^Ü!×,Ñ,Ø!Øôˆð 	
�‰ˆeŒä—k‘k D§F¡F¨A¨c©E¡N°t·v±v¸a±xÀ!ÀCÁ%Ñ6HÐPQÐRUÑPUÐ^_Ð`dÑ^dÜ!×+Ñ+Ø!Øôˆð 	
�‰ˆkÔô —‘˜tŸv™v q¨¡v™°4·6±6¸3¸q¹5±>ÀdÇfÁfÈaÐPTÉfÁoÐZ^×Z`ÑZ`ÐbeÐfgÑbgÑZhÜ!Ÿ<™<Ü#Ÿ\™\Øôˆð 	
�‰ˆeŒä—‘˜tŸv™v q¨¡v™°4·6±6¸3¸q¹5±>ÀdÇfÁfÈaÐPTÉfÁoÐZ^×Z`ÑZ`ÐbeÐfgÑbgÑZhÜ!Ÿ<™<Ü#Ÿ\™\Øôˆð 	
�‰ˆeŒä—‘˜tŸv™v q¨¡v™°4·6±6¸3¸q¹5±>ÀdÇfÁfÈaÐPTÉfÁoÐZ^×Z`ÑZ`ÐbeÐfgÑbgÑZhÜ!Ÿ<™<Ü#Ÿ\™\Øôˆð 	
�‰ˆeŒä—[‘[ 4§6¡6¨1¨S©5¡>°d·f±fÀQÀsÁUÐSTÐUYÑSYÜ!Ÿ=™=Ø!Øôˆ
ð 	
�‰ˆjÔä—K‘K $§&¡&¨!¨D©&¡/°d·f±f¸qÀ¹wÑ5GÈqÐQUÉvÐ^_Ð`dÑ^dØŸ>™>Ø!Øôˆ	ð 	
�‰ˆiÔàˆr!   N)r   r6   r7   r8   r:   r   r;   rñ   r>   r    r.   r?   r!   r   rô   rô   ”  s'   „ ññ ˜GÙ  Ó)ô
€Hò&ó8r!   rô   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚArrowOnezuThis widget draws an arrow (style one).

        possible attributes:
        'x', 'y', 'size', 'fillColor'

        c                 ót   — d| _         d| _        d| _        t        j                  | _        d| _        d | _        y rU   )r   r   r   r   r   r   r   r   r   s    r   r    zArrowOne.__init__ç  s2   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒØˆÔØˆÕr!   c                 ó¨  — t        | j                  «      }t        j                  «       }| j                  }| j
                  }|dz  }|dz  }|dz  }|j                  t        j                  |||z   ||d|z  z   ||z   |d|z  z   ||z   |d|z  z   ||z   ||z   ||z   ||z   ||z   ||z   g| j                  | j                  | j                  ¬«      «       |S )Nr%   r]   é   é   rH   ©r-   r   r   rK   r   r   r/   rL   r   r   r   )r   r3   rN   r   r   Ús2Ús3Ús5s           r   r.   zArrowOne.drawï  så   € ä�$—)‘)ÓˆÜ�L‰L‹Nˆà�F‰FˆØ�F‰FˆØˆq‰SˆØˆq‰SˆØˆq‰SˆØ	�‰Œf�n‰nØ()¨!¨B©$Ø()¨!¨A¨b©D©&Ø()¨"©¨Q¨q°©t©VØ()¨"©¨Q¨q°©t©VØ()¨!©¨A¨b©DØ()¨"©¨Q¨r©TØ()¨"©¨Q¨r©Tð')ð !ŸN™NØ"×.Ñ.Ø"×.Ñ.ôô 	ð ˆr!   NrQ   r?   r!   r   r  r  à  s   „ ñò ór!   r  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚArrowTwozuThis widget draws an arrow (style two).

        possible attributes:
        'x', 'y', 'size', 'fillColor'

        c                 ót   — d| _         d| _        d| _        t        j                  | _        d| _        d | _        y rU   )r   r   r   r   Úbluer   r   r   r   s    r   r    zArrowTwo.__init__  s2   € ØˆŒØˆŒØˆŒ	ÜŸ™ˆŒØˆÔØˆÕr!   c                 óÖ  — t        | j                  «      }t        j                  «       }| j                  }| j
                  }|dz  }|dz  }|dz  }|dz  }|j                  t        j                  ||d|z  z   ||d|z  z   |d|z  z   |d|z  z   |d|z  z   |d|z  z   ||z   ||z   |d|z  z   ||z   |d|z  z   |d|z  z   g| j                  | j                  | j                  ¬«      «       |S )	Nr%   r]   r  é   é   é   g     À2@rH   r  )	r   r3   rN   r   r   r  r  r  Ús24s	            r   r.   zArrowTwo.draw  s  € ä�$—)‘)ÓˆÜ�L‰L‹Nˆð �F‰FˆØ�F‰FˆØˆq‰SˆØˆq‰SˆØˆq‰SˆØ�‰dˆà	�‰Œf�n‰nà�a˜˜3™‘hØ�a˜˜3™‘hØ�e˜C‘i‘K  2 c¡6¡Ø�a˜‘d‘F˜A˜a ™d™FØ�a‘C˜˜2™Ø�a˜‘d‘F˜A˜b™DØ�e˜C‘i‘K  2 c¡6¡ðð Ÿ™Ø×*Ñ*Ø×*Ñ*ô,ô 	ð ˆr!   NrQ   r?   r!   r   r  r  	  s   „ ñò ór!   r  c            	       óP   — e Zd ZdZ ee e eee	f«      d¬«      ¬«      Z
d„ Zd„ Zy)Ú	CrossHairrB   z( gap at centre as "x%" or points or Noner   )rc   ÚinnerGapc                 óž   — dx| _         x| _        x| _        | _        d| _        d | _        t        j                  | _        d| _	        d| _
        y )Nr   r(   r¨   z20%)r   r   r   r   r   r   r   r1   r   r   r  r   s    r   r    zCrossHair.__init__=  sG   € Ø./Ð/ˆŒÐ/�”Ð/˜$œ' D¤GØˆŒ	ØˆŒÜ!Ÿ<™<ˆÔØˆÔØˆ�r!   c                 óü  — t        | j                  «      }t        j                  «       }| j                  }| j
                  | j                  z   }| j                  | j                  z   }d| j                  z  }|s||z
  |||z   |f|||z
  |||z   fg}n~t        |«      r@t        |«      }|j                  d«      r|t        |d d «      z  dz  }nt        |«      dz  }n|dz  }||z
  |||z
  |f||z   |||z   |f|||z
  |||z
  f|||z   |||z   fg}t        j                  | j                  | j                  ¬«      }	|D ]+  \  }
}}}|	j                  |
|«       |	j!                  ||«       Œ- |j#                  |	«       |S )Nr¨   ú%rÉ   g      Y@)r   r   )r-   r   r   rK   r  r   r   r   r   r   r   ÚendswithÚPathr   r   ÚmoveToÚlineTor/   )r   r3   rN   Úigr   r   ÚhsizeÚLÚgsÚPÚx0Úy0rø   rù   s                 r   r.   zCrossHair.drawE  s…  € ä�$—)‘)ÓˆÜ�L‰L‹NˆØ�]‰]ˆà�F‰F�4—7‘7‰NˆØ�F‰F�4—7‘7‰NˆØ�D—I‘I‘ˆÙØ�E‘'˜!˜A˜e™G AÐ&¨¨1¨U©7°1°Q°u±WÐ(=Ð>‰Aä�RŒyÜ˜r“]�Ø—;‘;˜tÔ$Øœu R¨¨ W›~Ñ-¨eÑ3‘Bä˜r› 3™‘Bà˜‘V�Ø�E‘'˜!˜A˜b™D Ð# a¨¡d¨1¨Q¨u©W°QÐ%7¸!¸A¸e¹GÀAÀaÈÁdÐ9KÈaÐPQÐRTÑPTÐUVÐWXÐY^ÑW^ÐM_Ð`ˆAÜ�K‰K D×$4Ñ$4À×AQÑAQÔRˆØò 	‰KˆBˆr�"�RØ�H‰H�R˜ŒOØ�H‰H�R˜�Oð	ð 	
�‰ˆaŒØˆr!   N)r   r6   r7   r8   r:   r   r;   ÚEitherOrÚisStringÚisNumberOrNoner>   r    r.   r?   r!   r   r  r  7  s0   „ Ù-Ù˜GÙ#¡H¨h°~Ð-FÓ$GÐMwÔxô
€Hòór!   r  c                  óà  — d} t        j                  dd«      }t        «       }d|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t        «       }d
|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t        «       }d|_        d|_        |j                  |«       |j                  j                  dz   }|j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |t        j                  d| ¬	«      «       |j                  t        j                  dddt        j                  d| dz  ¬	«      «       t        «       }d|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t        «       }d
|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t!        «       }d|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t#        «       }	d|	_        d|	_        |j                  |	«       |j                  t        j                  |	j                  |	j                  dz  z   |	j                  d| z  z
  |	j                  j                  t        j                  d| ¬	«      «       t%        «       }
d
|
_        d|
_        |j                  |
«       |j                  t        j                  |
j                  |
j                  dz  z   |
j                  d| z  z
  |
j                  j                  t        j                  d| ¬	«      «       t'        «       }d|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t)        «       }d|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t+        «       }d
|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t-        «       }d|_        d|_        |j                  |«       |j                  t        j                  |j                  |j                  dz  z   |j                  d| z  z
  |j                  j                  t        j                  d| ¬	«      «       t/        j0                  |dd«       t3        d«       y)z\This function produces a pdf with examples of all the signs and symbols from this file.
    r(   iÂ  iŠ  rî   i  r%   rì   r'   r)   éª   i@  r   é‚   r½   zT(The 'YesNo' widget returns a tickbox if testvalue=1, and a crossbox if testvalue=0)g      è?i�  i  éŒ   zsignsandsymbols.pdfzsignsandsymbols.pyzwrote file: signsandsymbols.pdfN)r   r,   rb   r   r   r/   r0   r   r   r   r   r1   rt   rß   r¡   r°   r}   rÕ   rº   rÂ   r  r  rô   r	   Ú
drawToFileÚprint)rð   r2   ÚcbÚtbrå   Ú
tempstringÚssÚneÚsfÚdsÚnaÚnsÚa1Úa2Úfds                  r   Útestr@  b  sÿ  € ð €MÜ�‰�s˜3Ó€AÜ	‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸ<™<×0Ñ0¼F¿L¹LÐU]Ø$1ô3ô 4ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô
 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ—‘×&Ñ&¨Ñ,€JØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØ&´&·,±,È8Ø%2ô4ô 5ð ‡E�EŒ&�-‰-˜˜AØrô  E÷  Kñ  Kð  X`Ø%2°4Ñ%7ô9ô :ô
 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô 
‹€BØ€B„DØ€B„DØ‡E�Eˆ"„IØ‡E�EŒ&�-‰-˜Ÿ™˜bŸg™g a™iÑ(¨"¯$©$°°MÑ0AÑ*BØŸL™L×1Ñ1¼V¿\¹\ÐV^Ø%2ô4ô 5ô ×Ñ˜Ð1Ð3GÔHÜ	Ð
+Õ,r!   Ú__main__N)!Ú__version__r8   Úreportlab.libr   Úreportlab.lib.validatorsÚreportlab.lib.attrmapÚreportlab.lib.utilsr   r   Úreportlab.graphicsr   Úreportlab.graphics.widgetbaser   r	   r   rA   rS   rY   rb   rt   r}   r¡   r°   rº   rÂ   rÕ   rß   rô   r  r  r  r@  r   r?   r!   r   ú<module>rI     s)  ðð €ð	€õ, !Ü &Ü #ß 0Ý %Ý 0Ý (ô#ˆfô #ôJ�ô ô.�ô ô@#ˆgô #ôJ.ˆwô .ôb)ˆgô )ôV@�ô @ôD:ˆwô :ôz#ˆgô #ôJ5�ô 5ôp'�
ô 'ôTA�ô AôHCˆGô CôJJ�ô JôX'ˆwô 'ôR,ˆxô ,ô\(�ô (òVl-ð\ ˆZÒÙ…Fð r!   