
    QiNP              	          S SK JrJrJrJrJrJrJr  S SKJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJrJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJ r J!r!  SSK"J#r#  SSK$J%r%J&r&   " S S5      r' " S S\'5      r( " S S\'5      r) " S S\)5      r* " S S\)5      r+ " S S\)5      r, " S S\)5      r- " S S\'5      r. " S  S!\'5      r/ " S" S#\)5      r0 " S$ S%\)5      r1 " S& S'5      r2 " S( S)\5      r3\4S*:X  Ga  S S+K5r5S S+K6r6\5Rn                  " S,S-9r8\8Rs                  S.S/S0S19  \8Rs                  S2S3S4S5S+S6S79  \8Rs                  S8S9S:S;S<S=9  \8Rs                  S>S?S@S+S@S=9  \8Rs                  SASBSCS5SDSE9  \8Rs                  SFSG\:SHS+SISJ9  \8Rs                  SKSLSMS5SNSE9  \8Rs                  SOSPSQS5SRSE9  \8Rw                  5       r<S SSK=Jr  \<R|                  ST:X  a  \6R~                  R                  5       rAO+\B" \<R|                  SUSVSW9 rC\CR                  5       rAS+S+S+5        \3" \A\<R                  (       a  SXOSY\<R                  \<R                  \<R                  SZ9rH\<R                  (       ag  S S+KJrJS S+KKrK\JR                  " 5       rM\" \M\<R                  \<R                  S[9r\R                  \H5        \KR                  " \MR                  5       5        g+\" \<R                  \<R                  S\9r\R                  \H5        g+g+! , (       d  f       N= f)]    )AnyClassVarDictListOptionalTypeUnion)Parser   )box)
loop_first)Stack)ConsoleConsoleOptionsJustifyMethodRenderResult)Renderables)JupyterMixin)Panel)Rule)Segment)Style
StyleStack)Syntax)TextTextTypec                       \ rS rSr% Sr\\   \S'   \SSS\	SS 4S j5       r
SS jrS	S
S\SS4S jrSS jrS	S
SS S\4S jr      SS jrSrg)MarkdownElement   Tnew_linemarkdownMarkdownnodereturnc                     U " 5       $ zFactory to create markdown element,

Args:
    markdown (Markdown): The parent Markdown object.
    node (Any): A node from Pygments.

Returns:
    MarkdownElement: A new markdown element
 clsr!   r#   s      _/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/rich/markdown.pycreateMarkdownElement.create   s     u    contextMarkdownContextNc                     g)z]Called when the node is entered.

Args:
    context (MarkdownContext): The markdown context.
Nr'   selfr.   s     r*   on_enterMarkdownElement.on_enter$       r-   textc                     g)zXCalled when text is parsed.

Args:
    context (MarkdownContext): The markdown context.
Nr'   r2   r.   r6   s      r*   on_textMarkdownElement.on_text+   r5   r-   c                     g)z_Called when the parser leaves the element.

Args:
    context (MarkdownContext): [description]
Nr'   r1   s     r*   on_leaveMarkdownElement.on_leave2   r5   r-   childc                     g)aD  Called when a child element is closed.

This method allows a parent element to take over rendering of its children.

Args:
    context (MarkdownContext): The markdown context.
    child (MarkdownElement): The child markdown element.

Returns:
    bool: Return True to render the element, or False to not render the element.
Tr'   r2   r.   r>   s      r*   on_child_closeMarkdownElement.on_child_close9   s     r-   c                     g)Nr'   r'   r2   consoleoptionss      r*   __rich_console__ MarkdownElement.__rich_console__I   s     r-   r'   r.   r/   r$   N)rE   r   rF   r   r$   r   )__name__
__module____qualname____firstlineno__r    r   bool__annotations__classmethodr   r+   r3   r   r9   r<   rA   rG   __static_attributes__r'   r-   r*   r   r      s    #Hhtn#
j 
 
8I 
 
0  T (1B	  +;	r-   r   c                       \ rS rSrSrSrg)UnknownElementO   zAn unknown element.

Hopefully there will be no unknown elements, and we will have a MarkdownElement for
everything in the document.

r'   N)rJ   rK   rL   rM   __doc__rQ   r'   r-   r*   rS   rS   O   s    r-   rS   c                   F    \ rS rSrSrSrSS jrSSS	\SS4S
 jrSS jr	Sr
