
    NgS                         d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
mZ dedee         fdZee         Z G d d          Z G d d	e          Z G d
 de          Zdedeeef         defdZdee         ddfdZdS )    N)
AnyCallableDictIteratorListMutableSequenceOptionalSequenceUnioncastdatareturnc              #      K   | E d {V  d S N )r   s    J/var/www/html/ai-engine/env/lib/python3.11/site-packages/pdfminer/ccitt.py	get_bytesr      s      OOOOOOOOO    c            	           e Zd ZU eed<   eeegef                  ed<   ddZe	dede
eef         deddfd	            Zd
eddfdZdeddfdZdS )	BitParser_state_acceptr   Nc                     d| _         d S )Nr   )_posselfs    r   __init__zBitParser.__init__.   s    			r   rootvbitsc                     |}d }t          t          |                    D ]4}d|k     r|J ||         d d g||<   ||         }||         dk    rd}2d}5|J |||<   d S )Nr   1   )rangelen)clsr   r   r    pbis          r   addzBitParser.add1   s     s4yy!! 		 		A1uu}}}Q4< $<AaDaDAw#~~}}}!r   r   c                 d    t          |          D ]}dD ]}|                     ||z              d S N   @                   r#   )r   
_parse_bitr   r   bytems       r   	feedbyteszBitParser.feedbytesB   sN    dOO 	* 	*D2 * *q))))*	* 	*r   xc                     |r| j         d         }n| j         d         }| xj        dz  c_        t          |t                    r	|| _         d S | j        J |                     |          | _         d S Nr#   r   )r   r   
isinstancelistr   )r   r:   r   s      r   r5   zBitParser._parse_bitG   sq     	AAAAA		Q		a 	*DKKK<+++,,q//DKKKr   r   N)__name__
__module____qualname__BitParserState__annotations__r	   r   r   r   classmethodr   intstrr*   bytesr9   objectr5   r   r   r   r   r   '   s          hun456666    ~ %S/      [ *e * * * * *

