
    hQ                        S SK r S SKrS SKrS SKrS SKJr  S SKJrJr  S SK	J
r
Jr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 r$\RJ                  RM                  S5      S 5       r'\RJ                  RM                  S5      S 5       r(\RJ                  RM                  S5      S 5       r)\RJ                  RM                  S5      S 5       r*\RJ                  RW                  S/ SQ5      \RJ                  RW                  S\\/5      \RJ                  RM                  S5      S 5       5       5       r,\RJ                  RW                  S/ SQ5      \RJ                  RM                  S5      S 5       5       r-\RJ                  RM                  S5      S  5       r.\RJ                  RM                  S5      S! 5       r/\R`                  " S"5       " S# S$5      5       r1\RJ                  RM                  S%5      S& 5       r2\RJ                  RM                  S'5      S( 5       r3\RJ                  RW                  S/ S)Q/5      S* 5       r4S+ r5\RJ                  RW                  SS,S-/5      S. 5       r6S/ r7S0 r8S1 r9S2 r:S3 r;S4 r<\RJ                  RW                  S5/ S6Q/ S7Q\Rz                  " / S8Q/ S9Q/ S:Q/ S;Q/5      4/ S<Q/ S=Q\Rz                  " / S>Q/ S?Q/ S@Q/ SAQ/ SBQ/ SCQ/ SDQ/ SEQ/ SFQ/	5      4/5      SG 5       r>SH r?SI r@SJ rA\RJ                  R                  SK5      SL 5       rCSM rDSN rESO rFSP rGSQ rHSR rISS rJST rKSU rLSV rMSW rNSX rOSY rPSZ rQS[ rRg)\    N)assert_array_equal)NumpyOpsget_current_ops)	DEPENT_IOBENT_TYPEHEADIS_ALPHAMORPHPOS
SENT_STARTTAG)English)MultiLanguage)Language)Lexeme)DocSpan	SpanGroupToken)Vocab   )clean_underscorec                 h   / SQn/ SQn[        X/ SQS9nU Vs/ s H  oDR                  PM     sn/ SQ:X  d   e[        XUS/S-  S9nU Vs/ s H  oDR                  PM     sn/ SQ:X  d   e[        XS/S-  US/S-  S	9nU Vs/ s H  oDR                  PM     sn/ SQ:X  d   eg s  snf s  snf s  snf )
N)abcd)r   r      r   )TFTF)wordssent_startsdep   r    headsdepsT)r    r!   r%   r&   )r   is_sent_start)en_vocabr    r%   docts        V/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/doc/test_doc_api.pytest_doc_api_initr,      s     EE
h1K
LC%()SOOS)-GGGG h5w{
CC%()SOOS)-GGGG
D6A:U%STC &))SOOS)-GGGG * *
 *s   B%B*B/i  c                  b   / SQn [        [        5       U S9n[        USSUR                  R                  S   S9/Ul        UR                  5        nUR                  USS 5        S	S	S	5        UR
                   Vs/ s H  o3R                  PM     sn(       d   eg	! , (       d  f       N<= fs  snf )
z9Test that entity labels still match after merging tokens.)

worda.r.   wordb-	Biosphere2r2   z 
r          PRODUCTlabel      N)	r   r   r   vocabstringsents
retokenizemergetext)r    r)   retokenizerents       r+   test_issue1547rE   /   s     SE
egU
#CS!Qcii&7&7	&BCDCH		[#a(# 
 #)HH))) 
	)s   B;B,
B)i  c                      [        [        5       / SQS9n U S   S:  a   eU S   c   eU S   S:  d   eU SS S:  a   eU SS c   eU SS S:  d   eU R                  S   c   eU R                  S   S:  a   eg)z4Test comparison against None doesn't cause segfault.r   r   r   r5   r   Nr   r   )r   r   r=   )r)   s    r+   test_issue1757rH   :   s     eg_
-C1v}1v~~q6T>>2Aw~2Awr7d??yy~%%%yy~$$$$    i\	  c           	      Z   / SQn/ SQnS/[        U5      -  n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/[        R                  S
9n[	        XX#S9nUS S  nUR                  5       U:H  R                  5       (       d   eUR                  5       U:H  R                  5       (       d   eg )N)Shecreatedr   testforspacy)r   r      r   rP   r#   r"   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   rP   rP   rP   )r   r   rP   rP   rP   rP   )r   r   rP   rP   r#   r#   )r   r   rP   rP   r#   r;   dtyper$   )lennumpyarrayint32r   get_lca_matrixall)r(   r    r%   r&   matrixr)   spans          r+   test_issue2396r[   H   s    ;EE7SZD[[	
 kk
F h5
<Cq6D F*//1111!V+002222rI   i,  c                 \    SS/nSS/nSS/n[        U UUUS9  USS/:X  d   eUSS/:X  d   eg )NAsentencezB-TYPE1 TF)r=   r    r?   r!   r   )r(   r    r?   r!   s       r+   test_init_args_unmodifiedra   ^   sX    *Er?D-K	 Ir?"""4-'''rI   rB   )z-0.23z+123,456u   ±1lang_clsi
  c                 p    U" 5       nU" U 5      n[        U5      S:X  d   eUS   R                  (       d   eg)z2Check that like_num handles + and - before number.r   r   N)rS   like_num)rB   rb   nlpr)   s       r+   test_issue2782rf   m   s4    
 *C
d)Cs8q==q6???rI   r^   )zThe story was to the effect that a young American student recently called on Professor Christlieb with a letter of introduction.zThe next month Barry Siddall joined Stoke City on a free transfer, after Chris Pearce had established himself as the Vale's #1.zThe next month Barry Siddall joined Stoke City on a free transfer, after Chris Pearce had established himself as the Vale's number onezIndeed, making the one who remains do all the work has installed him into a position of such insolent tyranny, it will take a month at least to reduce him to his proper proportions.zLIt was a missed assignment, but it shouldn't have resulted in a turnover ...i  c                     [        5       nU" U 5      nSnU H  nX4R                  -  nM     X2R                  [        5      R	                  SS5      :X  d   eg)z8Test that the Doc's count_by function works consistentlyr   r   N)r   is_alphacount_byr
   get)r^   re   r)   counttokens        r+   test_issue3869rm   x   sQ     )C
