ࡱ>  :bjbjAA 55#y#y)&> 8$>Vt"444:::V V V V V V V,XZ5V:7:::5V4A44JV4A4A4A:@44V4A:V4A4A[TU`ц&=TU`V0VTh[4Ah[(U4AU,:::5V5V4A:::Vh[::::::::: t:   Chapter 2: Lists, Arrays and Dictionaries Higher order organization of data In the previous chapter, we have seen the concept of scalar variables that define memory space in which we store a scalar, i.e. single numbers or strings. Scalar values however are usually insufficient to deal with current data. Imagine writing a program that analyzes the whole human genome. Since it contains approx. 30,000 genes, we would have to create 30,000 variables to store their sequences! Initializing these variables would already be a daunting task, but imagine that you wanted to count the number of times the sequence ATG appears in each gene, you would have to write one line of code for each gene, hence 30,000 lines, changing only the variable name for the gene! Fortunately, Python thinks that laziness is a virtue, and would never tolerate that you have to write 30,000 lines of code. Two special types of variables exist to help managing long lists of items, namely arrays and dictionaries. These variables store lists of data, and each piece of data is referred to as an element. In this chapter, we will look in details at what are lists, and how they are stored and manipulated within arrays and dictionaries. We are all familiar with lists: think about a shopping list, a soccer team roster, all integers between 1 and 10, genes in the human genomes,A list can be ordered (increasing or decreasing values for numbers, lexicographic order for strings), or unordered. Python has two types of lists, tuples and lists. Tuples are immutable, i.e. they cannot be modified once created, while lists are mutable, i.e. they can be modified once created. Tuples 2.1 Tuples in Python By definition, a tuple is a set of comma-separated values enclosed in parentheses. Examples: (1,2,3,4,5,6,7,8,9,10) is the tuple of integers between 1 and 10 (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) is the tuple containing the days in the week. Accessing tuple values We have seen how to build a tuple. Another thing that is useful is to be able to access a specific element or set of elements from a tuple. The way to do this is to place the number or numbers of the element (s) we want in square brackets after the tuple. Let us look at an example:  Which day do you think will be printed? If you try it, you will get: Wednesday Why didnt we get Tuesday, the second element of the list? This is because Python starts counting from 0 and not 1!! This is something important to remember. The element you want does not have to be literal: it can be a variable as well. As an exercise, write a small program that reads in a number between 1 and 7, and outputs the corresponding day of the week. The answer is on the next page.  The examples above show you how to single out one element of a tuple; if you wanted more than one element, you can splice the tuple, the same way we splice strings. For example,  will print (Monday,Tuesday) Remember that the range i:j means from position i to position j, j not included. Lists A list in Python is created by enclosing its elements in brackets:  Elements in a list are accessed the same way elements are accessed in tuples. Special lists: ranges Often the lists we use have a simple structure: the numbers from 0 to 9, or the numbers from 10 to 20. We do not need to write these lists explicitly: Python has the option to specify a range of numbers. The two examples cited would be written in Python as:  Note that lists (and tuples) in Python can be mixed: you can include strings, numbers, scalar variables and even lists in a single list! Arrays There is not much we can do with lists and tuples, except print them. Even when you print them, the statements can become cumbersome. Also, there is no way to manipulate directly a list: if we wanted to create a new list from an existing list by removing its last element, we could not. The solution offered by Python is to store lists and tuples into arrays. Assigning arrays Names for arrays follow the same rules as those defined for scalar variables. We store a list into an array the same way we store a scalar into a scalar variable, by assigning it with =: for a tuple, or  for a list. Note: the name of an array does not indicate if it contains a list or a tuple: try to use names that are explicit enough that there are no ambiguities.  Once we have assigned a list to an array, we can use it where we would use a list. For example,  will print: [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday] Accessing one element in an array We can access one element in an array by using the index of the drawers it has been assigned to. Remember how we access an element in a list: [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday][0] gives us the first element in the list, i.e. Monday. We could do: days[0]; to access the first element of the array days. Accessing an element in an array works both ways: we can either retrieve the value contained in the position considered, or assign a value to that position. For example,  Creates an array names numbers that contains the list [0,1,5]. This list can then be modified:  The array numbers now contains the list [3,4,5]. Important: you can change elements in a list, but you will get an error message if you try the same thing in a tuple. Array manipulation Python provides a list of functions that manipulates list. Let A be a list: TypeNotationFunctionAdding valuesA.append(obj)Adds obj at the end of list AA.extend(list)Adds list at the end of list AA.insert(index,item)Adds item at position index in A, and move the remaining items to the rightRemove valuesdel A[i]Removes element at position i in the list AItem=A.pop(index)Removes object at position index in A, and stores it in variable itemA.remove(item)Search for item in A, and remove first instanceReverseA.reverse()Reverses list ASortingA.sort()Sorts list A in place, in increasing orderSearchingI=A.index(item)Search for item in list A, and puts index of first occurrence in iCountingN=A.count(item)Counts the number of occurrence of item in ALengthN=len(A)Finds number of items in A, and stores in N Important again: you can manipulate elements in a list, but you will get an error message if you try the same thing in a tuple. From arrays to string and back. join: from array to string: You can concatenate all elements of a list into a single string using the operator join. The syntax is:  It concatenates all elements of LIST and stores them in the string A. Not the presence of before join. Split and list: from string to array We have seen in chapter 1 that the function split will break down a string into a list, using a specified delimiter to mark the different elements. If the delimiter is omitted, split separates each word in the string. For example, if A=This is a test, A.split() will generate the list [This,is,a,test]. Split however cannot break down a word into characters: to do that, we use the function list. For example, if we want to break a paragraph into sentences, a sentence into words, and a word into characters, we use:  In all three cases, the result is a list and the input was a string. Dictionary 5.1 Definition   Arrays are very good for maintaining and manipulating lists. They have one limitations however: each element in an ARRAY is indexed with an integer value, varying from 0 to its last index, len(ARRAY). You can think about it as the array representing a street of houses, with each house defined by its number. There are instances however in which it would be more convenient to refer to the different houses using the name of its inhabitants: this is exactly what a dictionary variable does (see figure 2.2). Dictionaries are also referred to as associative arrays or hashes. 5.2 Assigning values to dictionaries A dictionary is a set of pairs of value, with each pair containing a key and an item. Dictionaries are enclosed in curly brackets. For example:  Creates a dictionary of countries with their capitals, where the capitals serve as keys. Note that keys must be unique. If you try to add a new entry with the same key as an existing entry, the old one will be overwritten. Dictionary items on the other hand need not be unique. Dictionaries can also be created by zipping two tuples:  5.2 Accessing elements in dictionaries This is similar to looking inside an array, except that the positions in the dictionaries are indexed by their keys, and not by an integer index. Using the dictionary d defined above,  If you give a key however that is not in the dictionary, Python will output an error message. To circumvent this problem, it is often better to use the function get: if key does not exist, Python will output None, or an error message that you have defined:  5.3 Manipulating dictionaries Adding new key-value pairs to a dictionary is simply done by assignment. For example, we could have added Germany and Mexico in our dictionary d using:  We can also change the entries in a dictionary just by reassigning them. To remove an entry in a dictionary, we need to use the function del. For example, to remove the key-value (Paris:France) from our dictionary d:  Other useful functions on dictionaries are illustrated in the example below:  Exercises: Write a program that prints all the numbers from 1 to 100. Your program should have much fewer than 100 lines of code! Starting with the word GENE1=ATGTTGATGTG, write a Python program that creates the new words GENE2, GENE3, GENE4 and GENE5 such that: GENE2 only contains the last two letters of GENE1 GENE3 only contains the first two letters of GENE1 GENE4 only contains the letters at positions 2,4,6,8 and 10 in GENE1 GENE5 only contains the first 3 and last 3 letters of GENE1 Suppose you have a Python program that read in a whole page from a book into an array PAGE, with each item of the array corresponding to a line. Add code to this program to create a new array SENTENCES that contains the same text, but now with each element in SENTENCES being one sentence. Let d be a dictionary whose pairs key:value are country:capital. Write a Python program that prints the keys and values of d, with the keys sorted in alphabetical order. Test your program on d = {France:Paris,Belgium:Brussels,Mexico:Mexico City,Argentina:Buenos Aires,China:Beijing}     PAGE  PAGE 17 >>> print (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)[2] >>> # Read in day considered >>> day=int(raw_input(Enter a number from 1 to 7 : )) >>> # >>> # print element day of the list of days of the week: >>> # >>> print (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)[day] >>>print (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)[0:2] >>> [Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday] >>> range(10) [0,1,2,3,4,5,6,7,8,9] >>> range(10,21) [10,11,12,13,14,15,16,17,18,19,20] >>> range(1,10,2) [1,3,5,7,9] >>> days=(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) >>> days=[Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday] Figure 2.1: Scalar variables and arrays. A scalar variable is like a single box, while an array behaves like a chest of drawers. Each of the drawers is assigned a number, or index, which starts at 0. >>> print days numbers = [0,1,5]; numbers[0]=3; numbers[1]=4; numbers[2]=5; >>> A=.join(LIST) >>> sentences = paragraph.split(.) >>> words=sentence.split( ) >>> characters=list(word) Figure 2.2: The dictionary variable A dictionary is a special array for which each element is indexed by a string instead of an integer. The string is referred to as a key, while the corresponding item is the value. Each element of a dictionary is therefore a pair (key,value). >>> country = { Paris:France, Washington: USA, London:England, Ottawa:Canada,Beijing:China} >>> seq1=(Paris,Washington,London,Ottawa,Beijing) >>> seq2=(France,USA,England,Canada,China) >>> d = dict(zip(seq1,seq2)) >>> d { Paris:France, Washington: USA, London:England, Ottawa:Canada, Beijing:China} >>> d[Paris] France >>> d[Beijing] China >>> d.get(Paris) France >>> d.get(Mexico City) >>> d.get(Mexico City,This key is not defined) This key is not defined >>> d[Berlin]=Germany >>> d[Mexico City]=Mexico del d[Paris] >>> d = {A:California,B:Nevada,C:Oregon} >>> >>> d.keys() # list all keys of d [A,B,C] >>> >>> d.values() # list all values of d [California,Nevada,Oregon] >>> >>> d.has_key(A) # check if a given key is known in d True >>>d.has_key(D) False *.P  HO{MNQXNOPQ 067񱦘 hKh#>jhiUmHnHujhihiU#jhiUaJmHnHsHtH#jh#>UaJmHnHsHtHhKh#>56h>?<h#>5hKh#>5CJh#>hSsh#>5CJ 8*+,-.PQ yz{8 & Fgd#> & Fgd#>gd#> & Fgd#>,-9:gd#> LMOPQRP & Fgd#>gd#>PQXYJKLMNR & Fgd#> & Fgd#>gd#>  01  QR[\689: & Fgd#>gd#>IJK^_nwkd$$IflF$  t6    44 lapyt#> dh$Ifgd#> & Fgd#>gd#> K^./0E/01@pqy0 1 : J w x  6!7!8!M!N!V!X!Y!u!!h\h#>5>*h\h#>56hKh#>5>* h#>_Hh#>h#>56_Hh#>h#>5_HhKh#>56h#>h>?<h#>56=.{wkd$$IflF$  t6    44 lapyt#> dh$Ifgd#>./0E{{{ dh$Ifgd#>wkd$$IflF$  t6    44 lapyt#>{{{ dh$Ifgd#>wkd$$IflF$  t6    44 lapyt#>/{{{ dh$Ifgd#>wkd&$$IflF$  t6    44 lapyt#>/01@p{{{ dh$Ifgd#>wkd$$IflF$  t6    44 lapyt#>pqy{{{ dh$Ifgd#>wkd2$$IflF$  t6    44 lapyt#>{{{ dh$Ifgd#>wkd$$IflF$  t6    44 lapyt#>0 {{{ dh$Ifgd#>wkdL$$IflF$  t6    44 lapyt#>0 1 : J w {{{ dh$Ifgd#>wkd$$IflF$  t6    44 lapyt#>w x  {{{ dh$Ifgd#>wkdf$$IflF$  t6    44 lapyt#> 6!7!8!X!Y!u!v!!!!!M"z & Fgd#>gd#>wkd$$IflF$  t6    44 lapyt#>!!N"s"$$$$$$$$$$$$$$$6'9'Y''')-)4)B)C)M)t).*/*8+9+@+A+_+`+++I,J,,,,,ƼƼƪ|ƕu h_h#>h@3Sh#>5CJ h=h#>5 hKh#> h@3Sh#>jhiUmHnHu#jhiUaJmHnHsHtHh_h#>56h@3Sh#>5h_h#>5CJ h\h#>h\h#>5>*h#>#jh#>UaJmHnHsHtH.M"N"s"t" $$$$$$$$$$$$$$$$4'5'Z'[''''J(8^8gd#> & Fgd#>gd#>J(K() )A)B)D)E)F)G)H)I)J)K)L)M)t)u)-*.*0*1*2*3*4*5**8+:+;+gd#>;+<+=+>+?+@+A+_+`++++++++,,J,K,,,,,,1-3-4-5-6-gd#>,,,1-2-A-B-O-1111111111111111111111445Q6T6x6n77u8888:::ʶ h=hi hKhih_hi6 h\hihKhi6hDV0JmHnHuhi hi0Jjhi0JUhjjhjU h=h#>#jh#>UaJmHnHsHtHh@3Sh#>5CJ h@3Sh#>,6-7-8-9-:-;-<-=->-?-@-A-B-N-O---N....4/5/W0X01^gd#> & Fgd#>8^8gd#> & Fgd#>gd#>1111111111111111122 2&2^2d2222$a$gd#> &`#$gd#>^gd#>222V3W3X3333333444o4p4q444444555555gd#>555555555686R6S6T6x6y6m7n77778R8o8u88888gd#>89 9 99(9A9t99999999 ::6:D:H:q:::::::::::^gd#>;0P:p#>/ =!"#$% DpnV}P'{yY]yPNG  IHDRЈgAMABO pHYs  $tEXtSoftwareQuickTime 7.7.1 (Mac OS X)dtIME #P IDATxx/{t ؐ^,tQAtD{S)6Е&Uһ8dI ;;3<$M$3s{nyE@!q@! !WB#J(pB\ B+Bq%8B!G!ĕP! !WB#J(pB\I 믿$~ A?Ͽ+׮]ĉ?/^<} 3K(M!ΏWʂ drq1-mdɤlٲ˒%K䫯'zEg}V*VBG!>q`}K/ɥK9֨Q~*U*9u<g)^kN{1ɘ1$L߀B#(Ř!C}V$Z[ԩٳgUVҥKɔ)B \4l޼YGSO=%X~khݺO!ho}K7ؔ_|S^~eiܸH#%(8vlܸgOx$OӲa駟4jFu&~}0B98?=[N_̙Sxr#G믿bK}-W;{hn FP2tPɖ-PiKB!1wM?~gٻw/bzᇵL'9s>!CȹsiӦj=^rE&NY4iRI$(P'^'NП_ʕ\r*' !$vP@DZB mZB`@_\߾}UӧO/M4Qa=zڞ3gQ8bD-M4>['>BwL, 73/y敢E|frDe5O'fܹ51bYF^y!nֆpAb3K,RRfbB Y7чz]5(( 3 S\GQdɒRLXlo𳑢@5/^=*IDk˖-rʥ92̗DtPl֬bJK@ʔ){Ĥ{G-I\ZT!]cF-*c ! I ;죠DQ8!J:cf]pA~W/JΝ{k!n)VŅǍ?'9K >,sAŎ"ȝMV:u꤅aypʗ/7o\ NlA> @ je{Z0Df8=bkA'X3} }p:0Bq G^x'cFHB f0F u#,P Spa I#QTK>c QMmj5՛91dԩZX!!$t@̞ץv3ao` Ƚ!{ ]|C` e֭pڵk}>oРA9E7#LNOV:v}_Z!u5hMb͢?x}ZqCutT'Z7y~3=9?&D^wR] ? x-YVH zׯ_$') '<^c6!Bf'ԩSGMBH 1S7UhD LDq?AՕ uq} 7 R3gqz uE;{֭[7"8a#]qַ'GčS^7܈"n7DQW\џ~iD#|Ɉ'p(~eBH:ݾ}{DԩaDMFz}Ν*TZO=XD,Y"Le˖B߈"-qH3gΜ3eqCrȑGXG$H "M4 M6Ed̘Q獈/ↈE:| b1qĈo&"G+W.?_~oQJL_"aH@LwkR@leZb4'M*mXrnB8quSRP+)B͈ B S/V Q]Dp-c,F!H > gυ@x!Cfv) 0o+WN wyGNժU5vxW !DujU[{@dd0bM2%v|̙3GD6*1lDc%"Z,|ޠTRD ⇍7j2@Yf9ь^H6Z(p!US}ظPMHQAd@ e!j29BeX%Aa'!RJDhAqYgC0Ҍ+]FՌ=L=Ն!m{G)W*)p!-/q*"ٳgk!Xt g8lDDUK1ui@{;"-knXh705D$g:LllNڛ4!U " ( e@ ߭DCDMAx1yDNpq]APU?@nB^7<͡CQl2i$ŬLDY#4B^G!?3hڛl"D V!bTC^JIS^}U1:ՕԞy=f 7 :QJ[R! B ۯE$PH<4X-O6#Q=jcF7!D i0 zy>P!?p;뭍Q[3)Fѽvs+8B!E&B\ B+Bq%8B!G!ĕP! !WB#J(pB\ B+Bq%8B!G!ĕP!  k!%X׿cAɾ}< \~]'O.SL̙3}8$`#۷̙37o^9rl(l8lkɱcǤbŊ4iRH$IモիWMܹs8qۼy꫒"E T>([`GVZ%?*Hmٲ'nɓGW[qС<䓒-[6Y|yυ q;z[ٲe)nVN)QWҧOo! q۶m+)S&;v,ͣ@>ci߾<3U B&pjJN8DwլYSŭ_~.]:wbrn/FnPܼmҶm[R<ȹAڴiy[jդtҧOܐh&ؒ((1r.F`KZ#`=glIPPBq.&VLݻX`Nō97q[tڒ=nZۂpS[Ւ%YP]-YT)_q#TK"1cF%)nDnڵU"P%&pV[ͻX7ߤܸd̝;7̓ے-Ţ%JEœ5k֨-^G1[-hKz#nQْ"g͹dͻ@j׮#jIsCjIؒ7PN:Eq8&r397P܋%MA snŚsC䆀qC/ybCe@ܪWՒ&rc+{ڒYdVܼ5bQo)(a͛|jKbV^hK-ič7-Yės%K!w!r-Qܼɹ97clI7nͣ@-ZAvڒVH nh >VKZ;kӦMe͚U JrIq Ɩرڒx q8#n%1r&%sc L䆜čwFnfd8Dn8sn%  X JLƂobrn((19p7<'x[5-iZsy9p7Κs32r&FpZ[e˖9%lIܼ7! ?18ML+DscM}nbdQ[JmLA )nؒV7}G*n-iwA%sCƂbč7kƍjKȑC o)nÈZP-Ntkgʐ!CT$H <6lPq+[,qÍ 9ѣGK\ts`nPIsԩ#lI+ ȦM^^H&8PWn<NKʕ_~4iR{Rn]9z^ȿM._,;v쐗^zI'9 6A (G?ڵKv "_?~\M4{4XԠ ЉV &k)({ݼ˲edݺuZ;Qz)4EQD ӧk[NE&y#xoaNZ,jxtSB!$\Bq%8B!G!ĕP! !WB#J(pB\ B+Bq%8B!G!ĕP! !WB#J(pB\ B+Bq%8B!GCٿL6M_GC9lRNp ;(p8K"""dʔ)sɆ >$B !&^xjQnܸQjԨ!>-KBGK8~iF-ӧO}8(.}jY2uTVFux !'a„R~}YhʕKYn܄ hYB#$H@V*}'NmJiYOB#ġ@ EYpa5kSe^9DsׯP Bm+W}(1ۻw rpVRN-}ҥKKСC>˲_~Z5 q:uȎ;>ہ!ߖ(Q^CtA+Pt].]ڵ[%C 65!GAWB eȑ*j,'O,۷o#FHrl8ZBB8ckРV"*Ǘ|0ӤI#ow}ҩS',Yϲ$čPcɛ7;-HoACJΝɓZe?ʠA$cƌv&!Uı jFb"߂ je>}ckc5k>DB 6mZի6ɓG+S1fYF P իGj GeyQd(pxcYΘ1C,Kl*U'C#X(Anc._yk׮} !D#5l^hhGm>:B&p .s'VGNAm8$I} .]:Aڵ4lPG?.Æ . q*8B<,~A֭+F0QG}$JOxhQ1`IΛ7OtQe&oKr q,Ӓ&Mja8 N3F?߰B /^#$PHX&r-~h^;/_>1U(_j>ks)Mk!v?&Pܹs;v[Yf ,ɹso$y뭷Ԓ$.WhM FΗE&VPqF:t< ,~G ֤IHU| ō Š+t+ޅ D{ץtҺtdn5ѣG}?/ңG(_ǍcZHzj}o S槩R  |r2dn4x`ݼ8P-@6mڤVL3gD@*W# vܩK+b>}Zo&9r  -[LZjie)(p$qkݺ<裚b5d쉪6$Vˆr*U#GJbB}D-_ÇK IH8`?W~GEv% /R2g*JL䆈gXn/.X0n7{*IH(n$[55@_cĭQFRjU1UE%Kg}3qr{2N߹cǎj1%!n-Z’%KJ֬Ye…cy駃rSHP1ָqc8qLRm5"ݷo_=⎱$fpZ-9`i޼z66`vG  D2wrDFulގ=}4$[H`ؒZ$n߄= q{ᇃ6ܛG7LШQFȭwiqCn$v {X{ #7TLc)W[#`*Jp9:u@d#n(Y D#n=Ğ -'qC#|[0H@ n&LPqU +7&-┄ Jc=ĉO#[ҙ -irn#0* čjfrnXКPPa$ZPjI&`zUA "7kؒP^c܌-iL+ Jq97@L֭[7%ef;aP͚sC)0Ӗ$}XcAk7j[ YsnF;Fn7ؒNq8q 91c0Fˈ \lI+8kL+rn>7qC䆡s!ʹ;vL[`KZ$VD^vM%ȹZҖ$ĝ] njKZ2lI+HI(`K֮];R +7#nf!=@q8k.?Dny%-9|H%:Ǣ 2=gzۧ< nѣ ?Znؠn޽z2C{9xTTIr)!s*`D7$AVJ]J,)+W3Ap.|*nq^PT7" HҥevM2EVX(q I $OuIuϛ@> dsBsn%V'|G2|04i4$q(qrB !寿CJڵeǎv!a/^<?\RT"ͳ +(p89|4mTtB˒^*FRr׮]v!C#u]R`Aɜ9?jY>32w\[p$H =|gRbEe/KΝiYB# r+U,X@ڷo|wԲ駟l>BBB(Q˘1L:U7%"[Am:[I04nX/UVR˲I&?H>}$UT69!Glvݻ>!Hw孷Rڵk2zhٶm9R7C8U\r%e9}H%YeIıdɒE * ɓ'aY6lP+U,wm 7eԩCxĄ q,ٲe͛}%,aYevH$ >\^x,2!ܹs_g[ƋOss<ì$!{Ѩ a nǽ+2vXDdGSA \K.՝aM 2Ȼ+Ǐ1h$Т$c (&eʔ8X6Fn PcA gq8pq8Xg=?q<<~"?X:u$ h-[H -޾3GbA9{gQas؏ YD Pl-!GӥKgareg-q7ْ[n e˖sRҡ={;KHA.-s+ ۹sgMdjc̙Sz9!Ĝpq1 nԗ.]oV'Ovϝ;w.A/TN<$F$$0St)RDD 8b+Db&LŋkN({vcfa,I̓\|>;QFjS%'Nh*o Bܰ4NnJqe}$*Ksȡ6MH8` Nm˖-6T^=?GBƍ'sΕQFQ̌\pL8Q{݌%oKR>PH0YSN$B"/n|}ԪUKO~I6m\R˄ ՈqVqÀo86WXQ~W\4iҨz} Ts͘1C֭'>qsN4H$7lo[F c=;UEn0a7@ԩ~;vw˚5݇8|饗o#aZl)SHJj*i׮,XP[[a0AՖ͜93a00rGXeΜk+"7"7mV-:* #ns- q]rn0-97Bޭ lIE-#n _4h9ÇSq97cK $oDf-;SH0FPPqCi0ōw_- %ĭPBsK6m PH@ڒ&V⋒,Y2=QPBq#q;~Z2 Js ;&&$č!ߖV}+VL#PؒV(p䎰% ,(!]X#7L(Auɓo%Cs%37 I-իWgKRqF܎;eAW_}7@#qšs-/nh[}n7B܁5rմ`ՖDf-i%5& DiKbōwq TSPbrnF܌-iWFp$m7 rC΍F=297m 8P*[nϜ!f"rnfB t q1(2ؔ0:[[ʔ)2pѣjG{ڴi [l/( nbxk%1Npc]oܹszs)^| sn7e˖lI,t(n87n?Skp#ŸdR%n ZCƍ5T Sܼ̿/tR->B7q/pipù'oaC`AI8a ˲nݺZmI˒xv!ڵk nQ 'N,+VLw.ׯY6m*mڴ.]H4i䮻%G"qɱc<>q?jQZe˖yeԩr%>|l۶M " |!nGna*( ˚5Z%J7|SN:%˗/kJ%I$65!Gl8\A$(Q(__EJ=dڵ>˲m۶jYM0q'8Xr-&M%2fkz!3g[2e믿4e)B˒ q,S *0ƲDx>/_~E|ըQ%q3ǂիW> Ga,EIr4juۗ !Xϗ-ZhUh oذβdTLbB<,!jcƌ&qDĨDcG}$ $`$G ƲD,ѣGk! v zS=q.8B<,,X -[ٓ#G8 !DHT"CN\~]֬Y#{8B<rohf>Dqɒ%ө1xBa!# sɓ'JBBۊ+tݻ5(@R~}LSEIǀ%yI- yUP=YtiժU+d$q:aCr% Ah?PK2W(n PcAٳg}U^Bn,I4rSnVKM8l q,(_GQTIZL!J Q+U#&$4P }[V^m +DFX/%Y^=ӧZ q6 ~W}s#%pzeʔIx iݺ5-Iz(pQ`s|۷o%&AbO {(pQ C#2OtU$Q%={P&!A#ae=R~صJW^mlӥKZ$lGl'7K2b-&} Kdɒo#$[rپ$!vٲe,lqnڴI>)QD@#qۿtMGCM:UҦMka9(%ٵkW׍$ WmܸQm.(H(p1*#ga9,`IJ;Qرc6xm߾}i`| y\[iРVMRH8c7 .,Yf /(,AfJ |wL 7Ν;,IL4!$\F!ߎ+.\ER'1!82uI>,S֛3aa9r{dɢ?lrKmذA0$x0[,r!C\  &ֱcGI>AĊ 'iӴ 8TÃp[+~饗qM\B;0~zri&4ڄ PL`#n o(g" B{0,{z!D=  V[ eСkN5kfBUP-ȑ#};Vjՠ O#A`NDn͋$n=XVEw`7TK-[V Ǜ TRרQC&X?cK":3gƚƖD/'vVooKb*  Q&!r^~n0  (F `F:6Dmx4mڔF :T J0jKBܰEjմ5  kA Nj<!*nPi-(M4I{`!nC`ĭm۶ڛ"8s3rnF;ڒLmё%q@䆜[ Pc J-9c _0r#}ʗ/ɹ} rBYPF#wՖDԬYn47B܃ZjKNq8g$HCaKGn(n #nk׮VؒȳqC䆂b f'nZҚsjIB܅U0~ 0cܦO J7@#ƚsCfrn4q7iDF;&5*-V[A#1'7XLn_P %,VM+rnւDqؙsGb7ؒh097l3o-ɜ!3"jdT97mV3^mwV "gΜjK1.x׬Y`k+ؒ&qCL( q8+W|x˗/KnݤXb J&Nie' >_^z759OD%MAI8`.\(۶mS{ܼx؀p޽~Ns3$F@97wEՎ^"7mݺU%K&O>"SN - D+pP觞zJ٣IEx79d:ud shܸ1mIE b~izھ}.t ,79AҤIuqÖ7jVRN-OW\a?.}< XmI@ܸw+-sJ~tuRLG^ boT܊/.ySPbč7TG6l({==[ܠp%R̈P]ti ?/ExdAnΜ9`1ӫW/I(}[}n- D+pq}?,nr_ ˗/Wab~kC?gyF4h ǎAO]5( J"ZCY(P?4_]7y7mڤձXĬ^Z|<|Ϟ=%n Z _]wgxM6lؠd*UŽ7:k77%r ,8k]D.\`ar(p8ɓK-d޼y,W_}U-'Nв$"@HlA3%ʨ,~RB9s >\zK޽{KB$I$61!GIݻwCE`~?S>AFvܹso-Eӧ>}SO=%R7 $Po={Ǹ{Y@t)ReYpaܶl,۷o/-[ 2hGǁA6o޼84{g̘1׌e9k,:t̟?_-Kl۶MH˒ q,W-qv EXʕKhѢ>?{J߾}ղL:uC#) hI;IDATQG94!'*r>˲UVjY&@ +X;e9{liҤMVz1<^};1 ^9sp[֬YO?T4h,/q<8B< ,Kؓs5rܸqr]=g3cm oܸZh xK.ѣGիv&!qG1ᨲ|7}U)/7o 8B\xQ55^C6B<&ٕDCxm>BB#8B< m˗/זZ²f͚,Y2_̘1C v/Ø_|SRq*8hث{%9l0mӧ{NL}6%!w8L3a]`IZJ Ց$k$;;8 q,/_۷kAWoQ.]:ɞ={g,iӦi;ՒDO 88aڵk{ަDְaCY cIBΝZK"čP@ٿ̙36}@ѷwT?gIbal|$_B 8 .+X#7ظtŊDgI(QB\MHHG1Ro݇ "[rMÒܳgVI[ȷa,!^GC*EW_}voݺgIiF74E$!^GC%9ey뭷t$,Oz)!C pap}xBXmگ_ $;v ]1 @@#!eܸqzrj ÇСCzpv.!$@GnK.}o)<]YhF#ALj*%'L F o>)Ͷ7 &h !_ܾk3f<mذAmJl^ {2Efꓠb nت{NZN<)}ѷJ2B!*qϓ;or97x"M$ͽSLy ~q&1n܌-i%ZF2X_xQ\"I$P ݔw>qâJ >pl{'MTE?XD2 Op_pAϯFܐsC+,͘1 2D;$nr&MғW^"E8&OfjIw6\Ǐ?'uY2e$݇JB<2dGy$R -\ D+pXU\Y?n-_!*q#xY)–DA }Uۑ#G4ς(WbE؀ >W$Mnݺ7q&nSBgEΝ;5]QB؀7XֈaWf˖- D+pŖ,Y}Yѡx X((y\.]ƍҥK [F*(A?Z|iӤTR[p!+<;'hqcKǎeٲeRZ5޽?r V[w_tO^sp(0a{7A$zٺ+ ^EԆE "uO?daoTO2Erm$"~)X< ob mvNiɓDv 8yXbpz̙n[dCλJH,^ě5k߉m!L.jBq%8B!G!ĕP! !WB#J(p8;i!GCN˫V=!7C#ġ`M66ʦlB"C#ġ`'N۷iYPq0؟ pΝ+7+WҲ$?(pؓ7n&Me-hYC#LRRN,;t eI< 0aB[ [ 4r^5%,8BJ.Fmub?X/,'P llF*UhIڵ}e=r޽rUr '"""A ދ(P@ƌ#E#Fh6gٵkO*T]'GYfx@葃[I6tI)"}UqղҥM& "!nGHlj%↿ATBe,{W(Ӓ+W.:Bspxl~z0`|wj[E&(D)T݇HH`GGA }pӧOITUhBgOq28B<,I Tm hV̚5Kjժ[𰊒8.ψaV%\,^sm3f͛%tt(pı ͆-cf[ՙ3gtj `O†D SMI*@F_-s@u>zDĉ9X+WV6(pqЁ4gu 92Ѱ +rРA,Io^{q#8(s rt-_%`߿ϒİ]JzBx q>wٱc<]`$;7Yco8(n ۴inzɵkҒ$GC1# ƒ7o>}gIW%IW n#FlKXO>GEA#o ڠMKA#@cIbo5j|d 6mZyǥo߾l&+Pq8ƒlժN%IP01[yf͚v!&8b+rG<Q޽;gIGL (p6proɢE$bA|d„ [F v@Ԯ]dՒ;wnI,Y@؂#GȐ!Cѣk. TLA0c3fL}ȑC'-nGkO 1F0~z n׭Z$>9r$ō`%̙3 PH0f8aKRp%Т$ĈoB+W(( jI Fq#rn +[ -Jc$\Ǐ"WdI ^%[ !%&LՒ7B܍Y"r۲eL6Mr֑gS?|Va6ě?o\xFnN7pKҥKrݤxXM0AҥK-?SM/}>}ZΝ+ {[J lUVLAډ7ٻwz7P"7-Z$6lpM[ ċAT/;wN#h>x PM([ʔ)c }ҳgO.8l.]e+VNn܉)wm+x w1.uvNB!N%RB\ B+Bq%8B! 7M}}IENDB`nfCi[-ctaPNG  IHDR=gAMABO pHYs  $tEXtSoftwareQuickTime 7.7.1 (Mac OS X)dtIME '#) IDATxU *(MP,I4ƘfL5cbEP X" Rl "J~]2L3ù>}f)v+cB!3%:BbݶqF۾}{Q'E_|j֬i+WbŊuO!cǎۤIl۶mVxN'$-[؞={v[r:iG∀pN<ƎFQFVdISQ4_ۛoik׮s=?O!(${υUW]e'|<tR4h5oA%J($Q$BΝ;3Fvکv6Xx :[nMPz=<Η_~مo߾Έp<͛g_~nʔ)S:B2jqFDѣqݻ7-y ! )3 =Xpj=tN)(Tp3jժgӦM%fѢE>8h…YlٴN)(4tDmǙ(x()<BbV™\`B)(0z jϟPmBt!޽{p{6"h:JBxW\qOG)]3 !3gΰB"S4+I8S(A8yBHER(3{y !ByB<(yB\tCQ S#K)Td>NMGI"[Gj q֪?O!Dl߾݅sիx≶o>lٲF*T$BC~cygoM4II"Hb~~zٳ<"Bmٶa;묳J*f gDA<)S߮(SqUB͛7[zdh# Ichɒ%Vn]$ Sq[Xծ]4hP 3qDCC$!+#].O!"I$B!DH<B$x !I"B!D)B$S!HB$O!"I$B!DH<B$x !I"B!D)B$S!HB$O!"IJup{nۺuڵ.[UXʕ+W)QF)HI[/lٶxb۲e+V̅Av[H"W_ۼylݺuw^_RZjvI'YΝGִiS+]tZD "Xl >ܞ~io\?xU{Ulʔ)`[n-ZX%:""H<)æMlܸqϻp֨Q:t`:uPm]\Nj&M+W/l*UroaÆE""H<)l֬Y.qVZպwnzvi>P@ԦMDG{_~ "H :'Ols-ZBSy<D7/ɋ*J"g8NByY) xy+B)<^=DsϞ=}9xeyA)O!Das6jf{/"ã Fزy)xVsdΕ+W4TNi>B}96mBG9m4ꫯ=c؆ !8쬳T<@~Yt;͚5z©SԪUڴic7va|饗gn:{Wl„ YfMk߾}"{p.[F} -ZUãdQ'@!  u>Sij||.4haE2eezJΝ .]EdMp=G5#_Mx !RzY޽]<'N}=}Vn]_/=K]vv۩Z?IÇۼykq~cQ)B gmv}w\@O~qx?|۷lm+&p'Խh"={ϩ8pu1cTG)H)A>VZ̙3m޷I_(Ɲ)-gyyN]%pcY{xS!" &8t '%\!Z>Iq*̙ | '7lm۶+V؜9syBџɑdխ!n2d-wݗ9L@z=B\,xA8 ?^yǜn^' !ȖBr ' 4gϞD^vIEy !p=aÆy6'!,:ljp26ִ H<BݵkA}j٫W/_M($BdN06SS!Ҙ8ljrS˖-%#S!ҔqxD0VB4$/QvLpB!a?Nv Z -J6m|zÄ :i";;wQG)8{v֭I?٦Mdh# vZnpO!!`T͛^z2={"QG)8P F)ի>}oݩS'SNQ'KD"m/mСo[ǎYfO/$B`ҥ6l0{7lͶm6ۿQ'KDy !R˗9bN(VXJDyB%… '#Gښ5k:I"Ex !R]vࠧz&Nh6l($B)H)g-W_}^{5ϽrVdI۲e#DAx !RM4q1c{{ƍ[޽m6fP! S2 ͳSںuB vXu敏B0x !Rرòg}.";䓭xNQhH<)آE {gӦMJ*VD UU@)HJ*em۶mŊo!O!DʀYRNHB$O!"I$B!DH<B$x !I"B!D)B$S!HB$O!"I$B!DH<B f8p@"B4'>,c%gB@4\?aÆYM6V|N#} Bg{ 3js 'O?m͚5n5jߧ O!DZ@܉'h\rܹZh?$Q88oN:餴x\)H J.m]tVZI]Ջ:Y!Q8 |ZlѢEd;ӬN:iO)H{0ժUH ~ :6l Fe[n{z6޼S!Ddγ:.2Z{6h [lmٲ_=bH<BdIp>Svg7}SLwyGWB'q: ٲe˃իWϺvjW.q$ ޽ۦMfׯO!ש Spf"ș̡s9DžI&.?~֧Or|!۷۳>k?t, єk׮+VX}$1SI's>Nq g޽]@Nr 񴃅nvI<# n'|תͩS?Ү3s!Tpq2V]|o6#у:¸F7ήꪃi:Jx(DQJ8k2e|@ɢE|]`y޽tEDO6^r!‰lj`3襤xj:Jj xra@Ʌ^袉qF8qܹ._I PD >%K4h($S}Etq9_< /֭UT(8+W&O䟔OZV!t8%GRJe]~VJ "0&M>Nj Fʈgpj:Jtg͚5^йsg;|TB"|=- )!'} o]}'j Z8A;x}a[>yBgݺuֺukիB$pRQR(aw C٨Q#Y?,^ƌ),8O'M%EQ>1aÆEQ@fΜ˗pڌz]{>AD@t-[ 6ەh;v30ExK,{bVytw:]O -ᇿoi&_/E4ߎ;8)-BDN<1 }cqJ8ڵkmgӦM; h&r x%+Vݻ[ :90 j)G3O:YDa@ BDHОB )BO!"I$B!DH<B$x !I"B!D)B$I$IB`8 ,_?,RdUV-_ըQ["Y$B}]0a}嗾Ҟ={\PK,sծ]:t`ݺuf͚YR:"BH<)8g:t 'dU >ӧۀK.fyA)H2}Q;viY3SO{6nh|͚5cِYkYܐx !RD^qƹ{v[~|;:TU36l{QaÆֺu~$B?)S2k׮vwzfAAlN'AlŊ6uTB9^["_ln|7xbp^Tܐx !<34![]z.y\Ez#B' #+1cݻw]>O!DZ@ѣ}n(SUX(oN8A^3O!D>~{jp2%N;4ߪL"HiXuk bomٲó,w[˖-5S$SЧ9~x{?ՇXwv-亄!B$Q;f{'mܹ'[p v'ZR:"H<)ի(_ݻך6mj7tԩ;_$BrJ,Ķco'a[E)Hؒ 󩧞˗w:tֹsg\rP O!DJZ 6lXp:ud*T(TB+ !" ̜9?ꫯ|֭[wS6<=9:Ϲg~b,0a„mrJ*>}?)QG)<_|}uV{I b!Vxܐx !" B| O~_1&*Ahps=SQ [ooM4iB_E'\=3HBj նkΧ =v'[Ϟ=3#;H8y晃{z:uꤥpSDN1Vy0jH9T(BD$Tq&NGǙ5:'( B6Q8V $Ty& ΃QVd5%TVAq&NG IOJ8FvqԒ]BB0/{ZjsFH{'q/2( p Y!qԑ(͛7W;رcXbE҈yf?(D)*2ME瑃PlYÑ +UݻO IDAT%zi(ڊ+lLG K8󎬑8jҲnǩ>΢ҥժUveW_ѣ5jH1qlW t!$ !^pV:J@ ֭tUZ>}k׮~D.]&N($VБ>dW_}AG /F ׅrE4OgB'gchң ڵkm̙֩S';= ~1pvةj[l3-8~'6dȐ pY'^t2e|~#AhsNг:Ky@}bx}۷'Ffp8:tQ Y(tx?c^4-PyKZ͚5p[~=hd<#i*T[p"gxիWݻ{c]ԯ_C .5j؄ |ĭDN<AB^XQ}>G-<B4AYxH<B$x !I"B!D)B$S!HB$O!"I$B!DH<B$|BX{޽5]K*5Ex !R 6ا~jfͲ"eZjޤsp !"Bw>{9yf۾}{lwXs1ְaC˭wVnݢNO!Dʰk.v~?#ۺuɖ\ƍ ,ŋmfM6-ԋ(!B2c :tM6vaY:qz}7޳+Wȑ#|vwyF)H -[B;؞={yv]wYϞ=RJڷoo\p=SO+Xfͬo߾"74UEy:?39s gʕ{uVZ|A٦M?ou񓈨 BD;v؇~h_|}I'ygժUŋ[FOgk׮B'ر?r)֤I>;Ce-0!Syʖ-냂ZjSUϙe4.bʨ\!SyăLfʧիWP"/H<iUK2uT3 "a0+ ]jM<ƍsdP=SH<) +=0ۼۭs>xH"B4LAϽ{G rH"AYv+QnΝs:}]yK/;N;NO!DJclAI)ͳaÆkfWerwK@Ex !RnVX1oB,}UTgyB'N۲UYBd !R3d!xM6 .,d!B%LK!ۺuktϧ!B-ʕ=?(>ׯ_Ш\!B}B`Do͚5yf_/ OBaOaɾg."7$BC)'-[W\iGI&ٞ={9M}{'|!`qK.j׮}D.¶BȃxYgYϞ=mɒ%tR1cs=6gҥ>@y5j!e>}XN2 *%BUz 5n=*0ϹqFߦC| `_U^CD"e[]lfr1e-\OG45/H<BdKp9[uۈ#죏>yNkB, k 0dd-[M0Ŵ[nv駧M6 Bq9f̘ ۾}yuڵ~4.]xVQSqZliwﶯچ 憕pI'+4 lV]tikܸqF!TS3H<Yrq@ G֡C8@ t]f$39$B, d>Y~[L2E4O}:BG)ȒEك>hg>5jŋ:Y"zz.UTY$BCضmc9w\ ԬY3ֻ,O!DT^ݍmF:)0ڶ|.!+S#ZhDSZwK!yS!HB$O!"I$B!DH<B$x !I"B!D)B$S!HB$O!"I$B!DH<B$x !I"B!D)B$S!HE!8ر}1c/^:t`m۶RJuDx !҆X,fӧO>C+W+I!B /#Gڔ)SlϞ=VX1T!E}B`˖-6vX{7\8"?H<)Ͼ}wu\n]Q'GO!D3w\1b͞=[aZQ(H<)ڵk]8'L`˗͛7/d#B,mN8^}Ucǎv 7 'PIG)HYfΜiGQ͚5J^($Bo&Md*U+."+Y8p'"Srl߾^yk.ܹǪW^I)SR0ƌc+W>ۮzj^(,$BbG}dw x !R͛7޽{ /={Zʕ:i"Őx !RVz뭷_7Z6m<\۸qckE#Bs̱QFٗ_~iBh%:i"x !"ϪUlo]v)+V,꤉E)4LEy}!tõxYkW>;ɢgBH3k,ɢUTXoԩY?o<۰a}eǕ2eXҥAvGD)4+Ve˖m֭q<OQ+2:?_®#~M$BHh۶m * AL˖-k;w,"']Tbiz>RÏ*UuԒljpqIg"ˬTRQ'#dd`PBCH8$L+O!(,Ǚ}QV!DC}MQ!S!Pmޑx !8$T(9#B4'>NjsF}B$q࠼!S!ҔKmJ8S!ҐDD4:%yCa[!H32jQ!B4D Bx !Dp߿?cwU$Bl)^D="˵rPx !>7ڢEatA8.]jk׮%K~3- O!!`lTbs̱;SEGrΝk. g!Q," 6md+Vp+#mx b zH`H<Yi:0hHB$F'B$S!HB$O!"I$B!DH<B$x !I"B!D)B$S!HB$O!"I$B!DH<B$x !I"B!D)B$Iy={ԩS>+Wqgv5kJ(aӧO]ZJ {˗իmٲe9s/{8pVZe/U\t>s͛77|h"P]VLCߵk-]֭[g_+-D"X>s/3؄ruH"T G8qnݺOm۶+ˉ'hW^yHmٲ^|E{ꩧ\Tb-Z8,:!y{'aI]G}d׿lΜ9}euvڵȑ#5jUW]U(#RYf?lM6UJDo{q0췿=CVbE?zVq~=X޽߿߅jժv{ f6lwAyЯ(E?d֭: sH/D1'_i΅ ;w)}ܣnݺ~_cw 'ǟȾ}//kԨ-^دx :C_ %KޑwÆ =͙roBʄzy!y5io޼թS'тrzӔ u#o8%ԤIx`(k't7GE>ou2K#cɸ7en"1΂2G,R()&hР B9as{Eݡœ ѪU+/T?/o Pi9h / Ř0~wQXgϞm_\D."{wR!D #N Py+$'|b %!NDžu賥rr-^~湟}Y4i?Wv|8&x~D{!_~͝;Etb0F G}i@ 98{O?|D(=(1,i?޽҅A0Z1`gBL}!yʻ@7e T #yHvmgvw:u4P 1\#lE R)6]2dqm ,!wu4_*^Ry7B ]zu7c_~h_.RoR?υS\ES1ׯKCN{2 ‰0Q"t ;ƚÇzT]wu.'-Is*'J )SO~9RD",x|4Zx #O3#< x="<3 /ꫯvCD{~48ɳxphCaѨ,uO('4$eLcFe-PTETrE}Ґ~Ө#BC4S4n#sO~_~.P@!?b"<pƕќOE׿vW^ނACX hZ2Ѻ~TIK6x?~'"4xB?! A,L5niq#^{Wj1'TE>PɃ@lx4<4B<#A ^7aXNA^".xxbaoB8:%4hFy6BnT&q"P>)Dh0!J428ڞ2@Y!DX8$S:(/|Dj(omW{>#!Bi8^ ekѠ|a[$ o M(a0)pTx}&H(ҿ^pzx[hBQC# {D:i:49eyg}7C IDAThfYsy^(I.9\ g#u?w"MCAZœ%^2( W a3hȢH7IÔLEPiTs]P)\/`.듖tPOO1'P0)@*S"\9e≷E}bc)0CN3Cdp?Ds-* bgB*"aG8{b7Gc҉1'1>-{ ^$-d@\Y44AJ3L44M<+*1\Mk:zIK(H馯VHх;x!B/QxBc(S"DyDX)xzSZ%K=\VZ!jKtQseHi'6Ri{FÔq/S/2`(gRGuM <<8!@of[a3€@2:?Q_XN8!RB+Ĉ~<'t!̄<%l… aP'*i/*>'!a̘1x44D B _؆e{"\넑&_ V<[ 5\ B\CD tPC/3 ѣ 42G%(gC٤HT$qx'@Q'N!4F)g <9>c|3>VK'"S0M2z]B<<* }m̥bc0o  ; V%"T~>cAvTBŜI<> y/ l(`d&vh2_ѭ &GHBD<߅>H% "Jc DH;G|# Gi| uX#]uCxCxA" A8D#_ -0&?IMD K%9+;bF|#=0 qP6P/@fp5نKq”:29t _'"d/1f&һݛۢ !2e 3QDd0aG >#4Ph%䨬 HpR8V,1{Q="T4ĖJwPKv Cx#ktyF%}#Oyf a"D !݈Yy]v L`vlBj(ѡaC#Ȅ`i1~k砡C#00F&z0T]V~w@9J\Bи#DƼmR|! PN)OFBKg,F}03DQH5Ic,D<@~DN4&vOX,t:0BGd-=<5UX:c8-w`q d>;<*(IAbp=Z B?BTq>-f;H#N9kRY9v5uʳg5J bB1>_D Ox|OHOwH^ FXg\c4 v<[B;(h@'n*Pte92H/!$KἬ%Qnic(4̱/oa P>TigS6+a6@(q~xBDKNadg 9#< KfZ\'dM~81ḬҘLzx!/s_VOaB Y]fNOv8䗄3zd6%aN&2cW|uںDSПf>"қBO! ct#Їs":thZ4NVp2›n/Y$"H<ia{=~gmhg[(l+H+> pb >L,O!"I˖dB!D*#B!D)B$S!H#*M Ku,EtaYF s\gUd.8(Y/ɢ,ھ9[K +-)ɲVBZ&om+쥉xb*:@6x}[4!,/Df́=00luC 5/v. ϣ‚&B4ugϞ^0,L$F |p~П}3;Q'6jfa+u_~[X0,E塠EFZ.x_a˥t VRl,϶Nl=&D"g϶.plsX1?-%1R¶u4 ^imĄo9;hh9yY5K.eSn㨄[jT#% a[8;`ws8,I3~! ,(ZCa v-`#d Bi?{![&#c]k [o5{lMǾ4Rڵk~ƾYH'l}$%3ayΡܲK&KAOD?Q[\=)y,7%86<[N( \C,y+p <FA&^D`KΤ#=oĆH߱: Ѭ0s9{ҀUXn:6x?8O>ɰn^y~vu1 a?bD2S֎98Gi8./U\9/q{ {gu<  ,{$M g?;$u/-^*N{1+HҥKgu -/#A=Ҍ1Ek"ikӦMu(g6ehD??OUx^믿y!_j1{8<4^=w8WD1+8TJF' )t!}|Dv}9Tjwuk*3BM $L ~A!>R/F'e6PcveE%2K-u:O}2"ZPƨ3AHR0r  Hf0H& CY6=/E]e{SGhd?ؘ 9Ө'ϰu\>y=vԨQn'İG> 6"zH+|&W>Oƴ:v⩧r"L \]d N}E0>GY;wwC h0%Iץ^^ebes!:\eNЈ/@d?:c_<6Rb)ָqX<p?7^xcL-_</x/-ϜX\^ @ c,U?fx_h,^b 9rd,*ŽXŞ|XWX.X\ :Bl2֧OXr/o:xxŅ!Hx=#K"oz5,X\ccǎŅύzlҤI~ƍcwuW,.}yސ}<{_|EOoDd~ɋ!Cx>~~\=rcxP ^,nb WXǎ=!n(b7Nbq#ظX gV Eo, M~u؃>6?qotzىi?c 6/q#w ?MKZ^{_$n`cq14pX:@:9ދqlN\bn,nbqzW\qюկ_:];nsoRieG\,x9>X\bqƽX\&ą"VZ5 oy裏7.a)Sd<;?a,.n` s6o<6xX7o7d2Oƽ@6K.ݻw,`ƍk֬xz\^Qx^4Bz_ Fcs#}etqgўW9w"È'6c !Z>Y[rZh0Z|nPh=ZyHO:i {Mhq|d#$  ^tvmbC-M 7hs,hI?}F-- ?9dZF#%-ڋ {?^_WoY-_,*J^pϛ<+2i$Oil?xʴ~CHwL)s/Zy<'eI>r,B+ xx<ׯkʓ8<1 ADCJAyB%7޷;^q^P7(D!zBt7hT(W{W{ ec`sBD5V ql?e7`ϴ?&ӡmR7K u"ɇ/xمj#|x{x̜{ JĆef "| D_(~& <*u !^*S0^$޺P2Nw*beŋ !FF T9)*&'g9^8kQxGAL! 00= Đk'\;5 ns.X~j@aR@I"_(CALI G&B$ӄ<"M!=<1fɨ''8bd!# !`@1+!yb(=Z}s6B1Y'垺A2t)p,D`7FS@Xg-sLzB?Yv  pDx<CFP܃:} \ L^M[{cKi, 9"Gw'|ap8F;y864hض G]# {VحPqdr##̍Bbor-GHgMʔғy…*x `2 (FsH4%FlxL"cyP)R<+~cp,w(<׿mb) +C97 'ƜJT~\*a= #!~ߴ BGks>Cc;-;G #xL Ƈ< -пI'yhwGޑV >D >Cl>N 4[vOBΔibNa/(Ahi<"4~NGH/!R7 6"y<B؝r%O?OZqvIC_nFcx.<Ɛv+,/] YI#vnޑ&~Gsll|-' #ID3ùTy$Bsd|V32 # %)ΈKVS"`AJ5E12Ao10|D ܋sM#̥"B$i^ "*P<@B 0F; p_f(\xN? xbB^~[^||"-Zx3}|OD "A7M"@uipl(6z=1L:؄<=Fbۈzv 3a0Fo.-+~MDۇHv;|taw´D`7Bx\4*RXP M*Bψ* a*?*ұ *k&9 `]`2( rhY)4vi̻"$e@`ytHjM<rr /ɻ Dlu d膑 a$l1QF߇.k( а#,&n/S.5l"Ç(Q{rvI061A]˵h834Dΰ=v1%CFL=Bhv;3*V3!wJ%˺"P@0؄rK4+.eSw0W?ƕrBCc <p< ;FS)LR1vs-l 6'q ȓND{dg \ 9uS0 ׌ :F{FDh`,4(p8f]>b녁J @ v$ p"mfCN!"l]Mof+ ;ADyKdy6vC!maMZ 9pyP^,|!"Zx@<F0&-=^q~_H$> -Fʁ+„a +s>5xAx<*-U * צC\N** KD 9$ ^6i0.*g .P"i/riQpσGB0iqLPV$a -  <ÀՃ06/~ aJ @?5{8Ze "`C(. $Cu匆2}XHpPg0anno*!#ZD2H]]A$?u4\c' DA v2MGҁAg0 i uBXxKsM o {=q{&c4qzLLjNﱇaÎYqb>;2=–p;ۻܶa ג58E I\amH>rfHy@r^,׬Xb}ɍDovوMmq ]vPy[,}mH5}ŘF1I; ɷtik^|vvlB=oOn9c b-['͵գ o>̭9y8z*O7ϵQgVm61PqCc'ϕ|\_Z߰Aι>sv|ny>2W䝸co>7.%ҝaO׻ b=* _s Q8['e$4EdgfB$f,8~(~G۱(d67s)#xX~وe4dM8ϣu>ϸ/DOif& LTMoF<+cA4:YJDux6n_28ϩ.IpP\e.E`8O |alF HgvD|mU|]Gq'I<#""NxFDD$񌈈8Iq3""$gDDIψyIENDB`$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>}$$If!vh#v#v #v:V l t655 5pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>}$$If!vh#v#v #v:V l t655 5pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>$$If!vh#v#v #v:V l t655 5/ pyt#>666666666vvvvvvvvv666666>6666666666666666666666666666666666666666666666666hH6666666666666666666666666666666666666666666666666666666666666666666666666662 0@P`p2( 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p8XV~_HmH nH sH tH @`@ NormalCJ_HaJmH sH tH DA`D Default Paragraph FontRi@R  Table Normal4 l4a (k (No List n@n Ss Table Grid7:V0_H0U`0 @3S Hyperlink>*B*44 \Header  !4 @"4 \Footer  !.)@1. \ Page NumberPK!pO[Content_Types].xmlj0Eжr(΢]yl#!MB;.n̨̽\A1&ҫ QWKvUbOX#&1`RT9<l#$>r `С-;c=1g~'}xPiB$IO1Êk9IcLHY<;*v7'aE\h>=^,*8q;^*4?Wq{nԉogAߤ>8f2*<")QHxK |]Zz)ӁMSm@\&>!7;wP3[EBU`1OC5VD Xa?p S4[NS28;Y[꫙,T1|n;+/ʕj\\,E:! t4.T̡ e1 }; [z^pl@ok0e g@GGHPXNT,مde|*YdT\Y䀰+(T7$ow2缂#G֛ʥ?q NK-/M,WgxFV/FQⷶO&ecx\QLW@H!+{[|{!KAi `cm2iU|Y+ ި [[vxrNE3pmR =Y04,!&0+WC܃@oOS2'Sٮ05$ɤ]pm3Ft GɄ-!y"ӉV . `עv,O.%вKasSƭvMz`3{9+e@eՔLy7W_XtlPK! ѐ'theme/theme/_rels/themeManager.xml.relsM 0wooӺ&݈Э5 6?$Q ,.aic21h:qm@RN;d`o7gK(M&$R(.1r'JЊT8V"AȻHu}|$b{P8g/]QAsم(#L[PK-!pO[Content_Types].xmlPK-!֧6 -_rels/.relsPK-!kytheme/theme/themeManager.xmlPK-!!Z!theme/theme/theme1.xmlPK-! ѐ'( theme/theme/_rels/themeManager.xml.relsPK]# XNl/D0)['= 2+,-./01#$2*&34567)8XNl/D0)['= @  2x %%%(!,:%15P./p0 w M"J(;+6-1258:: !"#$&'()*+,-./02346789:; !(!! >/Xb$}P'{yY]y V=xb$Ci[-ctafJ@H 0( @ =B(  V  #  "? h  S  c "?   h # S  c"?   h $ S  c"?   V & # "? h ) S c"? h * S  c"?  h + S c "? h , S c "? h - S c "? h . S Ha"? h / S c"? h 0 S c"? h 1 S c"? h 2 S  c"?   h 3 S Ha"? h 4 S c"? h 5 S Ha"? h 6 S Ha"? h 7 S c"? h 8 S c"? > : C A@  0  @ H7 O*_- o 5K7k8RXS LXSOaPPNPo ~P- *_=>>IJH)I#E0 0 ; C Av@.03#]1{s/s/L o ,(R.s/v.s/DA*F*HXIHI#KFKLo9XMONkON%`PHQRqR@qROREPQ$SOGSONQON;XMN<4M=K=OJ=4XI*H*F>F?G FGaDI-BIAI#3#z <  ? YY?.bRectangle 1vHU UHUTC" @~PK![Content_Types].xmlAN0EH%] tA% T0'dly'-XӸ\AL:}^HUcd`p* VCLj__'2?첋Y%{VA!< psșk[1ool>)&a8}/PK!#j _rels/.relsj0 }qN/k؊c[F2e~"Kl`0;1 (6{PF783.#c(Y ̵W͘tT0Dlm#]ڀzgͿ0n @]nStLBS%M=lݑm7rf9`5Y4Բ~G>~WoPK!&drs/e2oDoc.xmlUN1}^6WJ"D*wגvm~}P*<,3gfN/"yiOzM.u9?W()Ō> O/?T LeT.A;;UveWfXa,Y,wli3.p=H)~Qn‹@Ԍ".}7ٴtViȢfRc% l#T-3ᄛ:3E!H5~U5Yj8a/,~uD%h@cT#<;Z[JXpu*>AtTP'is؆pqUÌ:4|%"΄RL?=4b p%wR90Y2ԡQ{_\f[=8FOEz5Oa| 3 *H( N01k9S-?t y*Mv3:Fk ^0Ubyp F٩gnq;_,&$S;LJEv6٨cԟ8hCJr :' C_cVI%uMیci8:eqEɟx=vxW^1n#A 7ʠC=QR-}QJ 2'(Q4Vc6$a4* VCLj__'2?첋Y%{VA!< psșk[1ool>)&a8}/PK!#j _rels/.relsj0 }qN/k؊c[F2e~"Kl`0;1 (6{PF783.#c(Y ̵W͘tT0Dlm#]ڀzgͿ0n @]nStLBS%M=lݑm7rf9`5Y4Բ~G>~WoPK!J drs/e2oDoc.xmlUMo!W@ܛg[#7VJiũr,;}kgTufaŮVI8/Iɥ.gէ3J|`:gh1Ӌ[;S GDhf畨?1Vh( jpte;Ze^4[ge(EE jF[HK:MKl%y(j&5=Z?\Ւ;MN3Sd)&;Gd>J4Q{tDxOaw=ylcY]!OF Oǟ~U͌:4{J*E 2T $^ǝd5ޕKC_Iߋ_b8"f[poDZ)w_oF!.a~à *H( N100)+O8&cԌa" KJ*1<Zߒ3q8wo]WMm&c"M|f[U3?jelA!%Mu{\1e+քцmC 9:eqAɟ1x=Vx˯$rf>1F,nʠBQR<ڃ(d C~no1Fpa4rt^PK!~4drs/downrev.xmlLN0DHHZڤ!N@(p%iYNpZjm 8ޓ2zS^ Bd |c]u}U ṉ V`c )Ck#{~r::i&}p74I6鞸,_)iu>>'/:WfqP11(Xl<t8(XgY*PK-![Content_Types].xmlPK-!#j ,_rels/.relsPK-!J ,drs/e2oDoc.xmlPK-!~4kdrs/downrev.xmlPKwB S  ? M NOP6B!."8##$1%2+-$=t,Q&t-Q'Yt.Qy#t/Q$t0<y#T1y#T"t;QR<.$Qq"t#Q%t$Q%t2Qy#t*Q"t&^""t:B=.$3-$sT44y#t5Q5y#!t6Q y#at7Q"t)Q"t8Q"t 089C19y./<Csz$$z(((( )U)V)o)p))))))))))))).*1*2*;*..$.2._/h////////0(0O0Z0^0x0000000011,111E1J1S1^11 222L2T2s22222222GQ J  RV\^ 091:y<DY]s{1 !?!}(()))))))))))))))**-*j*o***++++++,,!,%,u,y,-------------..#.<.F.b/h/r/y///!0%0V0W0s0t0u0x0000011,1-1E1F11111111122L2M2222222::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=C3Av'!|$;f 6@AT~EF܁CP]$R8 wKDVi2x))@`2@UnknownG*Ax Times New Roman5Symbol3 *Cx Arial? *Cx Courier New;WingdingsA$BCambria Math 1h''3X# K3X# K!4v)v)J#QP$P "2!xx ,*Chapter 1: Scalar Variables and Data Types Patrice Koehl Patrice Koehl(        Oh+'0% (4 X d p|',Chapter 1: Scalar Variables and Data TypesPatrice Koehl Normal.dotmPatrice Koehl2Microsoft Macintosh Word@@{d&@{d& 3X#Gl#PICT#db HHb bHH|bb !! Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣk-ckZRo{sg9g9sswRo{Vg9scs^o{kZo{o{ws{sg9sZVZg9o{^csg9so{^ss{k-VkZRBF15F1JRJRRcF1JRF1RF1kZkZJRRRZNsVF1cNs-kRVNsRJRRNs9Ns1JR=ZF1JRo{kZ{w{ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ Ƣ{{޴U"VNsJRNsJRZ^^kZR^F1^o{^Z^^RVVcNsVZNsscVRVNsZW#o{skZg9RVg9kZo{o{co{^g9{g9g9V^Zc^g9^kZg9ZwkZo{cc^^{ Ƣ Ƣo{sskZwsso{swswwg9wo{o{ssso{s{wsswg9wswo{kZ{kZwwskZswwo{o{g9kZs{cso{g9o{wwsso{sswwo{ws{o{{=o{g9sg9kZcg9kZg9g9ckZo{g9g9^^o{wckZsg9ckZscg9g9sg9kZo{g9g9kZVg9sg9wccg9c{kZcg9cg9csg9ckZkZ^g9cg9sg9 cg9kZkZ^cg9sg9s_{{w{ w{{ww{o{{wwwkZo{ZVZVo{cZV^g9o{ZV^RwkZc{RVVZsV!RV^o{ZkZZ^VRV{ZcVRg9kZZZVZkZZ^c^^Zo{V^kZRZg9Rs{{{s{{w{{{{{$o{ZVZg9Z^^VkZ^o{VVkZ^cRo{g9V^cZg9VR^ZZ^c^ZsZ^ZskZZZ^Zo{VVc^Vc^g9^Vo{Zc^Zg9Z^Z^Zso{ {{{{{{{{{{kZ{{{ kZ{s{ss{{{s{{>sg9ckZg9g9wg9cg9kZscwo{g9cg9ckZsccg9kZo{VkZZVVsg9co{o{wkZo{o{g9g9^^kZkZg9kZo{kZwkZkZ^kZ{Vo{VVZsg9Zcg9o{kZkZkZo{so{o{wwso{o{wswsso{ swcg9wss{wswkZkZo{so{ss{sso{o{wo{sswswsskZo{{wsw{o{skZso{swswo{sg9skZ{o{so{sso{kZo{kZo{wcswwo{o{ckZo{{skZo{sg9ssg9wg9s{{g9sskZo{swo{skZg9swkZo{skZo{so{g9g9kZsg9kZg9scZg9kZcg9kZssg9ckZ^g9kZg9{kZg9sg9o{cg9o{g9g9kZ^g9kZo{kZso{ccg9^o{g9^g9wkZg9sg9cZZg9kZwkZo{w{w{wwsswo{s{wswo{wkZw{wsskZs{so{swwkZw{wswswwo{g9kZwwo{swwswwso{wwswws{scZw^co{g9kZ^cco{csg9c^cscg9sc^^wg9wg9c^g9scg9kZ^Z^g9cg9wg9o{g9ZZcckZsg9kZcg9g9Zccg9w^co{Www{{wwwwo{wsw{ww{wkZZV)kZZV^g9Zo{^R^kZZV^kZNsRo{Vo{^ZRsZZg9RcVg9RR^{RRZ^sZg9Zo{V{cRNsVRVVo{VZckZRc1{{{w{{s{9o{cg9VZ^s^Z^^kZcg9g9Vo{cg9Z^*{{w{w{g9{ww*g9kZg9g9kZkZc^o{ZkZZkZg9sZg9g9co{ZkZco{kZcg9o{g9wcwso{cco{wo{g9^wkZckZcg9o{g9o{kZcg9kZckZ^kZo{o{kZkZg9g9o{kZwwso{kZo{wwo{wo{kZwo{wkZkZo{(wo{swwo{o{kZsso{kZsso{kZwo{so{swo{o{so{kZwo{kZwo{so{wg9wsws;{so{o{{co{g9ccso{ws{kZwsskZg9ss{wo{so{wso{ssw{kZwsso{g9o{s{sswso{so{kZo{{o{so{so{swso{o{{wo{sg9kZcwkZkZg9sg9cg9sg9skZc^{o{sg9sg9ZckZg9s^cckZsg9skZkZcg9o{kZg9kZsco{cg9^sg9ccZZg9Vsg9g9Vscg9sg9s wssw{{wswo{w{ssww{wwso{so{wswo{{{kZkZw{wo{wkZo{wsws{{o{wkZs{{so{{wwkZ{s{w{wo{o{wss^g9^g9s^cg9scg9Zg9o{^^o{c^g9g9Z^cg9g9o{o{Zg9g9o{c^csco{g9ckZo{Vcg9o{^Zo{g9^ckZcg9co{co{^ccsc{{w{www{sw{w{w{{wwwFkZc^RZVZRkZZo{RkZRkZZRRVZV{kZVkZVVkZ^VNsRRw^^sVc^g9VVg9Zg9V^RZRo{Vo{ZRRo{R^kZVVkZg9NsRkZVZc={{{ {{{w{{ikZZco{g9^wVg9^ckZg9Z^kZ^c^Z^g9ccV^cs^c^cs^cg9^cZg9^g9kZX {ws{ww{ww{sw{wswo{w{w {wwo{{{ww{ssw Ƣ Ƣ o{g9w{swwc{kZso{kZwsg9{kZws{g9o{so{{kZwwsw{g9wsw{kZs{w{ws{swss{wkZswws{wg9g9scg9g9cw^ccg9cso{g9cscg9^{cscc^kZcsccZ^cZo{cco{g9sg9ckZcw^^csg9 ^sg9g9o{g9c^ZkZkZo{ws{{w{swwso{o{w{{wwo{{o{{w{w{wo{o{sw s{{wo{wwo{ws{w{w {w{o{{ww{sw{o{Zg9^cZg9ss^^o{kZg9o{ZcZ^o{co{^cg9Z^c^sVZ^'cc{{kZscZsg9^kZZo{cc^cc^o{^^kZ^Zc^^kZco{Vg9ccZ^Zo{iww{{ww{ww{w{o{www{s{ kZZVVZo{ZZkZVRV^{VV^^ZRVo{V^Nscg9ZkZNscRNsZg9o{VkZVR^RZg9{^^NsVRkZZVg9^^o{V^VZo{VkZ^VcC{{w{ww{{{{{ws-^RRJR^o{^ckZBVNsZcZkZkZg9cwJRNsRVVRJRJR^wo{so{Zg9kZo{g9c^ckZVscZZkZZsccg9sg9g9Zg9^^^g9ZkZkZ^kZg9cwwo{csswss{o{ws{wg9ww{sw{o{o{so{s{ws{sswwsw{w swws{wsw{ws w{{ws{ww{sw{Y$o{^ccRZ^so{{^kZo{{o{g9o{kZwkZo{o{^^o{g9sg9so{wo{o{g9o{cSo{^^g9^g9g9wso{{kZg9kZwo{g9wkZ{kZ o{kZskZkZo{sskZkZo{kZ Ƣ Ƣ Ƣ Ƣ Ƣ# ^wNs^cVNsZo{# g9kZkZo{^JRckZo{ Ƣ Ƣ-{so{so{o{wkZo{sw1kZkZg9ccF1NsRkZJRcZVNsNsR^w{޹ Ƣ Ƣ=cZs^kZVc^g9csskZkZcZwg9so{g9csco{o{g9ccg9kZcg9g9cg9^^so{^g9g9skZ^cg9kZg9kZcsckZcg9^ZkZg9kZwwswo{swwsg9swswo{{s{s{sg9sso{so{{so{o{swo{ws{kZo{o{so{sso{w{ Ƣ ƢkZo{wso{w{޵!o{o{g9g9^cckZ{޵aw{o{w{ss{{o{w{o{wws{s{ws{{{wswsqwg9kZkZo{kZcg9skZg9cg9kZ^o{c^Vo{VRZckZRZV^Zo{VV^^ZRo{ZRZo{c{{w{{{{s{{{{s{{{{{sww{{{s{{{w {{{w{w{wg9^VV^o{g9o{Z^V^kZ{o{RcVZcZ%w{kZ^Zc^ZZw{ccZVg9{s^RZ^VZs{g9^VV^g9skZckZZce{{w{{w{{{ws{w{w{{ww{w{{{{Acg9^o{o{kZg9 cco{ZkZw^g9g9sg9o{^o{kZZ>o{g9so{cwo{o{wo{g9wwswo{s{so{o{{ Ƣ Ƣ9{o{g9kZwswkZo{swo{o{kZwssg9ws9o{o{g9sRg9^cVVJRkZVNsVw^RVZg9 Ƣ Ƣ_{w{{{w{{{{{{{{{{wkZVg9kZ^^cs^c^kZ^ZkZ^o{Z^ZZso{ZkZ{^)VZg9kZZZ^kZZckZco{c^^ckZ^g9ckZ^sRZg9kZco{^kZ^co{kZg9V^g9ZkZ {{w{{w{w{w{w${wo{{w{{w{ww{{wwg9{ww{www{w{w{{{w{w{w{w{{{sw{s^g9g9o{g9o{kZsg9g9wcsckZg95wZkZg9so{o{g9ccc^kZwkZkZsg9s^kZo{^g9skZo{kZscg9o{wZg9sg9kZg9^o{skZo{g9kZg9^g9kZo{kZg9so{'so{wo{{o{o{wo{wso{o{kZo{swo{so{wo{wg9kZkZ{wso{{skZso{wkZswo{swso{skZo{{o{kZwo{kZo{so{wo{wo{swswsg9wwo{o{sskZwsw{s&o{{wswsso{o{sg9wo{wwcsskZs{o{skZwssww{kZwkZ{o{{s{so{o{kZwsckZkZckZco{g9o{o{g9{cg9g9sg9s^Zg9ckZsg9c!g9kZg9kZcskZcsg9Zg9g9{kZcscsg9g9^w^wcsg9g9cg9^cw Ƣ Ƣ{so{sso{so{kZg9so{so{o{g9o{so{sso{sso{kZg9so{sso{kZo{so{so{s o{o{kZsso{so{o{kZo{sw{o{cR=cg9RNsRRF1Zo{s^VRVRRo{o{RVRNsRVNsVZo{sVNsRZRV^o{^^VNsRg9o{^NsNsRVJRZo{kZVNsNsRRg9Vg9Zswh{sg9o{sso{kZso{kZso{sso{kZo{so{so{kZso{kZo{so{kZskZsw{޸sww{ Ƣ Ƣ{kZo{w Ƣ Ƣ Ƣ Ƣ w ՜.+,00 hp  ' University of California, DavisKv) +Chapter 1: Scalar Variables and Data Types Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry Fӆ&Data 1Table[WordDocument55SummaryInformation(@%DocumentSummaryInformation8CompObj` F Microsoft Word 97-2004 DocumentNB6WWord.Document.8