*F 
*t 
* 
* 
* 
* 
* 
*r   r   c                   -   e Zd ZU ddgZe                    edd           e                    edd           e                    edd           e                    edd	           e                    ed
d           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    ed d!           e                    ed"d#           e                    ed$d%           ddgZe                    edd&           e                    edd'           e                    edd(           e                    edd)           e                    ed*d+           e                    ed,d-           e                    ed.d/           e                    ed0d1           e                    ed2d3           e                    ed4d5           e                    ed6d7           e                    ed8d9           e                    ed:d;           e                    ed<d           e                    ed=d>           e                    ed?d@           e                    edAdB           e                    edCdD           e                    edEdF           e                    edGdH           e                    edIdJ           e                    edKdL           e                    edMd           e                    edNdO           e                    edPdQ           e                    edRdS           e                    edTdU           e                    edVdW           e                    edXdY           e                    edZd[           e                    ed\d]           e                    ed^d_           e                    ed`da           e                    edbdc           e                    eddde           e                    edfdg           e                    edhdi           e                    edjdk           e                    edldm           e                    edndo           e                    edpdq           e                    edrds           e                    edtdu           e                    edvdw           e                    edxdy           e                    edzd{           e                    ed|d}           e                    ed~d           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    eddæ           e                    eddŦ           e                    eddǦ           e                    eddɦ           e                    edd˦           e                    eddͦ           e                    eddϦ           e                    eddѦ           e                    eddӦ           e                    eddզ           e                    eddצ           e                    edd٦           e                    eddۦ           e                    eddݦ           e                    eddߦ           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           ddgZe                    edd           e                    edd           e                    edd           e                    edd           e                    ed*d           e                    ed,d           e                    ed.d           e                    ed0d           e                    ed2d           e                    ed4d           e                    ed6dO           e                    ed8d           e                    ed:d           e                    ed<d{           e                    ed=d           e                    ed?d           e                    edAd           e                    edCd           e                    edEd           e                    edGd           e                    edId           e                    edKd            e                    edMd           e                    edNd           e                    edPd           e                    edRd           e                    edTd           e                    edVd           e                    edXd           e                    edZd           e                    ed\d	           e                    ed^d
           e                    ed`d           e                    edbd           e                    eddd           e                    edfd           e                    edhd           e                    edjd           e                    edld           e                    ednd           e                    edpd           e                    edrd           e                    edtd           e                    edvd           e                    edxd           e                    edzd           e                    ed|d           e                    ed~d           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd            e                    edd!           e                    edd"           e                    edd#           e                    edd$           e                    edd%           e                    edd&           e                    edd'           e                    edd(           e                    edd)           e                    edd*           e                    edd           e                    edd+           e                    edd,           e                    edd-           e                    edd.           e                    edd/           e                    edd0           e                    edd1           e                    edd2           e                    edd3           e                    edd4           e                    edd5           e                    edd6           e                    edd7           e                    edd8           e                    edd9           e                    edd:           e                    edd;           e                    edĐd<           e                    edƐd=           e                    edȐd>           e                    edʐd?           e                    ed̐d@           e                    edΐdA           e                    edАdB           e                    edҐdC           e                    edԐdD           e                    eddצ           e                    edd٦           e                    eddۦ           e                    eddݦ           e                    eddߦ           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           e                    edd           ddgZe                    edd           e                    edEdE           e                    ed	d	           e                    edd           e                    edFdF           e                    edGdH           e                    edId]           e                    edJd[           e                    edKdL           e                    edMdN           e                    edOdP           e                    edQdR           e                    edSdT           e                    edUdV            G dW dXe	          Z
 G dY dZe	          Z G d[ d\e	          Zeed]<   d{d_ed`edadfdbZdcedadfddZdeedaefdfZdgedaefdhZdgedaefdiZdjee         daefdkZdaefdlZdmedaefdnZd|doZdpedjee         dadfdqZ d|drZ!d|dsZ"dtedadfduZ#d|dvZ$dwedxedadfdyZ%djedadfdzZ&dS (}  CCITTG4ParserNr   r"   r#   011010h001r'   0001r4   000011000010   00000110000010u
0000001111x1
0000001000x2
0000001001x3
0000001010x4
0000001011x5
0000001100x6
0000001101x7
0000001110e0000000000010000000000010011010100011101111000r3   1011   1100   1110   1111r2   10011	   10100
   00111   01000   001000      110100   110101r1   101010   101011   0100111   0001100   0001000   0010111      0000100   0101000   0101011   0010011   0100100   0011000   00000010   00000011   00011010r0   00011011!   00010010"   00010011#   00010100$   00010101%   00010110&   00010111'   00101000(   00101001)   00101010*   00101011+   00101100,   00101101-   00000100.   00000101/   000010100   000010111   010100102   010100113   010101004   010101015   001001006   001001017   010110008   010110019   01011010:   01011011;   01001010<   01001011=   00110010>   00110011?   00110100r/   11011r.   10010   010111   0110111i@  00110110i  00110111i  01100100i   01100101i@  01101000i  01100111i  	011001100i   	011001101i@  	011010010i  	011010011i  	011010100i   	011010101i@  	011010110i  	011010111i  	011011000i   	011011001i@  	011011010i  	011011011i  	010011000i   	010011001i@  	010011010i  011000i  	010011011i   00000001000i@  00000001100i  00000001101i  000000010010i   000000010011i@  000000010100i  000000010101i  000000010110i 	  000000010111i@	  000000011100i	  000000011101i	  000000011110i 
  000000011111