h-CE LL*..q!4444rI   iz  c                 P   / SQn/ SQn/ SQn[        XX#S9nUSS nUR                  5       nUR                  5       nU(       d   eUS   R                  R                  S:X  d   eUS   R
                  S	:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S
:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S	:X  d   e[        [        UR                  5      5      S:X  d   eUSS nUR                  5       n	U	R                  5       n
U
(       d   eU	S   R                  R                  S:X  d   eU	S   R
                  S:X  d   eU	S   R                  R                  S:X  d   eU	S   R
                  S:X  d   eU	S   R                  R                  S:X  d   eU	S   R
                  S	:X  d   e[        [        U	R                  5      5      S:X  d   eg)Ensure that as_doc does not result in out-of-bound access of tokens.
This is achieved by setting the head to itself if it would lie out of the span otherwise.)Hejestsatscars,thatneverfeltr   woundr0   )r   r<   r   r   r<   r<   r<   r<   	   r<   r<   )nsubjccomppreppobjpunctrz   negROOTdetdobjr~   r$   r   r;   r   rq   r"   r|   r   rr   r}   rP   r6   ry   rw   r   r   N)	r   as_docto_jsonheadrB   dep_rS   listsents)r(   r    r%   r&   r)   span2doc2	doc2_jsonspan3doc3	doc3_jsons              r+   test_issue3962r      s   
 \E-EfD
h5
<C!HE<<>DI97<<'''7<<5   7<<'''7<<6!!!7<<$$$7<<6!!!7<<'''7<<5   tDJJ A%%%!HE<<>DI97<<&&&7<<5   7<<&&&7<<6!!!7<<&&&7<<5   tDJJ A%%%rI   c                    / SQn/ SQn/ SQn[        XX#S9nUSS nUR                  5       nUR                  5       nU(       d   eUS   R                  R                  S:X  d   eUS   R
                  S	:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S
:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S:X  d   eUS   R                  R                  S:X  d   eUS   R
                  S:X  d   e[        UR                  5      n[        U5      S:X  d   eUS   R                  S:X  d   eUS   R                  S:X  d   eg)ro   )rp   rq   rr   rs   r0   Theyrv   rw   r   rx   r0   )r   r   r   r   r   r<   r<   r<   ry   r<   r<   )rz   r   r|   r}   r~   rz   r   r   r   r   r~   r$   r   r<   r   rq   r   r|   r   rr   r}   rP   r~   r#   r   r"   zjests at scars .z
They neverN)	r   r   r   r   rB   r   r   r   rS   )	r(   r    r%   r&   two_sent_docr   r   r   r   s	            r+   test_issue3962_longr      s   
 \E-EeDxEEL1E<<>DI97<<'''7<<6!!!7<<'''7<<6!!!7<<$$$7<<6!!!7<<'''7<<7"""7<<&&&7<<5   7<<&&&7<<5   Eu:??8==....8==L(((rI   my_pipec                   4    \ rS rSrSS jrS r\S 5       rSrg)
CustomPipe   c                 x    X l         [        R                  " SU R                  S9  [        R                  " SS S9  g )Nmy_ext)getterdefault)namer   set_extension_get_my_extr   )selfre   r   s      r+   __init__CustomPipe.__init__   s-    	8D,<,<=(D1rI   c                    / nUR                    HA  nU R                  U5      nUR                  R                  SU5        UR	                  U5        MC     UR                  R                  SSR                  U5      5        U$ )Nr   r.   )r   r   _setappendjoin)r   r)   gathered_extsentsent_exts        r+   __call__CustomPipe.__call__   sg    IID''-HFFJJx*) 
 			(DIIl34
rI   c                 ,    [        U R                  5      $ N)strendrZ   s    r+   r   CustomPipe._get_my_ext   s    488}rI   )r   N)r   )	__name__
__module____qualname____firstlineno__r   r   staticmethodr   __static_attributes__ rI   r+   r   r      s     2
  rI   r   i'  c                  N   [        5       n U R                  S5        U R                  SSS9  / SQn[        [        5       [        5      (       aY  [        U R                  USS95      nUS   R                  S:X  d   eUS	   R                  S
:X  d   eUS   R                  S:X  d   egg)zMEnsure that this runs correctly and doesn't hang or crash on Windows /
macOS.sentencizerr   )after)I like bananas.Do you like them?No, I prefer wasabi.r   )	n_processr   r   r   r   r   N)r   add_pipe
isinstancer   r   r   piperB   )re   rB   docss      r+   test_issue4903r      s     )CLLLL-L0KD/#X..CHHTQH/0Aw||0000Aw||2222Aw||5555	 /rI   i  c           	         / SQn/ SQn/ SQn/ SQn/ SQnU R                   nU H  nUR                  U5        M     U Vs/ s H  oR                  U5      PM     n	nU V
s/ s H  oR                  U
5      PM     nn
U Vs/ s H  oR                  U5      PM     nn[        [        [        /n[
        R                  " [        [        XU5      5      SS9n[        XUS9nUR                  X5        U Vs/ s H&  nUR                  UR                  UR                  4PM(     nn[        XX$US	9nU Vs/ s H&  nUR                  UR                  UR                  4PM(     nnUU:X  d   eg s  snf s  sn
f s  snf s  snf s  snf )
N)Thisisr   r^   )DETVERBr   NOUN) r   r   r_   )r"   adjnnatm)DTVBZr   NNuint64rQ   )r    spaces)r    posr&   tags)r>   addr   r   r   rT   rU   r   zipr   
from_arrayrB   pos_tag_)r(   r    pos_sr   deps_stags_sr>   wr   r&   pr   r*   r   attrsrU   r)   rl   v1r   v2s                        r+   test_issue5048r      sC   +E*E F(F&FGA $*+FqKKNFD+#(
)5a;;q>5C
)$*+FqKKNFD+#sOEKKSD12(CE
hF
3CNN5 <?	@C55::uzz5::
.CB	@x%6JD<@	AD55::uzz5::
.DB	A8O8 ,
)+
 
A	As   E)E.?E33-E81-E=)onetwothreec                     [        XS9nUS   nUS   nUS   nUu  pTnXTs=:  a  U:  d   e   eXT:  a   eXE:  d   eXC::  d   eX5:  d   eg )Nr5   r`   )r(   rB   r)   token3token2token1s         r+   'test_doc_api_compare_by_string_positionr     su    
h
#CWFWFWF FF#V#####??rI   c                    SnU " U5      nUS   R                   S:X  d   eUS   R                   S:X  d   e[        R                  " [        5         U[	        U5           S S S 5        S nUSS nU" U5      (       a   eUSS nU" U5      S	:X  d   eUSSS2   nU" U5      S	:X  d   e[        R                  " [
        5         USSS
2     S S S 5        [        R                  " [
        5         USSS2     S S S 5        USS nU" U5      S:X  d   eUSS nU" U5      S:X  d   eUSS nU" U5      S:X  d   eUSS nUR                  UR                  s=:X  a  S:X  a  O   eU" U5      (       a   eUSS nUR                  UR                  s=:X  a  S:X  a  O   eU" U5      (       a   eUS S  nU" U5      S:X  d   eUSS  nU" U5      S:X  d   eUS S nU" U5      S:X  d   eUS S nU" U5      S:X  d   eUSS  nU" U5      S:X  d   eUSS nU" U5      S:X  d   eUSS nU" U5      S:X  d   eUSS nUR                  UR                  s=:X  a  S:X  a  O   eU" U5      (       a   eUSS nUR                  UR                  s=:X  a  S:X  a  O   eU" U5      (       a   eUSS nUS   R                  S:X  d   eUS S  nU" U5      S	:X  d   eUS S
 nU" U5      S:X  d   eUSS  nU" U5      S:X  d   eUS S nU" U5      S:X  d   eUSS  nU" U5      S:X  d   eUSS
 nU" U5      S:X  d   eUSS nU" U5      S:X  d   eUSS nU" U5      S	:X  d   eUSS nUR                  UR                  s=:X  a  S:X  a  O   eU" U5      (       a   eg ! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       GN= f)NGive it back! He pleaded.r   Giver   r0   c                 2    SR                  S U  5       5      $ )N/c              3   8   #    U  H  oR                   v   M     g 7fr   )rB   ).0rl   s     r+   	<genexpr>7test_doc_api_getitem.<locals>.to_str.<locals>.<genexpr>,  s     5u

   )r   r   s    r+   to_str$test_doc_api_getitem.<locals>.to_str+  s    xx5555rI   r   r#   z	it/back/!r   r6   z
He/pleadedzback/!r;   zGive/it/back/!/He/pleaded/.zHe/pleaded/.zGive/it/back/!2   ii(   r<   itzit/backr   back)	rB   pytestraises
IndexErrorrS   
ValueErrorstartr   orth_)en_tokenizerrB   tokensr   rZ   subspans         r+   test_doc_api_getitemr
  #  sB   &D$F!9>>V###":??c!!!	z	"s6{ 
#6 !A;Dd||!A;D$<;&&&!Aa%=D$<;&&&	z	"q1u 
#	z	"q2v 
# "Q<D$<<'''!B<D$<<'''"R=D$<8###!A;D::&Q&;;vd||;;!B<D::&Q&;;vd||;;!9D$<8888!":D$<>)))"1:D$<++++#2;D$<++++"#;D$<>)))!B<D$<>)))#a=D$<++++#c?D::&Q&;;vd||;;"R=D::&Q&;;vd||;;!A;D7==D   1gG'?k)))2AhG'?i'''12hG'?h&&&3BiG'?i'''23iG'?h&&&1QiG'?f$$$2bkG'?f$$$3rlG'?k)))2clG==GKK,1,DDVG__DD_G 
#	" 
#	"	"	"s$   N
 	N+	N.

N
N+.
N=r   z Give it back! He pleaded. c                 6   U " U5      nSUS   l         SUS   l        UR                  R                  S   SS4/Ul        SUS   l        SUS   l        [        UR                  5      R                  UR                  5       5      nUR                  UR                  :X  d   eU Vs/ s H  oDR                  PM     snU Vs/ s H  oDR                  PM     sn:X  d   eU Vs/ s H  oDR                  PM     snU Vs/ s H  oDR                  PM     sn:X  d   eUS   R                   S:X  d   eUS   R                  S:X  d   eUS   R
                  S:X  d   eUS   R                  S:X  d   e[        UR                  5      R                  UR                  S/S	9S/S	9nUR                  UR                  :X  d   eU Vs/ s H  oDR                  PM     snU Vs/ s H  oDR                  PM     sn:X  d   eU Vs/ s H  oDR                  PM     snU Vs/ s H  oDR                  PM     sn:X  d   e[        UR                  5      R                  UR                  S
/S	9S
/S	9nUR                  UR                  :X  d   eU Vs/ s H  oDR                  PM     snU Vs/ s H  oDR                  PM     sn:X  d   eU Vs/ s H  oDR                  PM     snU Vs/ s H  oDR                  PM     sn:X  d   eS nUR                  5       n[        R                  " [        5         XRR                  S'   UR                  5       nS S S 5        g s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf ! , (       d  f       g = f)Nlemmar   normr8   r   	ent_kb_ident_idtensorexclude	sentimentc                     g)Nzhello!r   )d1d2s     r+   
inner_func*test_doc_api_serialize.<locals>.inner_func  s    rI   
similarity)lemma_norm_r=   r>   r?   
ent_kb_id_ent_id_r   
from_bytesto_bytesrB   orthr  warnsUserWarning
user_hooks)r  rB   r  
new_tokensr*   r  r   s          r+   test_doc_api_serializer%  n  s    $FF1IF1IOLL((3Q:;FK&F1I F1IV\\"--foo.?@J;;*//)))"#FqFFF#
'C
1
'CCCC"#FqFFF#
'C
1
'CCCCa=7***a=&(((a=##{222a=  H,,,V\\"--
+hZ . J ;;*//)))"#FqFFF#
'C
1
'CCCC"#FqFFF#
'C
1
'CCCCV\\"--. . J ;;*//)))"#FqFFF#
'C
1
'CCCC"#FqFFF#
'C
1
'CCCC 	A	k	"*4,'OO 
#	"3 $'C#'C $'C#'C $'C#'C 
#	"sT   %M M!M<M?M"M';M,M1M6 M;N N&N


Nc                    SnU " U5      n[        UR                  5      S:X  d   eUR                  R                  S   SS4/Ul        [        [	        UR                  5      5      S:X  d   eU Vs/ s H  o3R
                  PM     sn/ SQ:X  d   eUR                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg s  snf )Nz#I use goggle chrone to surf the webr   r8   r   r#   r   )r   r   rP   r   r   r   r   r   )	rS   r?   r=   r>   r   ent_ioblabel_r  r   )r  rB   r  r*   s       r+   test_doc_api_set_entsr)    s    0D$Fv{{q   LL((3Q:;FKtFKK !Q&&&%&v!IIv&*BBBB;;q>  I---;;q>1$$$;;q>""" 's   0C.c                 `    U " S5      n[        UR                  5      n[        U5      S:X  d   eg )Nr_   r   )r   r   rS   )r  r)   r   s      r+   test_doc_api_sents_empty_stringr+    s)    
r
COEu:??rI   c                    Sn/ SQnU " U5      n[        UR                  U Vs/ s H  oDR                  PM     snUS9n/ nUR                   Hp  n[	        U5      S:  a<  US   R
                  S;  a)  USS  n[	        U5      S:  a  US   R
                  S;  a  M)  [	        U5      S:  d  M_  UR                  U5        Mr     UR                  5        nU HJ  nUR                  R                  UR                  UR                  R                  S.n	UR                  XyS9  ML     S S S 5        g s  snf ! , (       d  f       g = f)	Nu   67% of black households are single parent 

72% of all black babies born out of wedlock 

50% of all black kids don’t finish high school)nummodrz   r|   amodr}   r   r.  attrr_   r-  apposr|   r   r.  r}   aclr|   r|   r}   r_   r-  rz   r|   r   r.  r}   auxr   r{   r.  r   )r    r&   r   r   )advmodr.  compound)tagr  ent_typer   )r   r=   rB   noun_chunksrS   r   r   r@   rootr   	ent_type_rA   )
r  rB   r&   r  r*   r)   npsnprC   r   s
             r+   test_doc_api_runtime_errorr=    s    _DiD $F
