
    bMh-B                        d Z ddlmZ ddlZddlZddlZddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ d Zd Zd Zd	 Zd
 Zd Z ej!        "                    d edg dd           eddi           eddie#          g eg dg dd           edg di           edg di          gg          d             Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d  Z0d! Z1d" Z2ej!        "                    d# ed$d%d&'           ed(d%d)'           ed*d%d+'          g          d,             Z3d- Z4d. Z5d/ Z6d0 Z7d1 Z8d2 Z9d3 Z:d4 Z;ej!        "                    d5i d6d7ig          ej!        "                    d8g d9d9g e<dd:           ej=        g           g          d;                         Z> G d< d=          Z? G d> d?          Z@dS )@z test get/set & misc     )	timedeltaN)IndexingError)NA	DataFrameIndex
IndexSlice
MultiIndexNaTSeries	Timedelta	Timestampconcat
date_rangeisnaperiod_rangetimedelta_rangec                     t          t          j                            d                              d          g d          } d}d}t          j        t          |          5  t          j	        t          |          5  | d          d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t          j	        t          |          5  d| d<   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          d	          5  | d
          d d d            n# 1 swxY w Y   |                                 } t          j        t          |          5  t          j	        t          |          5  | d          d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j	        t          |          5  d| d<   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N      )abr   r   r   indexz>Series.__[sg]etitem__ treating keys as positions is deprecatedz/index 5 is out of bounds for axis 0 with size 5matchr   z^'c'$cz7index 5 is out of bounds for axis (0|1) with size 5|^5$)r   nprandomdefault_rngstandard_normalpytestraises
IndexErrortmassert_produces_warningFutureWarningKeyError
sort_index)swarn_msgmsgs      j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/series/indexing/test_indexing.pytest_basic_indexingr-      sb   
	a  0033;T;T;T	 	 	A PH
;C	z	-	-	-  'XFFF 	 	aDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
z	-	-	-  'XFFF 	 	AaD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
xx	0	0	0  	#               	
A	z	-	-	-  'XFFF 	 	aDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               EC	z	-	-	-  'XFFF 	 	AaD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s   #B+?	BB+B	B+B	B++B/2B/D-C?3D?D	DD	DDD<	EEEG'	F<0G<G 	 GG 	GGG;IH)I)H-	-I0H-	1IIIc                     | }t          g d|          }t          t          d          |          }|d         }t          ddgt          ddg|                    }t          j        ||d	           d S )
N   r   r0   dtype   r   r0   r   r   Tcheck_exactr   r   ranger$   assert_series_equal)any_numeric_dtyper2   idxserresultexpecteds         r,   6test_getitem_numeric_should_not_fallback_to_positionalr>   9   s    E
			
'
'
'C
q
%
%
%CVFq!fE1a&$>$>$>???H68>>>>>>    c                     | }t          g d|          }t          t          d          |          }d|d<   t          g d|          }t          j        ||d	           d S )
Nr/   r1   r3   r   
   r0   )rA   r0   rA   Tr4   r6   )r9   r2   r:   r;   r=   s        r,   6test_setitem_numeric_should_not_fallback_to_positionalrB   C   sr    E
			