0000110111111000110010000110001010001000000101000011100000111	000011000
0000010111
00000110000000110011100001101000000011011000000011011100000101000000000101110000001100000001100101000001100101100001100110000001100110100000110100000000110100100000110101000000110101100001101001000001101001100001101010000001101010100001101011000001101011100000110110000000110110100001101101000001101101100000101010000000101010100000101011000000101011100000110010000000110010100000101001000000101001100000010010000000011011100000011100000000010011100000010100000000101100000000101100100000010101100000010110000000101101000000110011000000110011100001100100000001100100100000101101100000011001100000011010000000011010100000011011000000001101101000000100101000000010010110000001001100000000100110100000011100100000001110011000000111010000000011101010000001110110000000111011100000010100100000001010011000000101010000000010101010000001011010000000101101100000011001000000001100101010000100000000001T00T10T000	000000011T100	000000010T0000
0000000011T1000
0000000010T0000000000000011T1000000000000010c                       e Zd ZdS )CCITTG4Parser.EOFBNr@   rA   rB   r   r   r   EOFBrs  N          r   ru  c                       e Zd ZdS )CCITTG4Parser.InvalidDataNrt  r   r   r   InvalidDatarx  Q  rv  r   ry  c                       e Zd ZdS )CCITTG4Parser.ByteSkipNrt  r   r   r   ByteSkipr{  T  rv  r   r|  _colorFwidth	bytealignr   c                 ~    t                               |            || _        || _        |                                  d S r   )r   r   r~  r  reset)r   r~  r  s      r   r   zCCITTG4Parser.__init__Y  s6    4   
"

r   r   c                     t          |          D ]T}	 dD ]}|                     ||z             !# | j        $ r | j        | _        | j        | _        Y E| j        $ r Y  nw xY wd S r,   )r   r5   r|  _parse_moder   MODEr   ru  r6   s       r   r9   zCCITTG4Parser.feedbytes`  s    dOO 	 	D6 . .AOOD1H----.= ( ( (#/"i9   s   1"A"	A"!A"modec                    |dk    r/|                                   |                                  | j        S |dk    r(d| _        | j        | _        | j        r| j        S | j        S |dk    r| j	        | _        | j
        S |dk    r| j        t          |t                    r0|                     |           |                                  | j        S |                     |          )Nr'   rO   r   rY   ri   )_do_pass_flush_liner  _n1_parse_horiz1r   r}  WHITEBLACK_parse_uncompressedUNCOMPRESSEDru  r=   rF   _do_verticalry  )r   r  s     r   r  zCCITTG4Parser._parse_model  s    3;;MMOOO9S[[DH-DL{ "z!z!S[[3DL$$S[[)Oc"" 	)d###9""4(((r   nc                     || j         | xj        |z  c_        |dk     r"d| _        d| j        z
  | _        | j        | _        | j        r| j        S | j        S )Nr/   r   r#   )ry  r  _n2r}  _parse_horiz2r   r  r  r   r  s     r   r  zCCITTG4Parser._parse_horiz1  s`    9""Ar66DHdk/DK-DL; 	::r   c                    || j         | xj        |z  c_        |dk     rVd| j        z
  | _        | j        | _        |                     | j        | j                   |                                  | j        S | j        r| j	        S | j
        S )Nr/   r#   )ry  r  r}  r  r   _do_horizontalr  r  r  r  r  r  s     r   r  zCCITTG4Parser._parse_horiz2  s    9""Ar66dk/DK+DL$(3339[ 	::r   r    c                 
   |s| j         |                    d          rJ| j        | _        t	          |d                   | _        |                     |dd                     | j        S |                     |           | j        S )NTr#   r4   )	ry  