g)TextElementX   z)Base class for elements that render text.noner.   r/   r$   Nc                 `    UR                  U R                  5      U l        [        SS9U l        g Nleftjustify)enter_style
style_namestyler   r6   r1   s     r*   r3   TextElement.on_enter]   s$    ((9
(	r-   r6   c                     U R                   R                  U[        U[        5      (       a  UR                  5        g S 5        g N)r6   append
isinstancestrcurrent_styler8   s      r*   r9   TextElement.on_texta   s.    		
48M8Mw44XSWXr-   c                 $    UR                  5         g rd   )leave_styler1   s     r*   r<   TextElement.on_leaved   s    r-   )ra   r6   rI   )rJ   rK   rL   rM   rU   r`   r3   r   r9   r<   rQ   r'   r-   r*   rW   rW   X   s3    3J)Y0 Y YT Yr-   rW   c                   p    \ rS rSr% SrSr\\S'   \SSS\	SS 4S	 j5       r
S\SS
4S jrS\S\S\4S jrSrg
)	Paragraphh   zA Paragraph.zmarkdown.paragraphr^   r!   r"   r#   r$   c                 4    U " UR                   =(       d    SS9$ r[   r]   r(   s      r*   r+   Paragraph.createn   s    8++5v66r-   Nc                     Xl         g rd   r]   )r2   r^   s     r*   __init__Paragraph.__init__r   s    r-   rE   rF   c              #   ^   #    U R                   U R                  l         U R                  v   g 7frd   )r^   r6   rD   s      r*   rG   Paragraph.__rich_console__u   s       !LL		iis   +-r]   )rJ   rK   rL   rM   rU   r`   r   rO   rP   r   r+   rs   r   r   r   rG   rQ   r'   r-   r*   rn   rn   h   sg    %J7j 7 7K 7 7 $ )7	r-   rn   c                   x   ^  \ rS rSrSr\SSS\SS 4S j5       rSS	 jrS
\	SS4U 4S jjr
S\S\S\4S jrSrU =r$ )Heading|   z
A heading.r!   r"   r#   r$   c                 *    U " UR                   5      nU$ rd   )level)r)   r!   r#   headings       r*   r+   Heading.create   s    djj/r-   Nc                 X    [        5       U l        UR                  U R                  5        g rd   )r   r6   r_   r`   r1   s     r*   r3   Heading.on_enter   s    F	DOO,r-   r{   c                 B   > Xl         SU 3U l        [        TU ]  5         g )Nz
markdown.h)r{   r`   superrs   )r2   r{   	__class__s     r*   rs   Heading.__init__   s!    
&ug.r-   rE   rF   c              #      #    U R                   nSUl        U R                  S:X  a  [        U[        R
                  SS9v   g U R                  S:X  a  [        S5      v   Uv   g 7f)Ncenterr   zmarkdown.h1.border)r   ra       )r6   r^   r{   r   r   DOUBLEr   )r2   rE   rF   r6   s       r*   rG   Heading.__rich_console__   sW      yy::?JJ*  zzQ2hJs   A"A$)r{   r`   r6   rI   )rJ   rK   rL   rM   rU   rP   r   r+   r3   intrs   r   r   r   rG   rQ   __classcell__r   s   @r*   rx   rx   |   sg    j  	  -c d 
)7	 r-   rx   c                   h    \ rS rSrSrSr\SSS\SS 4S j5       rS	\	S
\	SS4S jr
S\S\S\4S jrSrg)	CodeBlock   z&A code block with syntax highlighting.zmarkdown.code_blockr!   r"   r#   r$   c                     UR                   =(       d    SnUR                  S5      S   nU " U=(       d    SUR                  5      $ )Nr    r   r6   )info	partition
code_theme)r)   r!   r#   	node_info
lexer_names        r*   r+   CodeBlock.create   s<    IIO	((-a0
:')<)<==r-   r   themeNc                     Xl         X l        g rd   r   r   )r2   r   r   s      r*   rs   CodeBlock.__init__   s    $
r-   rE   rF   c              #      #    [        U R                  5      R                  5       n[        X0R                  U R
                  SSS9nUv   g 7f)NTr   )r   	word_wrappadding)rg   r6   rstripr   r   r   )r2   rE   rF   codesyntaxs        r*   rG   CodeBlock.__rich_console__   s?      499~$$&//tQ
 s   A	Ar   )rJ   rK   rL   rM   rU   r`   rP   r   r+   rg   rs   r   r   r   rG   rQ   r'   r-   r*   r   r      sh    0&J>j > > > >
3 s t )7	r-   r   c                   R    \ rS rSrSrSrSS jrSSS	S
S\4S jrS\	S\
S\4S jrSrg)
BlockQuote   zA block quote.zmarkdown.block_quoter$   Nc                 "    [        5       U l        g rd   r   elementsr2   s    r*   rs   BlockQuote.__init__       %0]r-   r.   r/   r>   r   c                 :    U R                   R                  U5        gNFr   re   r@   s      r*   rA   BlockQuote.on_child_close        	U#r-   rE   rF   c              #     #    UR                  UR                  S-
  S9nUR                  U R                  X0R                  S9nU R                  n[        S5      n[        SU5      nU H  nUv   U S h  vN   Uv   M     g  N7f)N   widthra   
u   ▌ )update	max_widthrender_linesr   ra   r   )	r2   rE   rF   render_optionslinesra   r    r   lines	            r*   rG   BlockQuote.__rich_console__   s{      !g.?.?!.CD$$T]]N**$U

4=&%(DMOON s   A2B4B5Br   r$   N)rJ   rK   rL   rM   rU   r`   rs   rN   rA   r   r   r   rG   rQ   r'   r-   r*   r   r      sI    'J3(1B	)7	r-   r   c                   2    \ rS rSrSrSrS\S\S\4S jr	Sr
g	)
HorizontalRule   z%A horizontal rule to divide sections.FrE   rF   r$   c              #   B   #    UR                  SSS9n[        US9v   g 7f)Nzmarkdown.hrrY   defaultr   )	get_styler   )r2   rE   rF   ra   s       r*   rG   HorizontalRule.__rich_console__   s'      !!-!@s   r'   N)rJ   rK   rL   rM   rU   r    r   r   r   rG   rQ   r'   r-   r*   r   r      s'    /H  )7 	 r-   r   c                       \ rS rSrSr\SSS\SS 4S j5       rS\S	\	\
   SS