fll6":6a666":
FC
Coo"gkbejj0NNABB "gkbejj0NNr7Q;JJrN	 
 
	[Bww||GG--E
 b.  
	 #; 
	s   D*
AD//
D=c                    / SQn/ SQnS/[        U5      -  n[        XX#S9nUS   R                  S:X  d   eUS   R                   Vs/ s H  oUR                  PM     nnU/ SQ:X  d   eUS   R                  R                  S:X  d   eg	s  snf )
zHTest for bug occurring from Unshift action, causing incorrect right edge)Ihaveproposedtomyselfrt   rN   thesakeofsuchasliveunderrD  
governmentrF  rD  Romansrt   rB  	translatethosebooksintorD  Greektonguer0   )r   r   r   r   rP   r      r7   r6   r7      r7   rT           rV        rU  rS  r      rS  rS     r[     r   r"   r$   r6   rN   )rN   rD  rE  rF  rG  rH  rI  rJ  rD  rK  rF  rD  rL  rt   rt   N)rS   r   rB   subtree
right_edge)r(   r    r%   r&   r)   r   r]  s          r+   test_doc_api_right_edger_    s    E uE7SZD
h5
<Cq6;;%"1v~~.~!vv~G.  C  C  C  Cq6!!S(((	 /s   B	c                      [        5       n U R                  SS9  U R                  S[        R                  " SS/SS9S9  [        U S/S	9nUR                  (       d   eg )
Nr   )widthkitten        g       @frQ   )vectorr5   )r   reset_vectors
set_vectorrT   asarrayr   
has_vector)r=   r)   s     r+   test_doc_api_has_vectorrj    sV    GE	a 	XemmS#Jc&JK
eH:
&C>>>rI   c                     [        [        5       S/S9n U R                  U S   5      S:X  d   eU R                  U R                  S   5      S:X  d   e[        U R                  / SQS9n[        R
                  " [        5         U R                  US S 5      S:X  d   eU R                  U5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   r5   r   g      ?rG   r   rc  )r   r   r  r=   r  r!  r"  )r)   r   s     r+   test_doc_api_similarity_matchrl    s    
egcU
#C>>#a&!S(((>>#))C.)S000syy0D	k	"~~d2Ah'3...~~d#s*** 
#	"	"s   2B>>
Czwords,heads,lca_matrix)rD  lazydogslept)r   r   rP   rP   )r   r   r   rP   )r   r   r   rP   )r   r   r   rP   )rP   rP   rP   rP   )	Therm  rn  ro  r0   rp  quickfoxjumped)	r   r   rP   rP   rP   r<   r<   r7   r7   )	r   r   r   rP   rP   r   r   r   r   )	r   r   r   rP   rP   r   r   r   r   )	r   r   r   rP   rP   r   r   r   r   )	rP   rP   rP   rP   rP   r   r   r   r   )	rP   rP   rP   rP   r#   r   r   r   r   )	r   r   r   r   r   r;   r<   r<   r7   )	r   r   r   r   r   r<   r6   r<   r7   )	r   r   r   r   r   r<   r<   r<   r7   )	r   r   r   r   r   r7   r7   r7   r7   c           	          [        XUS/[        U5      -  S9nUR                  5       nXS:H  R                  5       (       d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )Nr"   )r%   r&   )r   r   r   )r   r   r   )r   r   )r   rS   rW   rX   )r(   r    r%   
lca_matrixr)   lcas         r+   test_lowest_common_ancestorrw    ss    8 hU%3u:1E
FC