'
'
'C
q
%
%
%CCFkkk---H3d;;;;;;r?   c                    | j         g d         }| |         }|                     |          }t          j        ||           | |d         |d                  }| j        |d         |d                  }t          j        ||           d S )Nr   rA      r   r   )r   reindexr$   r8   loc)datetime_seriesindicesr<   r=   s       r,   test_basic_getitem_with_labelsrJ   M   s    #KKK0GW%F&&w//H68,,,WQZ'!*45F"71:
#:;H68,,,,,r?   c                      t          t          ddd          g d          } t          dd          }| j        d         }||k    sJ | j        d	         }||k    sJ | d         }||k    sJ d S )
Nz
2011-01-01r3   z
US/Eastern)periodstzr   r   r   r   )rM   r   r   )r   r   r   rG   iloc)r;   r=   r<   s      r,    test_basic_getitem_dt64tz_valuesrP   Y   s     <|<<<OOO  C ,777HWS\FXXa[FXXFXr?   c                 \   t          t          j                            d                              d                    }|d         }t          j        ||           t          j        |          5  d|d<   d d d            n# 1 swxY w Y   | s|dk                                    sJ d S d S )Nr   rA   .r   )	r   r   r   r   r    r$   r8   assert_cow_warningall)using_copy_on_writewarn_copy_on_writer)   r<   s       r,   test_getitem_setitem_ellipsisrV   h   s    ry$$Q''77;;<<AsVF61%%%		1	2	2  #               #!  """""# #""s   1BB
Bz$result_1, duplicate_item, expected_1   )r0   r   r   r3   r0   r   r0   i9  r1   r0   r   r3   c                     |                      |          }|                     |          }t          j        |d         |           |d         | d         k    sJ d S )Nr0   r   )_appendr$   r8   )result_1duplicate_item
expected_1r<   r=   s        r,   $test_getitem_with_duplicates_indicesr_   t   s`    " n--F!!.11H6!9h///!9######r?   c                      t          g dg d          } | j        d         | d         k    sJ d| j        d<   t          j        | d         d           d S )NrY   rN   r   r   r   )r   rO   r$   assert_almost_equalr)   s    r,   test_getitem_setitem_integersrc      s\    yyy///**A6!9#AF1I1S61%%%%%r?   c                     t          ddd          } t          |           }t          |d         t                    sJ t          |j        d         t                    sJ t          |j        d         t                    sJ t          |j        d         t                    sJ t          |j        d	         t                    sJ t          | | 
          }d}t          j	        t          |          5  t          |d         t                    sJ 	 d d d            n# 1 swxY w Y   t          |j        | d                  t                    sJ t          |j        d         t                    sJ t          |j        | d                  t                    sJ t          |j        d	         t                    sJ d S )N2009041520090519B)freqr   r0   r   r3      r   z;Series.__getitem__ treating keys as positions is deprecatedr   )r   r   
isinstancer   atiatrG   rO   r$   r%   r&   )rngr;   r+   s      r,   test_series_box_timestamprn      s   
Z#
6
6
6C
++Cc!fi(((((cfQi+++++cgaj),,,,,cgaj),,,,,chqk9-----
C
 
 
 C
GC		#M	=	=	= - -#a&),,,,,,- - - - - - - - - - - - - - -cfSVni00000cgaj),,,,,cgc!foy11111chqk9-------s   5D  D$'D$c                     t          ddd          } t          |           }t          |d         t                    sJ t          |j        d         t                    sJ t          |j        d         t                    sJ t          |j        d         t                    sJ t          |j        d	         t                    sJ d S )
Nz	1 day 1 sr   hrL   rh   r   r0   r   r3   ri   )r   r   rj   r   rk   rl   rG   rO   )rm   r;   s     r,   test_series_box_timedeltarr      s    
+qs
;
;
;C
++Cc!fi(((((cfQi+++++cgaj),,,,,cgaj),,,,,chqk9-------r?   c           
         t          t          d          t          t          ddd                              }t          j        t
          d          5   | |          d          d d d            d S # 1 swxY w Y   d S )	NrA   r      r   r   z^1$r   r0   )r   r7   listr!   r"   r'   
indexer_slr;   s     r,   test_getitem_ambiguous_keyerrorrx      s    
r$uQA"7"7
8
8
8C	xv	.	.	.  
3                 s   A55A9<A9c                     t          g dg d          }t          j        t          t	          j        d                    5   | |          g d          d d d            d S # 1 swxY w Y   d S )N)r0   r   r3   ri   )foobarrz   bahz['bam'] not in indexr   )rz   r{   r|   bam)r   r!   r"   r'   reescaperv   s     r,   test_getitem_dups_with_missingr      s     ;;;
<
<C	xry1G'H'H	I	I	I 6 6
3444556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   A##A'*A'c           
      ,   t          t          d          t          t          ddd                              }|                                }d | |          d<   t	          |t          dgdg          g          }t          j        ||           d S )NrA   r   rt   r   r   r   r0   )r   r7   ru   copyr   r$   r8   )rw   r)   s2r=   s       r,   test_setitem_ambiguous_keyerrorr      s    uRyyU1b!__ 5 5666A 
BJJrNN1q&!QC000122H2x(((((r?   c                    t           j        | | j        d         <   t           j        | j        g d<   t           j        | j        d<   t          j        | j        d                   sJ t          j        | j        d                   sJ d| t          j        |           <   t          j        | j        d                   rJ d S )Nr   )r0   r         r   )r   nanr   rO   isnan)rH   s    r,   test_setitemr      s    02OO)!,-')vO$ fO8O(+,,,,,8O(+,,,,,12OBH_--.x,Q/0000000r?   c                     | dd         }t          |          t          |j                  k    sJ |j        j        du sJ d S )Nr   rt   T)lenr   	is_unique)rH   sls     r,   test_setslicer      sK    	2	Br77c"(mm####8%%%%%%r?   c                     d}t          j        t          |          5  | d d df          d d d            n# 1 swxY w Y   t          j        t          |          5  d| d d df<   d d d            n# 1 swxY w Y   d}t          j        t          |          5  | t	          d d          g          d d d            n# 1 swxY w Y   | t	          d d          f         }| d d         }t          j        ||           d}t          j        t          |          5  | dd d gg          d d d            n# 1 swxY w Y   t          j        t          |          5  d| dd d gg<   d d d            d S # 1 swxY w Y   d S )Nz0key of type tuple not found and not a MultiIndexr   r   z Indexing with a single-item listr   zunhashable type(: 'slice')?)r!   r"   r'   
ValueErrorslicer$   r8   	TypeError)rH   r+   r<   r=   s       r,   !test_basic_getitem_setitem_cornerr      s   
<C	xs	+	+	+  1              	xs	+	+	+ " " !1" " " " " " " " " " " " " " " -C	z	-	-	- * *tQ())* * * * * * * * * * * * * * *
 eD!nn./Frr"H68,,, )C	y	,	,	, + +T4L)**+ + + + + + + + + + + + + + +	y	,	,	, / /-.T4L)*/ / / / / / / / / / / / / / / / / /sT   7;;
A33A7:A7B??CCD66D:=D:
E33E7:E7c                    |                                  }| dd         }| dd          }|dd         }| j        d         |j        vsJ |j        d         |j        vsJ t          |          t          |j                  k    sJ | |j        d                  ||j        d                  k    sJ |j        d         | j        d         k    sJ t          j        t          j        |          t          j        |           dd                     | dd         }t          j        |          5  d|d d <   d d d            n# 1 swxY w Y   |rt          j        | |           d S | dd         dk    	                                sJ d S )NrA   rt   i	   r   r0      )
r   r   r   r$   assert_numpy_array_equalr   arrayrR   r8   rS   )	string_seriesobject_seriesrT   rU   originalnumSlicenumSliceEndobjSlicer   s	            r,   
test_slicer      s   !!##HRU#H%KRU#Hq!7777q!7777x==C//////*+xq8I/JJJJJ>! 3B 77777 5 5rx7N7Nstt7TUUU 
r"u	B		1	2	2  111                1
}h77777be$)..0000000s   -EEEc                     t          g t                    } t          d          | j        d<   t          t	          d          dt          dgt                              }t          j        | |           |                     | j	        
                    dd                    } t          t          j        t	          d          gdt          ddgt                              }t          j        | |           t          d          | j        d<   t          t	          d          dt          ddgt                              }t          j        | |           d S )	Nr1   r0   rg   z1 daysztimedelta64[ns]r2   r   r   A)r   objectr   rG   r   r   r$   r8   rF   r   insertr   r   )r)   r=   s     r,   test_timedelta_assignmentr     sB   r   A1AE#J(#4E3%v<V<V<V  H 1h'''			!'..C(())A	8$$%S#Jf---  H
 1h'''1AE#J(S#Jf---  H
 1h'''''r?   c                    t          d dD                       }|                    g dd          }|J t          dgdg          }d|d	<   |                                }| | rIt	          j                    5  |d	                             |           d d d            n# 1 swxY w Y   |}nt	          j        t          d
          5  |d	                             |           d d d            n# 1 swxY w Y   t          g dg dg dg dd          }|                    g dd          }|J t	          j	        ||           d S )Nc                     i | ]}|g d S )rY    ).0r   s     r,   
<dictcomp>z3test_underlying_data_conversion.<locals>.<dictcomp>+  s    :::QAyyy:::r?   rN   T)inplacer0   )r   r   r   r   r   valzinplace methodr   rY   )r   r0   r   )r   r   r   r   )
r   	set_indexr   r   r$   raises_chained_assignment_errorupdater%   r&   assert_frame_equal)rT   dfreturn_valuer)   df_originalr=   s         r,   test_underlying_data_conversionr   )  s   	::/:::	;	;B<<<>>Ls9+&&&ABuI''))KB $/11 	  	 uIQ	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 '=MNNN 	  	 uIQ	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ))))))))IIINN
 
  ))///4)HH###"h'''''s$   :B""B&)B&C33C7:C7c                     | j         g d         }t          j        |j         d<   t          j        | j         d                   rJ d S )NrD   r0   rA   )rO   r   r   r   )rH   seqs     r,   test_preserve_refsr   B  sD    

{{{
+C&CHQKx,R01111111r?   c                     | }t          t          j                            d                              t          |                    |d          } ||          d         }|j        |j        k    sJ d S )Nr   sth)r   namerz   )r   r   r   r   r    r   r   )%lexsorted_two_level_string_multiindexrw   r   r;   r<   s        r,   test_multilevel_preserve_namer   H  sv    1E

	a  00U<<EPU  C Z__U#F;#(""""""r?   r   z
2014-01-01rt   MSrq   z2014-01M0rp   c           
          t          | d                   }t          | d                   }t          t          j        d          |           }t          }|| d         fD ]}t          j        |||d d         |dd d                    t          j        ||d |d         |d dd                    || d         fD ]R}t          j        ||||d         |ddd                    t          j        ||||d         |ddd                    Sd S )Nr      rt      r   )strr   r   aranger   r$   !assert_indexing_slices_equivalent)r   keystr1keystr2r;   SLCkeykey2s          r,   test_slice_with_negative_stepr   U  s/    %(mmG%)nnG
2
&
&C
Cq" U U
,S#cg2g,AErE
KKK
,S#gs2g,EQrE
KKKeBi( 	U 	UD0c$s2+6FBqQSGUUU0c#d2+6FAaPRFTTTT	U	U Ur?   c                      t          ddgddg          } | d         dk    sJ | d         dk    sJ d| d<   | d         dk    sJ d S )Nr0   r   )r   )r   r   r3   )r   rb   s    r,   test_tuple_indexr   m  s]    1vff-...AV9>>>>V9>>>>AfIV9>>>>>>r?   c                      t          d          t          d          }} t          ddg| |g          }||          dk    sJ ||         dk    sJ d||<   ||         dk    sJ d S )Nr   r   r0   r   r   r3   )	frozensetr   )idx0idx1r)   s      r,   test_frozenset_indexr   v  sq    33$D1vdD\***AT7a<<<<T7a<<<<AdGT7a<<<<<<r?   c                      t          ddgddg          } |                                 }t          ddgddg          }|| j        | dk    <   t          j        | |           d S )	Nr0   r   r   r   r   r      d   )r   r   rG   r$   r8   )r;   r=   rhss      r,   "test_loc_setitem_all_false_indexerr     sl    
!QSz
*
*
*CxxzzH
!QSz
*
*
*CCGC#I3)))))r?   c                      t          dg          } | j        t          t          dgd                   }t          g d          }t          j        ||           d S )Nr0   Fbooleanr1   int64)r   rG   r   r$   r8   r;   r<   r=   s      r,   +test_loc_boolean_indexer_non_matching_indexr     sW    
!++CWVRKy999:Fb(((H68,,,,,r?   c                      t          dg          } t          t          dgdddg          }t          j        t          d          5  | j        |          d d d            d S # 1 swxY w Y   d S )Nr0   Fr   r   r   Unalignabler   )r   r   r!   r"   r   rG   )r;   indexers     r,   ,test_loc_boolean_indexer_miss_matching_indexr     s    
!++Cb%[	!Q@@@G	}M	:	:	:                   s   A""A&)A&c                      t          ddgi          } t          d| i          }| |j        d<   t          | | d          }t          j        ||           d S )Nr   r0   label	new_label)r   r   )r   r   rG   r$   r8   )r   r;   r=   s      r,   (test_loc_setitem_nested_data_enlargementr     s`    	C!:		B
'2