4S jrSSSSS\4S jrS\S\S\4S jrSrg
)ListElement   zA list element.r!   r"   r#   r$   c                 8    UR                   nU " US   US   5      $ )Ntypestart)	list_data)r)   r!   r#   r   s       r*   r+   ListElement.create   s"    NN	9V$i&899r-   	list_type
list_startNc                 *    / U l         Xl        X l        g rd   )itemsr   r   )r2   r   r   s      r*   rs   ListElement.__init__   s    %'
"$r-   r.   r/   r>   r   c                 h    [        U[        5      (       d   eU R                  R                  U5        gr   )rf   ListItemr   re   r@   s      r*   rA   ListElement.on_child_close   s,     %****

% r-   rE   rF   c              #   X  #    U R                   S:X  a-  U R                   H  nUR                  X5       S h  vN   M     g U R                  c  SOU R                  nU[	        U R                  5      -   nU R                   H"  nUR                  XXE5       S h  vN   US-  nM$     g  No N7f)Nbulletr   )r   r   render_bulletr   lenrender_number)r2   rE   rF   itemnumberlast_numbers         r*   rG   ListElement.__rich_console__   s      >>X%

--g??? # //1QtF 3tzz?2K

--gTTT! #	 @
 Us"   4B*B&A B*B(B*(B*)r   r   r   )rJ   rK   rL   rM   rU   rP   r   r+   rg   r   r   rs   rN   rA   r   r   r   rG   rQ   r'   r-   r*   r   r      s    :j : : : :%# %8C= %T %
(1B	)7	r-   r   c            
       p    \ rS rSrSrSrSS jrSSS	S