C""$$$$t9>>t9>>t9>>rI   c                    / SQn[        XS9nUR                  S5      (       a   e[        USSSS9/Ul        UR                  S5      (       d   e[        R
                  " SS/SS/SS/S	S/S	S
//SS9n[        XS9R                  [        [        /U5      nUR                  S5      (       d   e[        U 5      R                  UR                  5       5      nUR                  S5      (       d   eg )N)r?  rI  inNewYorkr5   r   rP   r;   GPEr9   r   i  r   r   rQ   )r   has_annotationr   r?   rT   rU   r   r   r   r  r  )r(   r    r)   arrnew_docs        r+   test_doc_is_neredr    s    .E
h
$C!!),,,,S!Qe,-CHi((((
++1v1v1vQx#qB(
SC
h
$
/
/70CS
ICi(((((m&&s||~6G!!),,,,rI   c                    / SQn/ SQn/ SQn[        XX#S9n[        [        /nUR                  U5      n[        XS9nUR	                  XV5        UR                  5       nUR                  U5      n[        R                  " 5          [        R                  " S5        UR	                  XV5        S S S 5        [        /nUR                  U5      n[        XS9nUR	                  XV5        U Vs/ s H  oR                  PM     snU Vs/ s H  oR                  PM     sn:X  d   eUR                  S5      (       a   e[        [        /nUR                  U5      n[        XS9nUR	                  XV5        U Vs/ s H  oR                  PM     snU Vs/ s H  oR                  PM     sn:X  d   eUR                  S5      (       d   eg ! , (       d  f       GN!= fs  snf s  snf s  snf s  snf )N)
r?  rI  ry  rz  r{  r0   r?  likecatsr0   )
r   r   r   r   r   r   r6   r6   r6   r6   )
r   r"   r"   r"   r"   r"   r   r"   r"   r"   r$   r5   errorr   )r   r   r	   to_arrayr   _get_array_attrswarningscatch_warningssimplefilterr'   r}  r   )	r(   r    r%   r&   r)   r   r~  r  r*   s	            r+   test_doc_from_array_sent_startsr    s   ME*ESD
h5
<CE
,,u
C((Gu"  "E
,,u
C		 	 	"g&5& 
# LE
,,u
C((Gu"%()SOOS)w-Ow!oow-OOOO%%e,,,,3KE
,,u
C((Gu"%()SOOS)w-Ow!oow-OOOO!!%((((! 
#	" *-O *-Os$   (G*GG5G"G'
Gc                    / SQn/ SQn[        XUS9n[        /nUR                  U5      n[        XS9nUR                  XE5        U Vs/ s H  n[	        UR
                  5      PM     snU:X  d   eU Vs/ s H  n[	        UR
                  5      PM     snU Vs/ s H  n[	        UR
                  5      PM     sn:X  d   eg s  snf s  snf s  snf )N)r?  rI  ry  rz  r{  r0   )zFeat1=AzFeat1=BzFeat1=CzFeat1=A|Feat2=DzFeat2=EzFeat3=F)r    morphsr5   )r   r   r  r   r   morph)r(   r    r  r)   r   r~  r  r*   s           r+   test_doc_from_array_morphr  @  s    3EWF
hF
3CGE
,,u
C((Gu"")*'QCL'*f444"%&#QCL#&*IA3qww<*IIII +&*Is   	C5CCr   c                 L   / SQnU Vs/ s H  n[        U5      (       d  M  UPM     nnSnU Vs/ s H
  o`" U5      PM     nnUS   SS /US   R                  S'   US   SS /US   R                  S'   US   SS /US   R                  S'   [        US   SS R                  US   SS R                  US   SS R                  /5      nU" U5      n	[        R
                  " SS	S
9  SUS   S   R                  l        SUS   S   R                  l        [        R                  " / 5      b   eU	[        R                  " U	/5      Ld   e[        U	5      [        [        R                  " U	/5      5      :X  d   e[        R                  " [        5         [        R                  " Xy/-   5        S S S 5        [        R                  " U5      n
[        U5      [        [        U
R                  5      5      :X  d   e[        U
R                  5      [        US   5      [        US   5      -   :  d   eU
R                  SR!                  U Vs/ s H  o3R#                  5       PM     sn5      :X  d   eU
[        US   5      S-
     nUR                  S:X  a  [%        UR&                  5      (       d   eU VVs/ s H  o  H  o3PM     M     nnn[        U
5      [        U5      :X  d   e[        US   5      S-   US   R)                  S5      -   nU
S   R                  R                  SL d   eU
S   R*                  U:X  d   eU
S   R                  R                  SL d   e[-        U
SS  Vs/ s H  o3R                  R                  PM     sn5      (       a   eSU
R                  ;   d   eU[        U
R                  S    Vs/ s H  oR                  PM     sn5      :X  d   e[%        U
S   R&                  5      (       d   e[        R                  " US	S9n
[        U5      [        [        U
R                  5      5      :X  d   e[        U
R                  5      [/        S U 5       5      :X  d   eU
R                  SR!                  U5      :X  d   eU
[        US   5      S-
     nUR                  S:X  a  [%        UR&                  5      (       a   eU VVs/ s H  o  H  o3PM     M     nnn[        U
5      [        U5      :X  d   e[        US   5      S-   US   R)                  S5      -   nU
S   R*                  U:X  d   eSU
R                  ;   d   eU[        U
R                  S    Vs/ s H  oR                  PM     sn5      :X  d   e[%        U
S   R&                  5      (       d   e[        R                  " U/ SQS9n
[        U
R                  5      [        US   5      [        US   5      -   :  d   eU
R                  SR!                  U Vs/ s H  o3R#                  5       PM     sn5      :X  d   eU
[        US   5      S-
     nUR                  S:X  a  [%        UR&                  5      (       d   eU VVs/ s H  o  H  o3PM     M     nnn[        U
5      [        U5      :X  d   e[        US   5      S-   US   R)                  S5      -   nU
S   R*                  U:X  d   eSU
R                  ;   d   eU[        U
R                  S    Vs/ s H  oR                  PM     sn5      :X  d   e[        R                  " US/S9n
SU
R                  ;  d   e[        R                  " US/S9n
U
R0                  0 :X  d   e[        R                  " U " S5      /S-  5      nU Vs/ s H
  o`" U5      PM     nn[        R                  " U5      n
SU
R                  ;  d   eU H  n/ UR                  S'   M     [        R                  " U5      n
SU
R                  ;   d   e[        U
R                  S   5      S:X  d   e[3        5       nU H?  nUR5                  U Vs/ s H  n[        UR                  5      S/PM     sn5      Ul        MA     [        R                  " U5      n
[9        UR;                  U
R6                  5      UR;                  UR<                  R?                  U Vs/ s H!  n[        U5      (       d  M  UR6                  PM#     sn5      5      5        [        R                  " US/S9n
U
R6                  R@                  S:X  d   eg s  snf s  snf ! , (       d  f       GN= fs  snf s  snnf s  snf s  snf s  snnf s  snf s  snf s  snnf s  snf s  snf s  snf s  snf )N)Merging the docs is fun.r_   zThey don't think alike. r_   zAnother doc.zWie war die Frage?r   r   r#   groupr   is_ambiguousFr   TrP   r   r0   thinkry   r7   rT  )ensure_whitespacec              3   8   #    U  H  n[        U5      v   M     g 7fr   )rS   )r   r*   s     r+   r   )test_doc_api_from_docs.<locals>.<genexpr>~  s     !;(Q#a&&(r   r_   )r  lengthr   r7  spansr  	user_data
   rc  r  )r   )!rS   r  sortedrB   r   r   r   r  r   	from_docsr   r  r  r  r   r   r   stripboolwhitespace_indexidxanysumr  r   rh  r  r   to_numpyxpvstackshape)r  de_tokenizeren_textsr*   en_texts_without_emptyde_textrB   en_docsspan_group_textsde_docm_docp_tokenr)   en_docs_tokens	think_idxsopss                    r+   test_doc_api_from_docsr  N  sy   H *2<ASVa<"G.67hd|D!hG7!(Aa 1GAJW!(Aa 1GAJW!(Aa 1GAJW	Aa		wqz!A33WQZ!_5I5IJ '"F	6#'GAJqMOO #'GAJqMOO ==$$$x0000v;#cmmVH56666	z	"g() 
# MM'"E%&#d5;;.?*@@@@uzz?S!-HQK0@@@@@::6L"M6L7796L"MNNNNC
Oa'(G<<34(;(;#<#<<<#*87CCqaCa7N8u:^,,,,HQK 1$x{'8'8'AAI8::""d***8<<9$$$8::""d***eAaj9jCC$$j9::::ekk!!!vu{{77K&L7K!vv7K&LMMMMb	%%&&&&MM'U;E%&#d5;;.?*@@@@uzz?c!;(!;;;;;::!78888C
Oa'(G<<3tG,?,?'@'@@@#*87CCqaCa7N8u:^,,,,HQK 1$x{'8'8'AAI8<<9$$$ekk!!!vu{{77K&L7K!vv7K&LMMMMb	%%&&&&MM')CDEuzz?S!-HQK0@@@@@::6L"M6L7796L"MNNNNC
Oa'(G<<34(;(;#<#<<<#*87CCqaCa7N8u:^,,,,HQK 1$x{'8'8'AAI8<<9$$$ekk!!!vu{{77K&L7K!vv7K&LMMMM MM'G95E%++%%% MM'K=9E??b    --b)*R/
0C /77hd|D!hG7MM'"E%++%%%		' MM'"Eekk!!!u{{7#$))) 
C[[c!Bc3qvv;"4c!BC
 MM'"EU\\"SVV]]'#N'3SXJCJJ'#NOP MM'H:6E<<%%%C =7 
#	" #N 9 :&L 9
 'M #N 9
 'M 8 "C $Osi   eeee	e'
3e,'e2=e7
e<%f
f
6ff
 f!f
!f!9f!
e$c                     SS/nU Vs/ s H
  o " U5      PM     nnSUS   l         [        US   SSSS94US   l         [        R                  " U5      n[	        UR                   5      S:X  d   eg s  snf )Nr  zThey don't think alike.r   r   r   foor9   )r?   r   r   r  rS   )r  textsr*   r   r)   s        r+   test_doc_api_from_docs_entsr    sv    ')BCE%*+ULOUD+DGLa!Qe46DGL
--
Csxx=A	 ,s   A0c                    [        U SS/S9nUR                  S:X  d   eUR                  U R                  S   :X  d   eUS   R                  S:X  d   eUS   R                  U R                  S   :X  d   e[	        5       nU" S5      nUR                  S:X  d   eUR                  U R                  S   :X  d   eUS   R                  S:X  d   eUS   R                  U R                  S   :X  d   eg )NHelloworldr5   enr   zHello world)r   lang_langr>   r   )r(   r)   re   s      r+   test_doc_langr    s    
hw0
1C9988x''----q6<<4q6;;(**40000
)C
m
C9988x''----q6<<4q6;;(**40000rI   c                     [        U SS/S9S   n[        UR                  [        5      (       d   eUR                  R                  UR                  :X  d   eXR
                     UR                  :X  d   eg)z%Test that tokens expose their lexeme.r  r  r5   r   N)r   r   lexr   rB   r   )r(   rl   s     r+   test_token_lexemer    sb    ' 23A6Eeii((((99>>UZZ'''JJ599,,,rI   c           	         [        U SS/S9nSnU H2  nUR                  U5      (       a   eUR                  USS9(       d  M2   e   SUS   l        S	US   l        US   R	                  S
5        SUS   l        SUS   l        US   US   l        UR                  [        USSSS9/SS9  U H2  nUR                  U5      (       d   eUR                  USS9(       d  M2   e   SUS   l        S	US   l        US   R	                  S5        SUS   l        SUS   l        [        USSSS9/Ul
        U H2  nUR                  U5      (       d   eUR                  USS9(       a  M2   e   g )Nr  r  r5   )r   r   r   LEMMAr   r	   r   r   Trequire_completer]   r   XFeat=Valr   r"   r   HELLOr9   missingr   r_   r   )r   r}  r   r   	set_morphr  r   r   set_entsr   r?   r(   r)   r   r/  s       r+   test_has_annotationr    s   
hw0
1CRE%%d++++%%dT%BBBB  CFKCFKFZ CFMCFKa&CFKLL$sAq019LE!!$''''%%dT%BBBB  CFKCFKFRCFMCFKS!Qg./CH!!$''''!!$!>>>> rI   c                    [        U / SQS9nSnU H2  nUR                  U5      (       a   eUR                  USS9(       d  M2   e   SUS   l        U H2  nUR                  U5      (       d   eUR                  USS9(       d  M2   e   SUS   l        U H2  nUR                  U5      (       d   eUR                  USS9(       a  M2   e   g )	N)r  	beautifulr  r5   )r   IS_SENT_STARTIS_SENT_ENDTr  Fr   r   )r   r}  r'   r  s       r+   test_has_annotation_sentsr    s    
h=
>C:E%%d++++%%dT%BBBB  !CF!!$''''%%dT%BBBB  !CF!!$''''!!$!>>>> rI   c                    U " S5      n[         R                  " 5          UR                    S S S 5        [         R                  " 5          UR                    S S S 5        [         R                  " 5          UR                    S S S 5        [         R                  " 5          UR
                    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       N[= f! , (       d  f       g = f)NrM   )r  deprecated_call	is_tagged	is_parsedis_neredis_sentencedr  r)   s     r+   test_is_flags_deprecatedr    s    
v
C				! 
"				! 
"				! 
"				! 
"	! 
"	!	!	!	!	!	!	!s/   B2C2CC%2
C 
C
C"%
C3c           	      Z	   U " S5      nUR                  [        USSS5      [        USSS5      /5        U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU " S5      nUR                  [        USSS5      [        USSS5      /5        UR                  [        USS	S
5      /SS9  U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU " S5      nUR                  [        USSS5      [        USSS5      /USS /S9  U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU " S5      nUR                  [        USSS5      [        USSS5      /USS /SS9  U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU " S5      nUR                  / USS	 USS /SS9  U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU Vs/ s H  o"R                  PM     sn/ SQ:X  d   eUR                  [        5       :X  d   e[        USSS5      /Ul        U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eUR                  / USS /SS9  U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU " S5      nUR                  [        USSS5      /USS	 /US	S /USS /SS9  U Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU Vs/ s H  o"R                  PM     sn/ SQ:X  d   eU " S5      n[        R                  " [        5         UR                  / USS	 S9  S S S 5        [        R                  " [        5         UR                  / USS	 /SS 9  S S S 5        [        R                  " [        5         UR                  / USS	 /USS	 /S!9  S S S 5        g s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)"Nz	a b c d er   r   r  rP   rT  )rP   rP   r   r   r   )r  rT  rT  r   r   r   rU  
unmodifiedr   )rP   r   rP   r   r   )rU  rU  rT  r   r   r#   r;   )r  )rP   rP   r   r   r   r  )outsider   )rP   rP   r   r   r   )blockedr   )r   rP   r   rP   rP   )r   r   r   r   r   ENT)r   r   r   rP   r   )r   r   r   rP   rP   )r  r  r  r   )rP   rP   r   r   r   )r  r   r   r   r   none)r  r   )r  r  )	r  r   r'  r6  r?   tupler  r  r  )r  r)   r*   s      r+   test_doc_set_entsr    sw   
{
#CLL$sAq"%tCAr':;<"#s!IIs#666 #$1JJ$(:::: {
#CLL$sAq"%tCAr':;<LL$sAq"%&L="#s!IIs#666 #$1JJ$(:::: {
#CLL$sAq"%tCAr':;c!AhZLP"#s!IIs#666 #$1JJ$(:::: {
#CLL	c1a	d31b12Qq
  
  ##s!IIs#666 #$1JJ$(:::: {
#CLLc!AhAa1<LH"#s!IIs#666 #$1JJ$77788uw S!Q&'CH"#s!IIs#666LLc!AhZL>"#s!IIs#666 {
#CLL	c1a	Qq
Qq
Qq
    ##s!IIs#666 #$1JJ$(8888
{
#C	z	"RQq* 
# 
z	"R#a(V< 
# 
z	"R#a(c!AhZ@ 
#	"w $$ $$
 $$ $$
 $$
 $# $$ 
#	" 
#	" 
#	"sw   P4P9P>4QQ2QQ1Q6QQ!,Q&%Q+=Q0!Q5#Q:RR:
R
R
R*c                     / SQn [        [        5       U S9nSUR                  R                  R	                  S5      SS4/Ul        UR
                   Vs/ s H  o"R                  PM     snSS/:X  d   e[        5       nSUR                  R	                  S5      SS4/n/ SQn[        X0US	9nUR
                   Vs/ s H  o"R                  PM     snSS/:X  d   eg
s  snf s  snf )z]Test that both strings and integers can be used to set entities in
tuple format via doc.ents.r   r   r   r   er5   )r  r   r   WORLDrP   r;   r  )zB-HELLOzI-HELLOOzB-WORLDzI-WORLDr    r?   N)r   r   r=   r>   r   r?   r(  )r    r)   r  r=   r?   s        r+   test_doc_ents_setterr  ]  s     &E
egU
#C#))"3"3"7"7"@!Q!GHCH!hh'hHHh'GW+====GEemm//8!Q?@D<D
et
,C!hh'hHHh'GW+==== (
 (s   C:C c                    U " S5      nU " S5      nU" S5      nUS   R                   US   l         US   R                   R                  S:X  d   eUS   R                   R                  S:X  d   eUS   R                  S5        US   R                   US   l         US   R                   US   R                   :X  d   eUS   R                   US   l         US   R                   US   R                   :X  d   eUS   R                  S5        [        R                  " [
        5         US   R                   US   l         S S S 5        g ! , (       d  f       g = f)Nza bzc dr   r   r  z
Feat2=Val2)r  keyr  r  r  r  )r  r  doc1doc1br   s        r+   test_doc_morph_setterr  k  s$   DED GMMDGM7==!!!7==!!! 	Gj!GMMDGM7==DGMM))) !W]]E!HN7==E!HNN***Gl# 
z	"QQ 
#	"	"s   "E
Ec                  J   / SQn S/[        U 5      -  n[        [        5       XS9nUR                  S:X  d   e/ SQn[        [        5       XS9n[        UR                  5      S:X  d   e/ SQn[        [        5       XS9n[        UR                  5      S:X  d   e/ S	Qn[        [        5       XS9n[        UR                  5      S:X  d   e/ S
Qn[        [        5       XS9n[        UR                  5      S:X  d   e/ SQn[        R
                  " [        5         [        [        5       XS9nSSS5        / SQn[        R
                  " [        5         [        [        5       XS9nSSS5        / SQn[        R
                  " [        5         [        [        5       XS9nSSS5        / SQn[        R
                  " [        5         [        [        5       XS9nSSS5        g! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nj= f! , (       d  f       g= f)z2Test ents validation/normalization in Doc.__init__r  r  r  r   )B-PERSONI-PERSONr  r  r  r   )r  r  r  r  I-GPErP   )r  r  r  Nr  )r_   r  r  r  r  )zQ-PERSONr  r  r  r  N)OPERSONr  r  r  r  )r  B-r  r  r  )r   r  r  r  r  )rS   r   r   r?   r  r  r  )r    r?   r)   s      r+   test_doc_init_iobr    s   %E53u:D
egU
.C88r>>@D
egU
.Csxx=A=D
egU
.Csxx=A 8D
egU
.Csxx=A 9D
egU
.Csxx=A >D	z	"%'2 
# =D	z	"%'2 
# 1D	z	"%'2 
# /D	z	"%'2 
#	" 
#	"
 
#	"
 
#	"
 
#	"s0   G!G2HH!
G/2
H 
H
H"c                 @   U " S5      n[        USSSS9[        USSSS9/nUR                  5        nU H  nUR                  U5        M     S S S 5        [        R                  " [
        5         X!l        S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)N/Some text about Colombia and the Czech RepublicrP   r#   r|  r9   r6   r7   )r   r@   rA   r  r  r  r?   )r  r)   r  rC   rZ   s        r+   test_doc_set_ents_invalid_spansr    s    
H
IC#q!5)4Q+GHE		[Dd#  
 
z	" 
#	" 
	 
#	"s   A>.B>
B
Bc                      Sn [        5       nU" U 5      n[        R                  " [        5         [	        UR
                  5      nSSS5        g! , (       d  f       g= f)zNTest that a language without noun_chunk iterator, throws a NotImplementedErroru   Může data vytvářet a spravovat, ale především je dokáže analyzovat, najít v nich nové vztahy a vše přehledně vizualizovat.N)r   r  r  NotImplementedErrorr   r8  )rB   re   r)   r   s       r+   $test_doc_noun_chunks_not_implementedr    sA     VD
/C
d)C	*	+! 
,	+	+s   A
Ac                 .   U " S5      n[        USSSS9/UR                  S'   SUR                  ;   d   eSUR                  ;  d   e[        UR                  S   5      S:X  d   eUR                  S   S   R                  S:X  d   eUR                  S   R	                  USS 5        [        UR                  S   5      S	:X  d   eUR                  S   S   R
                  S
:X  d   eUR                  S    Vs/ s H  o"R
                  PM     snSS
/:X  d   eUR                  S   R                  (       a   e[        USSSS9[        USSSS9/Ul        UR                  S   R                  UR                  5        [        UR                  S   5      S:X  d   eUR                  S    Vs/ s H  o"R                  PM     sn/ SQ:X  d   eUR                  S   R                  (       d   eUR                  S	 SUR                  ;  d   eg s  snf s  snf )Nr  rP   r#   byer9   hir   r   r   zSome text aboutColombiar|  r6   r7   )r  r_   r|  r|  )	r   r  rS   r(  r   rB   has_overlapr?   extend)r  r)   rZ   s      r+   test_span_groupsr    s   
H
ICCAU34CIIdO399		!!!syy1$$$99T?1$$---IIdO3q8$syy1$$$99T?1""&7777"%))D/2/$II/2zCT6UUUUyy****S!Qe,d31E.JKCHIIdO388$syy1$$$$'IIdO4ODKKO48QQQQ99T?&&&&		$syy    3
 5s   9H-Hc                     U " S5      n[         R                  " U5      UR                  R                  :X  d   eUR	                  5       n[         R                  " U5      UR                  R                  :X  d   eg )Nr  )weakrefrefr  doc_refcopy)r  r  r   s      r+   test_doc_spans_copyr
    sZ    IJD;;t

 2 222299;D;;t

 2 2222rI   c           
         U " S5      nUR                   R                  S5        [        UR                   S   5      S:X  d   eUR                   R                  SUSS /S9  [        UR                   S   5      S:X  d   eUR                   R                  S[        XSS USS /S	9S9  [        UR                   S   5      S:X  d   eg )
Nr  key1r   key2r   r   key3r   )r  )r  
setdefaultrS   r   r  s     r+   test_doc_spans_setdefaultr    s    
H
ICII syy !Q&&&II#a(4syy !Q&&&II31QxQq>R)STsyy !Q&&&rI   )Sr  r  rT   r  numpy.testingr   	thinc.apir   r   spacy.attrsr   r   r   r	   r
   r   r   r   r   spacy.lang.enr   spacy.lang.xxr   spacy.languager   spacy.lexemer   spacy.tokensr   r   r   r   spacy.vocabr   test_underscorer   r,   markissuerE   rH   r[   ra   parametrizerf   rm   r   r   factoryr   r   r   r   r
  r%  r)  r+  r=  r_  rj  rl  rU   rw  r  r  r  usefixturesr  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r   rI   r+   <module>r      s       , /
 
 
 " ' #  4 4  -H" 4* * 4
% 
% 43 3* 5( ( !=>g}%=>4  ? ? 	 45 	5 4#& #&L 4 )  )F 
)  * 46 6 4 , "9!:; <HEV 
(*GH$$N	#/4)*+  ,KK|\<PQ	
 R'KK333334444
	
676-)DJ +,i& -i&X1-?>?*	@AF>&4+3\"!*3'rI   