startswithr  r   rF   r}  _do_uncompressedr  r  )r   r    s     r   r  z!CCITTG4Parser._parse_uncompressed  s     	#""??3 	%+DLd1g,,DK!!$qrr(+++9!!$'''$$r   c                 d    d                     d | j        d | j                 D                       S )N c              3   4   K   | ]}t          |          V  d S r   rG   .0r(   s     r   	<genexpr>z*CCITTG4Parser._get_bits.<locals>.<genexpr>  s(      EE!s1vvEEEEEEr   )join_curline_curposr   s    r   	_get_bitszCCITTG4Parser._get_bits  s0    wwEEt}^t|^'DEEEEEEr   r)   c                    |dk     r'dd                     d | j        D                       z   S t          | j                  |k    r'd                     d | j        D                       dz   S d                     d | j        d |         D                       dz   t          | j        |                   z   dz   d                     d	 | j        |d
z   d          D                       z   S )Nr   z[]r  c              3   4   K   | ]}t          |          V  d S r   r  r  s     r   r  z-CCITTG4Parser._get_refline.<locals>.<genexpr>  s(      !@!@Q#a&&!@!@!@!@!@!@r   c              3   4   K   | ]}t          |          V  d S r   r  r  s     r   r  z-CCITTG4Parser._get_refline.<locals>.<genexpr>  s(      99a3q66999999r   c              3   4   K   | ]}t          |          V  d S r   r  r  s     r   r  z-CCITTG4Parser._get_refline.<locals>.<genexpr>  s(      ::1A::::::r   []c              3   4   K   | ]}t          |          V  d S r   r  r  s     r   r  z-CCITTG4Parser._get_refline.<locals>.<genexpr>  s(      AAQ#a&&AAAAAAr   r#   )r  _refliner%   rG   )r   r)   s     r   _get_reflinezCCITTG4Parser._get_refline  s    q55"''!@!@$-!@!@!@@@@@1$$77994=99999D@@ ::bqb(9:::::dmA&''(  ''AA$-A*@AAAAA	Br   c                     d| _         t          j        ddg| j        z            | _        |                                  | j        | _        | j        | _        d S )Nr   r(   r#   )	_yarrayr~  r  _reset_liner  r   r  r   r   s    r   r  zCCITTG4Parser.reset  sO    C!tz)9::'ir   yc                 `    t          |d                    d |D                                  d S )Nr  c              3   4   K   | ]}t          |          V  d S r   r  r  s     r   r  z,CCITTG4Parser.output_line.<locals>.<genexpr>  s(      ..AQ......r   )printr  )r   r  r    s      r   output_linezCCITTG4Parser.output_line  s2    a.......///r   c                     | j         | _        t          j        ddg| j        z            | _         d| _        d| _        d S )Nr(   r#   rM   )r  r  r  r~  r  r}  r   s    r   r  zCCITTG4Parser._reset_line  s:    C!tz)9::r   c                     | j         | j        k    rR|                     | j        | j                   | xj        dz  c_        |                                  | j        r| j        d S Nr#   )r~  r  r  r  r  r  r  r|  r   s    r   r  zCCITTG4Parser._flush_line  sc    :%%TWdm444GGqLGG~ $m#r   dxc                 T   | j         dz   }	 |dk    r#| j        dk    r| j        |         | j        k    rnPnI|t          | j                  k    rn6| j        |dz
           | j        k    r| j        |         | j        k    rn|dz  }x||z  }t	          d| j                   }t	          dt          | j        |                    }||k     r#t          ||          D ]}| j        | j        |<   n(||k     r"t          ||          D ]}| j        | j        |<   || _         d| j        z
  | _        d S r<   )	r  r}  r  r%   maxminr~  r$   r  )r   r  r[   x0r:   s        r   r  zCCITTG4Parser._do_vertical  sL   \A	Qww;!##b(9T[(H(Hs4=))))b1f%44M"%44!GB	 	bDL!!C
B''((772r]] / /#';a  /"WW2r]] / /#';a  $+or   c                 Z   | j         dz   }	 |dk    r#| j        dk    r| j        |         | j        k    rnPnI|t          | j                  k    rn6| j        |dz
           | j        k    r| j        |         | j        k    rn|dz  }x	 |dk    r#| j        dk    r| j        |         | j        k    rnPnI|t          | j                  k    rn6| j        |dz
           | j        k    r| j        |         | j        k    rn|dz  }xt	          | j         |          D ]}| j        | j        |<   || _         d S r<   )r  r}  r  r%   r$   r  )r   r[   r:   s      r   r  zCCITTG4Parser._do_pass  sV   \A	Qww;!##b(9T[(H(Hs4=))))b1f%44M"%44!GB		Qww;!##b(9T[(H(Hs4=))))b1f%44M"%44!GB	 t|R(( 	+ 	+A#{DM!r   n1n2c                 L   | j         dk     rd| _         | j         }t          |          D ]0}t          | j                  |k    r n| j        | j        |<   |dz  }1t          |          D ]3}t          | j                  |k    r nd| j        z
  | j        |<   |dz  }4|| _         d S )Nr   r#   )r  r$   r%   r  r}  )r   r  r  r:   _s        r   r  zCCITTG4Parser._do_horizontal  s    <!DLLr 	 	A4=!!Q&&#{DM!FAAr 	 	A4=!!Q&& 4;DM!FAAr   c                     |D ]B}t          |          | j        | j        <   | xj        dz  c_        |                                  Cd S r  )rF   r  r  r  )r   r    cs      r   r  zCCITTG4Parser._do_uncompressed$  sO     	 	A*-a&&DM$,'LLALLr   Fr?   )'r@   rA   rB   r  r   r*   r  r  r  	Exceptionru  ry  r|  rF   rD   boolr   rH   r9   rI   rC   r  r   r  r  r	   rG   r  r  r  r  r
   r  r  r  r  r  r  r  r   r   r   rK   rK   T   sl        $<DMM$3MM$E"""MM$E"""MM$U###MM$V$$$MM$H%%%MM$H%%%MM$I&&&MM$I&&&MM$\***MM$l+++MM$l+++MM$l+++MM$l+++MM$l+++MM$l+++MM$l+++MM$78884LEMM%J'''MM%H%%%MM%F###MM%F###MM%F###MM%F###MM%F###MM%F###MM%G$$$MM%G$$$MM%W%%%MM%W%%%MM%X&&&MM%X&&&MM%X&&&MM%X&&&MM%X&&&MM%X&&&MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Y'''MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%Z(((MM%W%%%MM%g&&&MM%h'''MM%i(((MM%j)))MM%j)))MM%j)))MM%j)))MM%j)))MM%j)))MM%k***MM%k***MM%k***MM%k***MM%k***MM%{+++MM%{+++MM%{+++MM%{+++MM%{+++MM%{+++MM%{+++MM%{+++MM%{+++MM%{+++MM%x(((MM%{+++MM%}---MM%}---MM%}---MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...4LEMM%L)))MM%E"""MM%D!!!MM%D!!!MM%E"""MM%F###MM%F###MM%G$$$MM%H%%%MM%H%%%MM%Y'''MM%Y'''MM%Y'''MM%Z(((MM%Z(((MM%[)))MM%\***MM%\***MM%\***MM%]+++MM%]+++MM%]+++MM%]+++MM%]+++MM%]+++MM%]+++MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%^,,,MM%\***MM%n---MM%n---MM%n---MM%n---MM%n---MM%n---MM%o...MM%o...MM%o...MM%o...MM%o...MM%o...MM%o...MM%o...MM%///MM%///MM%///MM%///MM%///MM%///MM%///MM%///MM%///MM%///MM%///MM%///MM%}---MM%}---MM%}---MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...MM%~...$<LMM,S)))MM,d+++MM,u---MM,///MM,111MM,222MM,z222MM,z222MM,444MM,444MM,666MM,666MM,-888MM,-888    y       i       9    KKK c d t    
