ࡱ>  mo`abcdefghijkl7 9bjbjUU (>7|7|).vlX X X b  ^^^8^a GnnnnnRRRfhhhhhh$ u R` RRRn n nn7Rjn n nfRfk\ ^ %nn `d P^v$.$r%T0G$r2% n n n n Chapter 2 Multiplicative Cipher In this chapter we will study the Multiplicative Cipher. Instead of adding a number as we did in the Caesar Cipher, we will now multiply each plain letter by an integer a, our secret encoding key. As some of them fail to produce a unique encryption, we will discover an easy criterion for keys that produce the desired unique encryptions (the good keys) and apply it to different alphabet lengths. When doing so we will discover very important mathematical encryption tools such as Eulers (-function, Eulers and Lagranges Theorem and study further examples of groups, rings and fields. 2.1 Encryption using the Multiplication Cipher Instead of encoding by adding a constant number, we multiply each plain letter by our secret key a. Since each plain letter turns into 0 for a=0 and remains unchanged for a=1, we start with a=2. We will multiply MOD 26 as we are using the 26 letters of the English alphabet. We get the following encoding and decoding table. PLAIN LETTER:ABCDEFGHIJKLMNOPQRSTUVWXYZ Secret key: a=2012345678910111213141516171819202122232425  024681012141618202224024681012141618202224 Cipher letter:acegikmoqsuwyacegikmoqsuwy Notice, that only every other cipher letter appears, and that exactly twice. This is not a useful encryption system since it may yield ambiguous messages. As an example, lets encode and decode NAT and ANT. PLAIN LETTERNATANTSecret key a=2130190131900120012Cipher letteraamaam You can see the dilemma of this message. Decoding aam can either yield NAT or ANT as the plain text. What would you do? Of course, you dont want to receive any more ambiguous messages. Lets simply test all possible keys of the multiplication ciphers MOD 26: PLAIN LETTER 0000000000000000000000000 a ABCDEFGHIJKLMNOPQRSTUVWXYZ00000000000000000000000000010123456789101112131415161718192021222324252024681012141618202224024681012141618202224303691215182124147101316192225258111417202340481216202426101418220481216202426101418225051015202549141924381318232712172216111621606121824410162228142006121824410162228142070714212916234111825613201815223101724512198081624614224122021018081624614224122021018909181101921120312214132251423615247162581710010204142481821222616010204142481821222616110112271831425102161721324920516112238194151201224102282061841621401224102282061841621413013013013013013013013013013013013013013140142164186208221024120142164186208221024121501541982312116520924132176211025143187221116016622122188241442010016622122188241442010170178251672415623145221342112320112191011891801810220124221462416801810220124221462416819019125241710322158120136251811423169221147200201482221610424181260201482221610424181262102116116122171272231813832419149425201510522022181410622420161284022181410622420161284230232017141185225221916131074124211815129632402422201816141210864202422201816141210864225025242322212019181716151413121110987654321 We learned already that the key a=2 (as can be seen in the 3rd row) does not produce a unique encryption. So which ones do? Each row that contains each integer from 0 to 25 exactly once and therefore yields a unique cipher letter will serve. Simply by looking at the table, we find that the following keys (whose rows are bold) produce a unique encryption and therefore call them the good keys: a = 1,3,5,7,9,11,15,17,19,21,23,25 Why those and what do they have in common? They seem to not follow any apparent pattern. Are they the odd numbers between 1 and 25? No, 13 is missing. Or are they possibly the primes between 1 and 25? No, 9,15, 21 and 25 are not prime and the prime 13 is missing. So, lets understand why the bad keys a = 2,4,6,8,10,12,13,14,16,18,20,22,24 dont produce a unique encryption. We have to understand why multiplying by a bad key a MOD 26 yields some integers more than once and others not at all. An extreme example would be when a=0: all plain letters are translated into 0s which are all as so that no decryption is possible. If a=1 is used as a key, each cipher letter equals its plain letter which shows that it does produce a unique encryption. However, it yields the original text. This is not very useful. The bad key a=2 yields an ambiguous message as we saw in the introductory example: each A turns into 0 (=a) since 2*0 = 0 MOD 26 just as each N turns into 0 since 2*13 = 26 = 0 MOD 26. Also, each B and each M turn into 2 (=c) since 2*1 = 2 MOD 26 and 2*14 = 28 = 2 MOD 26. When you study the a=2 row precisely, you will see that the original 26 plain letters are converted into 13 even cipher letters (the even cipher letters are those whose numerical equivalent is an even number.) each occurring exactly twice. This is the reason why a=2 yields an ambiguous decryption. If a=4,6,8,,24, we encounter the same dilemma as for a=2. We can see in the table that an A will always translate into 0 (=a) since the product of any such key a with 0 (=A) yields 0. N (=13) translates into a for any even key a aswell because even keys N 4*13 = 2*(2*13) = 2*0 = 0 MOD 26, 6*13 = 3*(2*13) = 3*0 = 0 MOD 26, 8*13 = 4*(2*13) = 4*0 = 0 MOD 26, etc. Notice in all three equations that because a=2 turns the 13 (=N) into 0 in 2*13 = 0, all the multiples of a=2 translate the N into 0 (=a). That means: Because a=2 is a bad key all the multiples of a must be bad keys aswell. Consider an alphabet length of M=35: the bad key a=5 (why?) will translate the H (=7) into a (=0), because 5*7 = 35 = 0 MOD 35. Therefore, all the keys that are multiples of 5 such as a=10,15,20,25,30 will also translate the H into 0(=a). Similarly, the multiples of a=7 will translate an F (=5) into an 0 (=a) because 7 does so. a=13 yields an ambiguous message since each even plain letter is translated into a (=0): a=13 even letters 13*0 = 0 MOD 26, 13*2 = 0 MOD 26, 13*4 = (13*2) * 2 = 0 * 2 = 0 MOD 26, 13*6 = (13*2) * 3 = 0 * 3 = 0 MOD 26, etc. Each odd plain letter translates into 13 (=n): a=13 odd letters 13*1 = 13 MOD 26, 13*3 = 13*2 + 13*1 = 0 + 13 = 13 MOD 26, 13*5 = 13*4 + 13*1 = 0 + 13 = 13 MOD 26, 13*7 = 13*6 + 13*1 = 0 + 13 = 13 MOD 26, etc. Moreover, since a=13 is a bad key its multiples 26, 39, must also be bad keys. However, we dont need to consider keys that are greater than 26 since each of them has an equivalent key less than 26 that yields the same encryption: the even multiples of 13 (i.e. 26, 52, 78, ...) have its equivalent key in a=0, a very bad key, since 26=52=78=0 MOD 26. The odd multiples of 13 (i.e. 39, 65, 91, ) have its equivalent key in a=13, another bad key, since 39=65=91=13 MOD 26. Lets summarize our discoveries. Which keys now yield a unique encryption? A key a does not produce a unique encryption, if 1) a divides 26 evenly or if 2) a is a multiple of such divisors. We can combine these two criteria into one easy criterion. Can you? Try it! CRITERION FOR GOOD KEYS A key a produces a unique encryption, if the greatest common divisor of 26 and a equals 1, which we write as: gcd(26, a)=1 Convince yourself that 26 has a greatest common divisor equal to 1 with each of these good keys a = 1,3,5,7,9,11,15,17,19,21,23,25. Except for 2 and 13, all prime numbers less than 26 are among the keys (why do they have to?). However, there are some additional integers that are not prime (i.e. 9,15,21 and 25). That are those that dont have a common divisor with 26. Thus, being prime is not quite the reason for a good key, but almost. We, therefore, name the good keys as follows: Definition of numbers that are relative prime: Two integers are called relative prime if their greatest common divisor equals 1. Examples are: 4 and 5 are relatively prime because gcd(4,5)=1. So are 2 and 3, 2 and 5, 3 and 10, 26 and 27, 45 and 16. Counter examples are: 45 and 18 are not relative prime since gcd(45,18)=9 and not 1. 343 and 14 are not relative prime since gcd(343,14)=7. From now on we will use a handy Notation for the set of possible and good keys: 1) All the possible keys for an alphabet length of 26 are clearly all the numbers between 1 and 26, denoted as Z26. Simply: Z26 = {0,1,2,3,, 24,25}. Generally: An alphabet of length M has the keys: ZM = {0,1,2,3,, M-2,M-1} 2) Now, the good keys are the ones that are relative prime to 26 as listed above and are denoted as Z26*. Simply: Z26* = {1,3,5,7,9,11,15,17,19,21,23,25}. Generally: The good keys are those as that are relative prime to M and are denoted as ZM*. (I can not list those here as they depend on the alphabet length M.) We are now able to summarize how to encrypt a message using the multiplication cipher: To encrypt a plain letter P to the cipher letter C using the Multiplication Cipher, we use the encryption function: f : P ( C=(a*P) MOD 26. If a is a good key, that is if a is relatively prime to 26, then f produces a one-to-one relationship between plain and cipher letters, which therefore permits a unique encryption. Among the 12 good keys we pick a=5 to encode the virus carrier message as follows: PLAIN TEXTANTISTHECARRIER0131981819742017178417 013171412179201007714207Cipher textanromrjukahhouh Exercise1: Encrypt the same plain text using the key a=7. 2.2 Decryption of the Multiplication Cipher Now that the virus carrier message was encoded in a unique manner how can it be decoded? First of all, you need to know which one of the 12 good keys was used. In some secret manner, the sender and the recipient had to agree on the encoding key a. Say a=5 was chosen. Now, how do you decrypt the above message? To do so, we have to look at the encryption equation C=a*P MOD 26 and solve it for the desired plain text letter P. In order to solve an equation like 23=5*P for P using the rational numbers, we would divide by 5 or multiply by 1/5 to obtain the real solution P=23/5. However, when using MOD arithmetic and solving 23=5*P MOD 26, we dont deal with fractions but only integers. Thus, dividing is performed slightly different: instead of dividing by 5 or multiplying by 1/5, we first write 5-1 (instead of 1/5) where 5-1 now equals an integer and multiply both sides by that integer 5-1. We denote 5-1 the inverse of 5. Just as 5*1/5 yields 1, 5 * 5-1 shall equal 1 MOD 26. Definition of an inverse number: A number a-1 that yields 1 when multiplied by a is called the inverse of a. Mathematically: a-1 * a = a * a-1 = 1. Example1: When using fractions, 5-1=1/5 is the inverse number to 5, 3-1=1/3 is the inverse number to 3, 3/2 is the inverse number to 2/3. Now, lets look at examples for MOD arithmetic: Example2: The inverse of a=3 is a-1 = 2 MOD 5 because a * a-1 = 3*2 = 6 = 1 MOD 5. I found a-1 = 2 by simply testing the integers in Z5*={1,2,3,4}. a=4 is inverse to itself modulo 5 since a * a-1 = 4 * 4 = 16 = 1 MOD 5. Example3: Doing arithmetic MOD 7, the inverse of a=3 is a-1 = 5 because a * a-1 = 3*5 = 15 = 1 MOD 7. Again, I found the inverse of a=3 by testing the integers in Z7* ={1,2,3,4,5,6} The inverse of a=4 is 2 since a * a-1 = 4 * 2 = 8 = 1 MOD 7. a=6 is inverse to itself MOD 7 since a * a-1 = 6 * 6 = 36 = 1 MOD 7. Example4: What is the inverse of 3 MOD 11? It is a-1=4 since 3*4 = 12 = 1 MOD 11. Example5: Try it yourself! What is the inverse of 5 MOD 11? What is the inverse of 7 MOD 11? Back to the virus carrier message. It was encoded MOD 26. Since we calculate MOD 26, thus dealing with integers from 0 to 25, we now have to find an integer a-1 among those integers that yields 1 MOD 26 when multiplied by 5: a-1 * 5 = 1 MOD 26. Equivalently stated: what product of a-1 and 5 equals 1 more than a multiple of 26 such as 27, 53, 79, 105, etc? Aha, there is 105 = 21*5 so that 21*5 = 1 MOD 26. Equivalently stated, 105 divided by 26 leaves a remainder of 1. Wonderful, that is all we need to solve our encryption function C= a*P MOD 26 for the plain letter P in order to then decode the encrypted message: Multiplying both sides of our encryption equation the equation yields a-1*C = a-1*(a*P) (1) = (a-1*a)*P (2) = 1*P (3) = P MOD 26 (4) Remark: Solving this equation required the 4 group properties: the existence of an inverse and the closure in (1), the associative property in (2), the inverse property in (3) and the unit element property in (4). It thus gives a great example that we are only guaranteed to solve this equation for numbers that form a group with respect to multiplication MOD 26. We will check in the Abstract Algebra section at the end of this chapter that the set of good keys MOD 26, Z26* = {1,3,5,7,9,11,15,17,19,21,23,25}, does form a multiplicative group. We can therefore always find a-1 for a given good key a. Thus our decoding function P = a-1*C MOD 26 tells us to simply multiply each cipher letter by the inverse of the encoding key a=5, namely by the decoding key a-1=21 MOD 26 and we can eventually decode: Cipher textanromrjukahhouh013171412179201007714207 0131981819742017178417PLAIN TEXTANTISTHECARRIER For example, multiplying the cipher letter r=17 by a-1 = 21 decodes the r to T=19 since 21*17 = 357 = 19 MOD 26. The o =14 decodes to I = 8 since 21*14 = 224 = 8 MOD 26, the m =12 decodes to S=18 since 21*12 = 252 = 18 MOD 26. How does the j decode to the H, and the u decode to the E? Verify this now! An easier way to determine the decoding key a-1 Decoding a message turns out to be really easy once we know the decoding key a-1. We just had to multiply each cipher letter by a-1. So, we are left with determining the decoding key a-1 knowing the original encoding key a. To decode the above virus carrier message we found the inverse of a=5 through a clever check of the products of a and a-1 that produced one more than multiples of 26. That was trial and error and might take quite a while. We wont have to do it that way again since there is a much more straightforward method. To find the inverse for each good key a, you just need to look back at the 26 by 26 encryption table. For instance, to find the inverse of the good key a=5 we have to look at the fifth row which shows that a-1 equals 21 since the only 1 in this row is in the V- or 21-column (5 * 21 = 1 MOD 26). Moreover, you can see that the plain letter V encrypts to the cipher text letter b (=1) when using a=5 as the encoding key. Take a moment now to verify the Rule for finding the decoding key a-1: 1) For a given good key a, find the unique 1 in the a-row, 2) From that 1 go all the way up that column, 3) The letters numerical equivalent that you hit on the very top is the inverse of a. Example: If we use the encoding key a=3, we find that the decoding key a-1 is 9 as the 1 occurs in the J- or 9-column telling us additionally that the plain letter J (=9) encrypts to the cipher letter b (=1). Finding the decoding keys for each good key a in the same manner, we obtain the following key pairs: Good Encoding key aIts decoding key a-111395217159311191571723191121523172525 Three important observations: All decoding keys a-1 in the right column are among the set of all encoding keys a. In fact, the sets of the encoding and decoding keys are identical. Coincidence? No, it is not. Just as the regular multiplication of two integers is commutative (i.e. 3 * 9 = 9 * 3 =27) the MOD- multiplication is commutative (3 * 9 = 9 * 3 = 1 MOD 26). You can observe this order-doesnt-matter rule in the original 26x26 multiplication table: The diagonal line from the top left to the bottom right forms a reflection line. I.e. 21 is an inverse to 5 MOD 26, therefore 5 is inverse to 21 and the two 1s are mirrored over the diagonal line. Therefore, the set of all encoding keys must equal the set of all decoding keys. If we extract those rows with the good keys a = 1,3,5,7,9,11,15,17,19,21,23,25 and their corresponding columns, we obtain: 13579111517192123251135791115171921232533915211719255111723551525919323717111217721923112511531751999119113215231572517111173252117951231915151519231591721253711171725715235213111919191951731512511239217212111117723319925155232317115251971211593252523211917151197531 This reduced table shows i.e. that 3 and 9 are inverse to each other because of the commutative property of the MOD-multiplication (exhibited by the diagonal as a line of reflection). Now every row contains exactly one 1 revealing that there exists an inverse for each a which is precisely the reason why those as are the good keys. Moreover, multiplying any two good keys yields again a good key. As an attentive reader, we realize that the MOD multiplication of the keys is closed (recall the group properties in the previous chapter). Combining this fact with the fact that each key a possesses a decoding key a-1, the set of the good keys forms a commutative group with the unit element 1. Does that even mean that the good keys form a field? That would additionally require that the good keys form a commutative group with respect to addition. Do they? Try to answer it for yourself. I will answer it at the end of this chapter in the Abstract Algebra section. The only two keys that are inverse to themselves are 1 and 25, which means that the encoding key equals its decoding key. Lets check why: 1*1=1 MOD 26 which explains a = a-1 = 1 (Big deal!). Now when a=25, we have: 25*25 = 625. Since 625=24*26+1 which means that 625 leaves a remainder of 1 when divided by 26, we have 625 = 1 MOD 26 and altogether 25 * 25 = 625 = 1 MOD 26. These calculations were correct but almost required a calculator. Here is a non-calculator way to understand why 25 is inverse to itself: Since 25 = -1 MOD 26, it follows 25 * 25 = (-1) * (-1) = 1 MOD 26. This shows that when using an encoding key that is one less than the alphabet length M, namely a = M-1, then the decoding key must also equal M-1, a-1 = M-1. The reason is (M-1) * (M-1) = (-1) * (-1) = 1 MOD M. For example: when using an alphabet length of M = 27 and an encoding key a=26 then its decoding key is a-1 =26. To verify this: 262 = 676 =1 MOD 27. Here is the C++ Code for the encryption and decryption of the multiplication cipher: //Multiplication Cipher using the good key a=5 //Author: Nils Hahnfeld, 9/22/99 #include #include void main() { char cl,pl,ans; int a=5, ainverse=21; //as a-1*a=21*5=105=1 MOD 26 clrscr(); do { cout << "Multiplication Cipher: (e)ncode or (d)ecode or (~) to exit:" ; cin >> ans; if (ans=='e') { cout<< "Enter plain text: "<< endl; cin >> pl; while(pl!='~') { if ((pl>='a') && (pl<='z')) cl='a' + (a*(pl -'a'))%26; else if ((pl>='A') && (pl<='Z')) cl='A' + (a*(pl -'A'))%26; else cl=pl; cout << cl; cin >> pl; } } else if (ans=='d') { cout << "Enter cipher text: " << endl; cin >> cl; while(cl!='~') { if ((cl>='a') && (cl<='z')) pl='a' + (ainverse*(cl -'a'))%26; else if ((cl>='A') && (cl<='Z')) pl='A' + (ainverse*(cl -'A'))%26; else pl=cl; cout << pl; cin >> cl; } } } while(ans!='~'); } Programmers Remarks: Can you understand the code yourself? Try to understand as much as possible first, then continue reading. 1) This program both encodes and decodes. Say you first want to encode the letter c then you have to enter e when asked. Then the if-condition if (ans=='e') is fulfilled so that we enter the encoding part of the program. You are asked to enter your plain letter in cin >> pl; As long as you dont enter ~ the while-condition while(pl!='~') is fulfilled and the entered plain letter (=pl) is being encoded. To do so, I distinguish between upper and lower case letters since they are encoded slightly different. Say, the lower case plain letter c is entered, then the condition if ((pl>='a') && (pl<='z')) is fulfilled and the encryption is being executed by this one seemingly weird command cl='a' + (a*(pl -'a'))%26; Let me explain that to you in detail: First you need to know that each letter is stored as a number: i.e. A=65, B=66, C=67, .., Z=100, a=101, b=102, c=103, z=125. In fact, any character is stored as a number: i.e. ~=.., $=.. etc. For now, lets focus on the lower case letters. The plain letter c is stored as 103, however, I want the c to equal 2 in compliance with our translation a=0, b=1, c=2, etc. which we used in our virus carrier example. Therefore, I need to subtract 101 from the 103 to get the desired 2, similarly, I again would have to subtract 101 from any plain letter b=102 to get the desired 1. In fact, I always have to subtract 101 from each entered lower case plain letter to get its corresponding number. By subtracting a (=101) from the entered plain letter in (pl -'a');. I accomplish this. Subsequently, that difference is multiplied by the good key a=5 which I defined as such in int a=5. You could also define a to be a different good key. If you choose to do so, dont forget to also redefine the corresponding decoding key in int a=5, ainverse=21; . Ok, lets continue with the encoding part. Since we are performing MOD 26 arithmetic, we use the MOD-operator % that guarantees us the product (a*(pl -'a'))%26; to be between 0 and 25. In our example, after subtracting 101 from the plain letter c we get the desired 2 that is now multiplied by a=5 yielding 10. This is just what we wanted except that the answer 10 does not equal the desired cipher letter k on the computer. Therefore, we just have to add a number in order to get k=111. Which number would that be? Right, we have to add 101 to the 10 which we do by adding a=101 in cl='a' + (a*(pl -'a'))%26. Now the cipher letter cl equals k and we can end the lower case encoding. The encryption of upper case plain letter works similarly except that I have to subtract A=65 (instead of a=101 as above) to obtain our desired plain letter number. Say, we want to encrypt the plain letter C=67. I first subtract 65 =A and then multiply that difference by the good key a=5 yielding 10 again. The MOD 26 calculation leaves the 10 unchanged. Finally, I have to add the usual 65 = A (why?) to obtain the desired cipher letter. How do we deal with non-letters? Well, I leave all the entered non-letters such as ! or . or ? unchanged so that you can detect the format of the original message easier. If we dont want to give an eavesdropper any additional information about our secret message, we would firstly either not use such characters at all or we would expand our alphabet length and encode them just like the other plain letters. Secondly, we would translate every upper case plain letter into a lower case cipher letter so that we dont reveal information about the beginning of a sentence. These are valuable information for an eavesdropper that help cracking the message. I leave the translation from an upper case plain letter to a lower case cipher letter as an easy exercise for you. 2) Lastly, I want to explain the trick how I manage to encode not only a letter but a whole word or sentence if necessary. The statements while(cl!='~') and cout << cl; cin >> pl; are in charge of it. The first time the loop passes the line cout << cl; the translated plain letter pl that was read in as cin >> pl; before the while loop is output as its cipher letter cl. The trick is now that if we enter more than one letter all but the first entered letter are buffered (which means temporarily stored in the computers RAM) until read in in cin >> pl; inside the while loop. Since any plain letter fulfills the condition in while(cl!='~') The loop is reentered and the next cipher letter is displayed in cout << cl; We can then end this while loop by entering ~ and then choose to either encode, decode or exit the program. Try it for yourself. Cryptoanalysis - Cracking the Multiplication Cipher Just like the Cipher Caesar Cipher, the Multiplication is not secure at all. How could it be broken? Lets consider two options: Option 1: Cracking the cipher code using letter frequencies If plain letters are replaced by cipher letters the underlying letter frequencies remain unchanged. I.e. if the letter e (the most frequent letter in the English language) occurs 20 times in the plain text its replacement letter will appear 20 times in the cipher text. Therefore, an eavesdropper simply has to count letter frequencies to identify the most frequent cipher letter. Its numerical equivalent reveals the row and therefore the key a as follows: PLAIN LETTER 0000000000000000000000000 ABCDEFGHIJKLMNOPQRSTUVWXYZ101234202468303691240481216505101520254914192438131823271217221611162160612182470714212808162469091811010010204141101122718120122410221301301301401421641501541981601662212170178251618018102201901912524200201482210211611622022181410230232017141185225221916131074124211815129632402422201825025242322 After intercepting the cipher text, an eavesdropper simply finds the most frequent letter of this rather brief message. Longer messages reveal the most the letter e equivalent, however, this is not necessarily so for our message. Cipher textanromrjukahhouh013171412179201007714207 He finds the cipher letter h to be most frequent. However, there is no 7 the numerical equivalent of letter h - in the E column. This means that the cipher E does not equal 7. In fact, the cipher E can only be an even cipher letter as only even numbers appear in the E-column. Thus, among those numbers that occur twice in the cipher code, 14, 17 and 20, we can eliminate the odd 17. The 14 as the possible cipher E then tells him to test the keys a=10 and a=23. Since a=10 is a bad key he checks the good key a=23. He decodes all the other cipher letters by finding their corresponding number in the 23rd row (see above) and then goes up that column to find the original plain letter. He obtains: Cipher textanromrjukahhouh013171412179201007714207 013116711232140151519215PLAIN TEXTANLGHLXCOAPPTCP That message does not reveal a virus carrier. Certainly, it might be a double encoded message that has to be decoded twice, possibly using two different keys or even two different ciphers. Before considering such encoding techniques, we go ahead and check if the other frequent number, 20, is the cipher E. Checking the E column, we can see that the possible two keys are the bad one a=18 and the good one a=5. Again, we just have to find the cipher numbers in the 5th row and then go up that column to the very top to find the corresponding plain letter. This yields the correct plain text: Cipher textanromrjukahhouh013171412179201007714207 0131981819742017178417PLAIN TEXTANTISTHECARRIER As you can see, detecting the most frequent cipher letter is of enormous help in cryptography. Here, it reduces the number of possible good keys to two. It is not difficult to find the encoded E in English documents as every 8th letter on average is an E (about 13%), it is therefore by far the most frequent letter. Consequently, the longer a cipher text, the easier the cipher E can be detected. Other frequent letters such as T, A, O and N occurring with about (8%) might be of further help to crack the cipher text. I will explain the usage of letter frequency as a very important means to crack cipher codes in the next chapter. In case you wonder why the discussion of cracking codes is made public; why is it not kept secret to maintain the security of ciphers? The answer is a simple No: Only those encryption systems that withstand all possible attacks are secure and thus useful. Certainly none of the cryptosystems we have considered thus far. Remember that the first 3 ciphers are meant to familiarize you with basic encryption systems. Moreover, we build the mathematical foundation to understand secure encryption systems such as the RSA encryption. Option 2: Cracking the cipher code using trial and error (brute force) Knowing that there are just 12 possible unique encryptions MOD 26, the journalist produces the corresponding 12 rows in the 26 x 26 multiplication table and cracks the code easily. Cipher textanromrjukahhouha=1ANROMRJUKAHHOUHa=3ANXWEXDYMALLWYLa=5ANTISTHECARRIERa=7ANVCYVFOUABBCOBa=9ANZQKZBIEAVVQIVa=11ANLGULPQIADDGQDa=15ANPUGPLKSAXXUKXa=17ANBKQBZSWAFFKSFa=19ANFYCFVMGAZZYMZa=21ANHSIHTWYAJJSWJa=23ANDEWDXCOAPPECPa=25ANJMOJRGQATTMGT MS Excel as a simple encryption and decryption tool: I created the following table in MS Excel with the CHAR and the MOD function: Cipher textanromrjukahhouhaa-101317141217920100771420739ANXWEXDYMALLWYL521ANTISTHECARRIER715ANVCYVFOUABBCOB93ANZQKZBIEAVVQIV1119ANLGULPQIADDGQD157ANPUGPLKSAXXUKX1723ANBKQBZSWAFFKSF1911ANFYCFVMGAZZYMZ215ANHSIHTWYAJJSWJ2317ANDEWDXCOAPPECP2525ANJMOJRGQATTMGT For example, I created the T in the row a=5 using the Excel-formula =CHAR(65+MOD(E$2*$B4,26)) where the cell E$2 contains 17 and the cell $B4 contains 21 as the decoding key a-1. The formula MOD(E$2*$B4,26) computes the number of the plain letter T, namely 19. However, converting 19 to its character does not yield the desired T. The T is stored as 84 which you could see by entering the Excel formula =CODE("T"). Therefore, we first have to add 65 to the 19 in order to translate the 84 eventually into the desired T using =CHAR(65+MOD(E$2*$B4,26)). In fact, all the upper case letters on Excel are 65 numbers higher than those we are using, the lower case letters on Excel are 97 numbers above ours (i.e. =CODE("a") yields 97). Which cracking method should a code cracker use. They are trade-offs in terms of their efficiency: the gain of not having to determine the most frequent letter in the cipher text for the brute force approach is at the cost of producing all possible cipher codes. Vice versa, the cost of detecting the most frequent cipher letter in the first approach is at the gain of producing only one plain text provided that the most frequent cipher letter turns out to be unique. This is very likely in English texts and virtually certain in the German language where on average every 5th letter is an E. Even if an eavesdropper decides to produce all 12 possible plain texts, they can be generated with the help of a computer within a few seconds. Therefore, no matter how he decides to crack the cipher text, it wont take long. Thus, safer encryptions are necessary. In the next chapter, I will show you one principle of increasing the safety of a cipher code. I will couple the Multiplication Cipher with the Caesar Cipher (which produces 26 unique encryptions) to obtain a super encryption that will allow 12*26=312 possible unique encryptions. Are the used 12 unique encryptions a set number? Or can we even increase the mere 12 unique encryptions for the Multiplication Cipher by varying the alphabet length? Lets investigate this in the following section. 2.4 Varying the Alphabet Length varies the Number of Good Keys Using an alphabet length of M=27: Say for legibility reasons we add a blank symbol as our 27th plain letter. It converts to the plain letter number 26 so that we now have to encrypt MOD 27. Does the increase of our alphabet length by 1 increase the number of unique encryptions obtained? Our good-key-criterion declares those integers to be good keys that are relative prime to 27. Which ones are those? 27=3*3*3, so that only the multiples of the only prime divisor 3 such as a=3, 9 and 27 will not yield a unique encryption, all the other integers will: The good keys a are therefore Z27* = {1,2,4,5,7,8,10,11,13,14,16,17,19,20,22,23,25,26} allowing 18 different unique encryptions, 6 more than before. Notice that we found the good keys indirectly. We first found the bad keys as the multiples of the prime divisors of the alphabet length M. Consequently, the good keys are the remaining integers less than M. Again a perfect task for a computer, especially when we have to find the prime divisors of bigger integers. (I.e. what are prime divisors of 178247 or of 56272839 ?). Below is the C++ program that performs the task for us, it just finds all the factors of an entered alphabet length M by testing all the integers less than M for possible factors. This brute force approach will work fast enough for integers M that have 10 digits or less. For larger integers, however, dividing by every integer less than M slows the program down enormously. Test it yourself. One of the major goals of current Mathematics research is to design faster factoring algorithms as todays are fairly slow. In fact, the security of i.e. the commonly used RSA Cipher is based on the relative slowness of such factoring programs. If you are able to invent a fast factoring algorithm, you will not have to worry about a future job. //Author: Nils Hahnfeld 10/15/99 //Factoring program #include #include #include void main() { int M, factor ; clrscr(); do { cout << "Enter the integer that you want to factor or 0 to exit: M="; cin >> M; factor=2; while(factor <= M) { if (M%factor==0) //check all integers less than M as factors { cout << factor << endl; M/=factor; factor=1; } factor++; } }while(M!=0); } Programmers remarks: Starting with 2, this program checks the integers from 2 to M-1 as potential factors of M in if (M%factor==0). In such case, divide M by that factor: M/=factor; and start checking M/factor for factors less than M/factor...etc. This process repeats until M is reduced to 1 and therefore less than the smallest factor possible, 2. Can we do even better with M=28 ? Can we increase the number of unique encryptions by further extending our alphabet? Lets add a dot to our alphabet to denote the end of a sentence in the original message. Our alphabet length of 28 now yields how many unique encryptions? Try it for yourself! 28 equals 2*2*7 so that all the keys that are multiples of 2 or 7 do not and all non-multiples of 2 or 7 do produce a unique encryption: Z28* = {1, 3, 5, 9, 11, 13, 15, 17, 19, 23, 25, 27} allowing only 12 different unique encryptions. That is weird! A longer alphabet produces less unique encryptions. Why is that? This weirdness is not really weird. What really matters is not the alphabet length M but rather the number of multiples of the prime factors of M that are less than M: the less multiples of prime factors (as for the alphabet length of 27), the more as produce a unique encryption and vice versa. Aha, that realization helps a lot, since that also means that prime Ms produce M-1 unique encryptions. Why is that? Try to explain this, than continue reading! The reason for that is that a prime number has per definition no prime divisor except for 1 and itself. Therefore, since there are no other prime divisors and thus no multiples, all integers less than M serve as good keys. Lets check this for an alphabet length of M=29. As 29 is prime, it has no divisors except for 1 and 29 and thus there are no multiples as bad keys. Therefore, each integer less than 29 is a good key MOD 29: Z29* = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28}. allowing a total of 28 different unique encryptions. Hey, this shows a great way to produce more unique encryptions which of course makes life harder for an eavesdropper: Recommendation for more security: Choose the alphabet length M to be a prime number to make cracking the cipher text more difficult. You now understand why cryptographers have an affection for prime numbers. Additionally, you will learn that the RSA Cipher uses prime numbers as well. They are very special primes as they must consist of 100 digits or more. It is not difficult to understand that the length of such numbers requires the usage of computers. Thus, we now go ahead and practice a bit more computer programming. Determining the bad keys for a given alphabet length M is a perfect task for a computer. The following C++ program firstly determines the factors for an entered alphabet length M and secondly their multiples, the bad keys. Thirdly, listing the good keys would be best done using C++ vectors or even C-style arrays which you might know. If so please go ahead and modify the following program. If you dont know, exercise your patience, later in this chapter I will present a more elegant program that uses the Euclidean Algorithm to determine the good keys. This program is an extension of the previous simple factoring program. After finding each factor of M, I just print them out in for (j=1;j #include #include #include void main() { int M, m, j, factor, factor2; bool prime; clrscr(); cout << "This program finds the 'bad' keys for an entered alphabet length M." << endl; cout << "===========================================================================" << endl; do { cout << "Enter the alphabet length or 0 to exit: M="; cin >> M; m=M; factor=2; prime=0; //initialization while(factor <= m) { if (m%factor==0) { if (factor!=M) { cout << "Divisor of "<< M << " =" << setw(3) <. Since the bool.h library is very short I want to show you its contents: typedef int bool; const int false = 0; const int true = 1; In the first line the new data type bool is defined of type int so that the (two) bool-variables are just regular integers. The next two lines then show us that the variable false is defined as 0 and true as 1. The command const is used as a safety feature in C++: both variables are constant and can never be modified in any program. 2) The setwidth command setw() assigns as many spaces as entered in the parentheses for a numerical output in order to have a well-formatted output. It has to be placed after the cout command as in: cout << setw(2) << j*factor. In order to be able to use the command setw() we have to include the iomanip.h library in #include . 2.5 Counting the Number of Good Keys for various Alphabet Lengths M An Introduction to the Euler Function. Now that we have explored the criteria for unique encryptions and the number of good keys for certain alphabet lengths, it is the nature of Mathematics to generalize the observations and to set up an explicit formula for the number of unique encryptions based on the alphabet length M. For that purpose we have to consider 3 different cases of the alphabet length M 1) If M is a prime number: We observed in the previous section that the prime alphabet length M=29 yields u=28 unique encryptions. For the same reason, an alphabet length of M=31 produces u=30 unique encryptions. Since the number of unique encryptions u is a function of the alphabet length M, we may write in function notation: u(M) to denote the number of unique encryptions (which equals the number of good keys) as a function of M. I.e. for M=29 we have u(29)=28. For M=31 we have u(31)=30. Remember that a function, per definition, assigns to each x-value one particular y-value. The x values are the ones that we can choose independently, here the length of the alphabet M. Each y-value is dependent on the choice of x, i.e. the number of unique encryptions u are dependent on the chosen alphabet length M. Since u can be expressed as a formula that involves M, namely u=M-1, we say that u is a function of M and write u(M)=M-1. In general we have the: Formula for the number of good keys if M is a prime If the alphabet length M=p is prime, the number of good keys is u(p) = p-1. 2) If M is a prime power, M=pn: Now lets look back at M=27 as an example where we only have the one prime factor p=3, such that M=33. How many multiples of 3 will not produce a unique encryption? Those are the 8 integers 3, 6, 9, 12, 15, 18, 21, 24. Since there are 9 threes (or 9 multiples of 3) in 27 and therefore 8 threes when counting only up to 26 yielding the 8 listed bad keys. Therefore, we just need to divide 27 by the only prime divisor 3 and subtract 1 at the end to find the number of bad keys: 8 = 27/3 1. This principle of finding the number of bad keys holds true for any alphabet length that is a prime power: There are M/p multiples of p less or equal to M, and therefore M/p - 1 many less than M. And we are only interested in those integers less than M since we are calculating MOD M which involves the integers 0 to M-1. Thus, the number of bad keys can simply be found by dividing the alphabet length M by the only prime divisor p and subtracting 1 from that fraction: M/p - 1. Lets write down the Formula for the number of bad keys if M is a prime power b(M) = number of bad keys = M/p - 1. Example1: M=9=32 has the only prime divisor 3 and thus b=9/3 1 = 2 bad keys which are 3 and 6 as the multiples of 3 that are less than 9. Example2: M=81=34 has again 3 as the only prime divisor and thus b = 81/3 1 = 34/3 1 = 33 1 = 26 bad keys. Those are 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75 and 78 as the multiples of 3 that are less than 81. Our ultimate goal is not to develop a formula for the number of bad keys but rather for the number of good keys. However, subtracting the number of bad keys from the number of all possible keys (=M-1) yields the number of good keys. In formula: u(M) = (M-1) b(M) using the above formula for the number of bad keys yields = M-1 - (M/p -1) distributing the minus sign to the terms in the parenthesis yields = M-1 - M/p + 1 canceling out the 1s yields = M - M/p This turns out to be a handy formula for the number of good keys. However, it can be simplified further using the fact that we are considering here alphabets of length M that are powers of a prime p: M=pn for some positive integer n. Thus, our formula simplifies to: u(M) = pn pn/p which simplifies further to = pn - pn-1. Therefore, Formula for the number of good keys if M is a prime power: If M = pn , the number of good keys is u(M) = pn - pn-1. Example 1: For M=27=33: Inserting 3 for p and 3 for n in pn - pn-1 yields u(27) = 33 - 32 = 27-9 = 18 which is just what we wanted. Example2: For M=9=32 we have u(9) = 32 - 31 = 9 3 = 6 which are the 6 good keys a=1,2,4,5,7,8. Example3: For M=16=24 we have u(16) = 24 - 23 = 8 which are the 8 good keys a=1,3,5,7,9,11,13,15. Example4: For M= 34 =81, we get u(81) = 34 - 33 = 81 27 = 54. 3) If the alphabet length M is a product of two prime numbers p and q The last case we have to study is when M is a product of two primes. Combining our three formulas for the number of good keys, we will then be able to develop a general formula for the number of good keys for any given alphabet length M. Lets start with Example1: M=26=p*q=2*13. We saw that an alphabet length of M=26 produces 12 unique encryptions, since the even numbers as multiples of 2 and the 13 are the 13 bad keys. More precisely: Out of the 25 (= p * q - 1) integers that are smaller than 26, we had 12 (=13-1) multiples of 2 {2,4,6,8,10,12,14,16,18,20,22,24} and the 1 (=2-1) multiple of 13 {13} as bad keys, so that 25-12-1=12 good keys are remaining: a = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 Notice that u(26) = 12 = 25-12-1 = (p*q - 1) (p-1) - (q-1) Example2: For M=10=5*2, we obtain u(10)=4 good keys which are obtained by crossing out the 4 (=5-1) multiples of 2 and the 1 (=2-1) multiples of 5 as bad keys: a = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Notice that again u = 4 = 9 4 1 = (p*q - 1) (p-1) (q-1) Example3: For M=15=5*3, we obtain u(15)=8 good keys which are obtained by crossing out the 4 (=5-1) multiples of 2 and the 2 (=3-1) multiples of 5: a = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 Notice that again u = 8 = 14 4 2 = (p*q - 1) (p-1) (q-1) The number of good keys can always be computed by u(p*q) = (p*q - 1) - (p-1) -(q-1). This formula can be simplified into the product of two factors. Here is how: u = (p*q - 1) - (p-1) (q 1) getting rid of the first two parentheses yields = p*q -1 - p + 1 (q 1) the two 1s cancel each other out yielding = p*q p (q 1) factoring the p yields = p*(q-1) (q 1) (q-1) in both terms can be factored yielding = (q-1) * (p 1) which can also be written as = (p-1) * (q 1) Formula for the number of good keys if M is the product of two primes: The number of good keys is u(M) = u(p*q) = (p-1)*(q-1). Example4: If M=39=3*13=p*q, then the formula yields u(39) = (3-1)*(13-1) = 2*12 = 24. You can verify this as follows: out of the 38 (=p*q-1) integers that are less than 39, we first cross out all the 12 (=13-1) multiples of 3 {3,6,9,12,15,18,21,24,27,30,33,36} and then cross out the 2 (=3-1) multiples of 13 {13,26} resulting in 38 12 2 = 24 good keys. Example5: If M=65=5*13=p*q, then the formula yields u(65) = (5-1)*(13-1) = 4*12 = 48. You can verify this as follows: out of the __ integers that are less than 65, we first cross out all the ___ multiples of __ and then cross out the __ multiples of __ resulting in ______ = 48 good keys. A summary of our explorations for the number of good keys shows: 1) u(p) = p - 1, if M is prime M=p. 2) u(pn)= pn - pn-1, if M is a power of a prime M= pn. 3) u(p*q) = (p-1)*(q-1), if M is a product of two primes M=p*q. Credit goes to the Swiss Mathematician Leonard Euler (pronounced Oiler, 1707-1783). He investigated these number properties and was the first one to come up with a function, Eulers (-function, also called Eulers Totient function, that determines the number of integers that are relative prime to a given integer M. It is a function that is in the heart of Cryptography and used i.e. for the RSA encryption. The following table shows the numbers relative prime to M for the first 21 integers. M23456789101112131415161718192021( (M)12242648121041268816618812 Similar to our notation, the properties of Eulers (-function that computes the number of integers that are relatively prime to M and wrote similarly to our notation: Eulers (-function: 1) ((p) = p-1 for a prime p. 2) ((pn) = pn - pn-1 for a prime power pn. 3) ((p*q) = (p-1)*(q-1) for two distinct primes p and q. 4) ((n*m) = ((n) * ((m) when n and m are relatively prime. It describes the multiplicative property of (. We have explored the first three properties already, however, the 4th property is new - but not totally new. I want to show you an example where we used it already. Say M=26=2*13=n*m. Since n and m are two distinct primes, they certainly are relative prime, so that the condition for property 4) is fulfilled. We obtain ((2*13) = ((2) *((13). From property 1) we know that ((2)=1 and ((13)=12, and consequently, ((2*13) = ((2)*((13) = 1*12 = 12 which is exactly property 3). Thus, property 4) yields nothing new if our alphabet length is the product of two primes. However, it turns out to be indispensable when M is not the product of two primes, but say a product of a prime and a prime power. Example1: If M=24=3*8=3*23, then ((24) = ((3*23) using property 4) yields = ((3)*((23). using properties 1) and 2) yields = (3-1)*(23-22) = 2*4 = 8. For a check: the eight integers 1,5,7,11,13,17,19,23 are relative prime to 24 and thus the good keys for M=24. Even products of 3 primes or prime powers like 30 or 60 can now be dealt with due to the 4th property: Example2: If M=30=2*3*5, then ((30) = ((2*3*5) using property 4) yields = ((2)*((3*5) again property 4) yields = ((2)*((3)*((5) now using property 1) yields = 1*2*4 = 8. For a check: the same eight integers 1,5,7,11,13,17,19,23 are relative prime to 30 and are thus the good keys for M=30. Example3: Now, it is your turn. If M=60=22*3*5, then ((60) = ((22*3*5) using property __ yields = ((22)*((3*5) using property __ yields = ((22)*((3)*((5) using properties __ and __ yields = (22 21)*2*4 = 2*2*4 = 16. You noticed, that the multiplicative property of Eulers (-function, expressed in property 4), is used to decompose any integer M into its prime factors or prime power factors to then apply the first two properties to each prime or prime power. This eventually enables us to calculate the number of integers that are relative prime to these primes and prime powers. Multiplying such answers yields the number of good keys for any given alphabet length. The given examples show you the calculation process. Notice, that property 3) became useless for the calculation process since factors that are relative prime are separated via property 4). Subsequently, ( is computed by property 1) if such factors are primes or by property 2) if they are prime powers. Before we conclude this section with the highlight of creating a sole formula for ((M) from these four properties, we will consider 2 examples for each of the 4 properties of Eulers (-function. I will complete the first ones and leave the second ones for you as exercises. Examples for property 1): 3 and 5 are two primes. ((3)=3-1=2 as 1 and 2 are relative prime to 3. ((5)=_____ as 1,2,3,4 are relative prime to 5. Examples for property 2): 8 and 25 are prime powers. ((8)= ((23)=23 -22 =4 as 1,3,5,7 are relative prime to 8. ((25)=____________ as all integers from 1 to 24 except for 5,10,15,20 are relatively prime to 25. Examples for property 3): 15 and 21 are products of two primes. ((15)=((3*5)=(3-1)*(5-1)=2*4=8 as 1,2,4,7,8,11,13,14 are relative prime to 15. ((21)=________________________ as 1,2,4,5,8,10,11,13,16,17,19,20 are relative prime to 21. Examples for property 4): 24 and 28 are products of primes and prime powers. ((24) = ((23 *3) = ((23)*((3) = (23-22)*(3-1) = 4*2 = 8 as 1,5,7,11,13,17,19,23 are relative prime to 24. ((28) = _____________________________ as 1,3,5,9,11,13,15,17,19,23,25,27 are relative prime to 28. Now, lets come to the highlight of this section: I will show you in a few steps how to compute ((M) for any M from one equation instead of combining the four properties? All we need to know are the prime divisors of M, but we dont even need to know how often a prime number divides M. I.e., for M=27 we just need to know that 3 is a prime divisor of 27 but not how often it divides 27. While deriving the formula for M=60=22*3*5 in the left column I will deduce simultaneously the explicit formula for M=p12*p2*p3 with p1 being the first prime factor 2, p2 being the second prime factor 3 and p3 being the third prime factor 5 in the right column. We know already that: ((60) = ((22*3*5) = (22-21)*(3-1)*(5-1)((M) = ((p12* p2* p3) = (p12- p11)*( p2-1)*( p3-1). For the purpose of setting up an explicit formula for ((M), we now try to give the three factors (in parentheses) the same format. We factor p1=2 yielding = 2*(2-1)*(3-1)*(5-1) = p1* (p1- 1)*( p2-1)*( p3-1). The three factors in the parentheses already have the same desired format, however, the single 2 destroys it. The ultimate trick to yet produce the same format is factoring: from each parentheses we factor the first integer (which is a divisor of M) and obtain: ((60) = 22*(1 -1/2) * 3*(1 -1/3) * 5 * (1 -1/5)((M) = p12 * (1 -1/ p1) * p2*(1 -1/ p2) * p3 * (1 -1/ p3)  = 22*3*5*(1 -1/2)*(1 -1/3)*(1 -1/5) = p12* p2* p3*(1 -1/ p1)*(1 -1/ p2) * (1 -1/ p3)  = 60*(1 -1/2)*(1 -1/3)*(1 -1/5)  = M * (1 -1/ p1) * (1 -1/ p2) * (1 -1/ p3).  This is it. Notice in the last row that all we need to know are the prime factors p of M without knowing how often they occur. We then write them in the form (1-1/p), multiply them and that product by M yielding ((M). On the right we ended up with the explicit formula for ((M) when M consists of one prime power and two primes. It surely acquires this simple form for any number of primes or prime powers. Notice, that all we need to find are the different primes, say p1, p2,..., pn, as our explicit formula for the number of unique encryptions appears to be: Formula for the number of good keys for any alphabet length M: For an alphabet length M, there are ((M) = M * (1- 1/p1) * (1- 1/p2) ** (1- 1/pn) good keys where each pi is a prime divisor of M. It is really enjoyable to use this simple formula as we just need to find all prime divisors of M and dont have to worry about how often they occur. Therefore, a simple prime check program would be sufficient to find the divisors p of M. We then set up the factors of the form (1- 1/p), multiply them and eventually multiply that answer by M. Example1: Say M=180, then a prime check program yields the prime factors 2,3 and 5, so that ((180) = 180 * (1-1/2) * (1-1/3) * (1-1/5) = 180 * (1/2) * (2/3) * (4/5) = 90 * (2/3) * (4/5) = 60 * (4/5) = 48 Example2: Say M=360, since 360=2*180 the prime factors are again 2,3 and 5, so that ((360) = 360 * (1-1/2) * (1-1/3) * (1-1/5) = 360 * (1/2) * (2/3) * (4/5) = 180 * (2/3) * (4/5) = 120 * (4/5) = 96 Example3 is for you: Say M=90, since 90=____ the prime factors are _______, so that ((90) = 90 * (1-1/__) * (1-1/__) * (1-1/__) = 90 * ____________________ = _______________ = _______________ = ___ Of course, I could have computed the answers in the above examples right away but I wanted to give you the chance of brushing up on your skills to multiply fractions. A little computer program turns out to be again very valuable as the number of good keys can be easily determined by first finding all prime factors of M to then use the above explicit formula. //Author: Nils Hahnfeld 10-16-99 //Program to determine ((M)using M*(1-1/p1)*(1-1/p2)*... #include #include void main() { int factor, M, m; float phi; clrscr(); cout << "This programs uses M*(1-1/p1)*(1-1/p2)*... to calculate phi(M)."< #include void main() { int M,factor=2; clrscr(); cout << "Enter integer M= "; cin >> M; while (factor 9 -> 1 The order of a=3 is 3 which equals the order of S3, and a=3 generates S3.  5 -> 25 -> 21 -> 1 The order of a=5 equals the order of S5, a=5: namely 4, and a=5 generates S5. Although the subgroup S7 is not a proper subset of Z26* (since it equals Z26*) it is a subset of Z26*. Thus, S7, has an order of 12 and 7 is a generator of S7 (since it generates Z26*). All 3 examples show that each subgroup is generated when the generator, which we now name the good key g, is raised to the power of 1, then 2, then 3, until we obtain the unit element 1. In that moment, the entire subgroup is generated by that good key g. I.e. we can write a cyclic group with 12 members as Gg = { g, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12=1} This leads us now to the official Definition of cyclic (sub)groups: Cyclic (sub)groups are (sub)groups that can be generated by at least one member g. Example1: The subgroups S3={3,9,1}, S5={5,25,21,1} and S7 (= Z26*) are cyclic since they can be generated by 3, 5 and 7 (or 11, 15, 19) respectively. Example2: {0,1,2,3,,M-1} is a finite group with respect to addition and can be generated by 1. Example3: The subgroup of all even integers can be generated by 2 or 2 and is thus an example for an infinite cyclic group. Counter example1: Verify in Table2.8C that the group Z28* = {1, 3, 5, 9, 11, 13, 15, 17, 19, 23, 25, 27} is not cyclic since none of the good keys generates Z28*. Certainly, subgroups of Z28* are generated by each of the good keys in Z28*, however, none of them generates the entire group Z28*. When is a group ZM* cyclic? With other words: How can we choose our alphabet length M so that ZM* turns out to be a cyclic group? We investigate this by trying many, many different alphabet lengths. Lets imagine we are one of the greatest Mathematicians trying to find some pattern in our list. My foregoing is the following: I underlined the generators in each group. If none are underlined, then the group is not cyclic and I then colored that group gray. I left some blanks for you as an exercise to fill in. Multiplicative Groups ZM*Factors of MZ2*={1}2Z3*={1,2}3Z4*={1,3}4=2*2Z5*={1,2,3,4}5Z6*={1,5}6=2*3Z7*={1,2,3,4,5,6}7Z8*={1,3,5,7}8=2*2*2Z9*={1,2,4,5,7,8}9=3*3Z10*={1,3,7,9}10=2*5Z11*={1,2,3,4,5,6,7,8,9,10}11Z12*={1,5,7,11}12=2*2*3Z13*={1,2,3,4,5,6,7,8,9,10,11,12}13Z14*={1,3,5,9,11,13}14=2*7Z15*={1,2,4,7,8,11,13,14}15=3*5Z16*={1,3,5,7,9,11,13,15}16=2*2*2*2Z17*={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}17Z18*={1,5,7,11,13,17}18=2*3*3Z19*={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}19Z20*={1,3,7,9,11,13,17,19}20=2*2*5Z21*={1,2,4,5,8,10,11,13,16,17,19,20}21=3*7Z22*={_____________________}22=____Z23*={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}23Z24*={1,5,7,11,13,17,19,23}24=______Z25*={1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19,21,22,23,24}25=5*5Z26*={___________________________}26=2*13Z27*={1,2,4,5,7,8,10,11,13,14,16,17,19,20,22,23,25,26}27=______Z28*={1,3,5,9,11,13,15,17,19,23,25,27}28=2*2*7Z29*={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28}29Z30*={____________________}30=2*3*5Z31*={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}31Z32*={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31}32=______Z33*={1,2,4,5,7,8,10,13,14,16,17,19,20,23,25,26,28,29,31,32}33=3*11 Question for you: Which ZM* are not cyclic? Well, that was the easy part: all the gray M ones have no generator and are therefore not cyclic. What dont these M have that the other Ms have? It must have something to do with the factors of M which is the reason why I created the 2nd column. But what exactly? Before you continue reading try to come up with a good guess. What do you observe? I observed, that all multiples of 4 except for 4 itself yield non-cyclic group. Thus, all the M that contain an factor 2*2 yield non-cyclic groups. Also, M=21=3*7 and M=3*11 suggest that products of two primes yield non-cyclic groups. Attention: 2*7, 2*11, 2*13 are also products of 2 primes, so I better say that the product of two odd primes yields a non-cyclic group. What about the non-cyclic 30=2*3*5? It also contains a product of two odd primes. So, I better say that If M contains a product of two odd primes or is a multiple of 4 then ZM* is non-cyclic. And vice versa, which M yield cyclic groups ZM*? How can we express them? Even though expressing the non-cyclic ZM* is easy we still want to express the cyclic ones. So, lets do it: If M is prime ZM* is cyclic. Also, all the products of the same prime yield a cyclic ZM* such as M=5*5 or M=3*3 and even for M=3*3*3. They are called prime powers. Also, multiplying the prime powers by 2 is allowed such as M=2*3*3. Remember that products of two different odd primes such as M=3*5 or M=3*7 is not allowed. Lets not forget that M=2 and M=4 yield cyclic groups. That is it, no other products are allowed. It is time to formulate our conjecture: If M equals 2 or 4 or pn or 2*pn for some odd prime, then ZM* is cyclic. In fact, that is it. Surely, to be on the safe side we should continue our list and check for further non-cyclic groups. It wrote a little C++ program that simply checks if ZM* contains a generator or not. I will show it to you now. Remember that this theorem can not just be based on checking and guessing. What if we oversaw a certain case that did not show up in our examples (i.e. If M is a multiple of 1347, ZM* is non-cyclic)? Time for a few words on mathematical proofs: In Mathematics, we are aiming for guaranteed true results that can never be disproved. Thus, theorems have to be air tight. And we make them air tight by proving them i.e. the way we proved Eulers Theorem for any alphabet length M. Self-created proofs may make sense to us, but they are only accepted if nobody in the whole Mathematics society can find a mistake or a counterexample. For example, the 300-page-proof of Fermats Last Theorem by Andrew Wiles was inspected by about 10 Mathematicians that spent more than half a year to understand Wiles reasoning. At the end, nobody could prove him wrong, thus, the proof was accepted or true. This conclusion I leave up to you. Here is the C++ program that checks if ZM* possesses a generator and is therefore cyclic: #include #include #include int gcd(int A, int B) { int R; do { R=A%B; A=B; B=R; } while(R!=0); return A; } void main() { int M,i,p1,p2,counter,phi=1; long int K; clrscr(); cout << "Enter number M = "; cin >> M; cout << "Relative prime are: 1 "; for(i=2;i 2. i is, however, a generator if ((M)=2. Since i=1 can never be a generator (except in the subgroup S={1}), I started the for-loop at i=2 in for (i=2;i 23 -> 5 -> 9 ->11 -> 25 -> 19 ->3 -> 21 -> 17 -> 15 -> 1 We can rewrite this as: S7 = {7, 23, 5, 9, 11, 25, 19, 3, 21, 17, 15, 1} = {7, 72, 73, 74, 75, 76, 77, 78, 79, 710, 711, 712=1} = {g, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12=1} I.e. 23 equals 72, 5 equals 73 MOD 26. Therefore, we may write 23=g2 and 5=g3 when using the generator g=7. The purpose of writing each good key as a power of the generator g=7 is to determine the order of the subgroup generated by that good key. I.e.: Since 23=g2, the order of 23 and therefore the order of the subgroup generated by 23 must be 6 as 236 = (g2)6 = g12 = 1. And the 6 subgroup members as powers of 23=g2 are S23 = {g2, g4, g6, g8, g10, g12=1} = {23, 9, 25, 3, 17, 1}. Notice that the exponent of the generator 23=g2, namely 2, gives the jump length and the number of jumps that guides us to the desired exponent 12 equals the order of the subgroup S23, namely 6. The order of the subgroup generated by 5=g3 is 4 since 54 = (g3)4 = g12 = 1. The 4 subgroup members are S5 = {g3, g6, g9, g12=1} = {5, 25, 21, 1} obtained by 4 jumps each of length 3. It is your turn now, fill in the blanks: The order of the subgroup generated by 9 is __ since (g4)_ = g12 = 1. The __ subgroup members are: S9 = {g4, , g12=1} = {9, ,1} obtained by __ jumps each of length __. The order of the subgroup generated by 25=g6 is 2 since 252 = (g6)2 = g12 = 1. We learned this already: Since 25 = -1 MOD 26 we have 25 = (-1)2 = 1 MOD 26. The members of the subgroup generated by 25 are: S25 = {g6, g12=1} = {25,1} obtained by 2 jumps each of length 6. Notice that S25 is itself a subgroup of the subgroup S5 = {5, 25, 21, 1}as 25 and 1 are in S5 and themselves fulfill the four group properties. Subgroup of subgroup of groups, does that ever end? Is there a smallest subgroup of the group Z26*? Of course, S1 ={1} is the smallest subgroup of Z26* since each subgroup must contain the unit element 1. Now, the inverse of 1 is 1 itself since 1*1=1 MOD 26. Furthermore, 1 generates the subgroup S1 ={1} of order 1. Our above method to determine the order of any subgroup must also work here: Since 1=g12 the order of 1 must be 1 since (g12)1 = g12 = 1. Finally, there is nothing special about M=26. S1 = {1} is the smallest subgroup for any alphabet length M. Our above method to determine the order of a good key in Z26* worked well because the exponents of the powers of the generator g that I chose i.e. 1,2,3,4,6 and 12 are divisors of 12. It was easy to find their multiples in order to arrive at exponent 12. How do we find the orders of those exponents that are not divisors of 12 such as 5, 7, 8, 9, 10 and 11? With other words: What are the orders of the subgroups generated by g5, g7, g8, g9, g10 and g11? Lets find the order of 11=g5 first? Recall that the definition of the order of a group member is that exponent which yields 1 for the first time. If we now add more columns to the tableX we will find 1s in columns 12, 24, 36, 48, 60, 72, 84, since g12 = 1, g24 = (g12)2 = 12 = 1 MOD 26 and similarly g36 = g48 = g60 = g72 = g84 = = 1. Starting off in column 5 with jumps of length 5, we hit the first 1 in column 60 since no other column is a multiple of 5 and 12 at the same time. Therefore, 11=g5 is of order 12 and a generator of S11 = Z26*: S11 = {11, 112, 113,114,115,116,117,118,119,1110,1111,1112=1} = {g5, (g5)2, (g5)3, (g5)4, (g5)5, (g5)6, (g5)7, (g5)8, (g5)9, (g5)10, (g5)11, (g5)12=1} = {g5, g10, g15, g20, g25, g30, g35, g40, g45, g50, g55, g60=1} = {11, 17 , 5 , 3 , 7 , 25, 15, 9 , 21 , 23, 19 , 1} obtained by 12 jumps each of length 5. The order of the subgroup generated by 19=g7 is 12 since 7 and 12 are relative prime and therefore: (g7)12 = g84 = 1 MOD 26. Again, that does not surprise us since we learned already that 19 = g7 is a generator of Z26*: S19 = {19, 192, 193,194,195,196,197,198,199,1910,1911,1912=1} = {g7, (g7)2, (g7)3, (g7)4, (g7)5, (g7)6, (g7)7, (g7)8, (g7)9, (g7)10, (g7)11, (g7)12=1} = {g7, g14, g21, g28, g35, g42, g49, g56, g63, g70, g77, g84=1} = {19, 23, 21 , 9 , 15 , 25, 7, 3 , 5 , 17, 11 , 1} obtained by 12 jumps each of length 7. Now it is your turn again. The order of the subgroup generated by 15=g__ is __ and 15 thus generates Z26*. Explain why only the powers with exponents 1,5,7,11 turn out to have an order of 12 and are therefore the only generators of Z26*. Answer: Because 12 is relative prime to 1,5,7,11 and therefore jumps of length 1,5,7 or 11 will yield the first 1 for an exponent that is the least common multiple. Complete the following: S15 = {15, 152, 153,154,155,156,157,158,159,1510,1511,1512=1} = {g11 ., (g11) __ =1} = {g11,., g132=1} = {15, .} The crux is now that the order 12 for g1, g5, g7, g11 is not only true when choosing the generator g=7. It is true for any chosen generator of Z26* such as g=7,11,15 or 19. It is thus independent of the choice of the generator g. I.e. g=11 generates Z26* in just the same way: S11 = {g, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12=1} = {11, 112, 113,114,115,116,117,118,119,1110,1111,1112=1} = {11, 17, 5, 3, 7, 25, 15, 9, 21, 23, 19, 1} Notice here that the members of order 12 are again those whose powers have exponents that are relative prime to 12: g1=11, g5=7, g7=15 and g11=19. It is your turn again: generate all members of Z26* by raising the generator g=15 to the powers of 1, 2, , 12 and verify that those with an exponent 1,5,7 and 11 are the ones that have an order 12. S15 = { g, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12=1} = {15, 152, 153,154,155,156,157,158,159,1510,1511,1512=1} = {15, 17, , 1} Notice, for any of the four generators we obtain the following good keys as powers of g: g2 and g10 always yield 23 and 17 which are of order 6, g3 and g9 always yield 5 and 12 which are of order 4, g4 and g8 always yield 9 and 3 which are of order 3, g6 = 25 which is of order 2, and of course g12 = 1 which is of order 1. We are left now with the easy task to determine the orders of the subgroups generated by 3= g8, 21= g9 and 17= g10 using the same generator g=7. For 3= g8: The subgroup generated by 3=g8 is S3 = {3,9,1}= {g8, g16, g24=1} (obtained by 3 jumps each of length 8) and thus has an order of 3. For 21= g9: The subgroup generated by 21=g9 is S21 = {21,25,5,1}= {g9, g18, g27, g36=1} (obtained by 4 jumps each of length 9) and has thus an order of 4. For 17= g10: The subgroup generated by 17=g10 is S17 = {17, 3, 25, 9, 23, 1} = {g10, g20, g30, g40, g50, g60=1} (obtained by 6 jumps each of length 10) and has thus an order of 6. Lets summarize our discoveries in Z26*: Powers of generators g of Z26*yield the good keys in Z26*of order s g1 , g5 , g7 , g11 7, 11, 15, 1912g2 , g10 17, 236g3 , g9 5,214g4, g83,93g6252g1211 This table is very important since it contains and displays many significant facts: Fact: This table shows that the orders s are all divisors of the cyclic group of order ((26)=12. 2. Fact: This table contains the fact that the choice of the actual generator g of Z26* is irrelevant for the order of a good key (expressed as a power of g) in Z26. After finding a generator g we can tell the order of each good key expressed as a power of g, gk, simply by looking at the exponent k. 3. Fact: The table gives pairs of encoding and decoding keys: Recall that an encoding key is inverse to its decoding keys which simply means that their product equals 1. If the members in Z26* are now listed as powers of the generator, then 2 members are inverse and thus form a pair of encoding and decoding keys if their exponents add up to 12. I.e.: using g=7 as generator of Z26* yields g3 = 5 and g9 = 21 as a pair since g3 * g9 = g12 = 1 MOD 26. Also, g4 = 9 and g8 = 3 forms a pair since g4 * g8 = g12 = 1 MOD 26. The only keys that are inverse to themselves are g12=1 and g6 = 25. 4. Fact: The table shows that pairs of encoding and decoding keys have the same order. I.e.: Using g=11 as a generator of Z26* tells us that g4 = 3 and g8=9 are both of order 3 which we learned already since both generate the same subgroup S = {3,9,1}. Also, g2 = 17 and g10 = 23 are both of order 6 as they both generate the subgroup S = {17, 3, 25, 9, 23, 1}. Notice that all the observations are only valid for cyclic groups, those who can be generated by one member. That particular member g is needed to list such groups as G = {g, g2, g3, , gn=1}. I want to end this section with an highlight for cyclic groups that I find shows a lot of the elegance of Mathematics. Lets find a formula to determine the order of a good key in Z26* - expressed again as a power of a generator g of Z26* - solely by inspecting its exponent? I.e. How can writing 23 as g10 for some generator g help us to find its order 6? Here is how. We observed that those powers with exponents that are relative prime to 12 such as 1,5,7 and 11 yield order 12. This tells us that the order depends somehow on the greatest common divisor of the exponents and 12. Therefore, lets find all 12 greatest common divisors by firstly writing out the 12 exponents, by secondly dividing 12 by each possible exponent (that are those between 1 and 12) and by thirdly simplifying the fractions to find their greatest common divisors: Exponents: 12 12 12 12 12 12 12 12 12 12 12 12 12/1 12/2 12/3 12/4 12/5 12/6 12/7 12/8 12/9 12/10 12/11 12/12 12/1 6/1 4/1 3/1 12/5 2/1 12/7 3/2 4/3 6/5 12/11 1/1 The third row is instrumental to us: The four underlined fractions with exponents that are relative prime to 12, i.e. 1,5,7,11, can not be simplified further and the numerator 12 gives their orders. Simplifying the red fractions for the exponents 2 and 10 yield a numerator of 6 which tells us their order. What is the order of the exponents 4 and 8? What does the third row tell you? Reading the table reveals 3 in green. Isnt that an elegant way of determining the order of a subgroup? With ease we can now come up with a formula for the order of a subgroup generated by gk solely based on the exponent k: 1. Formula to compute the order of each good key gk in Z26*: s = order of the good key gk = 12 / gcd(k,12) Example1: the order of g8 equals 12 / gcd(8,12) = 12/4 = 3. Example2: the order of g7 equals 12 / gcd(7,12) = 12/1 = 12. Verify this formula for all the other exponents and then continue reading. Again there is nothing special about M=26. More general, for a given alphabet length M we have ((M) many good keys in ZM*. In case they form a cyclic group and thus at least one good key is a generator of ZM* so that each good key can be expressed as a power of g, gk, the order of each good key a= gk can be computed as follows: Formula to compute the order of each good key gk in the cyclic group ZM* s = order of the good key gk = ((M) / gcd(k, ((M)) Counter example1: For M=28 we have the good keys 1, 3, 5, 9, 11, 13, 15, 17, 19, 23, 25, 27. Since Z28* does not possess a generator g we can not express any good key as gk. Therefore, we can not apply the formula. How to determine the Number of Good Keys of given Order in a Cyclic Group Believe it or not, this is not the climax yet. From our simplified fractions in the third row, we can even tell how many good keys in Z26* possess an order of 12, 6, 4, 3, 2 or 1. I.e. we have 4 good keys that have an order of 12 since there are 4 fractions that have a non-simplified numerator 12. That means that there are four integers less than 12 that are relative prime to 12, namely the four underlined denominators 1,5,7 and 11. Thus, Eulers (-function with ((12)= ((((26))=4 gives the number of good keys with order 12 and we can set up the Formula to determine the number of good keys in a cyclic group that are of order s: ((s) = the number of integers relative prime to the divisor s of n=((M), gives the number of good keys a that are of order s. More examples for Z26*: There are two fractions with a simplified numerator 6, 6/1 and 6/5, telling us that there are 2 integers less than 6 that are relative prime to 6, namely the two denominators 1 and 5. Moreover, ((6)=2 tells us that there are two good keys of order 6. Similarly, we find that there are ((4)=2 of order 4, ((3)=2 of order 3, ((2)=1 of order 2, and ((1)=1 of order 1. Altogether, we have ((1) + ((2) + ((3) + ((4) + ((6) + ((12) = 1 + 1 + 2 + 2 + 2 + 4 = 12. And we have just discovered Eulers identity which holds true for cyclic groups of order n: "((s) = n denoting the sum of ((s) for all divisors s of n. ((s) tells us the correct number of good keys of order s, however, it does not tell us which good keys those are. However, the 2nd row does. I.e. the good keys of order 6 are g2 and g10 again for any generator g which we find by going up from 6/1 and 6/5 to the second row yielding the 2 and the 10 as the denominators of 12/2 and 12/10. This might look interesting and confusing at the same time to you. Nothing helps better than doing it yourself and rediscovering the steps that I just showed you. So, here are your three assignments: Say we choose an alphabet length of M=27 by adding the character . to our alphabet length M=26. Recall the good keys MOD 27. Z27*={1,.,26} Recall the order of each good key a by creating the chain display. Verify the orders in 2) by firstly picking a generator g of Z27*. Secondly list the members in Z27* as powers of that generator g so that Z27*= {g, g2, g3,., 1}. Thirdly, calculate the orders of the good keys in Z27 expressed as powers of g using the above 2. Formula to compute the order of each good key in ZM*: Finally, for each divisor d of 18=((27) find out how many good keys possess an order that equals the divisor d by using Eulers (-function. By adding them all up, I want you to verify Eulers Identity. Conclusions: The orders of the good keys occur ((s) times for any divisor s of ((M), the order of the cyclic group, where M is the used alphabet length. Each divisor s must occur at least once in cyclic groups since ((s) is greater or equal to 1. We know three particular orders: a) The number of generators (which equals the number of good keys of order 12) in ZM* is ((((M)). Good keys of order 1 occur exactly once since ((1)=1. That is the order of the key a=1 which is a good key in ZM* for any M. c) The order 2 occurs once aswell since ((2)=1. That is the order of the key a=M-1 since M - 1 = -1 MOD M and therefore (M-1)2 = (-1) 2 =1 MOD M.. The orders of 1 and 2 are the only one occurring only once since ((d) is greater than 1 for divisors d that are greater than 2. (I.e. ((3)=2, ((4)=2, ((5)=4, ((6)=2, ((7)=6,) . In fact, ((d) is always an even number, the only exceptions are s=1 and s=2. Therefore, all other orders must occur as even numbers. The ultimate question still remains: why did we only have jump lengths that are divisors of the order of G. I want to show you why i.e. only jump length that are divisors of 12 occur in Z26*. Therefore, we have to understand Lagranges Theorem. Its conversion will then finally show us that there must be at least one jump length for any divisor of the order of the cyclic group G. 2.8.6 Lagranges Theorem and its Converse We are now in a position to state and prove the famous Theorem of Lagrange in its general form: If G is a finite group and S a subgroup of G, then the order of S is a divisor of the order of G. Example1: Recall: Z26* is of order 12=((26) and the subgroups S1, S3, S5, S7, S9, S11, S15, S17, S19, S21, S23, S25 are of order 1, 3, 4, 12, 3, 12, 12, 6, 12, 4, 6, 2 which are all divisors of 12. Example2: Z27* is of order 18=((27) and the subgroups have order 1, 2, 3, 6, 9 and 12 which are all divisors of 18. Example3: Z28* is of order 12=((28) and the subgroups have order 1, 2, 3, 6 which are again all divisors of 12. I want to show you now why Lagranges Theorem must hold true for finite, cyclic groups (as in Z26* and Z27*). Although it holds also true for non-cyclic finite groups (i.e. for Z28*), proving this requires a deeper understanding of group theory which is beyond the scope of our course. Therefore, I will show you the easier proof for finite and cyclic groups. Proof of Lagranges Theorem: Let G be a cyclic group of order n. Because G is cyclic the elements in G can be generated by the generator g and listed as: G = {g, g2, g3, g4, & , gn =1}. In our example we used 7 as a generator to generate G = Z26* = {7, 72=23, 73=5, 74=9, & , 712=1}. However, we could have also used 11, 15 or 19 as possible generators. As you can see, a generator is not necessarily unique, but we are guaranteed at least one in a cyclic group which is sufficient for the proof. Since each subgroup of G must also be cyclic, each possesses a generator. Say it is the kth element in G. We, therefore, define h = gk, with 1 < k < n, to be the generator for any proper subgroup S of G. (A non-proper subgroup is one that equals G and g would serve as such generator.) Then h generates S such that: S = {h , h2, h3, ., hs = 1} = {gk, (gk)2, (gk)3, .,(gk)s = 1} = {gk, g2k, g3k, ., gsk = 1}. In example, S5 can be generated by h = 5 = 73 so that S5 = {73, (73)2, (73)3, (73)4 = 712 = 1} = {73, 76, 79, 712 = 1} = {5, 25, 21, 1} The generator h generates all the elements in the subgroup S and terminates generating when it reaches the unit element 1. This happens after computing s elements, so that there are s elements in the subgroup S. Or simply: the order of S is s. Because gn = 1 and gsk = 1, it follows that gn = gsk for some integer k. Therefore, n=sk which shows that s is a divisor of n for any subgroup order s and the proof is complete. Moreover, the Converse of Lagranges Theorem holds true for cyclic groups aswell: For any s that divides the order of a cyclic group we can find a cyclic subgroup S that has the order s. Proof: Let G = {g, g2, g3, g4, & , gn =1} and s be a divisor of the group order n such that n=k*s. Then G = {g, g2, g3, g4, & , gks =1} and I choose the generator h=gk to generate the subgroup S = {gk , (gk)2, (gk)3, & ., (gk)s = 1} which is of order s and the proof is complete. Example1: Z26* is of order 12=((26) and 12 has the divisors 1, 2, 3, 4, 6 and 12. For each of these divisors we can now find a subgroups of such order. I.e. S1 is of order 1, S25 is of order 2, S3 is of order 3, S5 is of order 4, S17 is of order 6 and S7 is of order 12. The Converse Theorem does not tell us how many subgroups there are for each divisor s. We will learn this in the next Theorem. Example2: Z27* is of order 18=((27) and 18 has the divisors 1, 2, 3, 6, 9 and 12. For each of these divisors we can now find a subgroups of such order. I.e. S1 is of order 1, S26 is of order 2, S10 is of order 3, S8 is of order 6, S7 is of order 9 and S2 is of order 18. Counter example1: Z28* is not cyclic and the Converse Theorem can not be applied. In fact, there are no subgroups of order 4 and 12 as divisors of the group order 12=((28). I want to conclude this chapter with a pleasing fact: Say our cyclic group ZM* consists of ((M) members. Hence, the number of members in each subgroup must be a proper divisor of ((M) (Grace a Monsieur Lagrange). Now, if we want to find two or more subgroups of the same order, we will never succeed. There are none! At least not for cyclic groups ZM*, others may. Theorem: If n is the order of a cyclic group, then there exists exactly one subgroup of order s for each distinct divisor s of n. Proof: While proving the theorem in the left column, I will simultaneously show you a concrete example (for the cyclic group Z26*) in the right column since the abstract proof might confuse you a bit. Let G be a cyclic group of order n and g be a generator of G.Z26* is a cyclic group of order 12 and g=7 is a generator of Z26*.Let S be a subgroup of S of order s. We know from Lagranges Theorem that s must a divisor of n, say s*f=n. S ={1,3,9,17,23,25} is a subgroup of Z26* of order 6 with 6*2 = 12 = order of Z26* ( so that s=6, f=2 and n=12). S can be generated by one of the members in G, say gk, which is of order s.S can be generated by one of its members, 17=710, which is of order 6 (so that k=10)In turn this means that s*k equals some multiple of n: s*k=t*nIn turn this means that 6*10 equals some multiple of 12: 6*10=5*12 (so that t=5).Since s*f=n, we have s*k = t*n = t*(s*F). Dividing both ends by s yields: k = t*F showing us that t is a divisor of k. Since 6*2=12, we have 6*10 = 5*12 = 5*(6*2). Dividing both ends by 6 yields: 10=5*2 showing us that 5 is a divisor of 10. Therefore, gk is in the subgroup generated by gF which is of order s (since s*f=n).Therefore, 710(=17) is in the subgroup generated by 72(=23) which is of order 6 (since 6*2=12).However, gk generates the subgroup S of order s with which we started off.However, 710 generates the subgroup S of order 6 with which we started off.Thus, s elements of the subgroup generated by gk are in the subgroup generated by gF which has also s elements.Thus, 6 elements of the subgroup generated by 710 are in the subgroup generated by 72 which has also 6 elements. Therefore, both subgroups must be identical.Therefore, both subgroups must be identical.  The crux of the proof is that for any subgroup S of order s we can find another subgroup of the same order (since the Euler function solely yields even integers except for the divisors 1 and 2 whose subgroup orders occur only once) and then show that they are identical. Notice that it was essential in the proof that the group G had to be cyclic (i.e. it has to possess a generator). Example1: Z26* is of order 12 which has the divisors 1,2,3,4,6 and 12. Thus: The subgroup of order 1 is S1 = {1}. The subgroup of order 2 is S25 = {1,25}. The subgroup of order 3 is S3 = S9 = {1,3,9}. The subgroup of order 4 is S5 = S21 = {1,5,21,25}. The subgroup of order 6 is S17 = S23 = {1,3,9,17,23,25}. The subgroup of order 12 is S7 = S11 = S15 = S19 = {1,3,5,7,9,11,15,17,19,21,23,25}. Example2: Z27* is of order 18 which has the divisors 1,2,3,6,9 and 18. Thus: The subgroup of order 1 is S1 = {1}. The subgroup of order 2 is S26 = {1,26}. The subgroup of order 3 is S10 = S19 = {1,10,19}. The subgroup of order 6 is S8 = S17 = {1,8,10,17,19,26}. The subgroup of order 9 is S4 = S7 = S13 = S16 = S22 = S25 = {1,4,7,10,13,16,19,22,25}. The subgroup of order 18 is S2 = S5 = S11 = S15 = S20 = S23 = {1,2,4,5,7,8,10,11,13,14,16,17,19,20,22,23,25,26}. Counter example1: The non-cyclic group Z28* is of order 12 which has the divisors 1,2,3,4,6 and 12. There is 1 subgroup of order 1: S1 = {1}. There are 3 subgroups of order 2: S13 = {1,13}, S15 = {1,15} and S27 = {1,27}. There are 3 subgroups of order 2: S13 = {1,13}, S15 = {1,15} and S27 = {1,27}. There are 2 subgroups of order 3: S9 = S25 = {1,9,25}. There are 6 subgroups of order 6: S3 = S19 ={1,3,9,19,25,27}, S5 = S17 = {1,5,13,17,25,27}, S11 = S23 = {1,9,11,15,23,25}. Since Z28* is not cyclic the Theorem can not be applied. In fact, Z28* has no subgroups of order 4 or 12. Recall from 2.8.5. that ((s) - for any divisor s of the order of a cyclic group G - tells us the number of good keys that are of order s. Now we learn that subgroups generated by keys of the same order must be identical.  Modern C++ compiler ( i.e. C++ builder5.0 from Borland) dont require to include the bool.h library anymore. Thus, variables of type boolean can be used just like int, char, double or other variables. PAGE 40 Encoding Key a Keys a Decoding key a-1 Encoding key a Good keys a Good keys a Good keys a Good keys a #z  8;VYim4N\_I  ( A D W ]  < > W v y ӶӕӕӃqӕ#5B*CJOJQJ\^JaJph#5B*CJOJQJ\^JaJphB*CJOJQJ^JaJphB*CJaJphB*CJaJph#6B*CJOJQJ]^JaJphjUmHnHuB*CJOJQJ^JaJphCJ(aJ(mH sH  jjCJaJ6CJ]aJCJaJ,#$wxyz    $$1$Ifa$$@& $1$a$1$X8&9599!#%')+-/134`bdfhjlnprtwz}$1$IfFf $$1$Ifa$}\ $$1$Ifa$Ff> $$1$Ifa$      " ,$1$IfFf| $$1$Ifa$" $ & ( * , . 0 2 4 6 8 : < > @ B D F H I J    ( $$1$Ifa$$1$a$Ff $$1$Ifa$( * , . / 1 3 5 $$1$Ifa$5 6 E # $$1$Ifa$$$Iflִ@ Hdpvvv0    4 la<E H J M N P S V $$1$Ifa$V W ^ #< $$1$Ifa$$$Iflִ@ Hdpvvv0    4 la<^ _ ` a b c d e $$1$Ifa$e f g !D $$1$Ifa$$$IflUִ@ Hdpvvv0    4 la<g i k n o q s v $$1$Ifa$v w #p $$1$Ifa$$$Iflִ@ Hdpvvv0    4 la< $$1$Ifa$ #$1$^`a$$$Iflִ@ Hdpvvv0    4 la< $$If^a$^$1$a$$1$^`a$     $$Ifa$$IfFf $$If^a$           " $ & ( * , . 0 2 4 6 8 : < > @ B Ff6 $$Ifa$B D F H J L N P R T V W Y [ ] _ a c e g i k m p s v y |  Fft $$Ifa$ Ff $$Ifa$     Ff! $$Ifa$  , - Q S t %(ImoDGg<`c9;\4Y[| 58TB*CJOJQJ^JaJphjUmHnHu#5B*CJOJQJ\^JaJph#5B*CJOJQJ\^JaJphB*CJOJQJ^JaJphE       " % ( + , / 1 3 5 8 ; > A C E H K N Q S U W Ff.& $$Ifa$W Z ] ` c e g j m p s t v x z } Ffl* $$Ifa$ Ff. $$Ifa$   #%(+-Ff2 $$Ifa$-/257:=@BEHIKMORUWZ]_begjmoqtFf&7 $$Ifa$twy|Ffd; $$Ifa$ Ff? $$Ifa$  "$'*,/147:=?BDGJL FfC $$Ifa$LOQTVY\^acfgjloruxz} FfH $$Ifa$Ff\L $$Ifa$    FfP $$Ifa$ #%(*-/258;<?ADFIKNQSVX[]`ceh FfT $$Ifa$hjmpsvx{} FfY $$Ifa$ FfT] $$Ifa$  !$'),/1479;>A Ffa $$Ifa$ACFIKNQSVY[\_adgilortwz|~ Ffe $$Ifa$ Ffj $$Ifa$   FfLn $$Ifa$!#%(+.13479<?BEGILORUWY[^a Ffr $$Ifa$adgiknqtwy{| Ffv $$Ifa$ Ff{ $$Ifa$    #&),/258;> FfD $$Ifa$>ACEGIKMOQSTU-.] " 1$^`1$#$d%d&d'dNOPQ1$Ff $$Ifa$TUux  ,-S[]^CFptEFAHIL!%36 OS B*CJph>*CJ>*B*CJph56CJ\]CJaJmH sH 6CJ]mH sH  CJmH sH  5CJ\CJH* 6CJ]CJCJaJFdeNOHIxy1$^1$^1$ 9:  5 9 Y!\!!!#"(")"L"S"T"""""""/#G#N#O#####%%%%%5CJ \aJ$5CJ \aJ 6CJ]aJCJ aJ CJaJ B*CJph 5CJ\ B*CJph>*B*CJphCJ 6CJ]H$ % ""M"|"""".#/#G#~{{y1$) $d%d&d'd1$NOPQ)$d%d&d'd1$NOPQ`%$d%d&d'd1$NOPQ1$1$^G#n####%%%3&4&&'>'?'`''1$($$d%d&d'd1$NOPQa$$1$a$1$%$d%d&d'd1$NOPQ%&4&=&&&&&&''''>'X'Y'^'`'''''( (((g(h(((((((J)K))))))(********o+p++ϿB*CJaJph56CJ \]aJ 5CJ \aJ mHnHu j5CJ \aJ mHnHu5CJ \aJ 5CJ\aJ CJaJ CJH*aJCJaJ5CJ\aJ5\5CJ\aJCJaJ6CJ]aJ3''0((((#))))(*o+p+++++ $$If]a$ $$1$Ifa$($$d%d&d'd1$NOPQa$$1$a$($$d%d&d'd1$NOPQa$++++++++,%,&,/,0,7,8,`,l,p,r,,,,,,,,----c.h.o.p.......//3/9/j/p/w/ꢚ{{{w6]6CJ]aJ6]mHnHuB*CJaJph B*ph6B*]ph6B*]mHnHphu5CJ(\aJ(6CJ]aJCJaJ5CJ\aJaJmH sH jUmHnHuCJaJCJaJB*CJaJph6B*CJ]aJph.++++++++++++++++++++++,,,,, ,Ff $$1$Ifa$ ,,,,,,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,:,ܤFf$If$1$IfFf $$1$Ifa$:,=,@,C,F,I,K,N,Q,S,U,W,Z,],_,`,l,n,p,r,t,v,x,z,|,~, $ $Ifa$$IfFf~ $$1$Ifa$~,,,,,,,,,,,,,,,..000D1k1l1($$d%d&d'd1$NOPQa$$1$a$Ffh $$1$Ifa$w/004060v0x00000000000111%1&151A1T1U1X1Z1c1e1h1i1l1u1111111111111111+242D2G2K2L2N2a2f2h2w2{2|22222222222333 33;3>3B3 CJH*aJ6CJH*]aJCJ aJ 5CJ \aJ 5CJ\aJ6CJ]aJ CJH*aJCJaJOl111111+22 3 333E4F44444444i777777 1$^`1$`$1$a$B3C3E3R3W3Y3i3m3n333333333333334#4)4+4=4A4B4F4O4w4x4z4|4444444555555566677777!7777777777777785CJ\aJ6CJ]aJmHnHu6]mHnHu 6H*]6]5CJ\aJ CJH*aJCJaJ6CJH*]aJ6CJ]aJF777[:\:';(;4;6;8;:;<;>;@;B;D;F;H;J;L;N;P;  $If $$1$Ifa$#$d%d&d'dNOPQ$1$a$ 1$^`899=:>:A:V:X:[:e:v:w:|:~:::::::::::::::;;;(;3;4;8;:;S;T;|;};;;;;;;;;;;"<#<&<+<$=P=ǾDZǾחǾ׌5CJ \aJ aJmH sH jUmHnHuCJaJmHnHu6CJ]aJmHnHu6CJH*]aJ6CJ]aJ5CJ\aJCJaJ6CJ]aJ6CJH*]aJ6CJ]aJ CJH*aJCJaJ7P;R;S;T;V;Y;\;_;b;e;g;j;m;o;q;s;v;y;{;|;};;;;;;߄$1$IfFf< $$1$Ifa$FfR $$1$Ifa$;;;;;;;;;;;;;;;;;;;;;;;;;;; $$1$Ifa$Ff&$If$1$If;;;;;;;;;;;;;;;;;;;;;;a<<<$1$a$Ff $$If]a$$IfFf $$1$Ifa$<#=$=T=??1A2AYAAABBBRCSCgC|C $$1$Ifa$($$d%d&d'd1$NOPQa$$1$a$P=Q=S=T======= > >>1>3>v>y>>>>>>??@@;@<@>@@@2ATAUAWAYAqArAAABBB"B>BBBaBbBeBCCeCfCxCyC{CCCDD DFDGDVDDE*EFF7GXGܸB*OJQJ^Jph5CJ\aJ6CJH*]aJ6CJ]aJCJaJ5CJ \aJ 56CJ H*\]aJ 56CJ \]aJ F|C}CCCCCCCCCCCCCCCC $$1$Ifa$i$$Ifl0~ b04 la CCCCCCCCCCCCCCCCCi$$Ifl0~ b04 la $$1$Ifa$CCCCCCCCCCFF6Gzz $ & F1$a$$1$a$i$$Ifl0~ b04 la $$1$Ifa$ 6G7G8G:GG@GBGEGHGKGNGQGTGWGXG[G]G_GaGcGeGhGkGnGqGtGFf $$Ifa$ $p1$^pa$XGYGHHII#I$IIIJ JJ1J2JFJGJEKGK`KaKcKpMuMxM{MMMNNNNnOuOOOOOOOOOPP+P/PIPJPLPPPdPfPPQQTTTUU6V@V妛CJOJQJ^JaJ5CJOJQJ\^JaJH* CJH*aJCJaJ6CJH*]aJ56CJ\]aJ5CJ\aJ6CJ]aJCJaJB*OJQJ^JphjUmHnHu=tGwGzG{G}GGGGGGGGGGGGGGGGGGGGGGGGFf8Ff $$Ifa$GGGGGGGGGGGGGGGGGGGGGGGGGGGGFfFfb $$Ifa$GGGGHHH H H HHHHHHHH"H%H&H)H,H/H2H4H6H8H;HFfFf $$Ifa$;H>HAHCHEHHHIHLHOHRHTHWHZH\H_HaHdHgHiHkHlHoHrHtHwHyH|H~HFf4Ff $$Ifa$~HHHHHHHHHHHHHHHHHHHHHHHHHHHHFfFf^ $$Ifa$HHHHHHHHHHHHHHHHHHHHHHHHHL $h1$^ha$$^a$FfܾFf $$Ifa$LLBNxPyPzPPPQ Q2QGQHQIQUQWQhQQQQQQQ#$d%d&d'dNOPQ $h1$^ha$ $ & F1$a$$1$a$QRRRERURiRrRRRRR S S2S;S:\;\^^``ccgggggggggggggLg\g]ggg $ & F51$a$$1$a$$^a$ $1$^a$gghiiiiiijjjj j j jjjjjjjjjj!j#j $$If^a$^$1$a$ijjij}j~jjjjjjjjjjjjjjjjkkj@jBjDjFjHjJjLjNjPjRjTjVj $$Ifa$$IfFf $$If^a$VjXjZj\j^j`jbjdjfjhjijkjmjojqjsjujvjwjxjyjzj{j|j}j~jjjjFfD $$Ifa$jjjjjjjjjjjjjjjjjjjjjjjjjjjjjFf $$Ifa$jjjjjjjjjjjjjjjjjjjjjjjjjjjjjFf $$Ifa$jjjjjjjjjjjjjjjjjjjjjjjjjjjjjFf $$Ifa$jjjjjjjjjjjjjjjkkk k kkkkkkkk!k#kFf< $$Ifa$#k%k(k+k.k0k2k5k8k;kk@kBkEkHkKkLkMkNkOkPkQkRkSkTkUkVkWkFfz $$Ifa$WkXkYkZk[k\k]k^k_k`kakckekgkjkmkokpkqkrksktkukvkwkxkykzk{kFf $$Ifa${k|k}k~kkkkkkkkkkkkkkkkkkkkkkkkkkFf $$Ifa$kkkkkkkkkkkkkkkkkkkkkkkkkkkkkFf4 $$Ifa$kkkkkkkkkkkkkkkkkkkkkkkkkkkkkFfr $$Ifa$kkkkkkkkkkkkkkklllllll l l l l lllFf $$Ifa$lllllllllllll!l$l'l*l+l,l-l.l/l0l1l2l3l4l5l6lFf $$Ifa$6l7l8l9l:l;ll?l@lClElHlJlMlOlPlQlRlSlTlUlVlWlXlYlZl[lFf, $$Ifa$[l\l]l^l_l`lalblcldlelhljlmlolrltlulvlwlxlylzl{l|l}l~lllFfj $$Ifa$lllllllllllllllllllllllllllllFf $$Ifa$lllllllllllllllllllllllllllllFf $$Ifa$lllllllllllllllllllllllllllllFf$  $$Ifa$llllllllllllmmmm m m mmmmmmmmmmmFfb  $$Ifa$llm mmm!m9m:mGmTmVm^m_mlmmmmmmmmmmmnnnnn(nAnBnOn=oHoIoMoOohoioooTqXq]qaqjqnqqqqqQr\r]rarcr|r}rr CJH*aJ6CJ]aJCJaJCJaJ#5B*CJOJQJ\^JaJphB*CJOJQJ^JaJphB*CJOJQJ^JaJph#5B*CJOJQJ\^JaJph<mmmmmmmmm m!m$m&m)m,m.m1m2m3m4m5m6m7m8m9m:m;mm?m@mAmBmCmDmEmFmGmJmLmOmRmTmVmWmXmYmZm[m\m]m^m_m`mambmFf $$Ifa$bmcmdmemfmgmhmimjmkmlmomqmtmwmzm|m}m~mmmmmmmmmmmFf $$Ifa$mmmmmmmmmmmmmmmmmmmmmmmmmmmmmFfZ $$Ifa$mmmmmmmmmmmmmmmmmmmmmmmmmmmmm Ff" $$Ifa$mmmmmmmmmnnnn n nnnnnnnnnnnnnnnFf& $$Ifa$nn n!n"n#n$n%n&n'n(n+n-n0n3n6n9n:n;nn?n@nAnBnCnDnEnFf+ $$Ifa$EnFnGnHnInJnKnLnMnNnOnPnQnRnSnTn}@}B}D}F}H}J}L}N}P}R}T}V}X}Y}Ffs$1$IfFfp$IfY}^}`}b}d}f}h}j}l}n}p}r}t}v}x}z}|}}}}}}}}}}}}}Ffv$If$1$If}}}}}}}}}}}&~'~(~4~6~8~:~<~>~@~B~D~F~H~J~L~ $$Ifa$$1$a$Ffy$IfL~N~P~R~S~U~Y~[~^~a~d~g~j~l~o~r~t~v~x~{~~~~~~~~~~Ff,Ffj| $$Ifa$~~~~~~~~~~~~~~~~~~~~~~~~~~~~$IfFf $$Ifa$~~~~~~~~~~~~~~~~~~~~~~~~~~~~FfrFf $$Ifa$~~~~~  !#%')+-/Ff4 $$Ifa$/13479;=?ACEGIKMOQSUWX[^`bdfFfFf $$Ifa$fhjlnprtvxz|}Ffz $$Ifa$FfFf< $$Ifa$ Ff $$Ifa$KLDEFGsڊۊUVY $^`a$$a$($$d%d&d'd1$NOPQa$$1$a$Ff-9<Un€Ѐ߀ 7BE8:GƉmpʊˊ܊ފ Z˻|5CJOJQJ\^JaJCJ CJH*aJ5CJ(\aJ( CJH*aJ5CJ\aJB*CJaJphB*CJaJph5B*H*OJQJ\^Jph5B*OJQJ\^JphB*CJaJph5B*CJ\aJphCJaJ6CJ]aJCJaJ.YZ܏+,8:KLW[^Ӑܐ!)#$d%d&d'dNOPQ $1$^a$$a$)N`qy 0167t$1$a$ ! $1$^a$ $1$^a$#$d%d&d'dNOPQ%&NXZ .016Ônqwy{ڜݜ&,EüzzCJOJQJ^JCJaJ5CJ\aJ5CJ OJQJ\aJ 5\56CJ\] 5CJ\ 6CJ]CJH*CJ CJmH sH CJaJCJaJ$5CJ\aJ$ OJQJ^J5CJOJQJ\^JaJCJOJQJ^JaJCJOJQJ^JaJ0tu?@Dyz{34CE>]>&$$d%d&d'dNOPQa$$a$Efß՟֟ןwؠݠ#Nbe{'>$d%d&d'dNOPQ]>ء)6AF^Ǣ #/8iͣݣߣ'>$d%d&d'dNOPQ]>Eߣ|'=AQlmɨݨިRSêߪ"&.2rv uv5CJ(\aJ(5CJOJQJ\^JaJ5CJOJQJ\^J OJQJ^JCJOJQJ^Jj0J45CJU\aJ5CJ\aJ6CJ]aJCJaJ5OJQJ\^Jehr9ߣ')RSª$1$a$#$d%d&d'dNOPQ` !^^  ^  p^p & F/ S^`^ªêߪmno *Jqr,$$d%d&d'd1$NOPQ`a$($$d%d&d'd1$NOPQa$ $1$a$ lԮ׮&'(*AE| ñ˱JNfoqr{;PQZ\c ϵյYj޶ 6] CJH*aJ6CJH*]aJ6CJ]aJ56CJH*\]aJ56CJ\]aJ5CJ\aJCJ$aJ$CJaJCJaJHr U޶7_`׸ظ]^¹%($$d%d&d'd1$NOPQa$ $1$`a$1$$1$a$ :?@DGS]_`Ÿ͸θҸոָ׸ظ߸")*+,01=^gkqr{̹Ϲֹ׹&0489=FOPTU56CJH*\]aJ56CJ\]aJ5CJ\aJCJ$aJ$6CJH*]aJCJaJ6CJ]aJN%&ghKLDp $1$`a$0$1$a$Udhǻx|}UV[\abghmouJPjož PUqu CJS*aJ 7CJaJ6CJH*]aJ6CJ]aJ5CJ\aJCJaJ6CJ]aJQϿ3TDVqA\wxzEL6FJW_`jmsvw{|6CJH*]aJ6CJ]aJCJaJ56CJ\]aJ5CJ\aJCJ$aJ$5CJ$\aJ$6CJ]aJ 7CJaJCJaJHpAyzGp $$Ifa$$If1$0($$d%d&d'd1$NOPQa$ $1$a$Ht|} =>@AFGKNOdehjk~ ƴƬꦝƬƬƬƬƬƬ CJH*aJ6CJH*]aJ >*CJaJ jj>*CJaJ >*CJaJ6CJ]aJ#6B*CJOJQJ]^JaJph jj6CJ]aJB*OJQJ^Jph6B*OJQJ]^JphCJaJ jj6CJ]aJCJaJ3 !#%'$IfFfD $$Ifa$'),/1468:=?BDGHI:g($$d%d&d'd1$NOPQa$$1$a$Ff $$Ifa$ OPYZ_`d"#%&(R\]_`p;=JTVagjkrszĿ CJH*aJCJ 6H*]6] jj6]6CJH*]aJ5CJ\aJ jj6CJ]aJ6CJ]aJCJaJ jjCJaJHRcjpJh $1$`a$1$$1$a$0$@ $d%d&d'd1$NOPQ^@ `a${ HLPQRes,FGIJOPRS jjCJaJ6CJH*]aJ5CJ\aJCJaJ6CJ]aJ jj6CJ]aJRHX`gh^_rsG4, $1$^a$ $1$`a$$1$a$SVXZ\^ 45:;R,-4579?@BCEFNOQRc]^a*+QR jjCJaJ CJH*aJ CJH*aJ5CJ\aJ jj6CJ]aJCJaJ6CJH*]aJ6CJ]aJM,zi$$Ifl0,,"04 la $$1$Ifa$$1$a$ $1$^a$ IJ 015789:CEFJKLSUVZ[\eghlmyz{(CJaJ jjCJaJ jjCJaJCJaJ CJH*aJ CJH*aJV0kl$1$a$i$$Ifl0,,"04 la $$1$Ifa$lm=>?@rs $1$a$ $$1$Ifa$i$$Ifl0$L 04 la(*+578>QR#$s6bcmqv~-CGKؤؤ6CJ]aJ jj6CJ]aJ5CJH*\aJ5CJ\aJ jj5CJ\aJCJ$aJ$6CJ]aJ jjCJaJ5CJ\aJCJaJ CJH*aJCJaJ@78:P]bcm(-.C $1$`a$$1$a$($$d%d&d'd1$NOPQa$KSZc}~hkR^NT+ɺɺɺ}w 5CJ\5CJ$\aJ$CJ aJ CJ5CJ(\aJ(#6B*CJOJQJ]^JaJph5CJ\aJCJOJQJ^JaJB*CJOJQJ^JaJph#5B*CJOJQJ\^JaJph B*ph6CJ]aJ jj6CJ]aJ6CJ]aJCJaJ-cde $#$d%d&d'dNOPQ>]>$1$a$ $1$`a$$w*YkQu~$1$a$#$d%d&d'dNOPQ $$Ifa$ $p1$^pa$$1$a$ $1$^a$|}TUgrz NABghi)8? 5CJ\56CJ$\]aJ$5CJ$\aJ$ CJH*aJ5CJ\aJ6CJH*]aJ6CJ]aJB*OJQJ^JphCJaJjUmHnHuCJ 6CJH*] 6CJ]> "%(+.12Ff"Ff $$Ifa$2468;>@BEHJMPSTWY\_adfiknpsvFfL $$Ifa$vwy{~Ff $$Ifa$FfvFfFfʱ $$Ifa$ !#$'*,/1469<?FfHFf $$Ifa$?ADFGJMPRUWZ\_adgijmpsvx{~FfFfr $$Ifa$A$1$a$FfFfƾ $$Ifa$ABi01;"#y$1$a$)$d%d&d'd1$NOPQ`%$d%d&d'd1$NOPQ1$?Iv058;<=?DEFNO\"-CFKRSTW"%CJH* 5CJH*\56CJ\]aJ5CJ\aJ 6CJH*] 6CJ]56CJ\]CJ 5CJ\L{|LMe@Afghklmnpqsٽٽٽٽٽ5CJ\aJ6CJH*]aJ56CJ\]aJ5CJ\aJ6CJ]aJjUmHnHuCJaJ 5H*\5\ 5\aJGLefg@WXYWX& $1$`a$$1$a$1$s*679=>?AGISTV  %124;F]`f56CJ\]aJ56CJ\]aJ5CJ\aJ5CJ\aJ6CJH*]aJ6CJ]aJCJaJMfTW:<KOSWz|,2h     !$)TVqrƻ56CJ\]aJ5CJ\aJ56CJ\]aJ5CJ\aJ6CJH*]aJ CJH*aJCJaJ CJH*aJ6CJ]aJjUmHnHuCJaJB&hm  , - . 0            $$Ifa$ $1$^a$$1$a$rtv   ! O Q                  ! " $ M N c e f g h l           ! " $ @ ξֳ颔5B*OJQJ\^JphB*OJQJ^Jph CJH*aJ56CJ\]aJCJaJ56CJ\]aJ5CJ\aJ5CJ\aJjUmHnHuCJaJ6CJ]aJ6CJH*]aJ:                            llFfDFf $$Ifa$       ! " $ & ) , . 0 3 6 8 : = @ B C E G J L N FfFfn $$Ifa$@ B C E b d e f h ~                    + - . 1 M O P S o q r     6QRfAGFIILadƻƳ֫6CJ$]aJ$5CJ\aJ56CJ\]aJ5CJ\aJ6CJ]aJCJaJjUmHnHuB*OJQJ^Jph5B*OJQJ\^JphAN Q T W Y \ _ b d e h j l n p r t v x z | ~       pFfFf $$Ifa$                            Ff@Ff $$Ifa$                            FfFfj $$Ifa$      ! # & ) + - . 1 4 6 9 ; > @ C E H J M O P S FfFf $$Ifa$S V X [ ] ` b e g j l o q r s {|($$d%d&d'd1$NOPQa$$1$a$Ff $$Ifa$ 56VZ|~#'+.9=nr{vw,hjҽҽҵҵҭҗ҈ CJH*aJ6CJH*]aJ jj6CJ]aJ56CJ\]aJ5CJ\aJ6CJ]aJ jjCJaJ 6H*]6]5\CJaJCJ$aJ$6CJ$H*]aJ$ jj6CJ$H*]aJ$6CJ$]aJ$ CJ$H*aJ$5|89:HHIJ`0$a$($$d%d&d'd1$NOPQa$ $1$^a$$1$a$j$&+-35=?Hz89:AEHMNUV׼״ jj6CJ]aJ56CJ\]aJCJaJ5CJH*\aJ5CJ\aJ jj56CJH*\]aJ56CJH*\]aJ56CJ\]aJ5CJ\aJ6CJH*]aJ6CJ]aJCJaJ8VXY_`bcghptuv!HJ`ԹԱߓߋ jj6]5CJ\aJ jjCJaJ5CJ(\aJ(CJaJ5CJH*\aJ5CJ\aJ jj56CJH*\]aJ56CJH*\]aJ56CJ\]aJCJaJ jj6CJ]aJ6CJH*]aJ6CJ]aJ3 %'./1nx}G !G!J!R!S!Z!q!r!t!v!|!!!!! """"""wrl CJH*aJCJaJ56CJH*\]aJ56CJ\]aJ jj6CJ]aJ5CJ \aJ 6CJ]aJCJaJ 6CJ]CJehrCJ aJ ehr6CJ ]aJ 56CJ H*\]aJ  jj56CJ H*\]aJ 56CJ \]aJ CJ aJ &01MNGH   !""""""" $$Ifa$ $$Ifa$$1$a$1$&$$d%d&d'dNOPQa$"" """$"&"(",xooo^$ $If^` a$ $$Ifa$ $$Ifa$}$$IfrhL(4 a" "("J"K""M#########$<$B$C$$$$$$$$$$$$$$$$$5%6%8%Z%]%_%%%%%%%X&Y&Z&&&&&&&&&ṯ᧛᧛ṯ᧛CJaJ 56CJH*\]aJ6CJ]aJ 56CJH*\] 6CJ] CJH*aJCJaJ 6>*CJ] >*CJH*>*CJ 5CJ\CJCJaJB*OJQJ^JphB*OJQJ^Jph9(")"+"-"/"1"3",xoooo $$Ifa$ $$Ifa$}$$IfrhL(4 a3"4"6"8":"<">"?"A"C"E"G"I",xoooo,xoooo $$Ifa$ $$Ifa$}$$IfrhL(4 a I"J"K"####=$T$U$$$5%_%{xxxxxxxxxxx1$$1$a$}$$IfrhL(4 a _%%%& &&&X'Y'''((((((()-*.*/*O*,---5.$1$a$1$^1$&&&&&&&&&&&&&&&&&&&R'U'Y'Z'\'~''''''(( (g(j(((((((((((((((((((((((((((((((((((((߽߹߹߹߹ٲٲٲٲٲٲٲٲٲٲ 6CJH*]CJH* CJH*aJCJaJ 6>*CJ] >*CJH*>*CJ 6CJ]CJCJaJ 6CJ]aJ 6CJH*]aJ6CJ]aJF((((((((()))) ) )))))*),)-)/)0)2)3)4)J)K)L)N)S)T)U)))****-*/*O*p*q****************ļĴĩĴĴ jj6CJH*]aJ6CJH*]aJ jj6CJ]aJ6CJ]aJ5CJ \aJ CJaJ jj6CJ]CJaJ 6CJH*]aJ 6CJ]aJ 6CJH*]CJ 6CJ] 6CJH*]:****p+q+t+++++++++++++++++++++++++++++++++f,g,j,,,,,--3-4-7-R-S-k-m-o-p-s-t-y-z-}--------- 6>*CJ] >*CJH*>*CJCJ jjCJH*aJ CJH*aJ jj6CJH*]aJ6CJH*]aJ6CJ]aJ jj6CJ]aJCJaJE-----------.. . . . ............... .%.&.'.(.).*.-.A.B.C.F.G.H.J.L.M.O.P.R.S.T.U.V.Z.].^.|.}................5CJH*OJQJ\ jj6CJH*] 6CJH*]CJaJCJH* jjCJH* 6CJ] jjCJH*CJH*CJJ5.].^.#/$/y0z0{0|0}0~00000 1 1W1X1111111#$d%d&d'd NOPQ $1$a$1$.......#/////////;0<0A0B0M0N0O0R0T0Y0Z0[0c0d0~066+6666772797d7e7k7l7|7}777ξΎ|||| OJQJ^JCJOJQJ^JaJ5CJOJQJ\^JaJCJ aJ 6CJ ]aJ 6CJ H*]aJ  jj6CJ H*]aJ 6CJ]aJ6CJ]aJCJaJCJCJaJ 6CJ]aJ 6CJH*]aJ  jj6CJH*]aJ 6CJ]aJ01112J22222223#3m3334$4)47494:4w4y444#$d%d&d'd NOPQ 44444444455-5D5X5[5m5v55555666#$d%d&d'd NOPQ 666+6667788$<%<&<<==>>>>^$ & F h81$^`a$ $1$^a$$1$a$($$d%d&d'd 1$NOPQ a$77 888X9Y9^9_999:&:':(:5:6:;:<:::::!<$<k<t<u<<<<<<<(=)=e=|======= >>>>>?????@@^@_@ jj6CJ]aJ6CJ]aJ5CJ(\aJ(5CJ\aJ jjCJOJQJ^JaJCJOJQJ^JaJ OJQJ^J6CJOJQJ]^JaJCJaJ5CJOJQJ\^JaJCJOJQJ^JaJ9>>????@@@AAADDyFzFHHH%$d%d&d'd1$NOPQ($$d%d&d'd1$NOPQa$$1$a$ $1$^a$_@f@k@l@@@@@@A A AAAAABARAVAAAAAAAAABBBBBB C CQCRCSCWCXCDDDDDDE*E4E:EzFFGG HHH'HHHHHtIuI|I~IIIIIй5CJ(H*\aJ(CJ5CJ(\aJ(CJOJQJaJ CJ H*aJ CJaJ6CJ H*]aJ 6CJ ]aJ 5CJ\aJCJ aJ CJaJ6CJ]aJDHHHHHsItIuIII[K\KMMMM($$d%d&d'dIfNOPQ1$'$d%d&d'dNOPQ`#$d%d&d'dNOPQ$1$a$IIIII%J&J(J9JJJJJJJJJJJJ0K?KAKHKVKXKYK\KKKLLLT@T($$d%d&d'dIfNOPQ@TATBTTT60&& $ 1$a$$1$a$$$Ifl֞A I04 la<TnUU=V?VHWIWbYcYeYgYiYkYmY($$d%d&d'dIfNOPQ$1$a$$ 1$^`a$$ & F! 1$^`a$ $ 1$a$ mYnYpYrYtYvY\,4444($$d%d&d'dIfNOPQ$$IflrA 04 la<vYxYyY{Y}YY4,$$IflrA 04 la<($$d%d&d'dIfNOPQYYYYYY4,$$IflrA 04 la<($$d%d&d'dIfNOPQYYYYYY4,$$IflrA 04 la<($$d%d&d'dIfNOPQYYYYYY4$$IflrA 04 la<($$d%d&d'dIfNOPQYYYYZZQ[R[[[*\+\O\Q\S\}}($$d%d&d'dIfNOPQ+$ & F4$d%d&d'd1$NOPQa$($$d%d&d'd1$NOPQa$$1$a$YYYYZZZZZZZZ[&\*\J\K\M\N\O\P\]\^\`\m\o\|\~\\\\\\\\\\\\\\\\])]<]=]_]`]a]]]]]]];^=^L^M^O^Y^[^d^f^n^p^z^|^^^^^^^^^^^^^-_5CJH*\aJH*5\CJaJ5CJ\aJ CJH*aJCJaJ5CJ\aJQS\U\W\Y\[\]\($$d%d&d'dIfNOPQ]\^\6<$$Ifl֞A I04 la<^\`\b\d\f\h\j\l\($$d%d&d'dIfNOPQl\m\6<$$Ifl֞A I04 la<m\o\q\s\u\w\y\{\($$d%d&d'dIfNOPQ{\|\6<$$Ifl֞A I04 la<|\~\\\\\\\($$d%d&d'dIfNOPQ\\6<$$Ifl֞A I04 la<\\\\\\\\($$d%d&d'dIfNOPQ\\6<$$Ifl֞A I04 la<\\\\\\\\($$d%d&d'dIfNOPQ\\6<$$Ifl֞A I04 la<\\\\\\\\($$d%d&d'dIfNOPQ\\=]>];^6000$1$a$$$Ifl֞A I04 la<;^>^@^B^D^F^H^J^L^($$d%d&d'dIfNOPQL^M^#0$$IflִA I 0    4 la<M^O^P^R^S^T^V^W^X^($$d%d&d'dIfNOPQX^Y^#,$$IflִA I 0    4 la<Y^[^\^]^^^_^`^a^c^($$d%d&d'dIfNOPQc^d^#($$IflִA I 0    4 la<d^f^g^h^i^j^k^l^m^($$d%d&d'dIfNOPQm^n^#0$$IflִA I 0    4 la<n^p^q^r^s^u^v^w^y^($$d%d&d'dIfNOPQy^z^#,$$IflִA I 0    4 la<z^|^~^^^^^^^($$d%d&d'dIfNOPQ^^#($$IflִA I 0    4 la<^^^^^^^^^($$d%d&d'dIfNOPQ^^#0$$IflִA I 0    4 la<^^^^^^^^^($$d%d&d'dIfNOPQ^^^M`#$1$a$$$IflִA I 0    4 la<-_0_6`7`M`N`Y`Z`\`f`g`i`s`t````YaZa[ataaaaaaabbbbb bnbobbbbhciccccccccccdd/d0d4d;d>dBdDdddddd e e eee$e/e=e>e@eCeDeFeGeIeKe5CJ$\aJ$6CJH*]aJ5CJH*\aJ5CJ\aJ5\ CJH*aJCJaJ6CJ]aJNM`O`Q`S`U`W`Y`($$d%d&d'dIfNOPQY`Z`\`^`G4($$d%d&d'dIfNOPQ$$IflֈQ 04 la<^```b`d`f`($$d%d&d'dIfNOPQf`g`i`k`G4($$d%d&d'dIfNOPQ$$IflֈQ 04 la<k`m`o`q`s`($$d%d&d'dIfNOPQs`t`u`lamaddGAAAAA$1$a$$$IflֈQ 04 la<ddd eReeeeWgXgYg ii=i>iWiyiziii#$d%d&d'dNOPQ)$d%d&d'd1$NOPQ^$1$a$ KeQeReSeTe]ebeneseeeeeeeeeeeeeeeeeeeeeeff*f+f,ffpfqftffffffffffWg>ikkk-kkknlſʶʶŭʶʶʶ񢔢5CJOJQJ\^JaJCJOJQJ^JaJ jjCJH*aJ5CJH*\aJ CJH*aJCJaJ5CJ\aJ CJH*aJ5CJH*\aJ5CJ\aJ5CJ\aJCJaJ5CJH*\aJ:iiiiiiiii"j*jkjjj kkkk-k$1$^`a$ $1$^a$($$d%d&d'd1$NOPQa$#$d%d&d'dNOPQnlplllzmmm nnnnnoHoIoJooooppppprrr s s ss sssttttttûííáíÃ{rÃáddd5B*OJQJ\^Jph6CJH*]aJ6CJ]aJ6CJ]aJB*OJQJ^JphjUmHnHu CJH*aJ CJH*aJCJaJ5CJ(H*\aJ(5CJ(\aJ(CJaJ6CJOJQJ]^JaJ 56CJOJQJ\]^JaJCJOJQJ^JaJ5CJOJQJ\^JaJ'-krlslnnnnno opppppppppppppp $$Ifa$ $$Ifa$$1$a$$ 81$^a$$ & F h881$^8a$ppppppppppppqqq q qqqqqqqqq"q$q'qFffFf< $$Ifa$'q*q-q.q0q2q5q8q:q=q?qBqDqGqIqLqOqPqRqTqWqYq\q_qbqdqgqiqFfFf $$Ifa$iqlqnqqqrqtqvqxq{q~qqqqqqqqqqqqqqqqqqqFfFf $$Ifa$qqqqqqqqqqqqqqqqqqqqqqqqqqqqFfbFf8 $$Ifa$qqqqqqqrrrr r rrrrrrrr r#r&r)r+r.r0r3rFfFf $$Ifa$3r5r8r:r=r@rBrCrHrKrNrQrSrVrYr[r]r`rcrergrhrkrnrqrtrwrFf $IfFf $$Ifa$wrzr}rrrrrrrrrrtttttttttttttt $$Ifa$ $1$^a$$1$a$Ff4 $$Ifa$ttttttttttttttttttttttttttttFfFf^ $$Ifa$ttttttttuuu u uuuuuuuuu u#u&u)u,u/u1uFfFf $$Ifa$tuu8u:uZu]u}uuuuuuuu vv0v3vSvTvavbvovvvTwVwwwxxyyyyyy zz"z#z%z(z)z+z,z.z0z2z6z7z8z9zBzGzNzSz[z\zczdzfzhzizjzlznzpzrztzvzwzxzz½˽˽½˽½˽˽˽½˽½CJ aJ 5CJ H*\aJ 5CJ \aJ CJH*aJ5CJ\aJCJaJ5B*OJQJ\^JphB*OJQJ^JphJ1u3u5u7u8u:u=u@uCuFuIuLuOuQuSuUuWuYuZu]u`ucufuiuluouqusuFfIFf $$Ifa$suuuwuyu|u}uuuuuuuuuuuuuuuuuuuuuuuFf Ffx $$Ifa$uuuuuuuuuuuuuuuuuuuuuuuuuuuuFfFf  $$Ifa$uuvvv v v vvvvvvvv v#v&v)v,v/v0v3v5v7v9v;v=vFfcFf4 $$Ifa$=v@vCvFvIvLvOvRvSvTvUvVvWvXvYvZv[v\v]v^v_v`vavbvcvdvevfv88FfFf $$Ifa$fvgvhvivjvkvlvmvnvov*y+yyyy7zvz#{${%{&{'{P{)$d%d&d'd1$NOPQ^0$1$a$Ff $$Ifa$zzzzzzzzzz#{'{P{{{{{|||||||||||||||I}T}q}}}}}}}}}}}}}ɺɮɦ玀ujUmHnHu5B*OJQJ\^JphB*OJQJ^Jph6CJ]aJCJaJ5CJ\aJ56CJH*\]aJ jj56CJH*\]aJ56CJ\]aJ jj6]6]5CJ(\aJ(CJaJ5CJ \aJ CJ aJ CJ H*aJ .P{Q{y|z|||H}I}T}U}W}Y}[}]}_}a}c}e}g}j}m}p}q}s}u}lFf $$Ifa$ $1$^a$$1$^`a$1$u}w}y}{}}}}}}}}}}}}}}}}}}}}}}}}}}xFfs FfI $$Ifa$}}}}}}}}}}}}}}}}}}}}~~~~ ~ ~)~+~,~/~L~N~O~R~_~a~n~p~q~t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6CJ]aJ5CJ\aJCJaJjUmHnHu5B*OJQJ\^JphB*OJQJ^JphJ}}}}}}}}}}}}}}}}}}}}}}}}}}}}pFf$Ff" $$Ifa$}}}}}}}}}~~~~~ ~ ~~~~~~~~ ~#~&~)~+~Ff& $$Ifa$+~,~/~2~5~8~:~=~@~C~E~G~J~L~N~O~R~U~W~Z~\~_~a~d~f~i~k~n~FfE+ $$Ifa$Ff)n~p~q~t~w~z~}~~~~~~~~~~~~~~~~~~~~~~Ff/Ffo- $$Ifa$~~~~~~~~~~~~~~~~~~~~~~~~~~~~Ff3Ff1 $$Ifa$~~~~~3>LMji$$Ifl0d~ <04 la  !$1$If $$1$Ifa$$1$a$Ff6 $$Ifa$   *+3<=LMORTWY\^bdgjnqux{~„DŽ˄фۄ܄(56;qsՅڳڨȝB*OJQJ^Jph jj5CJ\aJ56CJ\]aJ5CJ \aJ H*5B*OJQJ\^Jph6]5CJ\aJ CJH*aJCJaJ6CJ]aJ jj6CJ]aJ>MOQRTVWY[\^abdfi$$Ifl0d~ <04 la $$1$Ifa$ $$Ifa$fgjmnqtuxz{~ $$1$Ifa$ $$Ifa$i$$Ifl0d~ <04 laӂ*{xqqq & F+1$1$$1$a$ $$Ifa$i$$Ifl0d~ <04 la $$1$Ifa$ „Äst $$Ifa$ $1$^a$$1$a$1$…ąƅȅʅ̅΅Ѕ҅ԅՅׅمۅ݅FfO; $$Ifa$FfA8Յׅ ;<>oqՆ؆  =@qtه܇ ADux݈BOXYhiknptvy{‰ʼnɉ̉ω҉#'-5CJ \aJ 6]CJaJjUmHnHuB*OJQJ^Jph5B*OJQJ\^JphN   "$'*-Ff]> $$Ifa$-0368:;>@CFHKNQTWZ\_bdfilnoqFfyDFfkA $$Ifa$qsvy|FfG $$Ifa$†ĆƆɆ̆φ҆ԆՆ؆ۆކFfJ $$Ifa$  !$'*-0258:<=@CEHFfPFfM $$Ifa$HKNQSVX[]`cfiknpqtwy|FfS $$Ifa$ÇƇɇˇ͇ЇӇև؇FfV $$Ifa$؇ه܇߇   Ff\ $$Ifa$FfY #&(+.0368;>@ADGJLORUXZ]_adfFf_ $$Ifa$filortux{~FffFfc $$Ifa$ĈƈɈ̈ψ҈Ԉ׈ڈ܈݈Ff!i $$Ifa$  !#&(+-0257:<Ff/l $$Ifa$<?ABNOZhikja $$Ifa$i$$Ifl0d~ <04 la  !$1$If $$1$Ifa$$1$a$Ff=o $$Ifa$ kmnpstvxy{~ $$Ifa$i$$Ifl0d~ <04 la $$1$Ifa$i$$Ifl0d~ <04 la $$1$Ifa$ $$Ifa$ $$1$Ifa$ $$Ifa$i$$Ifl0d~ <04 la‰ʼnȉɉ̉Ήω҉ԉՉ{{{$1$a$ $$Ifa$i$$Ifl0d~ <04 la $$1$Ifa$-78]tފ<>[^ËƋ +.KNmpnjȌʌ͌όҌԌ׌ٌ܌ߌ  %ҹ5CJ$\aJ$6]jUmHnHu5B*OJQJ\^JphB*OJQJ^Jph jj5CJ\aJCJaJ56CJ\]aJ5CJ\aJDŠĊƊȊʊ̊ΊЊҊԊ׊ڊ݊ފlFfKr $$Ifa$$1$^`a$$1$a$  "%'*,FfvFfut $$Ifa$,.1469;<>@CEGJLNQSUXZ[^acfil|FfzFfx $$Ifa$lnqsvy|~FfGFf} $$Ifa$‹ËƋɋˋ΋ыӋՋ؋ڋ݋FfFfq $$Ifa$   #%(*+.13FfFfŅ $$Ifa$358:<?ACFHJKNQSVX[]`begjlmz$1$a$FfCFf $$Ifa$z{njȌʌ̌͌όьҌxodxodx $$1$Ifa$ $$Ifa$i$$Ifl0d~ <04 la  !$1$If $$1$Ifa$$1$a$ ҌԌ֌׌ٌی܌ߌi$$Ifl0d~ <04 la $$1$Ifa$ $$Ifa$  $$1$Ifa$ $$Ifa$i$$Ifl0d~ <04 la     !  +$1$a$i$$Ifl0d~ <04 la $$1$Ifa$ %)FIux̏Ώ )Y[ː̐ %&ghˑ7CΒϒ]^MNrt!#+SUЕޕGOP{zCJ$aJ$5CJ$\aJ$5CJ\aJ CJH*aJ6CJ]aJCJaJ5CJ \aJ R+aא $$1$Ifa$ $ & F 1$a$ $1$`a$ $ & F1$a$$1$a$+$ & F$d%d&d'd1$NOPQa$ o$ddddo$ddddo$ $$1$Ifa$$$Ifl\4p H<**04 la 67dZPJ$1$a$ $ & F 1$a$ $1$^a$$$Ifl\4p H<**04 la $$1$Ifa$7 $$1$Ifa$ $1$^a$$1$a$ $ & F 1$a$     \$QQQQQ\(QQ $$1$Ifa$$$Iflr4p Hr<***04 la  Q$$$Iflr4p Hr<***04 la $$1$Ifa$ !#$%&()*\ QQQQQ\K$1$a$ $$1$Ifa$$$Iflr4p Hr<***04 la*+,-SUܖhzX  ͙Ιڙ $ & F#1$a$  880^8`0$ 8h1$^ha$ $ & F$1$a$ $ & F1$a$$1$a$z{}ݘ28͙ڙޙ,-/TUWlmw͚AS@U̜Ҝ$&?Arty$%( CJH*aJ jjCJaJ5CJH*\aJCJaJ5CJ\aJ5CJ\aJ6CJH*]aJ6CJ]aJ CJH*aJCJaJHڙvwšÚ@AVxy $$1$Ifa$$1$a$($$d%d&d'd1$NOPQa$"$%(+,$$Ifl֞~ &<*****04 la $$1$Ifa$()*,-./ $$1$Ifa$/02346(+++ $$1$Ifa$$$Ifl֞~ &<*****04 la(02:=FHQT]_l~ƟǟˠΡءtuxԢ֢آ'* $TWxy֤٤ADPQ5CJ\aJ6CJ]aJ56CJ\]aJjUmHnHu56CJ\]aJ5CJH*\aJ5CJ$\aJ$ CJH*aJ5CJ\aJCJaJC45789 $$1$Ifa$9:=>A60+++ $$1$Ifa$$$Ifl֞~ &<*****04 laABCDE $$1$Ifa$EFHIJ6,+++ $$1$Ifa$$$Ifl֞~ &<*****04 laJKLOP $$1$Ifa$PQTUV60+++ $$1$Ifa$$$Ifl֞~ &<*****04 laVWXY\ $$1$Ifa$\]_bc6,+++ $$1$Ifa$$$Ifl֞~ &<*****04 lacdefg $$1$Ifa$ghkl60000$1$a$$$Ifl֞~ &<*****04 lauvwx{STUVI$`a$$a$$1$^`a$ $1$`a$1$$1$a$Qnoťƥ  z{IJKTUXY\]`adehilmpqtvy{~ȧ˧ѧ ).79:EFXZ^`"̩ͩϩ 55CJ \aJ 5\5CJH*\aJ5CJH*\aJ6CJ]aJ5CJ\aJ CJH*aJCJaJN˧ ªêŬ߬ $$1$Ifa$($$d%d&d'd1$NOPQa$$1$a$57SUªêԪժު"#Ŭܬݬ  "#$%./45@AHILMUVWmnotuxyҼҰҼҼҼҼҼҼҧҼҼB*CJH*aJphB*CJaJph5B*CJ\aJph>*B*CJaJphB*CJH*aJphB*CJaJph5CJH*\aJ5CJ\aJ5CJ\aJCJaJ CJH*aJ= 0www<wwwHwwwH $$1$Ifa$|$$IflFHH0    4 lal )+,-7=>?QSTUcwHwXw`|$$IflFHH0    4 lal $$1$Ifa$ cklmwhw`w|$$IflFHH0    4 lal $$1$Ifa$ íۭܭޭ!#CDFjkm KMOtv%'RTưǰɰ DEG&'׼CJ aJ CJH*aJCJaJB*CJH*aJphB*CJaJphB*CJH*aJph>*B*CJaJphB*CJaJphJЭ٭ڭۭwlwwx|$$IflFHH0    4 lal $$1$Ifa$  :ABC]hijwwwwwwwww $$1$Ifa$|$$IflFHH0    4 lal Cwww|$$IflFHH0    4 lal $$1$Ifa$ CJKLiqrsԯޯwww|$$IflFHH0    4 lal $$1$Ifa$ ޯ߯"#$GOPQwww |$$IflFHH0    4 lal $$1$Ifa$ İŰư9BCDwww\wwwwwwt $$1$Ifa$|$$IflFHH0    4 lal Dӱݱޱ߱$%&'wwwq$1$a$|$$IflFHH0    4 lal $$1$Ifa$ '7@A@BQYԵյYZkkl[\ɺܻnopqpGHrux uvǼ jjCJaJ jjCJOJQJ^JaJCJOJQJ^JaJ5CJOJQJ\^JaJ5CJH*\aJ5CJH*\aJ CJH*aJ CJH*aJCJaJ5CJ\aJA'kopEFGʽܽݽ#$d%d&d'dNOPQ($$d%d&d'd1$NOPQa$$1$a$&1ESUVbd; #,ES#$d%d&d'dNOPQS\r{ʿ+vV#$d%d&d'dNOPQVbenpqqr #% $p^p`a$$^a$ $1$^a$ $1$`a$#$d%d&d'dNOPQtu|*+ %&MNZ[678;<>?BELM?@KLZҶҶҶҶҶҶҶҶҶ CJH*aJ5CJ\aJ5B*CJ\aJph6CJ]aJCJaJ 5CJ\5CJ \aJ CJH*aJ jjCJaJ5CJ\aJCJaJE*+Z[GH$a$($$d%d&d'd1$NOPQa$$1$a$[\^p|}02ABQR+,\]CDHRST "13BDSUdfu345\5CJ\aJ jjCJaJ CJH*aJCJaJ6CJ]aJCJaJT($$d%d&d'dIfNOPQ#D$$IflִO  W0    4 la   ($$d%d&d'dIfNOPQ#D$$IflִO  W0    4 la ($$d%d&d'dIfNOPQ #D$$IflִO  W0    4 la  "$&(*,.0($$d%d&d'dIfNOPQ01#D$$IflִO  W0    4 la 13579;=?A($$d%d&d'dIfNOPQAB#D$$IflִO  W0    4 la BDFHJLNPR($$d%d&d'dIfNOPQRS#D$$IflִO  W0    4 la SUWY[]_ac($$d%d&d'dIfNOPQcd#D$$IflִO  W0    4 la dfhjlnprt($$d%d&d'dIfNOPQtuv#$1$a$$$IflִO  W0    4 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQd600$1$a$$$Ifl֞O  W04 la 4dersu"R`egx{NORSVW[\abghklpquw{}5CJH*\aJ5CJH*\aJB*CJaJphjUmHnHu CJH*aJ6CJ]aJ5CJ$\aJ$5CJ\aJ5\CJaJFdfhjlnpr($$d%d&d'dIfNOPQrs6<$$Ifl֞O  W04 la suwy{}($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ6<$$Ifl֞O  W04 la ($$d%d&d'dIfNOPQ !"60000$1$a$$$Ifl֞O  W04 la "RS@A|}9:0$^a$$`a$$1$a$ $ & F61$a$7:}126789;=>ADqrsy{ CJH*aJ CJH*aJ56CJ\]aJ56CJH*\]aJ6CJH*]aJ6CJ]aJCJaJ5\5CJ\aJ5CJH*\aJFik}cGHINWX\]^_acdg˿˿˿˿˿ >*CJaJ56CJH*\]aJ56CJ\]aJ5CJ\aJ CJH*aJ6CJH*]aJ6CJ]aJ CJH*aJCJaJI=@fg!#23VX`dSUWxy{|~13AHvwo#'ĸ56CJH*\]aJ5CJH*\aJ5CJH*\aJ6CJH*]aJ6CJ]aJ5CJ\aJ CJH*aJ CJH*aJCJaJH*+ 89TU67 $1$^a$$`a$$a$1$$1$a$   !$&/04567;<=>BCDEIJKLPQRSWXYZ^_`aefghlmnptuvx|5CJH*\aJCJaJ5CJ\aJ5CJH*\aJX|}~ 9dek#$(),-014589<=@ADFIKNPYZ^_`aefghlmn5CJH*\aJ CJH*aJCJaJ5\5CJ\aJ5CJH*\aJTnostuvz{|}4bKMP!"%&)*-.5CJH*\aJCJaJ CJH*aJCJaJ5\5CJ\aJ5CJH*\aJR7`abMNvw()lmHI$^a$ $1$^a$$1$a$$`a$$a$1$.12569:=?BDGIRTkmnruv{}(+UWajnq  "$;<@ADEHI5CJH*\aJ CJH*aJ6CJ]aJCJaJ5\5CJH*\aJ5CJ\aJRILMPQTUXY\^acfhklm*+1278ACFy{!#1278<=BCGHLMQRVWZ\`bfh~5CJH*\aJ56CJ\]aJ CJH*aJCJaJ5\5CJH*\aJ5CJ\aJPlm   d *VXY|}$^a$$`a$$a$$1$a$ defklo  89;*+.035$&EFHMOlnqsvx{} CJH*aJ CJH*aJ5CJH*\aJCJaJ5\5CJ\aJV679:GIJNOSTX[\jnoptvwx`aikvw5CJH*\aJ56CJ\]aJ jj5CJ\aJ5B*OJQJ\^Jph5CJH*\aJ5CJ\aJ CJH*aJCJaJ CJH*aJE;FG\jmne\\QeP $$1$Ifa$ $$Ifa$|$$IflF~ :0    4 la.  !$1$If $$1$Ifa$$1$a$ nxnDn8n$|$$IflF~ :0    4 la. $$1$Ifa$ $$Ifa$  n$nhhh$1$a$|$$IflF~ :0    4 la. $$1$Ifa$ $$Ifa$ kl_`$%qr}#$d%d&d'dNOPQ+h$d%d&d'dNOPQ^h`$h1$^h`a$$1$a$ $ & F%1$a$  st]_'(*34CKLPQUW[\jklvwJVZnp İİİİ 5CJH*\CJH* 6CJ]CJ 5CJ\5CJH*\aJ CJH*aJ CJH*aJCJaJ5CJH*\aJ56CJ\]aJ5CJ\aJE$8UWqr   VWYvwzҽұҥҥұҽڜړҊ5CJH*\aJB*CJaJphB*CJaJph5B*CJ\aJph5B*CJ\aJph5B*CJ\aJph5>*CJ\aJ5CJ\aJCJaJCJH* 5CJH*\ 5CJH*\ 5CJ\CJ 6CJ]4z{;x$1$^`a$0$T$d%d&d'd1$NOPQ]T^a$$1$a$1$$1$a$z{;DST%&)=>@AWXyz~CľľijĥĥľľĠ􇒇H*56CJ \]aJ  jj56CJ \]aJ CJaJ CJH*aJ6CJ]aJ jj6CJ]aJ CJH*aJCJaJ5CJH*\aJ5CJ\aJ5CJ\aJ5CJ H*\aJ 5CJ H*\aJ 5CJ \aJ 5\3Z[pqrst' & F6$d%d&d'dNOPQ#$d%d&d'dNOPQ$1$a$0$$d%d&d'd1$NOPQ]^a$ $ & F%1$a$ CDps/7FHqfkprBCH~B*CJaJph6CJ ]aJ  jj6CJ ]aJ 5CJ \aJ CJ aJ 56CJ\]aJ jj56CJ\]aJ5>*CJ\aJ5CJH*\aJ5CJ\aJ5CJ\aJ5CJ$\aJ$CJaJH*7B\]) ~    [  n89:H & F 1$ $1$`a$($$d%d&d'd1$NOPQa$1$$1$a$   $-/56<DF^_eflmstz{      < > D h j r t v x        Ķ5\H*6] jj6]56CJ$\]aJ$ jj56CJ$\]aJ$56CJ$OJQJ\]aJ$CJ aJ 5CJ\aJ jjCJaJ6CJ]aJ jj6CJ]aJCJaJ<     3 6 ; >   Z        efjkmn1fgn:HIkl߸쫝 jj56CJ\]aJ5CJ\aJCJ aJ  jj6B*]ph5B*H*\ph5B*H*\ph5B*\ph6B*]ph B*phCJaJ B*ph5\ 5H*\;HI67YZ=> $ 881$^8`a$$ 881$^8`a$ $ & F*1$a$1 $ & F&1$a$$1$a$lo4VWZ^-./:Afgmֺڑڑ6CJH*]aJ6CJ]aJ5B*CJH*\aJph5B*CJ\aJph 56\] jj56\]5B*H*\ph5B*\ph5\CJaJ jj56CJ\]aJ5CJ\aJ56CJ\]aJ567WX_`ghopwx.126WZ{AKM jjCJaJ5CJH*\aJ5CJ$\aJ$ CJH*aJ jj6CJ]aJCJaJ5CJ\aJ6CJ]aJLJz{AB)*<=t $1$`a$$1$a$,$$d%d&d'd1$NOPQ`a$MNPabADEWXxz,.:<FHX\UżͶͶͶͶCJaJ CJH*aJ5CJH*\aJ5CJ\aJCJaJ CJH*aJCJH*OJQJaJ jjCJaJCJaJ5CJH*\aJ5CJ\aJF!#*,36=JLijuw{|   8!:!B!""" """" """"""""" #"#b#d#n#p#CJH*OJQJaJ5CJ\aJCJ5CJ \aJ H*H*CJaJ CJH*aJSz {  8!:!B!$$$%%&&S'T'((J)K)**$a$#$d%d&d'dNOPQ$1$a$$1$a$p#r#t#|#~#######$$$$$$$$%$$$$$$$$$$$%%%%%%%%%3&4&E&G&X&Z&k&l&}&~&&&&&&&&K'L'Q'S'T'''''''((((((((̼ 5CJ\ jjCJCJH*CJ CJmH sH  CJH*aJ jjCJaJ5CJH*\aJ5CJ\aJ CJH*aJCJaJI(J)K)Q)))))V*X***,+.+U+W+++++----..*.+.`.a...//A/B/////.0P0S01111111222#2&2)2B2D2N2Q2T2m2n2r2s2~22222222222222222CJ aJ 5CJ\aJ5\ CJH*aJ CJH*aJ5CJ\aJCJaJ5CJ \aJ Q*U***+x+y++,,Z,,,%----Hi$$Ifl0,"LL04 la $$Ifa$-U.V....^////,0-0.011`p$a$$Ifi$$Ifl0,"LL04 la $$Ifa$11&2Q2222F3G33334V444'5(555 6Y66 7x7y7W8 $@ ^@ `a$$a$233333333"3$3F3G3P3Q3R3T333333333333344 4 44447484<4>4S4V4Y4r4s4w4z4}44444444444444444444444&5'595:5P5R555555555556 6-65CJ\aJ5CJ\aJCJ aJ CJH*aJCJaJX-6/6;6=6L6N6|6}666666666666666 7 777P7R7y777W8X8Y8&9'9-9.9091929B9C9J9K9M9[9]9^9_9o9p9{9|9~99999999999ľĶĶ6CJ]aJ CJH*aJCJaJ6]0JmHnHu0J j0JU j0J4U jjCJCJCJ aJ CJaJ CJH*aJ@W8X8%9&929394959D9E9L9M9^9_9o9p9~99999999999 !&`3$a$99$a$& 0P/ =!"#$%0<$$IfVTo -Hd 'C^y ! h llll4 a<$$IfVTo -Hd 'C^y ! h llll4 a<$$IfVTo -Hd 'C^y ! h llll4 a<$$IfVTo -Hd 'C^y ! h llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la($$If"  , w X:GK L K K K K L K K Z Y Z 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a($$If"  , w X:GK LKKKKLKKZYZ 44444 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a<$$IfV:U p /Je$?Zu llll4 a$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |Hdn <X t"@ z0@@@@4 la$$IfTldB( < |dn <X t"@ z0@@@@4 la$$IfTldB( < |dn <X t"@ z0@@@@4 la$$IfTldB( < |dn <X t"@ z0@@@@4 la$$IfTldB( < |dn <X t"@ z0@@@@4 la$$IfTldB( < |dn <X t"@ z0@@@@4 la$$IfTld& < Xt4Pl!h z0@@@@4 la$$IfTld& < Xt4Pl!h z0@@@@4 la$$IfTld& < Xt4Pl!h z0@@@@4 la$$IfTld& < Xt4Pl!h z0@@@@4 la$$IfTld& < Xt4Pl!h z0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$IfTldB( < |Hdn0Lh "@ 0@@@@4 la$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 a$$Ifzp  B  5r(e(X====<====<====DDDD4 aX$$If  v lbYOF< |{{{{|{{{{|{{{{|{{{TTTT4 aX$$If  v lbYOF< |{{{{|{{{{|{{{{|{{{TTTT4 a($$If" R H *u WUK L K K K K L K K Z Y Z 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If" R H *u WUK L K K K K L K K Z Y Z 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap($$If" R H *u WUK LKKKKLKKZYZ 44444 ap-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" x o e\RH{{|{{{{|{{{{|44444 a-$$If" -$  x{{|{{{{|{{{{|44444 a-$$If" -$  x{{|{{{{|{{{{|44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a($$If"  44444 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a $$If֦]_ ` b de g"LLLL4 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a($$If"  b  jr"z*!XXXXXXXXXXXXX44444 a5 i:@: Normal 1$7$8$_HmH sH tH 0@0 Heading 1$@&aJB@B Heading 2$$ 1$@&a$aJ>@> Heading 3$$1$@&a$CJaJ<@< Heading 4$d1$@&^daJB@B Heading 5$$,1$@&],a$aJ:@: Heading 6 $1$@& 5\aJZZ Heading 7$$1$@&a$#5B*CJOJQJ\^JaJphN@N Heading 8$$@&a$5B*OJQJ\^JphD @D Heading 9 $$1$@&a$5CJ \aJ <A@< Default Paragraph Font0B@0 Body Text$a$aJC@ Body Text IndentO$$d%d&d'd1$NOPQa$aJNR@N Body Text Indent 2$h1$^ha$aJ8Z@"8 Plain Text1$ OJQJ^J, @2, Footer  !&)@A& Page NumberBObB Definition Term1$ aJmH $sH $JRJ Definition List h1$^h aJmH $sH $*Oq* Definition6]DOD H1$dd1$@&5CJ0KH$\aJ0mH $sH $@O@ H2$dd1$@&5CJ$\aJ$mH $sH $@@ H3$dd1$@&5CJ\aJmH $sH $<< H4$dd1$@&5\aJmH $sH $88 H5$dd1$@&5\mH $sH $@@ H6$dd1$@&5CJ\aJmH $sH $88 Address1$6]aJmH $sH $PP Blockquotehhdd1$]h^h aJmH $sH $O CITE6],O, CODECJOJQJ^JaJ&X@!& Emphasis6].U@1. Hyperlink >*B*ph>V@A> FollowedHyperlink >*B* ph:OQ: Keyboard5CJOJQJ\^JaJjbj Preformatted+& # ~= z9!v%1$OJQJ^JmH $sH $n]nz-Bottom of Form'$$d1$Na$<CJOJQJ^JaJmH $sH $h\h z-Top of Form($&d1$Pa$<CJOJQJ^JaJmH $sH $(O( Sample OJQJ^J"W@" Strong5\8O8 TypewriterCJOJQJ^JaJ&O& Variable6]2O2 HTML Markup <B*ph"O" Comment<,, Header / !BQ@B Body Text 3 0$1$a$5CJ$\aJ$^S@^ Body Text Indent 3#1$ 881$^8`a$aJFP"F Body Text 2 2$1$a$B*CJaJph.@2. Footnote Text38&@A8 Footnote ReferenceH*}/*;JYgu}/#C|~*;JYgux}/>#$wxyz   !#%')+-/134`bdfhjlnprtwz} "$&(*,.02468:<>@BDFHIJ(*,./1356EHJMNPSVW^_`abcdefgiknoqsvw  "$&(*,.02468:<>@BDFHJLNPRTVWY[]_acegikmpsvy|           " % ( + , / 1 3 5 8 ; > A C E H K N Q S U W Z ] ` c e g j m p s t v x z }             # % ( + - / 2 5 7 : = @ B E H I K M O R U W Z ] _ b e g j m o q t w y |             " $ ' * , / 1 4 7 : = ? B D G J L O Q T V Y \ ^ a c f g j l o r u x z }            # % ( * - / 2 5 8 ; < ? A D F I K N Q S V X [ ] ` c e h j m p s v x { }            ! $ ' ) , / 1 4 7 9 ; > A C F I K N Q S V Y [ \ _ a d g i l o r t w z | ~   !#%(+.13479<?BEGILORUWY[^adgiknqtwy{|    #&),/258;>ACEGIKMOQSTU-.] "deNOHIxy$%M|./Gn!!!3"4""#>#?#`###0$$$$#%%%%(&o'p''''''''''''''''''''''''''((((( ((((((&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(:(=(@(C(F(I(K(N(Q(S(U(W(Z(](_(`(l(n(p(r(t(v(x(z(|(~(((((((((((((((**,,,D-k-l------+.. / ///E0F00000000i33333333[6\6'7(7476787:7<7>7@7B7D7F7H7J7L7N7P7R7S7T7V7Y7\7_7b7e7g7j7m7o7q7s7v7y7{7|7}77777777777777777777777777777777777777777777777777777a888#9$9T9;;1=2=Y===>>>R?S?g?|?}?????????????????????????????????????????BB6C7C8C:CC@CBCECHCKCNCQCTCWCXC[C]C_CaCcCeChCkCnCqCtCwCzC{C}CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDD D D DDDDDDDD"D%D&D)D,D/D2D4D6D8D;D>DADCDEDHDIDLDODRDTDWDZD\D_DaDdDgDiDkDlDoDrDtDwDyD|D~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDHHBJxLyLzLLLM M2MGMHMIMUMWMhMMMMMMMNNNENUNiNrNNNNN O O2O;Of@fBfDfFfHfJfLfNfPfRfTfVfXfZf\f^f`fbfdfffhfifkfmfofqfsfufvfwfxfyfzf{f|f}f~ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffggg g gggggggg!g#g%g(g+g.g0g2g5g8g;gg@gBgEgHgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagcgegggjgmgogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhh h h h h hhhhhhhhhhhhhhh!h$h'h*h+h,h-h.h/h0h1h2h3h4h5h6h7h8h9h:h;hh?h@hChEhHhJhMhOhPhQhRhShThUhVhWhXhYhZh[h\h]h^h_h`hahbhchdhehhhjhmhohrhthuhvhwhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiii i i iiiiiiiiiiiiiiiiiii i!i$i&i)i,i.i1i2i3i4i5i6i7i8i9i:i;ii?i@iAiBiCiDiEiFiGiJiLiOiRiTiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikilioiqitiwizi|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjj j jjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j+j-j0j3j6j9j:j;jj?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjy@yByDyFyHyJyLyNyPyRyTyVyXyYy^y`ybydyfyhyjylynypyrytyvyxyzy|y}yyyyyyyyyyyyyyyyyyyyy&z'z(z4z6z8z:zz@zBzDzFzHzJzLzNzPzRzSzUzYz[z^zazdzgzjzlzozrztzvzxz{z~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{ { {{{{{{{{{{!{#{%{'{){+{-{/{1{3{4{7{9{;{={?{A{C{E{G{I{K{M{O{Q{S{U{W{X{[{^{`{b{d{f{h{j{l{n{p{r{t{v{x{z{|{}{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{|||| | | ||||~~KLDEFGsچۆUVYZ܋+,8:KLW[^ӌ܌!)N`qy 0167tu?@Dyz{34CEfÛ՛֛כw؜ݜ#Nbe{؝)6AF^Ǟ #/8i͟ݟߟ')RS¦æߦmno *Jqr U޲7_`״ش]^µ%&ghKLDpAyzGp !#%'),/1468:=?BDGHI:gRcjpJh HX`gh^_rsG4,0klm=>?@rs78:P]bcm(-.Ccde $w*YkQu~ "%(+.12468;>@BEHJMPSTWY\_adfiknpsvwy{~ !#$'*,/1469<?ADFGJMPRUWZ\_adgijmpsvx{~ABi01;"#yLefg@WXYWX&hm,-.0   !"$&),.0368:=@BCEGJLNQTWY\_bdehjlnprtvxz|~             ! # & ) + - . 1 4 6 9 ; > @ C E H J M O P S V X [ ] ` b e g j l o q r s   {|89:HHIJ`01MNGH "$&()+-/13468:<>?ACEGIJK= T U   5!_!!!" """X#Y###$$$$$$$%-&.&/&O&()))5*]*^*#+$+y,z,{,|,},~,,,,, - -W-X---------.J......./#/m///0$0)07090:0w0y0000000000011-1D1X1[1m1v1111122222+2223344$8%8&8899:::::;;;;<<<===`?a?@@BBBBCC!CCCCCCEEYG[G]G_GaGbGdGfGhGjGkGmGoGqGsGtGvGxGzG|G}G~GHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH}I~IJJJJK$KLZL[LLLMMMMMMMMMEMNN1N3N5N7N9N;N=N?N@NBNDNFNHNJNLNNNONQNSNUNWNYN[N]N^N`NbNdNfNhNjNlNmNoNqNsNuNwNyN{N|N~NNNNNNNNNNNNNNNNN OLOO0PPPQQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS T,TTTUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWW W WWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZZZZZZZZZZZZZZZZZZZZZZZ[[^^"_#_d___0`1`aaafcgcccccccccd ddd*dJdWd{dddd(ebekemeoeeff&i'i(i)i*iaibik k#k%k'k)k+k-k0k3k6k9klAlDlFlIlKlNlQlSlUlVlYl\l^lalclflhlklnlqlslvlxlyl|llllllllllllllllllllllllllllllllllllllllllllnnnnnnnnnnnnooo o o oooooooo"o%o(o*o+o-o/o1o3o6o9opApBpEpHpKpMpOpQpSpVpYp\p_pbpepfpiplpnppprptpvpyp|ppppppppppppppppppppppppppppppppppppppppppppppppssttIttt|u}u~uuuuuvv w8wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxx x xxxxxxxx!x#x$x&x(x+x-x/x2x5x8x:x=x@xCxExFxIxKxMxOxQxSxUxWxYx[x]x_xaxbxexhxkxmxoxqxtxwxyx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyy y yyyyyyyyy!y$y&y)y+y.y0y1y4y7y9yyAyCyFyHyKyMyPyRySy_y`yI|J||||||||||||||||||||||||||||||||||||||||||,}}}B~C~   !#%')+-.02469;>ADGJMPSVY[^`acehknqtwy{}€ŀǀȀʀ̀πҀՀ؀ۀހ  "%(+-.1479<?ADGILOQTWY\_abehkmoruwz}āǁɁʁ́ЁҁՁ؁ہށ  "$&),/1258;>ACEHKNQSUX[^acefiloqtwy|‚łȂ˂͂΂тԂׂڂ܂ނ "%(+-03569<>ADGJLOQTVY\_bdgijmpruwz|ƒăƃǃɃ̃̓σу҃ԃ׃؃ڃ܃݃߃  !"%'(+-.vwx!#%')+-03679;=?ACEGIKMOQRTVX[^acegjmprsvx{~…ŅDžʅ̅υ҅Յׅ؅ۅޅ  "$'*,.1369;=>ADGJLNPSVY[]_`cfilnqsvy|~ÆņƆӆԆ !#%&(*+-/02458:;>@ADFGJLMPRSVXY\^_bdef;<=yzbc0N^   ،ٌڌopPQSUX[]^`cdefgjkmopqtvwxyz|}~5nӑZbc&'3mnϔДtuїҗklnqsvx{}~ĘŘΜϜМќGuwԞKklݡޡ$xyr8EFGOQRS^`ablrstħŧƧاާߧ)234VYZ[pwxy¨è KNOPktuv©ʩ˩̩ -789t{|}qtuv,678u}~@AIJȴɴ#56LNY`gtݸ&K_f|˹Թ #RϺ $6JN[hltǻɻʻʼ˼Wc|~ٿPQR+=>_`EHJLNPRTVWY[]_aceghjlnprtvxy{}    "$%')+-/13468:<>@BCEGIKMOQRS  !#%&xyz{AB[()uvDNPCD fgnIJOg  lm bcd/eCFqt()*WXx    abIJ}~:;pq VWXijAB$&mX Y     @ A        789;8Hw<STIPefuv$%& i j  I!J!!!!+"}"~""q#r##&$'$r$$$/%%%%%%%''''"(R((())f))))'*****_+++*,a,,I-J-(.)...//////////0/@/A/O/P/^/_/e/l/m/s/z/{/~/000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000X00/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/ 0/0/ 0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/ 0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/5 0/0/0/0/0/0/0/0/0/800e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e00000000000y00000040000000000000000000000000000000000000000000000000000000/ 000000'0000000)0)0)0)0)0)0)0)0) 0)0000000 0)000000000000000 0) 0)0`0`0`0`0`0`0`0`0`0`00`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0` 0) 0)0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0)0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0)000000)000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00 00 00000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00 000 00000000000000)0)0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N! 0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N4 0N0N4 0N0N4 0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0)0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^ 0^0^ 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^00^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^+ 0^+ 0^+ 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^ 0^ 0^0^0^ 0^0^ 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^ 0^0^ 0^0^0^ 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^ 0^$ 0^0^0^# 0^# 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^6 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^% 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^% 0^0^0^0^0^0^0^0^0^0^6 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^ 0^ 0^ 0^0^0^0^0^& 0^0^& 0^0^& 0^0^10^0^* 0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^(0@30 0@0@0@0 0000000000000000000 T%+w/B38P=XG@Vilr@|-E U S(K?sfr@ jV"&(*-.7_@IMSY-_Kenltz}Յ-%z(Q5'4|n.IzC lMp#(2-69"9QSVX]_afkux .MUWbilsy   }" ( 5 E V ^ e g v B   W -tL hAa>G#'+ ,:,~,l17P;;;<|CCC6GtGGG;H~HHLQS:\g#jVjjjjj#kWk{kkkkl6l[lllllm=mbmmmmnEnUoo}rrr~uuu%v{|F|}|||$}Y}}L~~~~/fY)tEߣªr%p',l$2v?A&  N    S |0"("3"I"_%5.146>HMM#MWNcNhNpNuN}NNNNNNNPRSSSSTTTT"T#T1T2T@TTmYvYYYYYS\]\^\l\m\{\|\\\\\\\\;^L^M^X^Y^c^d^m^n^y^z^^^^^^M`Y`^`f`k`s`di-kp'qiqqq3rwrtt1usuuu=vfvP{u}}}+~n~~~Mf-qH؇f<k,l3zҌ +7 *ڙ(/49AEJPV\cgcCޯD'SV 01ABRScdtdrs"7n H*-1W899#%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPRTUWYZ[\^`bcdeghijlmnopqrstvwyz{|}~     !"#$%&'()*+,-/0123456789:;<=>?@ABCDEFGHIJKLNOPQRSTVXYZ[\]^_`acdefghjkmnopqrtuvwxz{|}~  9$ !@  @p6 s6(  bB B c $Dg "@\B " S D" bB  c $Dg "h\ # 3 "! h  B CxDEF<%%"    ^ /^ / \ xu.:6 =z 1w)|uRZ*KEg?<?t?@            3"cX  BH CDEF8""e   &+ 6? B@ UH  f V 1   U U |O6u33e-H^[~UJ6,6@           3"d  B CDEFX::lH~  >;\> ki\LE ,AW1\all g \S \ \ u  X-u\WfO{<z7]/L  n\9XOO/l/),@                   3"e(  BCDEdF,8?P6{g+UJ:dy /t? $vW|W@        3"f.  BCDEdF,8?P6{g+UJ:dy /t? $vW|W@        3"o^  BH CDEF8""e   &+ 6? B@ UH  f V 1   U U |O6u33e-H^[~UJ6,6@           3"p\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D"\B  S D" \B  S D" \B  S D"\B  S D"\B   S D"\B   S D"\B   S D" \B   S D" \B   S D" \B  S D"\B  S D"\B  S D"\B ! S D"\B   S D"\B  S D"\B  S D"\B  S D"\B  S D"\B 1 S D"/\B 2 S D"0\B 0 S D".\B % S D"#\B / S D"-\B . S D",\B - S D"+\B ) S D"'\B ( S D"&\B , S D"*\B ' S D"%\B & S D"$\B + S D")\B * S D"(\B $ S D""\B @ S D">\B A S D"?\B ? S D"=\B 4 S D"2\B > S D"<\B = S D";\B < S D":\B 8 S D"6\B 7 S D"5\B ; S D"9\B 6 S D"4\B 5 S D"3\B : S D"8\B 9 S D"7\B 3 S D"1\B E@ S D"C\B F S D"D\B R S D"P\B H S D"F\B Q S D"O\B P S D"N\B O S D"M\B D S D"B\B K S D"I\B N S D"L\B J S D"H\B I S D"G\B M S D"K\B L S D"J\B G S D"E\ C 3 "A \B ` S D"^\B a S D"_\B S S D"Q\B T S D"R\B U S D"S\B _ S D"]\B V S D"T\B [ S D"Y\B Z S D"X\B ^ S D"\\B Y S D"W\B X S D"V\B ] S D"[\B \ S D"Z\B W S D"UbB } c $Dg "a\ ~ 3 "b \ | 3 "` \  3 "g \  3 "l   B CDEFX::lH~  >;\> ki\LE ,AW1\all g \S \ \ u  X-u\WfO{<z7]/L  n\9XOO/l/),@                   3"q  BPCnDE4F  ?^u&:?W]n-a=/P/ @    3"k  BPCnDE4F  ?^u&:?W]n-a=/P/ @    3"j  BPCnDE4F  ?^u&:?W]n-a=/P/ @    3"iP   "m V  # "n \B  S D"B S  ?H0(  456789:;<=>?@ABCDEFGHIJKLMWXYZ[\, (((((((((( (!("(#($(}7~77777777777777XCfnnnnnnnnnnnnnnnqqqqqqqqqqqqqqqTL@e kwwwFxsw}/88tXXttxxtttt t t 88t X X t x!x!ttthhtHHt((ttt t t th h tH H t((tt)ItX)XIt)It)It X)XIt! ) It"8&X nt#Rh.t$ @ `t% @ `t&@`t'x@x`t(@`t)@`t*8@8`t+@`t,@`t-(@(`t.x@x`t/8 @8 `t0@`t1@`t2X@X`t3 @ `t4 @ `t5@`t6x@x`t7@`t8@`t98@8`t:@`t;@`t<(@(`t=x@x`t>8 @8 `t?@`t@@`tAX@X`tB`x tCxRhtDXxtEXxtFttG @ `tH @ `tI@`tJx@x`tK@`tL8@8`tM@`tN@`tO(@(`tPx@x`tQ8 @8 `tR@`tSH [H {tT [ {tU [ {tV[{tW @ `tX@`tYx@x`tZ@`t[@`t\8@8`t]@`t^@`t_x@x`t`@`taX@X`t| Ht} r t~HwtW t1vy wtcpxtKstt I tXpt(pxt pHtxt,t jtMI t`t<% 't67J%M%1F4F)M0M;MEM]MfMiMlMrMzMMMMMMMMMMMNN NN!N%N?NCNJNMNNNNNOOOOOO'O*OLOOOcOgOOOOOOOOOOOOOOOOOPPP!P5P=P?PAP\P^PgPkPzP}PPPPPQQ6R9RSSWW!X$X*X2XZZZZG`I`T`X`\`^```c```````(a*aaaaa2b4b|bbbb #);>MS`d59GK nqΚҚ֚ښ&*͛ӛ  $quy}Ҝ֜nvÝ۝ߝ #'}Ӟ۞;?x|ßǟ˟ry|\c|LPfi}=AQUY]Ӥܤ&( >@̴δuwz|,1?AEGce"$ &*quy} #-159$!hkPWO!R!s#v#- ---*-0-H-K-X-[-`-c-g-j---------.. .%.9.<.D.H.M.Q........../ ////////./1/9/=/B/G/////// 00000"0:0=0B0E0I0L0}00001"1`1h11122222222e3j33333333344556666 6#68888e9h9j9m9n9q9r9w9::::::::;;<<=>>>>> ??A?F?Q?S?V?X?[?]???%@-@@@kBsBKKLLLLLLLLTT{UUUUUUUUUU;WBWl]t]R^T^^^E`M`cccc dddd d&d-d1dMdPdmdude e!e%e;e?e[e_ebege$ݲ߲!-369>AEHRUø)-RSX[svùƹ޹߹!&*LPcg~ɺͺҺֺں޺UVûֽٽNOPQ׾ؾZ[fgloDE&(=?vx=?(*JLcfnpz|QS]`vx{~;>`b}!!}####0$2$$$%%)........//~/ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGJX_  ]^EK/1OP7<oq # ! !g"k"""""+#/#$'$l$v$$$%%%%&&&&l(m(n(o(p(q(r(s(t(u(v(w(x(y(z({(|(}(~((((((((((((%-)-../0013333475767778797:7;7<7=7>7?7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q78899::AA)E0EFFHH!M(M3M:MIMMMXM\MiMlMMMMMMMMMN N!N%NJNMNZN_NyN{NNNNNNNOOOO'O*OCOGOcOgOOOOOOOOOP P+P-PTPXPgPkPzP}PPPQQQ R?RDRyT}TTTTTWWWW5X8XXX\\\]]] ]]` `A`G```,b2bIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk[k\k]k^k_k`kakbkckdkekfkkk]n^n_n`nanbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynzn|q}q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqAsBsttwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxz?z@zAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzSzTzUzVzV|[|||}}~$~~~%)ƅʆˆʈĊ_iɋՋ !,0;>MSXZ`dŌ59gm{W]*. VXDL)/8DU&+ě˛כۛ  $y}ڜܜ$%OTjl۝ߝ #'-2:?LSdg͞Ҟ%+;?lnϟ՟\cY^ Ʃbd4;JKhwɲ>@"${}FHNOȻл35FGst\^doJKst ?Alm/45;7:!  &*quy} #-1\]nqX[R^z;;i UZgjjn<@+06Fch  Q U   B G   E J 5;6:p!w!"##%#$$$$&&''t)y)))A*B*++8,<,,,--!-(-X-[---------..M.Q........../ //&/(/////0000*0/0:0=0}00000000001"10151G1L1\1^1}1~11111112 222336656:6668888j9q9::::==P>]>>>B?F?`@g@4B>BCCCCKDLDE#E|KK=LGL[L_L?MCMOORRUUVV;WpWYZZZd[k[[[\]c]]]R^T^^^____bbGcLccccccc dd d&d-d1dMdPdZd_ddddd+e/ebege2f7fffiiDqJq rrrrsSs{tttt w w||&)02TZďΏ‘ɑp23CL}יZ`;=yz۞ޞ"%KL!,6&Y\pw<Bpw!gp($+69RU]_ø)-NQkm۹ݹ&*UWҺֺ+2=B]duwû[bҽֽW^׾ؾmoٿ޿ +VZb ch>D'2',-1jr  [_18  !/1eg_mx}nxpu#$~{uJXbkHN; >   (,VYz|36OPX`6:T_*!.!\#^#####$$%%%%- -]-a-).?.D....//F/M/U/\/e/i/s/w/~/3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333}}G.."OO%%%%%%%%&&4&4&y,},;;AAAABBCCCCCCCCCCCCWEbEuHH-JCJMMMMaa4i5i9i:iKiLiZi[iuuQR\]hino{{  ./(../~/ Webmaster\\Rm309\javascrript2\Ch2.doc Webmaster\\Rm309\javascrript2\Ch2.docShawn E. Maynard-HahnfeldC:\WINDOWS\Desktop\Ch2.docShawn E. Maynard-HahnfeldC:\WINDOWS\Desktop\Ch2.docShawn E. Maynard-HahnfeldC:\WINDOWS\Desktop\Ch2.docShawn E. Maynard-HahnfeldC:\WINDOWS\Desktop\Ch2.docShawn E. Maynard-HahnfeldC:\WINDOWS\Desktop\Ch2.docShawn E. Maynard-HahnfeldGC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Ch2.asdShawn E. Maynard-HahnfeldGC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Ch2.asdHC0C:\WINDOWS\Desktop\JavaScrript2\textbook\Ch2.doc6m ZQpVNO: G>  R Ivtl GX;'26F[ =2<O h":=T!HU"RZ% %:3_& U. Nu3f^g3}+ 5S6ck9$<0Xl&@ GWkA E !.FXIjGH TJ=UkuV21ZW ~F|\2v,h:}^l` i_@f zffkf \g&J*% Z%_&O5n SdmkfZQU.k9@BDFHI(*,./1356EHJMNPSVW^_`abcdefgiknoqsvw  "$&(*,.02468:<>@BDFHJLNPRTVWY[]_acegikmpsvy|           " % ( + , / 1 3 5 8 ; > A C E H K N Q S U W Z ] ` c e g j m p s t v x z }             # % ( + - / 2 5 7 : = @ B E H I K M O R U W Z ] _ b e g j m o q t w y |             " $ ' * , / 1 4 7 : = ? B D G J L O Q T V Y \ ^ a c f g j l o r u x z }            # % ( * - / 2 5 8 ; < ? A D F I K N Q S V X [ ] ` c e h j m p s v x { }            ! $ ' ) , / 1 4 7 9 ; > A C F I K N Q S V Y [ \ _ a d g i l o r t w z | ~   !#%(+.13479<?BEGILORUWY[^adgiknqtwy{|    #&),/258;>ACEGIKMOQST''''''''''''''''''''''''((((( ((((((&((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(:(=(@(C(F(I(K(N(Q(S(U(W(Z(](_(`(l(n(p(r(t(v(x(z(|(~(((((((((7476787:7<7>7@7B7D7F7H7J7L7N7P7R7S7T7V7Y7\7_7b7e7g7j7m7o7q7s7v7y7{7|7777777777777777777777777777777777777777777777777777S?g?|?}?????????????????????????????????????7C8C:CC@CBCECHCKCNCQCTCWCXC[C]C_CaCcCeChCkCnCqCtCwCzC{C}CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDD D D DDDDDDDD"D%D&D)D,D/D2D4D6D8D;D>DADCDEDHDIDLDODRDTDWDZD\D_DaDdDgDiDkDlDoDrDtDwDyD|D~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeffff f f ffffffffff!f#f%f'f)f+f-f.f/f4f6f8f:ff@fBfDfFfHfJfLfNfPfRfTfVfXfZf\f^f`fbfdfffhfifkfmfofqfsfufvfwfxfyfzf{f|f}f~ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffggg g gggggggg!g#g%g(g+g.g0g2g5g8g;gg@gBgEgHgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagcgegggjgmgogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhh h h h h hhhhhhhhhhhhhhh!h$h'h*h+h,h-h.h/h0h1h2h3h4h5h6h7h8h9h:h;hh?h@hChEhHhJhMhOhPhQhRhShThUhVhWhXhYhZh[h\h]h^h_h`hahbhchdhehhhjhmhohrhthuhvhwhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiii i i iiiiiiiiiiiiiiiiiii i!i$i&i)i,i.i1i2i3i4i5i6i7i8i9i:i;ii?i@iAiBiCiDiEiFiGiJiLiOiRiTiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikilioiqitiwizi|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjj j jjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j+j-j0j3j6j9j:j;jj?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOj=kIkKkMkOkQkSkUkWkYk[k]k_kakckekgkhkikkknkqktkwkzk|kkkkkkkkkkQn]n_nancnengninknmnonqnsnunwnyn{n|n}nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooo o oooooooopq|q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrr r rrrrrr!r#r%r'r)r+r-r/r1r3r5r6rwwwwwwwwwwwwwwwwwwwwwxxxxx x xxxxxxxxxx!x#x%x'x)x+x-x/x1x3x5x7x9x;xy@yByDyFyHyJyLyNyPyRyTyVyXyYy^y`ybydyfyhyjylynypyrytyvyxyzy|y}yyyyyyyyyyyyyyyyyy'z(z4z6z8z:zz@zBzDzFzHzJzLzNzPzRzSzUzYz[z^zazdzgzjzlzozrztzvzxz{z~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{ { {{{{{{{{{{!{#{%{'{){+{-{/{1{3{4{7{9{;{={?{A{C{E{G{I{K{M{O{Q{S{U{W{X{[{^{`{b{d{f{h{j{l{n{p{r{t{v{x{z{|{}{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{|||| | | ||| !#%'),/1468:=?BDGH0lm>? "%(+.12468;>@BEHJMPSTWY\_adfiknpsvwy{~ !#$'*,/1469<?ADFGJMPRUWZ\_adgijmpsvx{~   !"$&),.0368:=@BCEGJLNQTWY\_bdehjlnprtvxz|~             ! # & ) + - . 1 4 6 9 ; > @ C E H J M O P S V X [ ] ` b e g j l o q r  "$&()+-/13468:<>?ACEGIJYG[G]G_GaGbGdGfGhGjGkGmGoGqGsGtGvGxGzG|G}GHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH1N3N5N7N9N;N=N?N@NBNDNFNHNJNLNNNONQNSNUNWNYN[N]N^N`NbNdNfNhNjNlNmNoNqNsNuNwNyN{N|N~NNNNNNNNNNNNNNNNSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWW W WWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZZZZZZZZZZZZZZZZZZZZZZ k#k%k'k)k+k-k0k3k6k9klAlDlFlIlKlNlQlSlUlVlYl\l^lalclflhlklnlqlslvlxlyl|llllllllllllllllllllllllllllllllllllllllllnnnnnnnnnnnooo o o oooooooo"o%o(o*o+o-o/o1o3o6o9opApBpEpHpKpMpOpQpSpVpYp\p_pbpepfpiplpnppprptpvpyp|ppppppppppppppppppppppppppppppppppppppppppppppppwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxx x xxxxxxxx!x#x$x&x(x+x-x/x2x5x8x:x=x@xCxExFxIxKxMxOxQxSxUxWxYx[x]x_xaxbxexhxkxmxoxqxtxwxyx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyy y yyyyyyyyy!y$y&y)y+y.y0y1y4y7y9yyAyCyFyHyKyMyPyRySy||||||||||||||||||||||||||||||||||||||||   !#%')+-.02469;>ADGJMPSVY[^`acehknqtwy{}€ŀǀȀʀ̀πҀՀ؀ۀހ  "%(+-.1479<?ADGILOQTWY\_abehkmoruwz}āǁɁʁ́ЁҁՁ؁ہށ  "$&),/1258;>ACEHKNQSUX[^acefiloqtwy|‚łȂ˂͂΂тԂׂڂ܂ނ "%(+-03569<>ADGJLOQTVY\_bdgijmpruwz|ƒăƃǃɃ̃̓σу҃ԃ׃؃ڃ܃݃߃  !"%'(+-.!#%')+-03679;=?ACEGIKMOQRTVX[^acegjmprsvx{~…ŅDžʅ̅υ҅Յׅ؅ۅޅ  "$'*,.1369;=>ADGJLNPSVY[]_`cfilnqsvy|~ÆņƆ !#%&(*+-/02458:;>@ADFGJLMPRSVXY\^_bde   QSUX[]^`cdefgjkmopqtvwxyz|}~lnqsvx{}~8EFGOQRS^`ablrstħŧƧاާߧ)234VYZ[pwxy¨è KNOPktuv©ʩ˩̩ -789t{|}qtuv,678u}~EHJLNPRTVWY[]_aceghjlnprtvxy{}    "$%')+-/13468:<>@BCEGIKMOQR  !#%&Xx   & i j  I!J!!!!+"}"~""q#r##&$'$r$$$/%%%%%%~/@BBi2BBpY?Y@}/@D@ @8@"H@UnknownG:Times New Roman5Symbol3& :Arial;Wingdings?5 :Courier New5TrajanE5  Lucida Console"AhHF6SB&P<xx235:2Q"Chapter 2 : Multiplicative Cipher Zac BeechlerShawn E. Maynard-Hahnfeld  ՜.+,0  hpx  35 $Chapter 2 : Multiplicative Cipher TitleTitle  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOnqPRoot Entry F@=ʺp@Data  m1TablehWordDocument(>SummaryInformation(DocumentSummaryInformation8 CompObjjObjectPool@8d@8d   FMicrosoft Word Document MSWordDocWord.Document.89q Oh+'0 (4 P \ h t#Chapter 2 : Multiplicative Cipher shapac ac  Normal.dotrShawn E. Maynard-Hahnfeld25Microsoft Word 9.0@ `@ޔ}|@' @ EcP< N Hahnfeld ՜.+,D՜.+,P  hpx  35 $Chapter 2 : Multiplicative Cipher Title4 $,