S\4S jrS\	S\
S\4S jrS\	S\
S\S\S\4
S jrSrg)r   i  zAn item in a list.zmarkdown.itemr$   Nc                 "    [        5       U l        g rd   r   r   s    r*   rs   ListItem.__init__  r   r-   r.   r/   r>   r   c                 :    U R                   R                  U5        gr   r   r@   s      r*   rA   ListItem.on_child_close  r   r-   rE   rF   c              #   T  #    UR                  UR                  S-
  S9nUR                  U R                  X0R                  S9nUR                  SSS9n[        SU5      n[        SU5      n[        S	5      n[        U5       H   u  pU	(       a  UOUv   U
 S h  vN   Uv   M"     g  N7f)
N   r   r   zmarkdown.item.bulletrY   r   u    • z   r   )r   r   r   r   ra   r   r   r   )r2   rE   rF   r   r   bullet_styler   r   r    firstr   s              r*   r   ListItem.render_bullet  s      g.?.?!.CD$$T]]N**$U(()?(P,/'<04=%e,KE!&w.OON -s   BB(B&B(r   r   c              #     #    [        [        U5      5      S-   nUR                  UR                  U-
  S9nUR	                  U R
                  X`R                  S9nUR                  SSS9n[        S5      n	[        SU-  U5      n
[        U R                  US	-
  5      S-   U5      n[        U5       H   u  pU(       a  UOU
v   U S h  vN   U	v   M"     g  N7f)
Nr   r   r   zmarkdown.item.numberrY   r   r   r   r   )r   rg   r   r   r   r   ra   r   r   rjustr   )r2   rE   rF   r   r   number_widthr   r   number_styler    r   numeralr   r   s                 r*   r   ListItem.render_number  s      3{+,q0 g.?.?,.NO$$T]]N**$U(()?(P4=#,l;VH++L1,<=C\R%e,KE"'/OON -s   CCC	Cr   r   )rJ   rK   rL   rM   rU   r`   rs   rN   rA   r   r   r   r   r   r   rQ   r'   r-   r*   r   r     ss     J3(1B	W ~ , )7ADSV	r-   r   c                      ^  \ rS rSrSrSr\SSS\SS4S	 j5       rS
\	S\
SS4U 4S jjrSU 4S jjrS\S\S\4S jrSrU =r$ )	ImageItemi/  z#Renders a placeholder for an image.Fr!   r"   r#   r$   r   c                 <    U " UR                   UR                  5      $ r&   )destination
hyperlinksr(   s      r*   r+   ImageItem.create4  s     4##X%8%899r-   r   r   Nc                 H   > Xl         X l        S U l        [        TU ]  5         g rd   )r   r   linkr   rs   )r2   r   r   r   s      r*   rs   ImageItem.__init__A  s     &$#'	r-   c                 v   > UR                   R                  U l        [        SS9U l        [        TU ]  U5        g r[   )rh   r   r   r6   r   r3   )r2   r.   r   s     r*   r3   ImageItem.on_enterG  s/    ))..	(	!r-   rE   rF   c              #   t  #    [        U R                  =(       d    U R                  =(       d    S S9nU R                  =(       d7    [	        U R                  R                  S5      R                  SS5      S   5      nU R                  (       a  UR                  U5        [        R                  " SUSSS9v   g 7f)	Nr   /r   u   🌆 r   r   )end)
r   r   r   r6   r   striprsplitr   stylizeassemble)r2   rE   rF   
link_styletitles        r*   rG   ImageItem.__rich_console__L  s      		 ET-=-= EF
		QT$"2"2"8"8"="D"DS!"LR"PQ??MM*%mmGUCR88s   B6B8)r   r   r   r6   rI   )rJ   rK   rL   rM   rU   r    rP   r   r+   rg   rN   rs   r3   r   r   r   rG   rQ   r   r   s   @r*   r   r   /  st    -H
:j 
: 
:8I 
: 
:C T d "
99)79	9 9r-   r   c                       \ rS rSrSr  SS\S\S\S\\	   S\	S	S4S
 jjr
\S	\4S j5       rS\	S\	S	S4S jrS\\	\4   S	\4S jrS	\4S jrSrg)r/   iV  z!Manages the console render state.NrE   rF   ra   inline_code_lexerinline_code_themer$   c                     Xl         X l        [        U5      U l        [	        5       U l        S U l        Ub  [        SXES9U l        g g )Nr   )r   )rE   rF   r   style_stackr   stack_syntaxr   )r2   rE   rF   ra   r	  r
  s         r*   rs   MarkdownContext.__init__Y  sE     '1%'8-2W
)-(!"&7QDL )r-   c                 .    U R                   R                  $ )z>Current style which is the product of all styles on the stack.)r  currentr   s    r*   rh   MarkdownContext.current_stylej  s     '''r-   r6   	node_typec                 d   US;   a  U R                   bx  U R                   R                  U5      nUR                  5         U R                  R                  R                  U [        R                  " X0R                  R                  S95        gU R                  R                  R                  X5        g)z#Called when the parser visits text.r   Nr   )
r  	highlightr   r  topr9   r   r  r  r  )r2   r6   r  highlight_texts       r*   r9   MarkdownContext.on_texto  s{    4<<#;!\\33D9N!!#JJNN""dmmN:J:J:R:RS JJNN""4.r-   r`   c                     U R                   R                  USS9nU R                  R                  U5        U R                  $ )zEnter a style context.rY   r   )rE   r   r  pushrh   )r2   r`   ra   s      r*   r_   MarkdownContext.enter_stylez  s;    &&z6&Be$!!!r-   c                 :    U R                   R                  5       nU$ )zLeave a style context.)r  pop)r2   ra   s     r*   rk   MarkdownContext.leave_style  s      $$&r-   )r  rE   rF   r  r  )Nmonokai)rJ   rK   rL   rM   rU   r   r   r   r   rg   rs   propertyrh   r9   r	   r_   rk   rQ   r'   r-   r*   r/   r/   V  s    + ,0!*RR  R 	R
 $C=R R 
R" (u ( (	/C 	/C 	/D 	/"eCJ&7 "E "U r-   r/   c                       \ rS rSr% Sr\\\\\	\
\\S.r\\\\\   4      \S'   1 Skr      SS\S\S	\\   S
\\\4   S\S\\   S\\   SS4S jjrS\S\S\4S jrSrg)r"   i  a  A Markdown renderable.