CCGK4455H3)))))r?   c                      t          dt          g dd                    } | j        dd         }t          dt          dgd                    }t          j        ||           d S )Nr0   )r   r0   r   Int64r1   r   r   r3   )r   r   rG   r$   r8   r   s      r,   'test_loc_ea_numeric_index_oob_slice_endr     sn    
%			999
:
:
:CWQqS\FauaS888999H68,,,,,r?   c                      t          ddd          } t          j        t          d          5  | j        d          d d d            d S # 1 swxY w Y   d S )Nr0   r   )TFr   r   )r   r!   r"   r'   rG   )r;   s    r,   test_getitem_bool_int_keyr     s    
!$$
%
%C	xs	+	+	+  

                 s   A		AAr   r   xr   Fr   c                     t          dddgi|          }|                                }d|j        | <   t          j        ||           d S )Nr   r0   r         ?)r   r   rG   r$   r   )r   r   r   r=   s       r,   test_setitem_empty_indexerr     sP     
C!Q'3'	(	(BwwyyHBF7O"h'''''r?   c                   z   e Zd Zej                            ddhddig          d             Zej                            ddhddidhdfddidfg          d             Zej                            ddhddig          d             Zej                            ddhddidhdfddidfg          d             Z	dS )	TestDeprecatedIndexersr   r0   c                     t          ddg          }t          j        t          d          5  |j        |          d d d            d S # 1 swxY w Y   d S Nr0   r   as an indexer is not supportedr   r   r!   r"   r   rG   selfr   r;   s      r,   $test_getitem_dict_and_set_deprecatedz;TestDeprecatedIndexers.test_getitem_dict_and_set_deprecated  s     aVnn]9,LMMM 	 	GCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAr   c                     t          ddgt          j        ddg                    }t          j        t
          d          5  |j        |          d d d            d S # 1 swxY w Y   d S Nr0   r   rX   )r3   ri   r   r   r   r   r	   from_tuplesr!   r"   r   rG   r   s      r,   /test_getitem_dict_and_set_deprecated_multiindexzFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindex  s     aV:#966:J#K#KLLL]9,LMMM 	 	GCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA"%A"c                     t          ddg          }t          j        t          d          5  d|j        |<   d d d            d S # 1 swxY w Y   d S r   r   r   s      r,   $test_setitem_dict_and_set_disallowedz;TestDeprecatedIndexers.test_setitem_dict_and_set_disallowed  s     aVnn]9,LMMM 	 	CGCL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA	A	c                     t          ddgt          j        ddg                    }t          j        t
          d          5  d|j        |<   d d d            d S # 1 swxY w Y   d S r   r   r   s      r,   /test_setitem_dict_and_set_disallowed_multiindexzFTestDeprecatedIndexers.test_setitem_dict_and_set_disallowed_multiindex  s     aV:#966:J#K#KLLL]9,LMMM 	 	CGCL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA"AN)