e 
 
 
 
 
) )> ) ) ) )0s ~    s ~    
% 
%. 
% 
% 
% 
%F3 F F F Fc c       S  $          s t    6   > # $    "S T      r   rK   c            	       V    e Zd Z	 ddedededdfdZdefdZd	ed
ee         ddfdZ	dS )CCITTFaxDecoderFr~  r  reversedr   Nc                 \    t                               | ||           || _        d| _        d S )Nr  r   )rK   r   r  _buf)r   r~  r  r  s       r   r   zCCITTFaxDecoder.__init__-  s2     	tUi@@@ 	r   c                     | j         S r   )r  r   s    r   closezCCITTFaxDecoder.close5  s
    yr   r  r    c                 .   t          j         ddgt          |          dz   dz  z            }| j        rd |D             }t          |          D ]#\  }}|r||dz  xx         d|dz           z  cc<   $| xj        |                                z  c_        d S )NBr   rt   r2   c                     g | ]}d |z
  S )r#   r   r  s     r   
<listcomp>z/CCITTFaxDecoder.output_line.<locals>.<listcomp>;  s    (((aAE(((r   r-   )r  r%   r  	enumerater  tobytes)r   r  r    arrr)   r(   s         r   r  zCCITTFaxDecoder.output_line8  s    k#ss4yy1}&:;<<= 	)((4(((Doo 	D 	DFQ DAF<QUCC		S[[]]"		r   )FF)
r@   rA   rB   rF   r  r   rH   r  r
   r  r   r   r   r  r  ,  s        DI %)=A	   u    S  $      r   r  paramsc                    |                     d          }|dk    rt          t          |                     d                    }t          t          |                     d                    }t          t          |                     d                    }t	          |||          }nt          |          |                    |            |                                S )NKrM   ColumnsEncodedByteAlignBlackIs1)r  r  )getr   rF   r  r  