Args:
    markup (str): A string containing markdown.
    code_theme (str, optional): Pygments theme for code blocks. Defaults to "monokai".
    justify (JustifyMethod, optional): Justify value for paragraphs. Defaults to None.
    style (Union[str, Style], optional): Optional style to apply to markdown.
    hyperlinks (bool, optional): Enable hyperlinks. Defaults to ``True``.
    inline_code_lexer: (str, optional): Lexer to use if inline code highlighting is
        enabled. Defaults to None.
    inline_code_theme: (Optional[str], optional): Pygments theme for inline code
        highlighting, or None for no highlighting. Defaults to None.
)	paragraphr|   
code_blockblock_quotethematic_breaklistr   imager   >   r   emphstrikestrongNmarkupr   r^   ra   r   r	  r
  r$   c                     Xl         [        5       nUR                  U5      U l        X l        X0l        X@l        XPl        X`l        U=(       d    UU l	        g rd   )
r+  r
   parseparsedr   r^   ra   r   r	  r
  )	r2   r+  r   r^   ra   r   r	  r
  parsers	            r*   rs   Markdown.__init__  sG     ll6*$07
$!2!2!@jr-   rE   rF   c              #   
  #    UR                  U R                  SS9nUR                  SS9n[        UUUU R                  U R
                  S9nU R                  R                  5       nU R                  nSnU GH  u  pUR                  n
U
S;   a.  UR                  UR                  R                  SS	5      U
5        MF  U
S
:X  a  U	(       a  UR                  SU
5        Mg  Mi  U
S:X  a  U	(       a  UR                  S	U
5        M  M  U
S:X  a  U	(       aJ  UR                  SSS9nU R                  (       a  U[        UR                  S9-  nUR!                  U5        M  UR#                  5         U R                  (       d~  UR                  SU
5        [        SS9UR                  SSS9-   nUR!                  U5        UR                  UR                  U
5        UR#                  5         UR                  SU
5        GM  GM  X;   a  UR%                  5       (       a1  U	(       a  UR!                  SU
 35        GM  UR#                  5         GM  UR!                  SU
 35        UR                  (       a  UR                  UR                  U
5        UR#                  5         GM$  U R&                  R)                  U
5      =(       d    [*        nUR%                  5       (       Ga:  U	(       a@  UR-                  X5      nUR.                  R1                  U5        UR3                  U5        GM  UR.                  R5                  5       nUR.                  (       a  UR.                  R6                  R9                  XM5      (       aI  U(       a  [;        S5      v   UR=                  XR>                  5       Sh  vN   URA                  U5        OFURA                  U5        O4URA                  U5        UR=                  XR>                  5       Sh  vN   URB                  nGM  UR-                  X5      nUR.                  R1                  U5        UR3                  U5        UR                  (       a)  UR                  XHR                  RE                  5       5        UR.                  R5                  5         UR.                  R6                  R9                  XM5      (       aI  U(       a  [;        S5      v   UR=                  XR>                  5       Sh  vN   URA                  U5        OURA                  U5        URB                  nGM     g GN GN> N?7f)zRender markdown to the console.rY   r   N)height)r	  r
  F)html_inline
html_blockr6   r   r   	linebreak	softbreakr   zmarkdown.linkr   z (T)	underlinezmarkdown.link_url)z	markdown.)#r   ra   r   r/   r	  r
  r.  walkerinlinestr9   literalreplacer   r   r   r_   rk   is_containerr   getrS   r+   r  r  r3   r  r  rA   r   renderrF   r<   r    r   )r2   rE   rF   ra   r.   nodesr:  r    r  enteringr  r  element_classelements                 r*   rG   Markdown.__rich_console__  s     !!$**f!=...-!"44"44
 ""$,,!&G		IAA 7 7c BINk)OOD)4 k)OOC3 f$!(!2!2?F!2!SJ"e1D1D&EE
''
3'')??i8 % 58I8I/ 9J 9 !  ++E2(;(;YG++-Y7 + %''))++i	{,CD++-'')I;(?@C'') $ 1 1) < N''))"/"6"6t"E**73((1")--"3"3"5"==&}}00??QQ#+*1$-$7+2>>'??+S S S ' 0 0 9 ' 0 0 9#,,W5'.~~g'OOO#*#3#3+224AGMM&&w/$$W-1G1G1IJMM%%'}}((77II#")$-/#*>>'??#KKK((1((1&//HU "'f !T P Ls8   N%U'T:(AU?T= D U U :U=U U)r   r   r	  r
  r^   r+  r.  ra   )r  NrY   TNN) rJ   rK   rL   rM   rU   rn   rx   r   r   r   r   r   r   r   r   r   rg   r   r   rO   r:  r   r   r	   r   rN   rs   r   r   r   rG   rQ   r'   r-   r*   r"   r"     s     !(	<HhtCo!6678 	 3G
 $+/#)+/+/AA A -(	A
 S%Z A A $C=A $C=A 
A(Z0Z0)7Z0	Z0r-   r"   __main__Nz(Render Markdown to the console with Rich)descriptionpathPATHz%path to markdown file, or - for stdin)metavarhelpz-cz--force-colorforce_color
store_truezforce color for non-terminals)destactionr   rK  z-tz--code-themer   r  zpygments code theme)rN  r   rK  z-iz--inline-code-lexerr	  z-yz--hyperlinksr   zenable hyperlinks)rN  rO  rK  z-wz--widthr   z*width of output (default will auto-detect))r   rN  r   rK  z-jz	--justifyr^   zenable full text justifyz-pz--pagepagezuse pager to scroll output)r   -rtzutf-8)encodingfullr\   )r^   r   r   r	  )fileforce_terminalr   )rV  r   )Stypingr   r   r   r   r   r   r	   commonmark.blocksr
   r   r   _loopr   _stackr   rE   r   r   r   r   
containersr   jupyterr   panelr   ruler   segmentr   ra   r   r   r   r   r6   r   r   r   rS   rW   rn   rx   r   r   r   r   r   r   r/   r"   rJ   argparsesysArgumentParserr/  add_argumentr   
parse_argsargsrich.consolerH  stdinreadmarkdown_bodyopenmarkdown_filer^   r   r   r	  r!   rP  iopydocStringIOfileiorL  r   printpagergetvaluer'   r-   r*   <module>rs     s)   C C C $    I I # !    $   9 9x_ /   (!k !H 2 8	 _ 	 / D){ )X$9 $9N- -`I0| I0X z$$>F 4  
 ,   "            9   '   )   D$yyC		($))TG4)..0M 5,,F????00H yy(8(8


 	hFOO%& )9)9Lh{ N 54s   K<<
L