__name__
__module____qualname__r!   markparametrizer   r   r   r  r   r?   r,   r   r     s       [UaS1a&M22  32 [UaS1a&A3(aVQK$HII  JI [UaS1a&M22  32 [UaS1a&A3(aVQK$HII  JI  r?   r   c            
          e Zd Zd Zdddde ej        d           ej        d          gZddg e	dd          g d	 e	d
d
d
          gZ
ej                            dedd ej        d           ej        d          gz             ej                            de
          d                         Zej                            dedd ej        d          gz             ej                            de
          d                         Zej                            dedgz             ej                            de
          d                         Zd
S )TestSetitemValidationc                    d}t          j        |          }|                                }t          j        ||          5  |||<   |                                }d d d            n# 1 swxY w Y   t          j        ||          5  ||j        |<   |                                }d d d            n# 1 swxY w Y   t          j        ||          5  ||j        |<   |                                }d d d            n# 1 swxY w Y   t          j        ||          5  ||d d <   d d d            d S # 1 swxY w Y   d S )Nz3Setting an item of incompatible dtype is deprecatedr   )r~   r   r   r$   r%   rO   rG   )r   r;   invalidr   warnr+   orig_sers          r,   _check_setitem_invalidz,TestSetitemValidation._check_setitem_invalid  s7   Cinn88::'C888 	" 	""CL--//C	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 'C888 	" 	" 'CHW--//C	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 'C888 	" 	"&CGG--//C	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 'C888 	 	CF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   A''A+.A+B33B7:B7C??DD D55D9<D9y      ?       @True1z1.0r
   r   r0   TFFNr
  g      ?r   c                 f    t          g dd          }|                     |||t                     d S )Nr  boolr1   r   r  r&   )r   r
  r   r;   s       r,   #test_setitem_validation_scalar_boolz9TestSetitemValidation.test_setitem_validation_scalar_bool  s=    
 )))888##C'=IIIIIr?   Tr   c                     t          g d|          }t          |          r |t          urt          j        |          sd }nt
          }|                     ||||           d S )NrY   r1   )r   r   r
   r   isnatr&   r  )r   r
  any_int_numpy_dtyper   r;   r  s         r,   "test_setitem_validation_scalar_intz8TestSetitemValidation.test_setitem_validation_scalar_int  sn     YYY&9:::== 	!WC//8I8I/DD D##C'4@@@@@r?   c                 f    t          g d|          }|                     |||t                     d S )N)r0   r   Nr1   r  )r   r
  float_numpy_dtyper   r;   s        r,   $test_setitem_validation_scalar_floatz:TestSetitemValidation.test_setitem_validation_scalar_float  s;     \\\):;;;##C'=IIIIIr?   )r  r  r  r  r
   r   
datetime64timedelta64_invalid_scalarsr   	_indexersr!   r  r  r   float64r  r  r  r   r?   r,   r  r    s         , 	eu QCq!&:&:&:EE$d<S<STI[#q#xrx{{JBJqMM&JJ  [Y	22J J 32 J [Y(8D#zrzRU;W(WXX[Y	22A A 32 YXA [Y(8D6(ABB[Y	22J J 32 CBJ J Jr?   r  )A__doc__datetimer   r~   numpyr   r!   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr$   r-   r>   rB   rJ   rP   rV   r  r  r   r_   rc   rn   rr   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r?   r,   <module>r(     s           				      ' ' ' ' ' '                                        8? ? ?< < <	- 	- 	-  	# 	# 	# * Frlll++,,FAs8FAr7&)))	
 Fyyy\\\2233FAyyy>""FAyyy>""	
 $ $ $& & &. . .&. . .  6 6 6) ) )1 1 1& & &/ / /61 1 16( ( (4( ( (22 2 2# # # 
<$777Y555Rc222 U U U     * * *- - -  * * *- - -   c3Z 011R%q"xrxPR||$TUU( ( VU 21(       <9J 9J 9J 9J 9J 9J 9J 9J 9J 9Jr?   