ValueErrorr9   r  )r   r  r  colsr  r  parsers          r   ccittfaxdecoder  C  s    

3ABwwCI..//vzz*<==>>	fjj4455 XNNNmm
T<<>>r   argvc                    | dd          sdd l }|                                 d S  G d dt                    }| dd          D ]}t          |d          }|                    d          \  }}}}}} |t          |                    }	|	                    |                                           |	                                 |                                 d S )Nr#   r   c                   L    e Zd ZddededdfdZdedee         ddfd	Zdd
ZdS )main.<locals>.ParserFr~  r  r   Nc                     dd l }t                              | ||           |                    | j        df          | _        d S )Nr   r  i  )pygamerK   r   Surfacer~  img)r   r~  r  r  s       r   r   zmain.<locals>.Parser.__init__Y  sE    MMM""4)"DDD~~tz4&899DHFr   r  r    c                     t          |          D ]B\  }}|r| j                            ||fd           %| j                            ||fd           Cd S )N)   r  r  )r   r   r   )r  r  set_at)r   r  r    r:   r(   s        r   r  z main.<locals>.Parser.output_line`  sb    #D// 7 7A 7HOOQFO<<<<HOOQFI6666Fr   c                 N    dd l }|j                            | j        d           d S )Nr   zout.bmp)r  imagesaver  )r   r  s     r   r  zmain.<locals>.Parser.closeh  s*    MMMLdh	222Fr   r  r?   )	r@   rA   rB   rF   r  r   r
   r  r  r   r   r   Parserr  X  s        	 	# 	$ 	4 	 	 	 		 	HSM 	d 	 	 	 		 	 	 	 	 	r   r  rb.)	unittestmainrK   opensplitrF   r9   readr  )
r  r  r  pathfpr  kwrO   r  s
             r   r  r  Q  s    8        , QRR  $!ZZ__Aq!QA###





Fr   )r  typingr   r   r   r   r   r   r	   r
   r   r   rH   rF   r   rC   r   rK   r  rG   rI   r  r  r   r   r   <module>r     s                          E hsm    
 !%
** ** ** ** ** ** ** **ZU U U U UI U U Up    m   .
 
S&[(9 
e 
 
 
 
$tCy $T $ $ $ $ $ $r   