Chapter 4 Key Coding Patterns based 19 System of the Full Text of Quran

The coding evidences that will be presented in this chapter are based on the key coding patterns. I hypothesized that God might have left some easily testable key coding patterns into the basic but most important parts of the full text of Quran so that we can easily observe and use them as key coding patterns to open up the 19 System of the full text of Quran. By applying the key coding patterns over the full text of Quran, we can easily discover the parts of the 19 System of the full text of Quran, which are based on the key coding patterns. I named them as key coding patterns as it reminds me leaving a key around the door of a house so that the person who are supposed to enter the house, but should not be directly communicated, can herself have a look around find the key easily and use it to enter the house. Quran is a message and if God might have placed a 19 based coding system over the message so that we, the receivers, have a tool to scientifically test whether the message is distorted or not by observing an undistorted message coding system over it, similar to what we do in modern communication systems. If that is the case, then God might also have left some key simple codings that can easily catch our eye, most likely, at the entrance of the text or from a quick overall look to the full text so that we can easily test them and discover the key coding patterns and use them to discover the evidence codes over the full text of Quran. I have made hypotheses with such sensible approach in mind and discovered the 19 System of the full text of Quran based on the key coding patterns, which I present the in this main chapter, Chapter 4.

All the key coding pattern based evidences are important part of the system but I refer the Main 19 System part of this book as the codes based on key coding pattern based evidences but without letters information as this makes theme less prone writing styles of different texts and more universal.

Places to look at the key coding patterns:

The first place to look for the key coding patterns is the first and the most famous chapter of Quran, which is Al-Fatiha. The chapter Al-Fatiha is a 7 verses short chapter and it is memorized almost by all Muslims as it is considered that it needs to be read in every daily obligatory prayers, which is performed 5 times a day. Al-Fatiha means “The Opener” or “The Opening” and with that meaning it perfectly align with my hypothesis that it is the main place to look for the key coding patterns. Also, since, it is an independent chapter, we can observe codings in chapter level text data and also verse level text separately and look for chapter and verse level key coding patterns in these two different levels of the text. So, it is perfect and most obvious place for the key coding patterns to be placed by the sender and to be looked for by the receiver over the full text of Quran. I my humble opinion, it is unique and unrivaled in that respect and the most obvious place to look for the key coding patterns. Therefore, the first and the main place to be looked at for the key coding patterns is over the first chapter of the full text of Quran, Al-Fatiha. Since we can observe the chapter and verse information in this special chapter, Al-Fatiha, the key coding patterns observed in chapter level data of Al-Fatiha will be tested on the chapter level data of the full text of Quran. Also, the key coding patterns observed in verse level data of Al-Fatiha will be tested on the verse level data of the full text of Quran.

I considered the second possible place for the key coding patterns to be looked at is the special and the unique verse, Basmala. Again, it is unique because, first of all, it is the first verse of Quran. It aligns with my sensible hypothesis to look at the entrance of the home or structure anology and in this case it is the text of Quran. Secondly, this special verse is repeated in the beginning of the 113 chapters of Quran but does not appear at the beginning of one chapter, Chapter 19. However, the Basmala verse also appears within one of the chapters and repeated 114 times in total and this suggests an additional and apparent 19 based association. There are 114 chapters and 114 Basmala verse observed in the full text of Quran and 114 is multiple of 19 as 16x6 =114. Moreover, the Basmala verse has this apparent and obvious 19 related natural numbers. It has indexes chapter 1 and verse 1 and has 4 words. When concatenated, we observe 114 again, which is also the total number of Basmala verses in the full text of Quran. Moreover, the Basmala verse has 19 letters and it demonstrates a clear 19 based association and stands as a clear place to look for the key coding patterns for the full text of Quran. Since, this is a special and unique verse and also appears at the beginning of all chapters, one of them is indexed but the rest are not indexed, I will test the key coding patterns observed in the Basmala verse, both in verse and also chapter level data of the full text of Quran. Appearance of Basmala before the starting of all chapters except one, suggest its strong relation with chapters and thus the chapter level data trials should be included. Also, as a general rule, in the places to look for key coding patterns, if we do not have chance to observe both chapter and verse level data separately then we also do not separate the chapter or verse level data while trying the relevant coding patterns in the full text of Quran. So, in short the key coding patterns from Basmala verse will be tested both in chapter and verse level data of the full text of Quran.

Lastly, I considered the total numbers of each natural numbers of text to look for key coding patterns. It is like to look at the overall picture of the structure and see if there is an obvious key coding patterns exist. Similar to the Basmala based key coding patterns, the key coding patterns from the total numbers will be tested both in chapter and verse level data of the full text of Quran as there is no chance to make clear distinction to test in both chapter and verse level data.

I will describe in more detail about these 3 places where we look at the key coding patterns while presenting the relevant codes in the subchapters of this main chapter.

The two subchapters, without and with letters information:

This main chapter has two main subchapters. First subchapter does not include letters information in any of its presented codes. It is the chapter, where I present the Main 19 system of the full text Quran. You can refer to that chapter why I classified as such. So, it is therefore the main chapter the critics should try to attack and nullify but not the others first. Because if there is no substantial critics on the the Main 19 system, then it is itself sufficient to claim a miraculous system over the full text of Quran that supports the intactness of the full text along with its content at the word level.

The second main subchapter includes letters information as well. The reason I separated as such is because, by some people, letters information is considered less reliable than chapters, verses and words information. Because, in various writings of the text some of the exact same words might be written slightly differently. An example in English can be given as the word ‘color’ and ‘colour’. Therefore, I wanted to present in the first chapter the 19 System of the key coding patterns without letters information. This way, the system presented in that subchapter will not be able to criticized with text related concerns and thus can be considered as universal. Namely, the codes and the 19 System built by them presented in the first main subchapter, should exist over all the Hafs manuscripts that represent the most common text representation of the full text of Quran. However, it is not necessarily the same for the codes with letters information, which I separately present in the second main subchapter of this main chapter. In my humble opinion, as long as there is no grammatical error in the writing of the text I used with respect to letters information, then the system with letters information suggest a strong 19 based design over the full text of Quran too. However, anyone with doubts about letters, can only focus on the codes without letters information, which is still sufficient to witness a strong 19 based design over the full text of Quran.

The natural numbers of the text will be used for the codes. They are chapter, verse, words and letters numbers. In the first subchapter, I will present codes with only numbers of chapter, verse and words. In the second subchapter, I will present the codes with the numbers of letters information as well.

As a general rule, all our approaches should be as natural as possible and also practical. There are 4 different natural numbers information, namely, numbers of chapter, verse, words and letters. I will never consider all the combinations blindly as this would not be sensible and practical. I will only consider the most obvious, meaningful and essential combinations of these 4 numbers. Over all, we will consider each of these 4 numbers independently as it seems to be the most natural and obvious way. However, this does not provide the full information about the text and might be considered secondary. For this, the most natural and essential first combination is using chapters, words and words information (without letters) in their natural order when concatenated. The second combination is the same but including letters information, namely, using chapters, words, words and letters in their natural order when concatenated. This way we will have only 2 main combinations both of which provide sufficient information about the content and structure of the full text of Quran. Of course, both of them have some limitations at the information resolution they poses and provide. Let me summarize the combinations of the numbers to be considered. Thee following text numbers and combinations will be used in the two main subchapters.

First main subchapter, the Main 19 System will consider the numbers of the following combinations in the natural order:

  • chapters, verses, words
  • chapters
  • verses
  • words

The second main subchapter is presenting the key coding pattern based codes with letters information and will consider the numbers of the following combinations:

  • chapters, verses, words, letters
  • letters

The coding operations used: Sum, concatenation and digit sum operations are the 3 coding operation tested over the numbers of the full text of Quran in their natural order when possible. The operations also has a natural priority order as written from sum, then concatenation and lastly digit sum is tested. Let me clarify this with an example. Let’s say we summed the chapter, verse and words information as this 4,6,9 and got 19. So the resulting number from the decimal sum operation is 19 and we will use this sum operation as the key coding pattern to test the same pattern over the full text of Quran. However, since each number has only one digit we could also say that the digit sum of the numbers also multiple of 19. So, the question is, which one we will use as the key coding pattern to test the full text of Quran. In such cases, the natural priority of the operations that I described is used and in this example only the decimal sum operation is used as the key coding pattern to test the full text of Quran and the digit sum case is not tested nor counted.

In summary we have the following coding operations in the natural order of priority as follows:

  1. Sum
  2. Concatenation
  3. Digit sum

Lastly, for the reference, to the best of my knowledge, all the codes of the 19 System, which are based on the key coding patterns presented within this main chapter, Chapter 4, are first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

4.1 Key Coding Patterns based 19 System of the Full Text of Quran Without Letters

In this main subchapter, I will present the codes of the 19 System of the full text of Quran based on the key coding patterns without letters information. Basically, in this subchapter, I will consider the numbers of the following 4 combinations in the natural order:

  • chapters, verses, words
  • chapters
  • verses
  • words

For these numbers combinations, as mentioned before, I looked at 3 places to find the key coding patterns. I mentioned them before bu to remind, the places are, the first chapter Al-Fatiha, the first and the special verse Basmala, and the total numbers.

4.1.1 About the Even and Odd Coding Pattern

In this section, I will explain explain why I did hypothesize the even and odd based coding pattern. Among others, one of the universal rules were as follows:

A coding hypothesis must have a meaningful support from the verses of Quran such that we can interpret the meaning of the verse, at least potentially, referring to the coding we hypothesized. To clarify this rule, the reason I selected number 19 as the common divisor of all the codes but no other number is that there is this separate verse in Quran: “74:30. Over it is Nineteen”, which we interpret that Quran might have 19 based coding system over its text that shows the intact design over it and hence the intactness of it.

Similarly, in Quran at the chapter Al-Fajr, which is Chapter 89 and Verse 3, there is this independent verse that we might interpret, among others, such that it might also refer to an even and odd pattern based codings of the 19 based system of the text of Quran.

“by the even and the odd”, Quran, (89:3).

Basically, the reason we test the even and odd coding pattern in all the evidences of the successful key coding patterns based 19 system in this main chapter, is because there is this independent verse, 89:3. I hypothesized that this verse might also be about the 19 based codings of the text of Quran and, if it is, it should also be witnessed primarily within the main 19 System of the text of Quran if not all. Since the overall main 19 System of Quran is considered the system of codes based on the key coding patterns presented within this main chapter, as a rule, all the suitable codes of the 19 System based system with the key coding patterns are also followed up and tested for the even and odd coding pattern version of it. Since the even and odd coding pattern is based on pairing coding pattern, which pairs the even and odd parts of the code with its corresponding number pair, by the nature of it, only concatenation coding pattern based codes are suitable to follow up and test for also with the even and odd coding version of it. Because, for example, sum of all numbers would be equal to sum of odd and even parts of the same numbers and thus not suitable to test for even and odd coding pattern as it would be mathematical necessity to be multiple of 19 in such a case and thus not suitable.

By the way, it is also interesting to see the concatenation of the indices of this verse, 89:3, 893 is also multiple of 19 and the remainder is 47 where the first digit of it, 4, is even and the second digit, 7, is odd too. This stands as a weak but interesting sign that this verse well may refer to what I hypothesize in this book. Not to mention, there was already other kinds of even and odd based interesting coding proposals based on only the chapter and verse indices at a website called amazing19.com. A simple internet search brings many similar claims on that. However, the evidences you will witness in this book is different than all the others. Because, first, unlike all the others, I also include all the word content information of the full text of Quran as described already in the rules of this chapter. So, the even and the odd based coding evidences you will witness in this book suggest the intactness of the full text of Quran but not for only about the order of chapter and verse indices as others do. Moreover, the evidences I present in this book are bound by all the general rules I described in Chapter 4.1.2. Now, let’s continue describing the even and odd pairing coding pattern.

The even and odd pairing coding pattern closely resembles to the double helix of the DNA structure, where one strand represents even and the other strand represents the odd numbers in our case. We first classify the text of Quran as even and odd with respect to the chapter indices. Namely, if a chapter have an even index then it is an even chapter. For example, Chapter 2 is an even chapter. At the verse level of the text, we again group the verses with respect to their chapter indices. Namely, if a verse belong to an even chapter then it is classified as in the even group. We do the same for the odd classification where any chapter or verse that belongs to an odd chapter is classified as in the odd group.

After performing the even and the odd classifications, then we apply the pairing coding pattern that I first time introduced in this book, which is similar to the structure of the double helix. Basically, we start pairing the even and their corresponding odd numbers by concatenating each pair in natural order and then concatenate all the paired numbers again in the natural order to get the single big even and odd paired codded number. As an example, if we want to get even and odd pairing coding number of the numbers from 1 to 10 the we start pairing them first as 21,43,65,87,109. We then concatenate the pairs again in the natural order and get this big even and odd codded number 21436587109.

In verse level text numbers, one side of even or odd might be shorter as we classify them by chapter indexes. Then naturally, the shorter side starts over from the beginning while pairing. The reason I used this pairing pattern of unequal pairs is because it is the most natural one we could design. Since the representation number is a big number, we might also witness a miraculous evidence.

Since it is not suitable, the code obtained by a sum operation cannot be coded with the even and odd coding pattern. Because sum of two groups give the same number as the initial direct sum. Also,since the even and odd coding pattern is itself based on a pairing coding patterns, it can only be clearly applied to codings based on a concatenation of a single category.

In this main chapter you will witness 6 total key coding pattern based evidences that are suitable to test the follow up even and odd coding pattern. As you will see, we observe 6 total even and odd coding evidences based on these 6 key coding pattern based evidences. Only one of the key coding pattern based evidence does not have a follow up even and odd coding evidence but since another key coding pattern based evidence has two follow up even and odd coding evidences, in total we have 6 to 6 successes observation.

4.1.2 The Main 19 System utilizing Al-Fatiha over the Full Text of Quran Without Letters

In this chapter, I will present the Al-Fatiha based 19 system of the full text of Quran, which I consider it within the Main 19 System. This means, considering the rules, we test all the sensible possible codings over the 4 possible natural numbers of the text of the key chapter, chapter Al-Fatiha, and whichever of the tested codings over Al-Fatiha is successful, namely, multiple of 19, then those ones are considered as the key coding patterns, like clues, and all of them have to be tested over the full text of Quran as a rule. The ones that are also successful in the full text of Quran are considered as evidence codes and part of the main 19 System of the the full text of Quran presented in this book. We count all the successful numbers of tests and total number of trails and can easily calculate the probability of what we observe.

When all the possible sensible codings tested regarding the 4 mentioned natural numbers of Al-Fatiha at the chapter level numbers, I observe only two codings as multiple of 19 thus they will be tested over the full text of Quran as the key coding patterns. As you will witness in the following subsections of this subchapter, both of these key coding patterns also exist over the full text of Quran. See Chapter 4.1.2.3 and Chapter 4.1.2.6 for these two codings. Moreover, as per the rules we need to test the even and odd coding patterns as the obligatory follow up tests for each successful key coding patterns. For the details about why we always test with the even and odd coding patterns as follow up test, one can read the Chapter 4.1.1. Therefore, we test the even and odd coding patterns for these successful key coding patterns and observed that they also exist over the full text of Quran. See Chapter 4.1.2.4 and Chapter 4.1.2.7 for these two codings.

When we look at the verse level data of Al-Fatiha to look for key coding patterns similarly, we observe one successful sensible coding without letters information. When we test this key coding pattern over the over the full text of Quran at the verse level data we observe that it also exist in it. Moreover, we test the follow up even and odd coding pattern with this successful key coding pattern and it also exist over the full text of Quran.

By the way, there is also one successful sensible coding with letters information observed at the verse level data from the chapter Al-Fatiha, which is a pairing coding operation. When tested, this key coding pattern also exist over the over the full text of Quran at the verse level data. Since pairing and sum coding operation are not suitable, as per the rule, this key coding pattern is not tested for the even and odd coding pattern. This coding will be presented in the second main subchapter with the letters information separate from this first main subchapter that only presents codes without the letters information.

4.1.2.1 About the 19 System based on the chapter Al-Fatihah based coding patterns

Assuming that the text I used and the computations I performed are correct, I consider the Al-Fatiha based 19 system I present in this chapter as the most important evidences that demonstrates an apparent 19 based system within itself though it is still part of the general 19 system that is the combination of all the evidences I present in this book. Since the evidences presented in this chapter are mainly based on the rules derived from codings observed in, arguably, the most important and also the first chapter of Quran, named Al-Fatihah (The Opener), I consider them as the most important evidences in my humble opinion. This is my conclusion considering all the 19 based codings that I discovered and presented in this book. This is because the evidences I present in this chapter are based on a clear, universal, meaningful and quite a strong rule with which we can easily screen all the possible coding trials.

The evidences of the Al-Fatiha based 19 system presented in this chapter suggests the intactness of the full text of Quran to a great degree. By full text, I mean including all the number of words at each verse and chapters along with the current exact structure and order of the chapters and verses. Since there is no letter based coding in the Al-Fatiha based 19 system, it might also be considered universal as it covers chapters, verse and words information only, which is less open to variations in writing in comparison to letters information. The Hafs recitation is known as the common manuscript, which represent the text of Quran, which is used by around 97% of Muslims (Saleem 2018). It can be easily accessed from commonly used websites, such as tanzil.net or quran.com. See Chapter 3.1 for the details of the text I used in this study.

The coding evidences of this chapter together make the Al-Fatiha based 19 system suggest a design over the full text of Quran down to the number of words. Since we observe a miraculous design over the text, it suggests that the Quran text, which I explained in detail in Chapter 3.1, is intact and unchanged. If there was even a single word missing or redundant, or the structure of verses or chapters were any different, then all my evidences together would most likely be invalid. Therefore, the Al-Fatiha based 19 system presents solid mathematical coding evidences that strongly support the hypothesis that the full text of Quran is unchanged since the year around 632 when it was first fully revealed and recorded.

My main coding approaches can be best summarized in short as the concatenation of the natural numbers of the text in the natural order. When I realized that there are many independent 19 based codings available in Al-Fatiha (The Opener), I then hypothesized that God might have left those special coding patterns of Al-Fatihah as clues, as the opener of the Al-Fatiha based 19 system, so that we might easily discover the 19 based system design in the full text of Quran and be assured by the witnessing it. My hypothesis turned out to be validated and I ended up discovering the Al-Fatiha based main evidences. All the evidences of the chapter (without the letters information), including the successor even and odd coding evidences, together makes Al-Fatiha based 19 system that I discovered and presented in this book. I consider the other evidences I presented in this book as additional and not as primary comparing to the Al-Fatiha based 19 system. This is my personal conclusion considering all the evidences I witnessed. On the other hand, I also sometimes present some codings as facts, not as evidences of the 19 System, because they are not within the boundaries of the rules I described. I present them because I might still find them interesting and also they might be potential evidences that I might not have noticed the correct rule yet and some other researchers might notice later in case it exists.

I already described the rules in a separate chapter for about how to obtain the codings to be tested. Briefly, the particular rule of this main chapter is that, regarding all the mentioned rules, we try all the possible sensible coding patterns and whatever the 19 based sensible and successful coding patterns we observe on the chapter Al-Fatiha of Quran, then we will further test it over the full text of Quran as well since we hypothesize that they might be left as the clues for the Al-Fatiha based 19 system of the full text of Quran. Also, as mentioned before, for any key coding pattern of Al-Fatiha that is validated over the full text of Quran, we must also test them with the follow up even and odd coding pattern as per the defined rules.

In order not to make the book too long, I might not print out here all the big coding numbers of each evidence. However, you can easily run the codes I provided and regenerate them. Alternatively, you might access them and other related materials from the Github repository of this book at https://github.com/quran2019/Quran19.

Lastly, for the reference, to the best of my knowledge, all the evidences of the Al-Fatiha based 19 system presented within this main chapter, Chapter 4.1.2, are first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

4.1.2.2 Rules of Al-Fatiha based 19 system evidences

Here I state the rules that have to be used in all the evidences within this chapter, Chapter 4.1.2, if applicable over the numbers to be tested.

  1. Meaningful code patterns: All the rules, universal or particular, must be meaningful. We should be able to find answers for what and why we are applying each of the coding patterns. No redundant information can be added or removed. Manipulations at any level, even for a single letter, are not allowed at all for any reason. This is a universal rule and reminded here that is followed in all the chapters of this book.

  2. Codes and Context from Quran: This is also another universal rule that is reminded here. The coding hypothesis must have meaningful support from the verses of Quran such that we can interpret the meaning of the verse, at least potentially, referring to the coding we hypothesized. To clarify this rule, the reason I selected number 19 but no other number for the divisibility test is that there is this independent verse in Quran (74:30): “Over it is Nineteen”, which we interpret such that, Quran might have a 19 based system design over its text that indicates the intactness of it. This rule is very important as it dramatically reduces the potential testable number of codings in it. This rule also partly answers the thoughtless counter argument and the ignorant stereotype critics such that “all books has some kind of patterns in it”. Because, this rule connects the content information of the book to the text medium that conveys the content information.

  3. Coding patterns in order of importance: As mentioned before, sum, concatenation and digit sum operations are the 3 main coding operation tested over the numbers of the full text of Quran in their natural order when possible, with the priority from sum, concatenation and lastly digit sum. Also, if we see an operation, for instance sum, is used in the key coding pattern, while testing it in chapter level data, we must use it for each chapters and concatenate all in natural order. The process is the same with verse level number. In the verse level data, we must use the operation for each verses and concatenate all in natural order. This when we have to test a key coding pattern both in chapter and verse level data. Also, concatenation must always be used to connect chapters if we observe a key coding pattern at the chapter level numbers in the special chapter, which is Al-Fatiha in our case. Similarly, concatenation must always be used to connect verses if we observe a key coding pattern at the verse level numbers in the special chapter of Al-Fatiha. But, any key coding pattern observed from an isolated meaningfully relevant verse, we have to test that key coding pattern both in chapter and verse level data. Because an isolated verse is does not represent all the verses in a particular chapter like we observe in Al-Fatiha and we cannot clearly distinguish whether the pattern is specific to verses only or not. If there is a single number without any operation, then we look at what that single number represents. If it represent for example number of total chapters, then we look at the sum of chapter number in the verse or chapter level data similarly as an example. If it represent a verse index for example, then it is not about sum and we just use concatenation operation at the verse level and chapter level data using indexes similarly.

  4. Re-writing always with letters data:The special coding pattern, which is called as re-writing coding pattern can only used if there are letters numbers information in the code. Because, it literally tries to represent the text by re-writing from right to left as in Arabic text. Therefore, whenever we have letters information among the numbers, the direction of concatenation is always from right to left as in Arabic, which seems as the reverse order of the standard concatenation we use. This is also another universal rule that is reminded.

  5. Ignoring identical: If a coding pattern is used and obtained a successful coding number but some other coding patterns also resulting the same successful number, only the first coding pattern with the higher priority is used and the others are ignored. Since the coding patterns have priority, the coding patterns with the highest priority is used as the key coding pattern alone. Namely, sum, concatenation and digit sum is the order of priorities of the coding operation, respectively.

  6. Natural numbers in natural order: The natural numbers of the full text of Quran is concatenated in natural order by default. For example, if we are using the numbers, the natural order starts from 1 to the maximum number, such as 1 to 114. The numbers of the text has also natural order, which starts from chapters and proceeds in the natural order as verses, words and letters. This is also another universal rule that is reminded here.

  7. Three levels of text numbers: As there are three levels of the numbers of the text that can be derived from the full text of Quran, which are total level, chapter level and verse level as described in Chapter 3.2.1, the evidences of this chapter must consider those levels and be tested in all of them if relevant. This is also another universal rule that is reminded.

  8. The chapter, verse and words information are considered universal: Since this particular subchapter provides the Al-Fatiha based 19 system of the full text of Quran, Al-Fatiha based 19 system should have been readily available to be discovered at all times since Quran was revealed in its completeness since 632. Although I used the common Hafs manuscript text that represents Quran, there might still be various versions of Hafs manuscripts considering various slight differences in writing of some of its words because of varying writing styles. Namely, they are the same words but they might have slight differences in letters while writing the same word during the history. See the details on this matter in Chapter 3.1 and Chapter 3.2.1. The Al-Fatiha based 19 system of the text of Quran presented in this particular subchapter Chapter 4.1.2 does not include the letters information and therefore represents almost all of the Hafs manuscripts. Namely, the evidences of the Al-Fatiha based 19 system should incorporate information that verifies the exact structure and content of the text of Quran in most of the Hafs manuscripts of the current and past time. Since the main sounding narrative about the preservation of Quran is such that “it has been protected till the last word of it”, the three text elements of the text, chapter, verse and words, is universally required in any code that claims to stand as an evidence for the protection of Quran along with its content and structure at some level. These three content information of the text together are the bare minimum to represent the full text with its structure and content information. As mentioned before, there might be some variations in writing some of the words with slight differences in writing of the same words but they all mean the exact same word. In English, we can give an example of the word “color” and “colour” for the same word written with different letters. Therefore, I consider the codes without the letters information as the most universal as it covers almost all of the Hafs manuscripts and independent from the slight letters differences. On the other hand, in the second main subchapter, Chapter 4.2, I will also include the letters information in the trials to make sure I have followed scientifically rigorous approach and try to answer all possible critics and questions. So, the coding patterns will be tested in both of the possible content information to represent the text. However, the ones with chapter, verse and words information is considered the most universal codings and thus I classified as the Main 19 System. The codes with chapter, verse, words and letters information is providing more resolution but is not considered as at the same level of strength like the universal codes. Basically, all the two possible combinations to represent a full text with its structure and content will be tested and included in the probability calculations but separately. The people who might have doubt about the letters of the text can then focus on the this main subchapter, Chapter 4.1, for the most universal 19 System, the Main 19 System, which does not have any letters information in its codes.

  9. All sensible code patterns regarding rules are tested on Al-Fatiha to find keys: For this particular subchapter, Chapter 4.1.2, the question then becomes which coding operations we can try on Al-Fatiha? The short answer is all the possible and sensible ones that are also meaningful and in accordance with the rules described here in this sub-chapter.

  10. Pairing coding pattern: Pairing is a special concatenation coding pattern that we might use to test between two different categories when suitable. Because of its special structure, the current even and odd coding pattern cannot be applied to a paired code. Because the even and odd coding pattern is already using pairing coding pattern but applied to single category numbers by replacing the order of the text by prioritizing the even ones first. Moreover, the rewriting coding pattern is never used together with the pairing coding pattern as pairing is not considered a rewriting of the text.

  11. The even and odd coding pattern is applied as well: After each of the successful key coding patterns, we must also test them with the even and odd coding pattern over the full text of Quran. Namely, for instance, for each Al-Fatiha based successful coding, we also have to test the even and odd pairing coding pattern as the follow up test as per the rules. This is a general rule for all the successful key coding patterns. See the sub-section Chapter 4.1.1 for more details on the even and odd coding pattern. Basically, the reason I test the even and odd coding pattern in all the key coding pattern based evidences is because there is this independent verse: “by the even and the odd”, Quran, (89:3). I hypothesized that this verse might also be about numbers and if so, it should also be observed within the Main 19 system of the full text Quran, which is the key coding pattern based 19 System. As I consider this part of the 19 System as the the most important part over all the other codes, I expect that the even and odd coding pattern might also exist in this most important 19 System. Because, for example, if the Al-Fatiha based codings we witnessed are really part of the main 19 system of the text Quran, the further ensuring even and odd coding pattern based codes might be expected to be within the same system part. The follow up even and odd coding pattern based coding test are therefore required and if successful, it further assures and strengthen the Main 19 system.

  12. Another special rule for the even and odd pairing coding pattern is such that, it is always paired as even numbers first and then the corresponding odd number. This rule follows the exact observed order in the source verse, which is “by the even and the odd”, Quran, (89:3). Also, the even and odd pairing coding pattern is applied to both of the text types, namely, all the 6348 verse and also 6236 numbered verses. This is based on the universal rule of this book such that all the coding patterns are tested in both of the text typs of the full text of Quran, which means in all the 6348 verse and also 6236 numbered verses.

In the above points, I described all the rules of the key coding pattern based 19 System of the full text of Quran. I consider the codes of this system without letters information as the Main 19 system of Quran. Those are the rules I defined based on my observations to make sure the 19 System I present is rule based system with which we can easily count all the possible 19 based coding trials and thus can measure the coding space of all the possible trials. This has vital importance to be able to accurately calculate the probability of what we observe in the end. I try to follow a scientific approach to be able to measure the probability of the 19 system of the full text of Quran that I discovered and present in this book. You might come across other earlier or later claims regarding the 19 based system over Quran but, to the best of my knowledge, none of them provide the total possible number of trials of their claims. In fact, as far as I know, the system I discovered and present in this book is the first fully rule based 19 system in literature. Without a rule based claim, we cannot measure the boundaries of the proposed system and thus cannot measure whether what we observe is extraordinary or not.

4.1.2.3 Evidence to silence: Harmony among Chapters, Verses and Words

The code I will present in this chapter is the first Al-Fatiha based code evidence of the Main 19 system, which is also a key coding pattern based system. I discovered this evidence on February 10, 2020 and added into the e-book right away. I might have discovered it before without its connection to Al-Fatiha but have forgotten this evidence when I first discovered the initial evidences and published them in this book in 2019. Because, it is so evident and similar to my other evidences. I was so overwhelmed with many evidences while writing this book and probably forgot this one by then as I had not seen the relation of it with the Al-Fatiha based 19 system. After the publication of my book, there were some critics on my book as it was mostly based on the evidences that includes the number of letters. Since some have doubts about the exact letters, they doubted about those evidences that include letters information. I guess, it may seem too good to be true for them. Having this criticism in mind, I was looking at the table below, which shows each chapter and the number of verses, words and letters within each chapter.

x<- dfVCWL
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbers at chapters in Quran.')
Table 4.1: Table head of the numbers at chapters in Quran.
Chapter_index Verse_sum cWords cLetters
1 7 29 143
2 287 6144 26268
3 201 3505 15004
4 177 3767 16351
5 121 2841 12225
6 166 3060 12745

The most important chapter in Quran might be considered as the first chapter, Al-Fatiha (the Opener). This chapter is recited in every obligatory daily prayers by all Muslims. Reciting Al-Fatiha in the daily prayer is considered a requirement by the Tradition. Therefore, all Muslims know and recites this first chapter of Quran every day in the obligatory daily prayers. This numbers if this uniquely important and also the first chapter of Quran caught my eye as the digit sum of the chapter index (1), number of verses (7) and number of words (29) is exactly 19 (1+7+2+9 = 19). This woke me up right away. I then tested the universal concatenation rule of this book by concatenating these numbers, as always, in the natural order from chapters towards words. Then I got 1729, and it is also multiple of 19 as 1729/19 = 91.

As we witnessed, there are two simple and crystal clear 19 based codings in the most important chapter, Al-Fatiha, of Quran. They stand apparently in the first and most important chapter of Quran. Namely, over the chapter Al-Fatiha, or “over it is 19”. There is also the independent verse at chapter 74 and verse 30, 74:30 “Over it is 19”. Since, we clearly see 19 over the Al-Fatiha, it is fair to hypothesize that the clear 19 based codings over the. chapter Al-Fatiha might be left as clues to discover the main 19 based system over the full text of Quran.

Then, I learned the pattern! My hypothesis was simple. God might have left us these obvious and simple coding patterns as clues within the most important and most recited and also a short chapter of Quran so that anyone can observe it and even manually try and witness those coding patterns and consider them as potential clues and migt then test it over the full text of Quran. Therefore, the next step for me was to test these patterns in the full text of Quran. Because, as a information coding expert, the hypothesis I thought was that they might be left as clues or key coding patterns and if the hypothesis is true then we should observe these two coding patterns in the full text of Quran too. For each of the 114 chapter, I first applied these patterns and obtained the representation number of each chapter. I then concatenate them from first chapter till 114 in the natural order as always. This concatenation approach is similar to what we observed in Evidence 5.5.1. Regarding the big number to be tested, since I inferred this pattern specifically from the first chapter, Al-Fatiha, this evidence has its own rule and not necessarily have to fully align with the rest of the book. I already described all the rules before.

In this particular section, I present one of the two codings as an evidence code that we learned its coding pattern from the chapter level representation number of the first chapter, Al-Fatiha, which is 1729, where the chapter index (1), number of verses (7) and number of words (29), which were concatenated in the natural order. Let me also illustrate the coding pattern of this evidence. Basically, we first concatenate the chapter index, the number of verses and also the number of words in each chapter within itself and then concatenate all of them in the natural order again and get the big representation number of the full text of Quran as illustrated below:

[Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] [Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] . . . . . . [Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. Square brackets are used to separate each chapter information and all the adjacent brackets are concatenated to each other by default.

Considering all the 6348 verses of Quran, if we use the real numbers in the above formula, it would be like this:

[ 1 | 7 | 29] [ 2 | 287 | 6144] . . . . . . [114 | 7 | 24]

And, the final number after all the concatenation would look like this:

172922876144 . . . . . . 114724

See below R programming scripts for the proof of this evidence. They can be used and the code can be easily reproduced and witnessed as if it is a Reproducible Miracle. I will print out this 800 digits length big number in the end of this chapter so that you can easily perform tests and checks on it. The final big number includes all the verses, including the unnumbered Basmala verses of Quran, which means this evidence exists over the text type of all the 6348 verses of Quran.

require(gmp)
require(data.table)
# dfVCWL is a data table that keeps the chapter level text numbers of the 6348 verses
tmp <- paste0(dfVCWL$Chapter_index,dfVCWL$Verse_sum, dfVCWL$cWords)

head(tmp) # head part of the text
## [1] "1729"     "22876144" "32013505" "41773767" "51212841" "61663060"
tail(tmp) # tail part of the text
## [1] "109731" "110423" "111627" "112519" "113627" "114724"
tmp <- paste0(tmp, collapse = "")
#Test if the remaining is 0 from mod 19.
as.bigz(tmp) %% 19 
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 800

This evidence suggests that chapters, verses and words of Quran is under the observed 19 based coding system of the text of Quran. In particular, it is part of the Al-Fatiha based 19 system and not distorted from the beginning and unchanged since the year around 632.

The coding pattern in Al-Fatiha is also tested over the second text type, namely in the 6236 numbered verses, as per the general rules. But we only observed it over the text type of 6348 verses. Therefore, statistically, we performed two trials and observed one success in this particular coding pattern of Al-Fatiha.

Let’s add the number of successful evidences and the number of tested trials regarding this evidence so that in the end of the book we can calculate the global probability using the counters. We will add them into the counters.

#Two trials one successes
alFatihah_tested_nums <- alFatihah_tested_nums + 2 
alFatihah_success_nums <- alFatihah_success_nums +1

Here is the “800” digits length big number:

“17292287614432013505417737675121284161663060720733458761246912925051011018431112419501211217991344857145383415100661161291848171121562181111587199997520136135721113117822791283231191056246513232578900262281324279411632889144229709823061821313555432313763374130734558883546782368473437183869388973939761181408612304155798425486443908404460350453849246366494739546483056449193575046377516136452503165363364545634655793565697383573057958234795925451601435661152306212181631218564192466513293661325867313376853305695326470452217129231722929073212047457260754116876322477751185784117879471838043137813010882208583371738426112852311386186587207688279689311439021869116589222759312449493195938962076976349899899940100124410112401029321034181041037105627106521107829108414109731110423111627112519113627114724”

4.1.2.4 Even and Odd chapters at the chapter level Evidence in all the 6348 verses

Since the even and odd evidence code I will present in this chapter, as per the rule, is the follow up code to the previous evidence, Evidence 4.1.2.3, I placed this evidence right after the previous chapter of the predecessor evidence. These two separate consecutive coding evidences together constitute the hypothesized dependent evidences pair from the Al-Fatiha based 19 system, which is also part of the key coding pattern based Main 19 System of the full text of Quran.

As per the rule, for each of the key coding pattern based evidence code, which is based on Al-Fatiha in this case, which exist over the full text of Quran, as per the rules, we have to follow up and also test the even and the odd coding pattern over the same numbers and patterns used in that predecessor evidence. As we observed the successful key coding pattern based evidence over text type of all the 6348 verses, the follow up even and odd coding pattern also exist in the same text type, namely the 6348 verses.

Let me first illustrate the follow up even and odd pairing coding pattern as follows, which, as mentioned before, closely resembles to the double helix of a DNA structure, where one strand is even and the other strand is the odd numbers as formulated below:

[ [Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] [Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] ] [ [Chapter 3 | Total Verses in Chapter 3 | Total Words in Chapter 3] [Chapter 4 | Total Verses in Chapter 4 | Total Words in Chapter 4] ] . . . . . . [ [Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114] [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] ] [ [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] ]

As it is seen the predecessor key coding pattern still kept within each of the chapters as illustrated within the rectangular brackets. However, they are concatenated by placing the even pair before the odd pair as opposite to the normal concatenation, which was already the predecessor coding evidence of it.

If we use the real numbers of all the 6348 verses in the above coding pattern, it would be like this:

[ [ 2 | 287 | 6144] [ 1 | 7 | 29] ] [ [ 4 | 177 | 3767] [ 3 | 201 | 3505] ] . . . . . . [ [114 | 7 | 24] [113 | 6 | 27] ]

And, the final even and odd coding number after all the concatenations would look like this:

2287614417294177376732013505 . . . . . . 114724113627

This chapter provides the even and odd pairing coding evidence as a compulsory follow up to the Evidence 4.1.2.3, which exist over the text type of all the 6348 verses. In the following, considering all the 6348 verses, I present the R script to reproduce and test this evidence code. It first classifies the even and odd chapters and pair them from even to odd (as per the rule since we observed in that order in the relevant verse of Quran, which is “by the Even and the Odd”) and obtains a big number after concatenating them in the natural order. As shown below, it is also multiple of 19 as we can witness in the following reproducible proof:

ev<- dfVCWL[(dfVCWL$Chapter_index%% 2 == 0), ]
cat("The number of even chapters is",nrow(ev))
## The number of even chapters is 57
od<- dfVCWL[(dfVCWL$Chapter_index%% 2 != 0), ]
cat("The number of even chapters is",nrow(od))
## The number of even chapters is 57
ev <- paste0(ev$Chapter_index,ev$Verse_sum,
               ev$cWords)
cat("The head of concatenated even chapters to be paired",head(ev))
## The head of concatenated even chapters to be paired 22876144 41773767 61663060 8761246 101101843 121121799
cat("The tail of concatenated even chapters to be paired",tail(ev))
## The tail of concatenated even chapters to be paired 1041037 106521 108414 110423 112519 114724
od <- paste0(od$Chapter_index,od$Verse_sum,
               od$cWords)
cat("The head of concatenated odd chapters to be paired",head(od))
## The head of concatenated odd chapters to be paired 1729 32013505 51212841 72073345 91292505 111241950
cat("The tail of concatenated odd chapters to be paired",tail(od))
## The tail of concatenated odd chapters to be paired 103418 105627 107829 109731 111627 113627
tmp <- paste0(ev, od) #pairing ev and od
cat("The head of paired even and odd chapters",head(tmp))
## The head of paired even and odd chapters 228761441729 4177376732013505 6166306051212841 876124672073345 10110184391292505 121121799111241950
cat("The tail of paired even and odd chapters",tail(tmp))
## The tail of paired even and odd chapters 1041037103418 106521105627 108414107829 110423109731 112519111627 114724113627
tmp <- paste0(tmp, collapse = '')
as.bigz(tmp) %% 19  #mod 19 must be 0
## Big Integer ('bigz') :
## [1] 0

Here is the 800 digits length big number:

“22876144172941773767320135056166306051212841876124672073345101101843912925051211217991112419501453834134485716129184815100661181111587171121562201361357199997522791283211131178246513232311910562622813242578900288914422794116330618212970982323137631355543455888337413073684734354678238897393718386940861230397611814254864415579844603504390840463664945384924830564473954650463774919357525031651613645456346536336456973835579356582347957305796014356592545162121816115230641924663121856613258651329368533056731337704522169532647229290712923174572607321204763224775411687841178775118580431377947183822085813010884261128337173861865852311388279687207690218689311439222759116589493193124496207695938989989763410012449994010293210112401041037103418106521105627108414107829110423109731112519111627114724113627”

One can just copy the big number and paste it into a web based big number calculator and test it herself.

We witnessed that the even and odd pairing coding evidence between even and odd chapters of Quran considering all the 6348 verses. I will show in the next chapter that the same even and odd coding pattern also exist in the numbered 6236 verses too. Therefore, in this section, we performed one trial and observed one success considering the even and odd pairing coding pattern. We add these observations in the even and odd counters to be able to calculate the probability separately as well in the end of the main chapter of this chapter.

evenodd_tested_nums <- evenodd_tested_nums + 1 
evenodd_success_nums <- evenodd_success_nums + 1

4.1.2.5 Even and Odd chapters at the chapter level Evidence in the 6236 numbered verses

In the previous chapter, Evidence 4.1.2.4, we had observed the even and odd coding pattern of the Evidence 4.1.2.3 in the text type of 6348 verses. As per the rules, we have to test each coding pattern in both text types. In this evidence, we will see that the same even and odd coding pattern also exists in the text type of 6236 numbered verses.

In the following, considering all the 6236 numbered verses, we observe that the code is not only multiple of 19 but also multiple of 19x19 (361). So, with this code and the previous one, we observe that both text types of Quran (6236 numbered and all 6348 verses) have this same exact same even and odd pairing coding pattern over its text. Here is the proof of this evidence in the following reproducible code:

ev<- dfVCwl[(dfVCwl$Chapter_index%% 2 == 0), ]
cat("The number of even chapters is",nrow(ev))
## The number of even chapters is 57
od<- dfVCwl[(dfVCwl$Chapter_index%% 2 != 0), ]
cat("The number of odd chapters is",nrow(od))
## The number of odd chapters is 57
ev <- paste0(ev$Chapter_index,ev$Verse_sum,
               ev$cwords)
cat("The head of concatenated even chapters to be paired",head(ev))
## The head of concatenated even chapters to be paired 22866140 41763763 61653056 8751242 101091839 121111795
cat("The tail of concatenated even chapters to be paired",tail(ev))
## The tail of concatenated even chapters to be paired 104933 106417 108310 110319 112415 114620
od <- paste0(od$Chapter_index,od$Verse_sum,
               od$cwords)
cat("The head of concatenated odd chapters to be paired",head(od))
## The head of concatenated odd chapters to be paired 1729 32003501 51202837 72063341 91292505 111231946
cat("The tail of concatenated odd chapters to be paired",tail(od))
## The tail of concatenated odd chapters to be paired 103314 105523 107725 109627 111523 113523
tmp <- paste0(ev, od) #pairing ev and od
cat("The head of paired even and odd chapters",head(tmp))
## The head of paired even and odd chapters 228661401729 4176376332003501 6165305651202837 875124272063341 10109183991292505 121111795111231946
cat("The tail of paired even and odd chapters",tail(tmp))
## The tail of paired even and odd chapters 104933103314 106417105523 108310107725 110319109627 112415111523 114620113523
tmp <- paste0(tmp, collapse = '')

#Test mode 19
as.bigz(tmp) %% 19 # This should result 0 if multiple of 19.
## Big Integer ('bigz') :
## [1] 0
#also test mode 19x19 =361
as.bigz(tmp) %% (19*19) 
## Big Integer ('bigz') :
## [1] 0

As we observed the 798 digits length big number of this code is multiple of 19 too. As you will see, this number is not only multiple of 19 but it is multiple of 19x19, which makes it more strong in that regard. One can just copy the below printed big number of this evidence and paste it into a web based big number calculator and test it herself. For example, this one or another web application for any precise big numbers calculator, such as this (“Good Calculators” 2019) can be used.

Here is the 798 digits length big number:

“228661401729417637633200350161653056512028378751242720633411010918399129250512111179511123194614528301343853161281844159965718110158317111155820135135319989712278127921112117424641319231181052262271320257789628881438279311593060817296997832303723134550345488433731303368373035457783888735371828654085122639751177425386041547944459346438983646356454537488482956047385425045373491835352493125160360545534253623605696379557835258224755729575601335259244476211177611422664182426311181661225465122896852301673033370442176952260722828671282277456256732020076312437540164784017477501818042133794617982198181291048425108833616986176185221098826928719729020828930139922171911554948279311409619729583498894975301001140998361028281011136104933103314106417105523108310107725110319109627112415111523114620113523”

We add these observations in the even and odd counters to be able to calculate the probability separately as well in the end of the main chapter of this chapter.

evenodd_tested_nums <- evenodd_tested_nums + 1 
evenodd_success_nums <- evenodd_success_nums + 1

4.1.2.6 Evidence to silence 2: Harmony among Chapters, Verses and Words

This is the second most important key coding pattern based evidence, which is also based on chapter Al-Fatiha. As I presented before, I had discovered Evidence 4.1.2.3 on February 10, 2020 and then added that into the e-book of this book right away. The rule of Evidence 4.1.2.3 was obtained from the most well known and recited chapter, Al-Fatihah, which therefore might arguably be considered as the most important chapter in Quran. As presented before, this chapter has very explicit 19 based coding with the natural numbers of its text. The chapter index of it is 1, the number of verses of it is 7 and the number of words in it is 29. When we concatenate them in the natural order it makes 1729 and it is multiple of 19 as 19x91. In Evidence 4.1.2.3, I had applied the same coding pattern of Al-Fatiha to the full text of Quran and showed that the same key coding pattern also exist in the full text of Quran too. The hypothesis was that the coding patterns in Al-Fatihah might be left as a clue that leads us to the 19 based design over the full text of Quran.

However, there is one more independent coding pattern in the same chapter level numbers of Al-Fatihah, which is based on the digit sum of the same natural numbers as follows: 1+7+2+9 = 19. This is so obvious as the digit sum is exactly 19. So, I set my next hypothesis similar to what I did in Evidence 4.1.2.3. I hypothesized that the same pattern exist in the whole text of Quran and God might have left this apparent coding pattern to us as a clue that might lead us to the 19 based design over the full text of Quran. After testing this hypothesis, I witnessed that it is also correct and I discovered this new evidence, Evidence 4.1.2.6 of this chapter. Along with Evidence 4.1.2.3, these two evidences suggest that the two apparent coding clues of Al-Fatihah exist in the full text of Quran as well. They are so clear and apparent such that there is nothing much to argue on these 19 based evidences, Evidence 4.1.2.6 and Evidence 4.1.2.3, which are based on the two clue coding patterns of Al-Fatihah. These evidences suggest that the number of chapters, verses, words of Quran might be designed with the 19 based coding system of the text of Quran and unchanged since the year 632 when Quran was fully revealed. Since we witness that both of the apparent coding clues of Al-Fatiha also exist in the full text of Quran, along with their follow up even and odd coding pattern evidences, then we can rationally consider that the Quran is intact and unchanged from the beginning till our current time as there is an intact 19 based design over its text. Moreover, the observed 19 based coding designs over the full text of Quran are complex and hard enough to fairly say that they could not be performed by the people of that time and might only have been done by a supernatural power that we Muslims consider as God, who is also the author of Quran. Also, since we did not use the number of letters in those codings, these evidences should exist in almost all of the text versions of Hafs mushafs of Quran.

The evidence I present in this chapter exist in the numbered 6236 verses of the text of Quran. This means out of the two chapter level clues, namely the key coding patterns, of Al-Fatihah, the first clue pattern exists in all the verses (6348 verses, including unnumbered Basmala verses) and the second clue pattern exists in the numbered verses of Quran (6236 numbered verses). This observation also supports the conclusion of this book, which suggests that both type of the text of Quran are under the 19 based coding system together.

Let’s again remember the head of the table over which we will witness the evidence.

x<- dfVCwl
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbers at chapters in Quran.')
Table 4.2: Table head of the numbers at chapters in Quran.
Chapter_index Verse_sum cwords cletters
1 7 29 143
2 286 6140 26249
3 200 3501 14985
4 176 3763 16332
5 120 2837 12206
6 165 3056 12726

Let me shortly describe how we obtain the big coding number to be tested. For each of the 114 chapters, I first applied the observed key coding pattern, namely, digit sum pattern (as in Al-Fatiha 1+7+2+9=19) over the chapter level numbers of each chapter and obtained the representation number of each chapter. For example, the first chapter Al-Fatiha is represented by 19 as we compute the digits sum of the chapter index (1), the number of verses (7) and the number of words (29) as this 1+7+2+9=19. We perform the same process for all the 114 chapters and obtain the representation numbers of each chapter. We then concatenate them from first chapter till the chapter 114 in the natural order as usual and obtain the single big representation coding number of the full text of Quran. Let me illustrate the coding pattern of this evidence first as follows, where DS stands for the digit sum of the number in the squared brackets:

DS[Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] DS[Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] . . . . . . DS[Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114]

If we use the real numbers of all the 6236 verses in the above coding pattern, it would be like this:

DS[ 1 | 7 | 29] DS[ 2 | 286 | 6140] . . . . . . DS[114 | 6 | 20]

And, the final big number after all the digit sum and the concatenations would look like this:

192914 . . . . . . 14

See below for the reproducible proof of this evidence. I will print out this 227 digits length big number in the end of this chapter for you to be able to test easily. This number is based on all the numbered 6236 verses of Quran. As you will see, this number is not only multiple of 19 but it is also multiple of 19x19, which makes it more strong in that regard.

tmp <- paste0(dfVCwl$Chapter_index, dfVCwl$Verse_sum,
                dfVCwl$cwords)
cat("Head of the concatenated numbers per chapter:", head(tmp))
## Head of the concatenated numbers per chapter: 1729 22866140 32003501 41763763 51202837 61653056
cat("Tail of the concatenated numbers per chapter:", tail(tmp))
## Tail of the concatenated numbers per chapter: 109627 110319 111523 112415 113523 114620
#Get digit sum per chapter
tmp <- sapply(tmp, digitsum)
cat("Head of the digit sum of the concatenated numbers per chapter:", head(tmp))
## Head of the digit sum of the concatenated numbers per chapter: 19 29 14 37 28 32
cat("Tail of the digit sum of the concatenated numbers per chapter:", tail(tmp))
## Tail of the digit sum of the concatenated numbers per chapter: 25 15 13 14 15 14
tmp <- paste0(tmp, collapse = "")  
as.bigz(tmp) %% 19 #Test if remaining is 0 with mod 19
## Big Integer ('bigz') :
## [1] 0
#also test mod 19x19 = 361
as.bigz(tmp) %% (19*19) 
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 227

As per the rules, we must also test this key coding pattern in all the 6348 verses as well and thus we have one success out of two trials for this evidence coding pattern. On the other hand, there is also a related coding in all the 6348 verses as presented in the following subsection, Fact 4.1.2.7.1, as a fact.

Let’s add the number of trials and successes into the special counters of the chapter Al-Fatihah based codings as follows.

alFatihah_tested_nums <- alFatihah_tested_nums + 2 
alFatihah_success_nums <- alFatihah_success_nums +1

For the reference, to the best of my knowledge, Evidence 4.1.2.6 is also first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.1.2.6 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

Here is the 227 digits length big number:

“19291437283226293332282827234235302844232038233044253742502521202336393040424028342841353933333433272126252835454033352022252127332625253025293514352726293143212529362827293435332125221830293424383571321122016192213251513141514”

4.1.2.7 Even and Odd chapters at the chapter level Evidence with digit sum

As per the rule, for each key coding pattern based evidence, in this particular case that is Al-Fatiha based evidence, we have to test the even an the odd pairing coding pattern over the same numbers and with the predecessor coding pattern. This chapter provides the even and odd coding pattern as a compulsory follow up to the Evidence 4.1.2.6 considering all the 6236 numbered verses, which is also the same text type of its predecessor evidence. In the following, considering all the 6236 numbered verses, we first classify the even and odd chapters and apply the digit sum coding pattern of the predecessor Evidence 4.1.2.6 to each of the chapters and pair them from even chapters to odd chapters. We then obtain the big representation coding number after concatenating those in the natural order as always.

Let me also illustrate below the descriptions of the even and odd pairing coding pattern applied in this particular evidence along with the digit sum coding pattern of the predecessor evidence. As mentioned before, the even and odd coding pattern closely resembles to the double helix of the DNA structure, where one strand is even and the other strand is the odd numbers in our case:

DS[ [Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] [Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] ] DS[ [Chapter 3 | Total Verses in Chapter 3 | Total Words in Chapter 3] [Chapter 4 | Total Verses in Chapter 4 | Total Words in Chapter 4] ] . . . . . . DS[ [Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114] [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] ]

If we use the real numbers in the above coding pattern with respect to the 6236 numbered verses, it would be like this:

DS[ [ 2 | 286 | 6140] [ 1 | 7 | 29] ] DS[ [ 4 | 176 | 3763] [ 3 | 200 | 3501] ] . . . . . . DS[ [114 | 6 | 20] [113 | 5 | 23] ]

And, the final number after concatenating them all would look like this:

29193714 . . . . . . 1415

We witness below that it is also multiple of 19 as we can see in the following reproducible proof:

# dfVCwl has the chapter level numbers table of the 6236 numbered verses.
# We only use the chapter, verse and words numbers by specifying the table column indexes 1,2,3.
x<- dfVCwl[,c(1,2,3)]

ev<- x[(x$Chapter_index%% 2 == 0), ]
cat("The number of even chapters is",nrow(ev))
## The number of even chapters is 57
od<- x[(x$Chapter_index%% 2 != 0), ]
cat("The number of od chapters is",nrow(od))
## The number of od chapters is 57
# Get digit sum of each chapter level numbers both for even and odd
ev <- apply(ev,1,digitsum)
cat("The head of even chapters as digit sums: ",head(ev))
## The head of even chapters as digit sums:  29 37 32 29 32 28
cat("The tail of even chapters as digit sums: ",tail(ev))
## The tail of even chapters as digit sums:  20 19 13 15 14 14
od <- apply(od,1,digitsum)
cat("The head of odd chapters as digit sums: ",head(od))
## The head of odd chapters as digit sums:  19 14 28 26 33 28
cat("The tail of odd chapters as digit sums: ",tail(od))
## The tail of odd chapters as digit sums:  12 16 22 25 13 15
# Pair even and odd digit sum numbers
tmp <- paste0(ev,od)
cat("The paired head of the digit sums of even and odd chapters",head(tmp))
## The paired head of the digit sums of even and odd chapters 2919 3714 3228 2926 3233 2828
cat("The paired tail of the digit sums of even and odd chapters",tail(tmp))
## The paired tail of the digit sums of even and odd chapters 2012 1916 1322 1525 1413 1415
tmp <- paste0(tmp, collapse = '')
cat("The mod 19 is zero as follows: ")
## The mod 19 is zero as follows:
as.bigz(tmp) %% 19  #0
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 227

Here is the 227 digits length big number:

“29193714322829263233282823273542283023443820302325444237255020213623303942402840283435413339343327332621282545353340203525222721263325252530352935142627312921432925283629273534213322253018342938247352113201219161322152514131415”

One can just copy the big number and paste it into a web based big number calculator and test it herself.

We witnessed that the pairing with digit sum coding pattern between even and odd chapters of Quran considering all the 6236 numbered verses is under Al-Fatiha based 19 system of the text of Quran too. As per the rule, we also need to test the same even and odd coding pattern for all the 6348 verses. Therefore, we have two trials and one success in this evidence. Again remember that we always pair in the direction from even to odd numbers as per the rules.

evenodd_tested_nums <- evenodd_tested_nums + 2 
evenodd_success_nums <- evenodd_success_nums + 1
4.1.2.7.1 Fact as addition to Evidence to silence 2: Harmony among Chapters, Verses and Words

When I see interesting codes that are not within the boundaries of the set rules I might still share them as a fact. I do not classify them as part of the 19 based system but they might be interesting to be aware of them anyways. In Evidence 4.1.2.6, I showed that the coding pattern of the first chapter of Quran Al-Fatiha also exist in the full text of Quran. The coding pattern of Al-Fatiha is based on digit sum of the chapter level numbers as 1+7+2+9=19. In Evidence 4.1.2.6, I extended this coding pattern to the full text of Quran using the default coding pattern, namely concatenation of the natural numbers in the natural order. We observed this coding pattern was successful in the numbered 6236 verses of Quran in Evidence 4.1.2.6. However, there is also the following coding with the digit sum of the concatenated numbers exist if we look at the numbers of 6348 verses. Basically, not the big number itself but digit sum of the coding of Evidence 4.1.2.6 in all the 6348 verses also multiple of 19. I present this coding as a fact as follows:

tmp <- paste0(dfVCWL$Chapter_index, dfVCWL$Verse_sum,
              dfVCWL$cWords)
cat("Head of the concatenated numbers per chapter:", head(tmp))
## Head of the concatenated numbers per chapter: 1729 22876144 32013505 41773767 51212841 61663060
cat("Tail of the concatenated numbers per chapter:", tail(tmp))
## Tail of the concatenated numbers per chapter: 109731 110423 111627 112519 113627 114724
#Get digit sum per chapter
tmp <- sapply(tmp, digitsum)
cat("Head of the digit sum of the concatenated numbers per chapter:", head(tmp))
## Head of the digit sum of the concatenated numbers per chapter: 19 34 19 42 24 28
cat("Tail of the digit sum of the concatenated numbers per chapter:", tail(tmp))
## Tail of the digit sum of the concatenated numbers per chapter: 21 11 18 19 20 19
tmp <- paste0(tmp, collapse = "")  
tmpd<-digitsum(tmp)
tmpd %% 19 #Test if remaining is 0
## [1] 0
cat("The digits sum of this big number is", tmpd)
## The digits sum of this big number is 779
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 227

Also, here is the “227” digits length big number. Recall that not this number but the digit sum of it is multiple of 19 and it is just presented as a fact but not as an evidence.

“19341942242831343319243332282040263349282534282631303338372126252841353545473624393328223538383038322622303340413638312518212632293130303521253119313231343639262125322423343040292630272326343029433112917171621152718211118192019”

4.1.2.7.2 Fact

There is also an interesting relation between Evidence 4.1.2.3 and Evidence 4.1.2.6. As I mentioned before, both of these two evidences are based on the two clue evidences of Al-Fatiha and one of the same clue patterns exist in Evidence 4.1.2.3 over all the verses (6348 verses) and the second clue evidence of Al-Fatiha exist in Evidence 4.1.2.6 over all the numbered verses (6236 verses). As mentioned before, this suggests that both text types are under 19 based coding of the text of Quran. Here, in this fact, I will present an interesting relation between these two evidences as a fact.

The relation between both of the numbers of the two evidences, Evidence 4.1.2.3 and Evidence 4.1.2.6, is as follows. The tested number of Evidence 4.1.2.3 is 800 digits in length. The tested number of Evidence 4.1.2.6 is 227 digits in length.

The fact is that, the digit lengths of these numbers are 800 and 227. The digit sum of these numbers is exactly 19 as if they complement each other.

4.1.2.8 Verse level Harmony among Chapters, Verses and Words as Evidence

This evidence is based on the key coding pattern that we observed in Al-Fatiha at the its verse level numbers. Therefore this evidence is also part of the Main 19 System presented in this book. In this evidence, we will witness that chapters, verses and words are in harmony at the verse level numbers too and within the Al-Fatiha based 19 system. We had already observed the 19 based harmony among chapters, verses and words in Evidence 4.1.2.3 and Evidence 4.1.2.6 at the chapter level numbers. In this evidence, Evidence 4.1.2.8, we will again witness 19 based harmony among chapters, verses and words, but this time, at the verse level numbers.

As you will recall, in Evidence 4.1.2.3, we had learned the rule to get the key coding pattern of the evidence to be tested from the most well known chapter of Quran, Al-Fatihah. Here, we learn another key coding pattern from Al-Fatiha to get the evidence coding number and use it in this current evidence, Evidence 4.1.2.8.

Here is the key coding pattern that we observe as a 19 based coding in the first and most well known and recited chapter of Quran, Al-Fatihah:

In the chapter Al-Fatihah, at its verse level numbers, for each verse, we sum the chapter index, verse index and the number of words in that verse. Since there are 7 verses, I will present the calculation here and get the single number to be tested that represent Al-Fatihah.

Chapter index of Al-Fatihah is 1 as it is the first chapter of Quran. The first verse of it has 4 words. Then, we get the representation number of the first verse as this: 1+1+4=6. If we perform this for all the 7 verses of Al-Fatihah, the we get the representation numbers of each of the 7 verses as follows:

1 + 1 + 4 = 6

1 + 2 + 4 = 7

1 + 3 + 2 = 6

1 + 4 + 3 = 8

1 + 5 + 4 = 10

1 + 6 + 3 = 10

1 + 7 + 9 = 17

Now we have the representation number of each verse of the chapter Al-Fatiha. We then concatenate them as the classical operation of this book by concatenating them in their natural order. We get the following single number that represent the 19 based coding design in Al-Fatiha as : 6 7 6 8 10 10 17

6768101017

Now we observe, this number is multiple of 19 as follows:

tmp <- "6768101017"

#Test if the remaining of mod 19 is 0
as.bigz(tmp) %% 19 
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this number is", nchar(tmp))
## number of digits on this number is 10

As we witnessed, there is an apparent 19 based coding on the text of Al-Fatiha with its verse level natural text numbers. I have not seen this particular 19 based code on Al-Fatiha before anywhere else. Therefore, if it was not published anywhere else before, this code of Al-Fatiha should also be cited among the novel contributions of this book.

Before testing the evidence code of this key coding pattern let me briefly talk about another interesting fact on it. The digit sum of that single big number, 6768101017, is 37. Also, when divided by 19 to test whether it is under the 19 based coding system, the quotient is 356215843. Interesting enough, the digit sum of this quotient is also 37. I recalled this number instantly because at the chapter level sums, Al-Fatiha has this number as follows: Al-Fatiha is chapter 1, has 7 verses and has 29 words. When summed this also gives 37. This might or might not be a coincidence but I wanted to share it here as a tiny interesting fact.

Back to the main point, we just witnessed that there is the above mentioned 19 based key coding pattern in the first and most well known and recited chapter of Quran, Al-Fatiha at the verse level data too. The hypothesis I put forward was that the same code should also exist over the full text of Quran as it might be left as a clue. This means, we infer the rule of coding pattern from Al-Fatihah to get the coding number of the full text of Quran to be tested. As we witness below for this current evidence, the same 19 based coding of Al-Fatiha also exists over all the text of Quran as well.

Let’s first remember the head part of the table of the verse level numbers of the full text of Quran from all the 6348 verses.

x<- unQuran
x$VerseI <- NULL
x$vletters<-NULL
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbers of verses in Quran.')
Table 4.3: Table head of the numbers of verses in Quran.
chapter verse vwords text
1 1 4 بسم الله الرحمن الرحيم
1 2 4 الحمد لله رب العالمين
1 3 2 الرحمن الرحيم
1 4 3 مالك يوم الدين
1 5 4 إياك نعبد وإياك نستعين
1 6 3 اهدنا الصراط المستقيم

Let me summarize the key coding pattern to be tested over all the text of Quran. In this Evidence 4.1.2.8, we first sum the chapter index, the verse index and the number of words of each verse, which gives the representation number of each of the 6348 verses. We then concatenate each of those representation numbers in the natural order and get the single big representation number of all the 6348 verses of Quran. As we witness in the following, this representation coding number is also multiple of 19 and thus under the key coding pattern based 19 system of the text of Quran, which uses Al-Fatiha as the key source in this particular case.

Also, here is the illustration of the coding pattern I described:

[Chapter 1 + Verses 1 + Total Words in Verse 1] [Chapter 1 + Verses 2 + Total Words in Verse 2] . . . . . . [Chapter 114 + Verse 6 (last verse of Quran) + Total Words in Verse 6]

If we use the real numbers regarding the 6348 verses in the above formula, it would be like this:

[ 1 + 1 + 4] [ 1 + 2 + 4] . . . . . . [114 + 6 + 3]

And, the final number after all the concatenation would look like this:

67 . . . . . . 123

Below is the proof of Evidence 4.1.2.8.

x<- unQuran
tmp <- x$chapter + x$verse + x$vwords
cat("The head and tail of the numbers that represent each verse.")
## The head and tail of the numbers that represent each verse.
head(tmp)
## [1]  6  7  6  8 10 10
tail(tmp)
## [1] 119 118 119 122 124 123
tmp <- paste0(tmp, collapse = "")  
cat("Mode 19 test of the big coding number:")
## Mode 19 test of the big coding number:
#Test if the mod 19 is 0:
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0
cat("Number of digits on this big number is", nchar(tmp))
## Number of digits on this big number is 15430

As we see, the mod 19 is zero and thus the big number is under Al-Fatiha based 19 system of the full text of Quran.

We also have to try this coding pattern in the text type of 6236 numbered verses. Thus, we have two trials and one success for this evidence. As per the rules, since we used the sum operation in Al-Fatiha, we do not use digit sum again as their results are identical. Sum operation has always the priority over digit sum in this book as defined in the general rules. Because, as per the Rule 5 of Chapter 4.1.2.2, we only use one of the coding operations, and use the one with higher importance only, if the resulting coding numbers are identical. Because the numbers of the Al-Fatihah is single digit, that coding pattern could also be interpreted that way but because of the priority of operations rule we do not test it as the sum operation has higher importance than the digit sum operation as per the rule. Let’s add the trials and successes into the special counters of the chapter Al-Fatihah based coding patterns as follows.

alFatihah_tested_nums <- alFatihah_tested_nums + 2 
alFatihah_success_nums <- alFatihah_success_nums +1

For the reference, to the best of my knowledge, just like all the other evidences, Evidence 4.1.2.8 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.1.2.8 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

One can just copy the below printed big coding number of this evidence and paste it into a web based big number calculator and test it herself.

Also, here is the 15430 digits length big number:

“6768101017641113181519212121242421343224293626404735474539616749435060484658495657505751566152525655566169696265626283726577807990123888079797789938989978486113961018891105105969411410113610111710011711912310512211310612311711211111212517811711913212712612814412913113114614612913213014413115313813614314514915814314714715014215116215115216915815015517215816519018017916215616916818317016016616916916816818418117317617317420919818019218718219419118920020518819223021819019819620020021823120525420721820521820021021821127122922621322621721223022322122022022622322923323426424623924327623624724826225124124024124123627027726227826729926128426327424825626924925127325526330229228031126728026330727830728228330332830128728827630529430329928328728729330230529332228929829429829629841331731431433775121725192256262529282445414230263948494236464243545158545948464744566375566260645854676956735697726275656389727168777089807299848984848582859210885114881071101109611792100116101107991001031071181101201081091091251141221181211181401211221261201221231361251501301321271371431521501441351371361401431461391431481461391401471501611541531471511671501581581741721701691611651591731951812321791961741681921811851781741921881782031871851921851901931921892011921982182132061942141992112132112112012042152062162112412062072222322148342235222547302528278610435314134414658413643817087444440574747635678617256605859576096625888807267647567677670808187929480828391889777759181869396991101001291181019610999117110111105108114121130127156113138132108128114113135128168127130124117125133132127126130150144139140132130144131132147147144146142171161155145167146149152177169161148157177181165163166160168162166167176163173194177181166195170177178179192192182184183182184184198229194203190194230930606940537331402422406250444439645353484145494643455649474462777252546554565864114736390817768104876579857397737286758592828081116829597104949495111103871059710610094104101113109105104981101051391111161101221231511211291121151211321161291331301631381351291791291391331411371661511341481361021222121234329272429274328443031403162394140414063435050445564515362695262666261595963706075676963847483748767838578968884808680988178978712111686103949097101102971111099910311198100102110112112141120148129118114119117149121125124118125119125126139136129139141131143132140134134155138147152144159159141143170143164147147157147160173163170167166178164172190190180166191163183199193176177169176198201184182183177177199192119222421241920242728343633262630393743523357424339536557525354656952615481856070586486796271676971777769989370789382877679808385888785821039410392115106105911009110110099102979913011711311713810910411211611412012111311411612613111812612013012412012112512412512313112613313413513113013013213214913913714915515115814716015115316415315417316915615616617219116617218916717717419616917417417620319320719717421018818619719019018419318921618719720519518619521319319521620119519719520221420323122322520920520621221522821221421721321722021623321922822412272717232425382328364143342835444632514037404253465347465654565953635665636263588285717166677292757168777979737675807510181829181100100958688103921259410010519254435403339333129333942343549445052454039526657534865676263565672638177766492657465676870737373757483748581757783879196838890879195931101051041059412996941019810811411799117111110113107111111116126124121133122119122123135134132128128129130127140140145134157137142145142142153158137181148153149151146151157151153141638424238303224343439494034644441574646537359774652645649566853536174636964686266636464757169658172727574858171827889891138277898510192103889311598100106999698104951001089911510710510111312711012710811612712611511411512912412412512712314112413214114113015222239233533494131343250424140436752415541404846454867596351735754635864596860776373777471817778797976818081738589838288100959793879586919599919698969110210111610310212210510212211110811913512311012111912412311611311811811912013612513012012612613313714013913213514113913315313613914514814113615016182031323343263535383532383544324848484165435855605749535160756362565875757661847372806468807375728492768080758576798882798892931031021071109797889697929812111310610412911110511310910911112012211112511211511711811312811811912515913412812112612812513313715014114617294140444339353627375934455439747258474047545144615559525071955885616774697260667073711831303337404632356057544343383437475447396980545351535954475666715663626577706663636966847372727269707579192224252727303032313234323538383837404543474944464749495553495356595456575657645961686267656472717070707675777779777980818181858394908689889092929197959497989910010110310110511410610911810910911011011111511311911911911920263626282929373335394343425142364044414644495249566364635366626071608380677266667563747277697181797379798180778480839488100959694979998971091061091091041001181211121091131211221041061141121211131171291221271401261291261271311221251251341311351321321461361351321441421521381431531541381491541471441471511571631541571522139312934393447364236365243385347475348494948655354535357595961577268636967627468687266827482837475729378868587869293971029194901009197102100108104103100103100104106105109108111107112112112116116113124120117119121136126126124141129139131137135129135131132142133131149149223035242839353632374436394251515369587551717348595167607675607764626565667164767367807271867776829594828381869292105958591909210191959591949710010498101108102107119108114108108135110112105129118119110123115113124132125133123131128123130134126133137133135132145152232126273737333941424241393839434547454750554656535263575958576157616270636768706768777673767876818278807879848383791068991919291101969396959897999910810211910810410410710410810711111011011011511111211811411712211711912412613124222727302938343633483641384545464251434548534749504951505452545556565962626481956370687275738878747976839283838285928786968796949798929410598117111107107105108115106104115118111109113114133122120121127120120117134120132145130132128128130129136132129133141141140140143147151146145150145145154156148161156153154159165158170169164166173166252934393540354238383942404441444449525346495650676155546463696561656566746666767175767883777988777878818479838390858788889090939295989796989610010110911110210911011311411111611511412111311313111712113012312112012712312713813012912813113213514113813313314014313914014326334637379741414346415848455359476177584847566755726463705976746366767285797371978073697781918381808081101919793908798889898101100981149810697100110111123124105108108111144272730313132393736373640424258434450545552594963735854826660606069816467637073676872717386767677757884868385828586878687939197100959598941019910311010410110510910711211110911311011311811511311711512511711813812112212312512812712613013913413113613313613713713614614114214214414614615015814828345245474047404342436348515355545049635380726057606670747069133731057110774807685978673105781008186838090938694101117889213210210716112511411029354650453943485043524446474753515864596565575756576064606565677266706970757171817784778486768386848483849391948696961019897100100941019510311510211110510610811210910611430283235414240444240444144474648494854525258565459565760636361646465676969676970737974767979757777968388868484848587878988959410293969510199991021031031031061061051091081091101111161151161161181171201211191201241261241241261291281291301301351371351351391371371461391421441461441461511481531511501551531521571551551641591591601601631621621671711681671751711701751731731821771761781801791811841841911901891861941901901941921922011952032021992001992012012052082062062092082082172132112182152162212222192252242222222232252242262322292312312342332332322352372392412392402422422482432472492472482482502532532532532582572723134323941424050494357495848525762536570595763616866616166656563727274707977768210580838299858687859084879085899398919198114109105110110106107103107105106105108110109112115108113113118122125121124120128132133127130135134131323034405145465749555549565852815754628067596178677965847184787985707678818395797878808785919493102901018588969498971101031071031069810910599101106110104113118121114110120133131134128124126136125130132129131135333141434346454858457046595359505873606168586865738167747181657577857571827383819789838083951009590929595100948997949310493101103105114108110101111114107343234414643474760715349475249545753566361716567757164758575827073817075818284919286868983869395106899990939710897106961079710035333737444455544748685661596275726665618173686962716779708577818595923634425360544449485556546061606259625863736267696668767667726737484742656668574964595058726161647465877671737473747573777680788591819893118938590827889858685889310514511911015698118103104103114112100107111104106111108109119112118123121385254694850565758725757736675696659697264768279756871737470749781101827783948193848894111899310498899110095959710339605660505554556861698075766761575787585960736271736884808073828881808489978398108959610410910540384042434449515457545962576166585866646764667465657070777378787479807985828282918584888692931079193939710199101989999999911010210610410511211111311111711411911411511711812112412512512713112812741404142444949495450546052545558605659636365666764666769717177747375758279797982818282838487869189899295939795979810098102102102105104107106109111110110111113113115115117118118119121121122122124126128128128129129130134133134134136137141140142142141167144145149148147149149150152154160156157157157158160161162163164166167168167169170171172173174175176176178178180182182183185187186188190189191193193193194195194197199205200201201203205207205206207211210211213212214215215215220219219223221223424346515251565561545855585859636266636264668376947295817976757581778188827980848490869196918990949393969496999898991001071091101101071081141111091091161161181191151181281241201221231221231241251261301341301304346517559678177817271595661597372687068799181967674777774877377868081869088113888798107969410210211198110100105106113106110110105109108113111110113110118111123129123118144120132129131444248575766567464616564676762717170736575917569718484801079681857989104988610087911039197105969599106100102106102102101981071191091111101131211141101251191261371201191191171181201311261241311501281321271471381361424543475152636356586466687263788176726468738083737691787883869088778792878897911021079196101115104981161011011231051101131074644455556666071696767726793869176708270848588948879808683878287809083869589918796929993106114104110117106103115121110474547525456555858626466667661676672707478727687817578757881828410093829090879391949092949310110197104104100112106107104104103109115112111114112123116119119117120117118129122122123124125129128127134132133134138141142138139138484648555355575962586060626464656669717270707272747473757681818282848187859389918995949090939296999810010099102102104110108107106494753545870635667657467717473717486767972838092908689828785888899899396899050485464796961677979807674726910680918174939280828885104839193969296101981085156676889555764616473698174741068770808094807977788888818587898610091969496901155254655571727563616583968070769492928574868382839111310210390131536674696266738464886910093839082818577545463606364686863696569696773758075767876778479807986878687898688908991101100101101959899991031085554555657596061636463676769727176747275757678838185838388898987898989929495979698991021021031031051031031071091131161101101111131171161191185654565858596063646565666971727380747877799279838382858589898989929192959596999699981011041051041071091101065757606062616263646768696970707174757775767879101818197899793991001168990939693969897989910010110310310410510610710711410811011211411211711611611611858596363656468697072697075727475747878828079838088888588908788939391979695100979610110010310610310310610611110811011111111111311559575960616364666770687171727476757677777980818285848588879489909110593989598971029910210110410410410610610510810811011211211811412011611611812012012012212012412412612712812813013113213513413713613960606161646465666970686971727374757779807981808284878688878788899093929494959698991021011021041061071121061091111121131121141141161171171201231261241221251271241261281321321311341341341351371361371391401411421431431481471471491491521521541521521561566167706997707579808310480919791871018787961161031009593110971231071086277838288817911210487851009395918384909392868813163711027675779010385999298878496859286958889989410110064110757611678858289901269211193657372737690998480848387908311166758573769086788893879467817777898287908890948568827776828286898210085918786978796938769108978997841039787819211010270827998918895851208710310195717780888184808288948883888988969496931011021001011029999102107110109107727375767675768679818382848587908795889490919794989799981031031031051101091081061081101111191121171191221221181211201271271231311257371737677788191828485878788898790959397949494941011059910010110110110310810810810911011011111111311711711611811711912212012312312312574757677857879798282849084869088889190939495949899971001031031031101081071071091091111121161141171191201221237586807993838292838787869290889494939495951059610710310810710811476868384838789888894959295999692969998101100101106111107108105112113777779818383878687919090899195999598971011717878787980818383868788899089919395939596989799100104104102105106105107162108110111112112118117116117117120122122123124124126128127128135132131132141798081838585858585879089919494939796979899981001011021051051051061071091101101131121141161181181191228088888686898990919593959399969997999810410311010610510910610911111311411711781808182838486878889909192929695969798991021021021031041061051111081121131141131131141161171171201211201231221261251251281271311291318281838584868887889091929494979796100102101102103102104108106106110109111113112112113114119119125130126134838283848586888890909494969696981011011031021021021041041071091111121101121131141131151171191191191201221281241261261261291348483858788888991929193949596969798101102103103104106108108109110110110111112113115116119117118123121121124123126858586878889909192939495969799999910110210410710510610811011110911311411886868788899295939695959597991001001021041061108786919192909496959496981021031051041031071071061051061091091121121151131151201171201211201231211258888899092929996969710098981021031051031041051071081111101111111188989899092939598102104109110101102102103104106105109109110110908992919695969898981021001011021031041041079192929394959610397100100100103106105106107107110109929393939597100101999910110310310410410510611111011111211311311511611611893919394961001019910310310210410410710611511511111211211311611612111811911912012212112194959696991011001021021011021041061051101081101161111151139594969798991001011021041051051061111121099696979999101100101104103104109107109109111111111114117117115979598101102102103103104106107108989999100101103104104105999899101105104110106107100102102102103106106106108108109112111113115117115115116120101103104106110107102111106104113119120114127103104104106106108111112113104103104105107108110111112116114116105103105108110110111112113112115114106105107108110112110113115107105109115108109110111112113113115115116109113112112113113110109112113117111112113115113117116116112112113115113114115117118119119114116119120115117119118118121116117116119121117118119121122123118119118119122124123”

You can also access this big number from the following link:

https://github.com/quran2019/Quran19/blob/master/5.14Evidence.txt

4.1.2.9 Even and Odd chapters Evidence at the Verse level

As per the rule, for each key coding pattern based evidences, which is also based on Al-Fatiha that is also the main part of the Main 19 System presented in this book, we also have to test the follow up even and odd pairing coding pattern over the same numbers with the key coding pattern of the predecessor evidence. This chapter provides the even and odd coding evidence as a compulsory follow up coding to the predecessor evidence, Evidence 4.1.2.8. We test the follow up even and odd coding pattern over the same text type, all the 6348 verses, of Quran similar to the predecessor Evidence 4.1.2.8 that also exists in the text type of all the 6348 verses.

As per the rule, we separate all the verses into two categories as even and odd verses. If a verse has an odd chapter index then it is categorized as odd and otherwise as even. We then sum the chapter index, verse index and also the number of words of each verse, which is the key coding pattern of the predecessor evidence, Evidence 4.1.2.8, and get the representation numbers of each of the 6348 verses. Then, we pair them from even to odd and concatenate all the paired numbers and finally get the big representation coding number to be tested. Let me also formulate the even and odd pairing coding pattern used in this evidence as follows. As mentioned before, it closely resembles to the double helix of the DNA structure, where one strand is even and the other strand is the odd numbers in our case:

[ [Chapter 2 + Verses 1 of Chapter 2 + Total Words in Verse 1 of Chapter 2 ] [Chapter 1 + Verses 1 of Chapter 1 + Total Words in Verse 1 of Chapter 1] ] [ [Chapter 2 + Verses 2 of Chapter 2 + Total Words in Verse 2 of Chapter 2 ] [Chapter 1 + Verses 2 of Chapter 1 + Total Words in Verse 2 of Chapter 1] ] . . . . . .

I did not illustrate the tail of the coding as the even and odd verse numbers are not equal in length and thus not straight forward to formulate. The number of verses of even chapters is 3262 and the number of verses of odd chapters is 3086. Therefore, while pairing both vectors, naturally, the short one, which is the odd verses, starts over from the beginning part of itself and keeps pairing. As this is the most natural operation approach, it is also the default way of processing in the R programming language while pairing two unequal vectors to each other. Therefore, it does not require additional coding in R.

If we use the real numbers in the above coding pattern, it would be like this:

[ [2 + 0 + 4] [1 + 0 + 4] ] [ [2 + 1 + 1] [1 + 2 + 4] ] . . .

[ 6 6 ] [ 4 7 ] . . .

And, the final number after all the concatenation would look like this:

6647 . . . . . . 119174118192

As we will see in the result of the following R code, this big number is multiple of 19. Here is the reproducible proof of the evidence of this chapter:

x<- unQuran # all the 6348 verses are used
#Get even and odd chapter verses
ev <- x[(x$chapter %% 2 ==0),]
cat("The number of even verses is",nrow(ev))
## The number of even verses is 3262
od <- x[(x$chapter %% 2 !=0),]
cat("The number of odd verses is",nrow(od))
## The number of odd verses is 3086
x<- ev
ev <- x$chapter+ x$verse+x$vwords
cat("The head of even chapters to be paired as sum: ",head(ev))
## The head of even chapters to be paired as sum:  6 4 11 13 18 15
cat("The tail of even chapters to be paired as sum: ",tail(ev))
## The tail of even chapters to be paired as sum:  119 118 119 122 124 123
cat("The number of verse of even chapters: ",length(ev))
## The number of verse of even chapters:  3262
x<- od
od <- x$chapter+ x$verse+x$vwords
cat("The head of odd chapters to be paired as sum:",head(od))
## The head of odd chapters to be paired as sum: 6 7 6 8 10 10
cat("The tail of odd chapters to be paired as sum:",tail(od))
## The tail of odd chapters to be paired as sum: 117 118 119 121 122 123
cat("The number of verse of odd chapters:",length(od))
## The number of verse of odd chapters: 3086
tmp<-paste0(ev,od) #pairing of even and odd verses' sum
cat("The head of paired even and odd chapters",head(tmp))
## The head of paired even and odd chapters 66 47 116 138 1810 1510
cat("The tail of paired even and odd chapters",tail(tmp))
## The tail of paired even and odd chapters 119174 118192 119188 122178 124203 123187
# reverse of this numbers in tmpr
tmpr <- paste0(rev(tmp), collapse = '')
tmp <- paste0(tmp, collapse = '')
#Testing the big coding number with mod 19
as.bigz(tmp) %% 19  
## Big Integer ('bigz') :
## [1] 0
#Testing the reverse of the big number with mod 19*19 !
as.bigz(tmpr) %% (19*19)
## Big Integer ('bigz') :
## [1] 0

As a fact, not only the big number itself but also the reverse of it too (as shown with tmpr in the above code) are multiple of 19 of this big coding number. Even more interestingly this reverse coding number is not only multiple of 19 but it is multiple of 19x19 (361), which makes this more interesting than a simple coding as a fact only. Since this reverse coding is not within the rules, I do not classify that as evidence in the 19 system of this book and do not include in the probability calculations. However, it may be part of another rule based system that I might not have yet seen or purely random. Therefore, I present it here for other investigators in case they might observe a rule that covers this or other similar interesting codes, which I present only as a fact but not as an evidences and thus the reverse big coding number is not within the current presented 19 System of this book.

We witnessed that the verse level pairing of sums between even and odd chapters of Quran considering all the 6348 verses isalso under Al-Fatiha based 19 system of Quran too. We need to test the same coding with the text type of the 6236 numbered verses as well as per the rule. Therefore, we have two trials and one success in this evidence and add them into our counters below.

evenodd_tested_nums <- evenodd_tested_nums + 2 
evenodd_success_nums <- evenodd_success_nums + 1

Also, below is the 15867 digits length big number. One can just copy this big number and paste it into a web based big number calculator and test it herself.

“664711613818101510191721721521122417242521193422325624262925362926284024474535414742453039266139674849494342503660464842464358544951565857545059574851465647614452565263567555565662616069646958625465676269625683737256659777728062797590651236388898072797179687777897093898980897297998484868911384968410185888291851059210510896859411411488101107136110101110117961001171179211910012311610510112210711399106100123103117107112118111110112120125108178109117109119125132114127122126118128121144118129140131121131122146126146120129122132123130136144125131150153130138132136127143137145143149152158150143144147135147137150136142140151143162146151139152143169148158146150139155140172147158150165161190154180153179147162151156167169150168158183158170174160172166170169169169161168165168159184173181195173181176232173179174196209174198168180192192181187185182178194174191192189188200178205203188187192185230192218185190190198193196192200189200201218192231198205218254213207206218194205214218199200211210213218211211211271201229204226215213206226216217211212241230206223207221222220232220214226922330229602336923440264532467323931243402762423622247402486226250251442414424039241642415323653270482774126245278492674629943261452845626349274472484425662269772497225152273542556526354302562925828064311114267732806326390307812787730768282104283873036532879301852877328897276733057229486303752998528392287822878029381302116305822939532297289104298942949429895296111298103413873171053149731410633710089434104221013511322109251054710430982511028105271398611110411635110311224112334151411214612958112411153612143132811167012987133441304416340138571354712947179631295613978133611417213756166601515813459148571366011969622258248821802472196720642475276728673476367033802681268730923994378043825283339157884297437739755391658157865293539654996511069100521296111854101819685109609970117581106411186105791086211471121671306912771156771137713869132981089312870114781139313582128871687612779130801248311785125881338713285127821261031309415010314492139115140106132105130911441001319113210114710014799144102146971429917113016111715511314511716713814610914910415211217711616911416112014812115711317711418111616512616313116611816012616812016213016612416712017612116312517312419412517712318113116612619513317013417713517813117913019213019213218213218414918313918213718414918415519815122915819414720316019015119415323016410153211542217321169211562315643166291722719124166291722718943167281774417430196311694017431174621763920341193402074119740174632104318850186501974419055190641845119353189622166918752197622056619562186611955921359193631957021660201751956719769195632028421474203832317422387225672098320585206782129621588228842128021486217802139821781220782169723387219121228116224861910325944490359740101331023997331113110929993310339111429834100351024911044112501125214145120401483912952118661145711953117481496512167125621246311856125561197212563126811397713676129641399214165131741436513267140681347013473155731387314775152741448315974159851418114375170771438316487147911479615783147881609017387163911709516793166110178105164104172105190941901291809616694191101163981831081991141931171769917711716911117611019811320110718411118211118311617712617712419912119213312122271192712217123231352413425132381282312828129361304112743140341402814535134441574613732142511454014237142401534215853137461815314847153461495615154146561515915753151631535615652263226239632358358233854971417131663467327250924275417140684377677952794173557641754080487546101458148826791598163100511007395578654886310358926412559946810060105771463167338774274427138813077327824793479347639814980408134736485448941835782468846100539573975993778746955286649156954999569168965398539661917410263101691166410368102621226610563102641226411175108711196913565123811107212172119751247412385116811137111882118781198912089136113125821307712089126851261011339213710314088139931321151359814110013910613399153961369813910414595148100141108136991501151710729105411014011344127431103912735108361162712737126591153411445115541293912474124721255812747123401414712454132511414414161130551659185220503171329533584385266135673574386935723260386635704473327148194822482441256527432758305530603257314932533451326035753863386238563758407545754376476149844473467247804964496855805373497553725684599254765680578056755785647659796188688262796788659264937210371102701077011070977697758877967797799277987912180113811068110481129851118310594113901098610989111881209012292111921259111297115951179411897113981289911810011910112510315910113410512811412110612610912811812510913310913711015011014111114611518113311193011933119371194021463932313529603457395434434743363842343637364752544347383953694780475453534851495349594854654753565466537153565763596259656177577072666863636369696766628474736872687272726669827074758279832074267536722693287829862985378733863592399343974310242915194429036100409144974110246100441084910452103491005610363100641046310653105661096210860111711076011283112801126711672116661136612475120631177411972121771366912671126811247914173129791397913181137801357712984135801318313294142881331001319514996149942397219926982797371093710633109391094110442100421184112139112381093911343121451224710445106471145011255121461135611753129521226312757140591265812957126611275713161122621257012563134671316813570132671326814677136761357313276144781427615281138821437815380154781387914984154831478314479147106151891579116391154921579115210122963093359624952898399735993699321083710244119361083910442104511075110453108691075811175110511107111073115481115911251118671146011776122751176011977124641266213165256529663471396435764073356742803872387139864277407644824195449444824983528153864692499256105509567856191559054926410163916995659561916594659766100741046698661017610871102751077611978108831147710879108881357711078112781058112984118791198311083123901158511387124881328812590133901239313192128951239813097134961269813396137100133101135109132111145102152109241102211327114271113011629115381143412136113331134813136117411213813045123451214612042127511234312745138481305312947128491315013249135511415013854133521335414055143561395614059143622762276430813195316332703968377236753773368840784274427958764383449250835483558252855992498763867396588754968294669760986092609469105819864117671116310770107731056710868115721067110473115861187611176109771137511478133841228612083121851278212085120861178713486120871329314591130971321001289512895130981299413610113299129103133110141104141101140105140109143107147112151111146109145113150110145113145118154115156113148117161115156125153117154118159138165121158122170123169125164128166127173126166130261393313446131371363713397136411374113743136461464114158142481424514453146591464715061158771485829483547465650674555397243644863507043595276447446634766477653725185587964735971659765805773576956775781609164836081658065806781721016691709769937090758771987188819877988410177100849886114769883106869784100841108311184123931249110594108861089611196144101289834975210045100479440101479540103431154210243111631054810651108531125510954106501144931633453328039724160425740605066497043745770496958133487352105577162107537465807076598557976386617368105667861100618166866583658063907293728674947010179117778876928213210510280107831618212599114851108630872885329035844187429040854489429340984491419144984711446109481054911048110541065210752103581075610554106591055610857110601096311263115611086411364113651186712269125691216712469120701287313279133741277613079135791347513177337731964183438843864684458448845885458770874689598853955994501025893739660956110168995899681026510373103811036710674106711058110965108751097711085111751167111582116731168311881117971208912183119801208312495126100124951249012692129951289512910013094130891359713794135931351041399313710113710314610513911414210814411014610114411114611415110714835153331513715037155441534415255157541554715548164681595615961160591606216375162721626616765171611688116773175681716917062175711736717379182701778517677178811808517995181921843718448191471904218965186661946819057190491946419259192502015819572203612026119964200741996520187201762057120873206742067320974208752087321777213762118021878215852169122181222982199322511822493222852229022382225782248922685232862298523188231932341052331452331192321102351562379823911824110323910424010324211424211224810024310724711124910424710624811124810825010925311925311225311825312325812125739272603256306034504055515445554668576149695580557549765667586152578157578754586259806067735962617178736768798465808480717384827888798185807084768978978183839895108799578967810480109871058541914094419342102449049101498549885496509454986097521105410355107581036010656985910963105639965101661066711064104661136711869121711147111077120741337313175134751288212479126791367912582130811328212982131831358434873286349141894689439247954793609771955397499847100529849102541025710253105561046310761106711096511167110751107111164113751138511575115821177011873118811197012175121811228212284124911269212886128861288912983129861309313495133106134891349913690137931419714010814297142106141961671071449714510014936148341474214953149601505415244154491604815655157561575415760158611606016162162591636216458166631677316862167671696917066171681727617376174671757217667176381785217854180691824818250183561855718758186721885719057189731916619375193691936619459195691947219764199762058220079201752016820371205732077420570206742079721181210101211822137721283214942158121593215842208821994219111223892219322310443984689519175100599567958197771038140723871405942564361445949735172546857705468597962915781619666765874587766776474678764736677748665806581708670907788731137888788774987910780967994851028210282111829891110851008410588106861139210693110107110911059310993108971131011119911010111398110991189911199123991291101231021181061441041201051321121291111311134511143117471145111952114631156311756118581216412466125681257212763131781288112776427243644668517352805183567355766191547858785583588658905988637762876692638762886497669183102761079491729695101811157910476987511675101811017712381105881108211379107804784458447905286549156965591588958906294649366936696769461966799669872987099741007810772109761108711081107751087811475111781098110982116841161001189311982115901189012887124931209112294123901229212394124931251011261011309713410413010413010044112421064810757104571046610356109741156411261111651146411267123671166211971119711177012073117651187512991122751226912371124841258412980128107127961348113285133791348913810414198142861381001398713891491034791539754105589670956399561066710065102741066710271102741017398711077411986109761117911072113831218011492110901258611989126821378712085119881198811799118891209313196126891249013151150561286713268127891475513857136641426146644473456955815674667460106718769706780678072946780937986779178768870888281708584878589888694100889179968094869683908711582538766807490698362866695738984916487889669921009993938310690114821048111085117771065510354115551215611057485946604861556353645563576759676269587260716076627464726475657566766978718372817085708372837288748974897387758976898189819282948295849781968798859993102891029110389103951059410390103901079310992113961169911098110100111100113991171021161021191041181105710857107601066050624861546264637964696761686769796979708070767174747275697710675807691788179741019381928180978289889785931049983100911169389969092939696101939896108985297549865995510071101721037510363104611056510683107961078011470108761109411292114921128511774116861168311682118835991571135910260103619063131645466546763706068637164716872687463766975657669776977677973807581808275857684788576887787849479898090799186105879386988795899886978810290998910291101101104100104101104101106951069810599108991081031101081125611254118561145812058116591166011863120641206512065122661206912471124721267312780128741287813077131791329213579134831378313682139856185678970896989978970927591799280958395104968099919697999198871011011048710587104961071161091031101001069558935911063976312365107641086863697170102727669757077759072103748575997492789878878284809679858392808688958888858988989094871018810093659373917297739676959010099978496801018410083103871069010383103111106671068111177108771108911182111871119011388115906094608561696110864976489659766846910370976887698171927211073102747175777780798880817984818080828288849487888683888887898788889689949096939392101941029410095101961029899999910210210110710211010410910610710773112711067310976111771127811381112911148211484116851178711787120881238912687124901229512593127971249412694128941329413210113110513499134100134101135101137101136103137108139108140108141109142110143110143111148111147113147117149117149116152118152117154119152122152120156123156123621237712583758286888081797993112831048287928583100879387958691928390848890949394929386948895131956410511096751077610311610878107851088211489779077126799281111839383668775868587739176909090868978918895939987959498689782101771717679828082818683898582851008585859185878786909789879196949394879370978296799798989199889895100851011201028710510310510110595106721077310975110761107611375112761148611679118811188311982122848185808781908287839584888694879088918997909491989297929996989510396103971039810599110102109102108102106103108104110106111105119111112108117112119113122114122113118113121114120116127117127117123120131121125120741237512276126771258512578128791277913182129821318483908284838684908588868888918890909390949495949496989699969798100101103101103103103102110102108102107104107104109107109109111111112112116110114112117113119114120113122115123117761198611983119841208312287128891248812688126941269512992134958599859686928796889989989010191100921019310694111951079610897105991129911399781017810278104791078010581106831088311086111871098811389114901188987918693919591939295909694989697959994100961049810410210210310510510610410510310710716210710810611010511110611210911210911811211711211611511711311711512012012211712212012312112412012412312612112812512789128891358913290131921329314195809888102881048610986110891018910290102911039510493106951059310999109961109911097919992989210493103941109510696105103109971061001091001111001131031141061171051171068210781107831108510984938691889387948896901009110192999410394103971029710496104100107102106101115102115103111102112104112108113106116106116110121109118111119113119112120112122113121114121119951199412596130971269813499841008310185102871048810588105891069111192112911099397949595989610196102971029810310110310210410310610310710410810699108981089910910111010511010411011011110611210711310111510311610411910611711011810712310312110412110412410612310612610886111861128711388105891039210595108931109611095111951129511397112991151001141001071021051041091061151101098811388112891129011392113921119911296113961159711310011798116981161021131031141051151031171041181051191071191081151111171101191111181111181181219011789118921199112196122951239669879869881021010010101171027103510412104171072592199322935693269525972910028101249945994110142103301032610439104481054910642111361104611142112431135411351115581165411659118489446954796449656996310175100561026210260101641025810454106671056911056108731105611697111721156211375966596639789997299711016810077101701048910380104721099910784109891098411184111851118211485117921171081158598114998899107100110101110103961041171049210510010011610210110210710299103100106103106107106118108110108120109108112109111109113125115114117122115118115121116118120140102121111122106126104120113122119123120136114125127150104130103132104127105137107143108152110150111144112135116137114136116140106143105146107139108143110148112146110139113140115147108150109161110154111153112147113151113167115150115158116158110174109172112170113169117161112165112159113173115195114181116232119179120196116174117168116192119181121185118178119174118192119188122178124203123187”

Also, as a strong fact, here is the reverse of the 15867 digits length big number, which is not only multiple of 19 but also multiple of 19x19 (361):

“123187124203122178119188118192119174118178121185119181116192117168116174120196119179116232114181115195113173112159112165117161113169112170109172110174116158115158115150113167113151112147111153110154109161108150115147113140110139112146110148108143107139105146106143116140114136116137112135111144110150108152107143105137104127103132104130127150114125120136119123113122104120106126111122102121120140116118115121115118117122115114113125111109112109109108108120108110106118106107106103103100102991021071021011001161051001049210411710396101110100110991079988981141158511710811792114851118211185111841098410989107841099910472103801048910170100771016899719972978996639665113751156211172116971105610873110561056910667104541025810164102601026210056101759963965696449547944611848116591165411558113511135411243111421104611136106421054910448104391032610330101429941994510124100289729952593269356932292191072510417104121035102710117100101021098898698796695123961229112192119891189011711812111111811111811011911111710811510711910511910411810311710511510311410211398116981161001179711396115961139911292111921139011389112881128811311010910611510410910210510010710011499115971129511395112951119611093110951089210589103881058711386112861111261081231061241061211041211041231031181071171101191061161041151031131011121071111061101101101041101051091011089910898106991041081031071031061021041011039810397102961029610195989495939791109921129111189106881058810587104851028310184100134991269813097125961199411995114121113121112122112120113119111119109118110121106116106116108113104112102112103111102115101115102106100107961049710497102941039410392999110190100889687948893869184938510983110811078210711710611710511410611310311110010910010610010997105103106961109510394104939892999297919911096110991099310995105931069510491103901028910289101861108610988104881028098141951329313192132901358912889127891281251261211241231241201231211221201221171201201171151171131161151171121181121121091121091111061101051081061621071071071051031061041051051021031041021049810096999497959896969495909392959193919186898790118891148811387109861118311083108811068010579107781047810278101113991129910599108971079611195106941019310092101919890998996889287968699859585921349512994126881268812689124871288312284120831198611976119123117122115120113119114117113114112116110112112111111109109109107107104107104108102110102103102103103103101100101979899969896949695949494939090909188888888869085868484839082848382131821297913179127781288512577125761267512274123125120131121123120127117127117120116121114118113122113122114119113117112112108119111111105110106108104106103108102109102110102105991039810397103969895999697929892949197909189908894878886958487839082878185808481821228311981118791188611676114751127611376110751107310972107951061011051031058710512010285101951008898919998987997829670978793939496948791978986908787918585851008582858985868382818280767977171821016897949887959399889578918689909076907391858775866687938311183928112679907789778211485108781071161087610375107110966410513195889586949293939490948488839091929586938710087858387921048211283799381798880828683757712562123156123156123152120152122154119152117152118149116149117147117147113148111143111143110142110141109140108139108137108136103137101135101134101134100134991311051321011329412894126941249412797125931229512490126871238912088117871178711685114841148211291113811127811177109761067311271107731061071041091021101011071021029999989996102951019410094102921019393909689948896878887898888868387888494828880828180798480817988778075777471731027211071926981688770976910366846597648964976110861696085609411590113881119011187111821108910877111771068110667103111103831069010387100831018496809784100999590967697739172937393658810087101909488988589888888958086839279858096828478877898749275997485721037590707769757276701026971686364108651076312363975911058931069511010010910310711610496105871048710110198879991969799919680951049583928091799275897089978969897085678561821398313683137791349213579132771317813074128801287312772126711246912466120651226512064120631206011859116581165812056114541185611210811210311099108991089810595106101106101104100104101104911018910290998810286978998879586988793861057991809079898494778776887885768475858082758173806779697769776576697563766874687264716371606863705467546613164906310361102601135991578359821188311686116741168511792112921149411276110701088011496107831076510661105631047510372103711015510065995498529710898989610193969692939690938991116831001049985938897828980979281938174101817991788076106756977727574747671807079707969676961686967796464635462486150621066010760108571105710411810211910211699117100113100111981109911096116921139310990107901039410395105891039110389102931028599879881968497829582948192818976897589738774897489728872837083708572817183697866766575647564726274607660715872626959675767556353645563486146604859110571215611555103541065511777110851048111482106909383999392100966987889164898495738666836290698074876682538711583908696809479968891941008886858984877085828170887688917886779379678072946780678069707187601066674567455814569447346641426113664138571475512789132681286715056131511249012689131961209311889117991198811988120851378712682119891258611090114921218011383110721117910976119861077498711017310274102711066710274100651066799569563967010558975491531034791498713810013986138981421041418913879134851338113296134107127801288412984125711246912375122911227512965118731177012071117711196211967116671236411265114611116411274115561096610357104571044810742106441121301001301041341041309712610112510112493123941229212390122941209112493128871189011590119821189311610011684109821098111178114751087810775110811108710976107721007899749870987299669667946196769366936694649062895891589655915686549052844784458047791078211388110811057712381101751017511676987910481115951017296949176107831026691649762886387669262876377598858905886558358785478619155765673518352805173466843644272127761288113178127631257212568124661216411858117561156311463119521145111747111431134511113111212910513210412010614410211811012399129991239911199118981101011139911010111197113931089310991105107110931109210686113881068410585100911108298821118210285102799480967910774987887788873113778870907086658165807486667764736787647466775877587466766196578162915979546857705468517249734459436142564059387140721038197779581956710059917589519846104439322389221111223942198821984220932158121594215832147721282213101211812109721174207702067420573207712056820375201792018220076205641997219769194591956619469193751936619373191571895719072188581865718756185501834818269182541805217838178671767217667175761747617368172661716917067169621677316863167581666216459163621626016161160601585415756157551574815649160441545415260150531494214934147361481001499714510714496167106141971421081429714093141901379913689134106134951339313486130831298912986128861289212891126841248212281122751217012181119731187011882117751158511575113641137111175110671106511171109611066310756104531055710254102491025298471004998539771956097479347954392468941893491328634871358413183129821328213081125821367912679124791288213475131751337312074110771147112171118691136710466110641066710166996510563109639859106561036010758103551105497529860945496508854854910149904910244934294419140854187105801097810478967995951088398818378977689708485807981788884827173848065807984676878736171596267738060625954585787815752575861566749765575558049695761466845555154405534503060325627260257392581212531232531182531122531192501092481082481112471062491042471112431072481002421122421142401032391042411032391182379823515623211023311923314523410523193231882298523286226852248922578223822229022285224932251182199322298221812169121585218782118021376217772087320875209742067320674208732057120176201871996520074199642026120361195722015819250192591946419049190571946818666189651904219147184481843718192179951808517881176771778518270173791736717571170621716917568167731688117161167651626616272163751606216059159611595616468155481554715754152551534415544150371513715333148351511071461141441111461011441101421081391141461051371031371011399313510413593137941359713089130941291001289512995126921249012495126100124951208311980121831208911797118811168311673115821167111175110851097710875109651058110671106741036710381103731026599689958101689561966093731025894509559885389598746877085458458844884458646884383439641773177337513179134791357613074127791337313270128691206712469121691256712265118641136411361108631156311260109571105610859105541065610558107521035210754106481104911048105461094711444984191449140984293448940854290418735843290288530871108611485125991618210783102801321059282887611777101799470867493729072806383658665816610061786110566736886619763855776598070746510753716210557735213348695870497457704366496050574060427241803953326334493150114541065510953112511084810663105431114210243115401034795401014794451005210034972898144101111961089610886105941249112393111841108310084978410686988311476988610084101779884987788819871877190759370976991701016681728067806581658360916481607757695673578057976571657359796485587251765366476347744676445952704363506448724355396745565047464835582977148611584715059146531464514448142581424114146146431364113741137971363713337136461313313426139166130173126166127164128169125170123158122165121159138154118153117156125161115148117156113154115145118145113150110145113146109151111147112143107140109140105141101141104133110129103132991361011299413098128951289513210013097145911329312087134861178712086120851278212185120831228613384114781137510977111761187611586104731067111572108681056710773107701116311767986410581946992609860976094669682875496588673876392498559825283558354925083447643795874427842884073367537723668377039633295318131643062276227591435614056139551435414052133541335013851141491355013249131471285312948130451384312751123421274612045121451233813041121361174813133113361133412138114291153011627111271142211324110152109145102132111135109133101137100133961269813496130971239812895131921239313390125901328812488113871158512390110831198311879129841058111278110781357710888108791147710883119781077610275108711017698661046610074976694659165956195659169101639264905491558561956710550925692498646815383528249944495448241764477408642713972388038674273357640643571396634652965256213164126771246011975117761226011767114511185911248111731157111051110751105811169107531085110451107421043910436108441193710232108369935993997289824953596309322961521011579115492163911579115189147106144791478315483149841387915478153801437813882152811427614478132761357313676146771326813267135701316813467125631257012262131611275712661129571265814059127571226312952117531135612146112551145010647104451224712145113431093911238121391184110042104421094110939106331093797379827992697219423961499514910013188133941428313280131841357712980135811377913179139731297914181124711266912677136721217411963117751206612466113721166711680112831126011271107601116210866109531056310664104631005610349100521034910444108461004110244974091361004290519442914310243973993359233863787298529862878269336722675207479837582707469827266727272687368847466626967636963636668707277576561625963595657715366535654475354655948534951495348545380476947395347385443475237363436384243364347543457396034352932314639402137119331193011931119181131461151411111501101371101331091251091281181261091211061281141341051591011251031191011181001289911398118971179411595112971259111192122921209011188109891098611390105941118312985104811068111381121809879927797799677887797759776110701077010270103719372926488657967826288687961765985647557805680577656925484597256755373498053685564498049724773468444614976477543754558405637623863387538603551325334493257316032553058304327652741254824482248193271447335703866326035723869357435672661438533583295317120501852165913055141611414413251124541414712340127471255812472124741293911554114451153412659127371162710836127351103912743113441014010541107291151799150108136100141951481041459813996136991531061331001399814111513593132881391031409213710113385126891267712082130113125891368912078119821187111881113851167412375124721197212181110651236913571119751086411164122631026610562122681026410369116631017410261915396539868965691499956956491528646957787599373975395461004688578241834489648534734081498039813476347924793278307738814271427438771673146310577100609468125599264103588863865495571007310051816391598267814810145754680487540764173557941795277676843714075419242725067326634713171418549823358356323623963226522561563153531515915756151541465615146149471535314846181531374215840153371424014251145321424613744157351342814534140431404112736130281292312838128251322413423135171232712227119121221921331991211771241771261831161821111841112011071981131761101691111771171769919311719911418310816398191101166941809619012919094172105164104178105166110167931709516391173871609014788157831479614791164871438317077143751418115985159741448315274147751387315573134731347014068132671436513174141651399212964136761397712681125631197212556118561246312562121671496511748119531145711866129521483912040141451125211250110441024910035983411142103399933109291113197331023910133974090359444103258619116224121228872199723378216812209821780213862178021484212882289621578212852068320567209872257422383231742038421463202691956719775195602017021663195591935921361195621866619562205521976918762216531895119364184551904419050197501864318863210401744119740207411933920362176311744017431169301964417428177431672718929172241662719129172431662315621156211692217321154101532301641941531901512031601941472291581981511841551841491821371831391841491821321921321921301791301781311771351701341951331661261811311771231941251731241631251761211671201661241621301681201601261661181631311651261811161771141571131481211611201691141771161521121491041461091671381451171551131611171711301429914697144102147991471001321011319114410013091132105140106139115144921501031309412610312782132851338712588117851248313080127791687612887135821139311478128701089313298138691137715677127711306912167114711086210579111861106411758997010960968510181118541296110052110699965965493538652815791657553773997438842915783338252804394379239873081268026703376366734672875276424672072198024882158246222969601157136591485813460151561667213761141781335613963129471794712957135401384416344130871337012981116431323612141115581124612941121341514112331122351101041168611127139281052511030984710425105221093511322101341048943371003141063149731710541387298103296111298952949429894289104322972939530582302116293812878028782283922998530375294863057227673288972877330185328793036528387282104307682787730781263902806326773311114280642925830256263542556527354251522497226977256622484427447263492845626145299432674627849262452774127048236532415324164240392414425144262502486224740236222762424340239312467326453234402336922960223302269220214220232221222223207230206212241217211226216213206226215229204271201211211218211210213200211218199205214218194207206254213205218231198218192200201200189196192198193190190218185230192192185188187205203200178189188191192194174182178187185192181180192198168209174174196173179176232173181181195184173168159168165169161169169166170160172170174183158168158169150156167162151179147180153190154165161158150172147155140150139158146169148152143151139162146151143142140150136147137147135143144158150149152145143143137136127138132153130131150144125130136132123129122146120146126131122131121129140144118128121126118127122132114119125117109178109125108112120111110112118117107123103106100113991221071051011231161191001179210011711796101110136110101107114889411496851051081059291858882101859684113848689848497998972898093898970777779687971807288891236390657975806277726597725683736256626965676254695869646160566255565675526352566144564751465748505957545658495158544643484260465036434249496748613939264530474235414745402426283629292524263256342221192425241721122152171917151018101381164766”

One can just copy this big number and paste it into a web based big number calculator and test it herself.

4.1.2.9.1 Verses and Words Sum: Fact

In the previous chapters, we presented all the evidences considering the chapters, verses and words. We also considered chapters, verses, words and letters but there was no key coding over the chapter Al-Fatiha with them. I considered those numbers necessary to test the content information of the full text of Quran. Because of the rules describe in the beginning of the main chapter, we do not look at other combinations as these are the most meaningful and necessary information to test the intactness of the full text of Quran and its structure along with its content together.

In this chapter I will present other similar interesting coding we observe both in Al-Fatiha and full text of Quran. But as just mentioned, since this is code based on only verse and words number, it is not within the boundary of the described rules and is not considered as an evidence but only as an interesting fact. When I first observed this coding I had considered it as an evidence but I decided to simplify the rules as much as possible and thus I now classify it as a fact currently. Researchers should feel free to investigate more on this and the following code if they like and might consider it as an evidence in the future if they deem so. The reason I later classified this code as a fact instead of evidence is to simplify the overall key coding pattern based Main 19 system of the full text of Quran and keep the strongest part as evidences. Because otherwise, those strong and clear evidences might be ignored and seemingly weaker evidences might be criticized and using them, the overall system might be unfairly attacked to falsify. In order to make sure the Main 19 System are evaluated over the main codes of the main 19 system, I thought it is better to keep only the strongest evidences within the system and therefore simplified the rules. After that, I classified the code of this chapter, Chapter 4.1.2.9.1, and the code of Chapter 4.1.2.9.2 as a fact rather than as an evidence as I had classified when I first discover and presented them in around 2020. Otherwise, these two codings are also observed both in the chapter Al-Fatiha and in the full text of Quran with the same key coding patterns and stand as quite strong codes. The only concern I had was using only verse and words information to represent the content of Quran might be open to critics and might also cause the system look more complex overall. Now, let me present the code and move on.

Just as before this coding fact gets its rule to obtain the number to be tested from chapter Al-Fatihah. In this code, we also test decimal sum operation and we again observe the 19 based coding in the full text of Quran. Basically, in this fact, we sum all the numbers. Let’s first see the fact in chapter Al-Fatihah and then apply it to the full text of Quran again.

x<- nQuran
x<- x[x$chapter==1,]
tmp <- x$verse+x$vwords
tmp <- sum(as.numeric(tmp))

cat("The sum of the verse indices and their number of words in Al-Fatiha is ", tmp, "  and it is also divisible by 19 and the result is ", tmp/19)
## The sum of the verse indices and their number of words in Al-Fatiha is  57   and it is also divisible by 19 and the result is  3

Now we observed the rule and will apply it to whole Quran. Let’s first see the illustration of the coding pattern.

[Verses 1 + Total Words in Verse 1]+[Verses 2 + Total Words in Verse 2]+ . . . . . . +[Verse 6 (last verse of Quran that is in Chapter 114) + Total Words in Verse 6]

If we use the real numbers in the above formula, it would be like this:

[ 1 + 4] [ 2 + 4] . . . . . . [ 6 + 3]

And, the final number after all the concatenation before the digit sum operation would look like this:

411464

The sum of all these numbers are multiple of 19 as reproducibly proved below:

x<- nQuran
tmp <- x$verse+x$vwords
tmp <- sum(as.numeric(tmp))
cat("The sum of the verse indices and their number of words in all Quran is ",
    tmp, "  and it is also divisible by 19 and the result is ", tmp/19)
## The sum of the verse indices and their number of words in all Quran is  411464   and it is also divisible by 19 and the result is  21656
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0

This code, Fact 4.1.2.9.1, also considered as a fact as it does not fully align with the described rules of this chapter. Therefore, we do not add this into the counters of the overall 19 system of evidences.

Fact of even and odd pattern follow up:

Basically, just like before, since the even and odd coding pattern is not relevant for the Code 4.1.2.9.1 to follow up and thus the even and odd counters are not increased here. Because, even if we construct the even and odd based coding pattern, the sum of them would be the same as the one of Code 4.1.2.9.1 and just like before this test is irrelevant for this coding pattern.

4.1.2.9.2 Fact: Coding between Verses and Words

Just as before, this coding fact gets its rule to obtain the number to be tested from chapter Al-Fatihah. In the previous code of Chapter 4.1.2.9.1, we had observed 19 based coding between verse indices and number of its words using sum of all the numbers. However, it would still work in Al-Fatiha if we had used digit sum instead of the digit sum as the relevant numbers in the chapter Al-Fatihah are all single digit. Namely, both operations can be used in chapter Al-Fatihah and yield the same successful coding number. As per the rules of key coding pattern, sum operation has the priority and we if the key coding numbers are equal, we do not test for digit sum pattern as well. However, since this code is classified as a fact but not as an evidence of the system, I also tested with the digit sum operation as well over the full text of Quran and observed that it also exist in the full text of Quran too. We already observed success in the code of Chapter 4.1.2.9.1 with the decimal sum operation. In this code, we also test digit sum operation and we again observe the 19 based coding in the full text of Quran. Basically, in this fact, we compute digit sum of all the numbers.

In this chapter, I will present the coding based on the verse and word numbers. Similar to the rule, whatever the coding we observe in Al-Fatihah, we also test it on the full text of Quran too as we hypothesize that the coding in Al-Fatihah might be left as the clue for the full text. In this code, we observe the following 19 based coding in Al-Fatihah between verse indices and number of words.

Verse index of Al-Fatihah is 1 as it is the first chapter of Quran. The first verse of it has 4 words. We get the representation number of the first verse by concatenating verse 1 and number of words 4 as this: 14. We apply this to all the 7 verses of Al-Fatihah and concatenate them. We then obtain this big number: 14243243546379. The digit sum of this number is 57, which is 19x3.

Let’s first see the fact in chapter Al-Fatihah and then apply it to the full text of Quran again. Let’s run and test this coding of Al-Fatihah as follows:

x<- nQuran
x<- x[x$chapter==1,]
tmp2 <- paste0(x$verse, x$vwords)
tmp <- paste0(tmp2, collapse = "")
print(tmp)
## [1] "14243243546379"
#Test if the mod 19 is 0
digitsum(tmp) %% 19 
## [1] 0

As we observed, there is 19 based coding on the text of Al-Fatihah. Now the hypothesis is again, it might be available in the full text of Quran too. As I will show in the following, it exists in the full text of Quran too considering the text type of numbered 6236 verses.

Here is the head of the numbers table we will use. It contains the verse level natural numbers of the numbered verses of Quran.

x<- nQuran
x$text <- NULL
x$VerseI <- NULL
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbered verses of Quran.')
Table 4.4: Table head of the numbered verses of Quran.
chapter verse vwords vletters
1 1 4 19
1 2 4 18
1 3 2 12
1 4 3 12
1 5 4 19
1 6 3 19

We will concatenate all the verse indices of the 6236 numbered verses and number of words of each verse by following the rule we observed from Al-Fatihah. Here is the illustration of the coding pattern I just described:

DS[ [Verses 1 | Total Words in Verse 1] [Verses 2 | Total Words in Verse 2] . . . . . . [Verse 6 (last verse of Quran that is in Chapter 114) | Total Words in Verse 6] ]

Recall that DS stands for the digit sum operation. If we use the real numbers in the above formula, it would be like this:

DS[ [ 1 | 4] [ 2 | 4] . . . . . . [ 6 | 3] ]

And, the final number after all the concatenation before the digit sum operation would look like this:

DS[ 1424 . . . . . . 63 ]

Then, as we see below the digit sum of resulting big coding number is multiple of 19 and thus it is one of the interesting coding fact but still is not considered as an evidence of Al-Fatiha based 19 system of the text of Quran regarding the described rules of this particular system. Here is the reproducible proof as follows.

x<- nQuran
tmp2 <- paste0(x$verse, x$vwords)
cat("The head of each verse and words as concatenated: ",head(tmp2))
## The head of each verse and words as concatenated:  14 24 32 43 54 63
cat("The tail of each verse and words as concatenated:",tail(tmp2))
## The tail of each verse and words as concatenated: 14 22 32 44 55 63
tmp <- paste0( tmp2, collapse = "")

# Test if remaining is 0
digitsum(tmp) %% 19 
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 22051
tmpd <- digitsum(tmp)
cat("the digit sum of the big number is ", tmpd, 
    " and it is also multipl of 19*19 ! as follows:")
## the digit sum of the big number is  81947  and it is also multipl of 19*19 ! as follows:
tmpd/(19*19) 
## [1] 227

As we observed the digit sum of all the verse indices and their corresponding number of words is not only multiple of 19 but also multiple of 19x19! We observed a double of test 19 in one coding number. This is interesting because although, the digit sum of the big number has 5 digits and not too long but observing that it has multiple of 19 twice makes it more interesting.

Also, below is the 22051 digits length big number. Recall that the digit sum of this number is multiple of 19 but not itself.

“1424324354637911273841258611712811910101211111271319141615716111717186191920252112222323202413253426392720281329193028311532123323341335193619371138173910401441184284374410458468471248194918501051125285375427551556757185820591860286160622463156413651266967206823691870177124721073117437751976237797811792480238113821083298415854986138728881089269027913092119327941795996259718981299101001010122102741031210413105251061910717108181093311017111181121711331114301151211614117111182411910120311211512212123181241912522126301271412817129161301813191321713327134151351513631137191381013914140301411514221143451443414532146141477148191491715031151171526153111541315512156101579158241592016011161131629163916443165311661216723168171691117022171181721517325174291751117614177511783817991801618113182161831518432185441861718765188171892719013191251926193151942219514196731973019826199122002420114202820325204172051420612207112081620912210172112021220213492143021522216252175721816219262202622139222272231622414225142261322772284022946230302314523233233642342523547236252373523882391524027241624272432824492451624654247432483024960250152512725292535225422255502562425724258432596726039261242622426311264392652726635267302681326916270152712027228273302741727545276112771927814279172801428115282129283322842828527286491127311418511613746815913101611141291329142415241611176181819262026211822112320241525152625272128272922302631143211331134735183624373538153920401741204213438442045214674723485494550195185220539546553156135711587591560761256215636643265166620671468136913709711172177332748753676977277829792880138133827831484298513861887988989119014912492159324941195119610972598139920100151011710213103341041410514106171071010811109111102311111112351131411415115911618117231183111928120211211112212123101241312515126171279128121291613013131513251331113413135231361513713138613991402414161421314312144271452414621147191481014913150615119152401532515475155211563715714158715930160181612116213163816425165201669167331681616913170191711117215173171741517511176221771217817179361803018122182918328184121852318624187211882018991901119121192111932019414195431967197719821199302001112921632841451663771981391510131171128813181413152216141720182419352017211122172354244225582614271328829243013311232273319344035223632371538183915401541124214434944144594638472948204914501051205211531054185511562057205825592960306115621663166423651966276766836918707711172177319742175317620774878367918801281248213833084228522861587178822892890369132926093169440953396897279812991010031101231026210320104221051510671071410821109191101311111112141133311426115201162011711118811921120712171222112320124161251712612127401282912922130111313213210133121341413538136291372013861391414033141361421914316144181451114618147111481414914150221518152171533715419155221566157341588159141601416114162261632516414165151661316711168121691117024171541721817326174121751517650124253361431543662719827910107112412451332142515241618174218301929202321152218232124172513261427242816291330931263240333434133514362437123813391440194168422643154441453146264716485149335010512352285315543855135611572458125921602761166213631364476512662467256831692070197119723473257487525761677247817791080198115822683218416851486787188812894590169120921393249424955196209727989991110016101261029103211042410520106521072610822109151106411113112221131511422115171164511729118111192412011114214312411512631716813991013111012251391424159169171718719372013211422122312241025322611271728162993019312732133314342235283610371938223917401541124211431444204594623471448154985028511752255315542755656215722581459316022611762126317641065276696756823691270457139728732474147597615771878187912802581228211831484218578688798816891790169144922293499429951796129716981399441001510118102161039104151058106131071310825109211101311122112231131211423115111161811711118101193012012121201222412315124291252812691271012836129813028131101329133181347135191363113720138261392214020141311421614323144401453914628147131483714981502715142152351531715417155815614157351583715919160161611616291638164291652111213314410512667689911101111161217131314515416717151812191720252152228231224122572620273128222916301631163226332934113519361137373840391440234110421543364428451046184713481449155020511952105338543255856155729581759216096111621163136414651666146711687692770177125721373357425752376877167867915801381118213837848853886248719882289429012916921393169413951896189799899910100191012310291031610491051810611107610861099110711171124113111145115111161111711118611941203121412231231912481255126161272112816129221301013122132121331313423135111361113729138241391014091411814223143411441514520146361471314822149181503915111152151531415415155411563015743158321598160431612016217163271641916518166111671916814169401701017119172261731517451751317630177917810179301801418171828183518411185221861018737188281892919012191719271931219414195261969197101981219972001020112202720323204820516206111182173641151161172387911101811221223131314615121620172118619242012218221023112421251326192712281029193016311732193312342135133621371838163916401041334235432044194513461347174836491850135195217531854175510561257105814598603361126212632064965276626672068106911702571137245731374187522192143324225266187238169131010111312181320141115111624171818231924201621102282320243325232618271228282929302331233215331434293519363637313829391640434115422343134414451446154717481649155016511452225312542255175610571158165919602261266212631664176513661667196816693270267124722473127446751276977157811792080258127828832584188516861887118814891390179126922393199430951896149716981699271002510122102171031610416105161061210724108231092711015111371121611320114221151811617117271183111991205212118122221231712418125121261612721128141291515226329428523614715869151014111812271317141015391618171418291917201621222241232624432511261627272818291030163127321133103417352936173722381639194012411542114311441045204615471248749225012511152135311542155165655715581059206019614262106346415651066256715682569970137134721673177422751476107711781679680108117827832284138510865871688298911902791792149324942295109689789821991510014101141021510310104271059106161072410823109111102932548519616731822911101311101227131814161514161617391823191120242192272314241125926112729282029233010313132143310341835123617371138193910402641114220432344194515462447194819491950185114521853165416557561857215814591260176128622263236418651166186786812691570187197213731474117557615771378277913801181308212838842785158611872188368923909911992169320941895109669710989999100910124102121031610451051010691071510818109201101811110112121131711414115711626117811810119151201712191223123161526316416516625778159141016111212813131491517164171918181917209213222923232419252326192710281329103018313232193317341035113627372638263910403241204218432544845114622471448154911502251295212531554145585617577589591760106166214631764176526662467286830691670157157212731274675117633772478167913803781188211831884138512861387218822891090239199211931294129569620979989991410047101211021410361041010511106710714108171092911019111231152263244275256207158159510141135129131914271511164517421827191520721132219231524725232616271928112983028315132133339341435193625371938213984013411642184315116214316419521626711813937103311291217131614101551671716182219142052134224423172415251226132718281229430123121322533934153513361537263818391340941842134394426451446124711481049650651105213162737485769788997107118125137149158167175187191120821112212236247257268277281229930431732933113453563663743843910404415421143444845546347104884965055145295375485575685755865966066156246376446514669674686694705716725733748755763775785795805815826833846851486587788158959049149239339469539689779869951921837485867714899101013111612151313142115111641771810196201021722112313249251526212721281929830203115321233223410353236283714381839114010411842543154412451646747848174914507511252115312541055656125775895919601261236217631764146516661767156813692470207122722173157410752776297719781579188025812582683784148511861987108813892490169120923293179419951596159718988991010091011710213103161041210511106241071310811109711018111151122411391141311522116221175118151191912011121712291231212417125221261212714128812121239413517611723811916109118122313131471521161417131818191220122111229232524122512261027928122913301231133283322341735113616371338739184011411042134364421451246194719489499505512552953165414551556135718581859216025611362156310641965966146718681569227017711572117313749751276137711781479128014819821383128411851486138798819891490109111921293269415951496119727981499231001410119102161039104141059106910718108810951102211121111215334651661171186910101611712913111419151816191734182219382013213222332372417258262327152830292830123128321433113413351236123716388391940154184220431144945234613471148164928502651135213531054145519561857305819598601361116212632064965126611676688691070127115728731074167597613772478127917801081982358398410852862587138813893901591692393139420951296199789815991110051011110214103510411105141069107101086109181102411253541451368713814914101311111281361461591610171118819920112115225231424102582618271128122910308311132633934935163683711381139124084184216431444104512461347104814491450951105275375411559568573582959116012611162116396418651266867106886910708719728731674975257613778787799805818826839847856865879884894909914926931094495596997109814112534465461277889410181151291351411151016101751813194205217221123424525526327428229530231332333334235436637538639224035412428435448451046747214810495509515521153195495585665785814598606611562563136410651266126756866916708712672197314741375107612771878879580158117829836849859862787158812891290179199289349420955961697289812991310081017102810361041210571063107610813109121101011191121111314114171151111691171311871196120141211512261231812412125812681271212817129913020131181321213313134191351117211315410514687148998108111012713101461581671711181319132052172213236242225152682762815291330183113328331134103510361737838739164010411342134314441845114612472048849850751952115355485575613577588598607618627639647659661167968769870571872873157416756761277127814791480108114821283108416857866872388889119019911192893694129579610972098119991007101910291031110416105121066107510811109131108111811210110222312411570613712813915109112512141310141715221691722183719172062142212232224925252616271428202983024312132933113420351536273720381339104035411742943444114514462347144811499508518522753165421551656125785818597601661156217631564126527661067176876997018711872297329749751176107712784413253544546107785951031161271361421155165171018131913209211522423172426251026527322815298307316321433253473593643710381239540541842643744194584674774844965011511252853954555756757758559560106176212631464865766967468106977010711672973574875117687712781079780108168288312848855868875881489590591249269369469579699779859981001610110102610310104610581068107710851091411081118112711381149115811611117181187192263184195116177981199109112812121314141515161614179187192020921352226231324925112616271928222917301531783217334834133548361437193814392240334121427433844104531461147154811497501651185210531754235538568571158505919602361766239632764221921932241659612716817991017118129139148151316101716182119152020211922102392472572692712287291130103111321533834113593693713388397401641114217439441545164654711481349105095175275315541255145655714581359176013611162136312645651166467116822698701671972973107413759765771211243641151168711889510811412613814615716717518101972062111228235249255265277289298305317326336347358367374385395407411242643744945846347448349215075111528535544553563574583594602618626631364365566367868569470671672573474675576377678479480481482883684685586687488689690391392693794495396497698499410041013102710381045105410671074108310911110311151126113711441155116911751189119612041218122512331247125412631271112851294130413131325133313421356136913751383139101405141314271434144314511146514731484149515031514152615351541115591567157315810159516041617162416331641116541661116791685169517031714172317361748175517641776178417931801118161823183918451855186918791885189101908191519241934194519531964197919851996200520172025203420422054206520762087209421042115212421392143215621672174218421932204221622252234224322572265227191623394105106771681497102011111219138141115151619179182019242012219221423112417251426827728112993083153213331234133583616371338113916403841124214431244284513461347134810491450751952115355485511561557758659126027612162166320641965146614679681269970971772973107487510761277478879780118114821683118413858861587188818891190139117921593111124394195126127228139181017111012161317141015381613179181619332019211022112327241525262611272928152927302031203225339341435153617371838293912401041942104316441345184620471848264913502351652853155412551556135725581759206015611762863186413656667671168146977015711972217313748751776297726782879218016811782268314841885198615871688191121031141051261071282197103111612181311141615616131727181319132019218221723132420252726122718281429233063115321633233412357361737738163913402841194212438441045214625471948134914501651155219531254655135695775817595601261136214632264156516666671568176991122384125861171082293210131181251391451591611176188191420112120221323142421251626827182827291630223193211331834635103615371538163922402241154214431644945114617471848284910501951952115314542455125620579581959860101124334958618716889810271114121813151417152916251718181619112030212122152315247251526102721281129253016311932223331342711283184245176671088914101411111216131614141515161117131881912202121922132314241025112618271728729113051142123642852862971788922101611612131326141415131615172418141935202321172218231824162516261627132816291430173114322033253414353036243748382239134017418423431344845846647848124923506251355225537054115530561457145812592260196166212631564765866126786886917709711472187315117218332410511616716816929101311121227131914271520161617818171919201021212226232224172592611271228122973010313232153334341435836133723389392040104113421843344411451446244717487498501651105295310541512421932241151561371382591710241134122813281418151116617518341942042142216234241225132672722281729163083116322133133411351436183725381039244033411942194326443045251122334353677881091210811121214138141115151661751812199201121722823152452542682772813298301231113263310341035836133793883974015418426439446451146114724487498507511052135310541155756757658559460146156286356456511669671068769127087112726736747757769771178117910801181148210838122232435766758994107111212313414415616717218419720621722723724325426427528629530103163243353443510366375384396404414423433443455463477484493505517524537544555565576583596605614626634646654666677685694704715724735744755765774784795804814823834845856865874884893903916924934943954964977985996100510131022810341044105710651073108410931103111411251131011451155116411731183119412041214122412341245125512651273128412941304131413241334134413541363137413831394140514141424143514461454146514761484149515061515152415341544155215641575158101594160416131624163516461653166316731686169417041715172317341744175317621776178417931806181318241426310410586127108159710101161281371471510168171118719520621722232315243225926312716281329930731632113363493515368374384397406411142643104414458465475488496505517524535547555564574584591060116111621063664665116676746836997087197297347467515761077578679680481482483484485786108758841621033341652363673183492410221191251391461519161717121813191020202131222023342413251026122711287291930431732153383483512361537123836391040841184226431444114518461747254811492250115115521553215413551656155795812591060146111629631164765146666717682269157097134729732074167517112631441352161072781691210151113121513141481516161517131815196201521302213236247251926182713283929273011311432733163430352336103723389391240234110421543224412451046134719481249135016511152105385445512562357125813591160136120621263764216514662067306812691070971672673774177511768771478327998012816822583158412851711243747517616788991410151116121913914231525161917141851982012211822202392411252526112710281429163019311632433133417351136113719381239224026419421343174430451846114728481249115032511352175319541211213104105196127228199161015111912131338143015341618171118221992022212222242329242225122612271728132916301031143263315347359361737103811396401441942154384420452746164721482749155011512252275315112236475866788791010111112121113201441591671712189191220152182211232124142572692752872993093110322533173453512361137738123994011416427438446451346124774813491250751185211531154755656457958145910608611062763176496511661067768969570571157277367467567667797877958011818828838841185138613878888896112238455667788109510611512613714615616617818919920621522623524625526327428429830731732633734335836537123873984054110428433442454462475487495506515523535544555561057758559311263649520612748149111019111112141316141415111613172418131915207211722132324242125162618271028142911301331123222331134143516368378112631542951869714825924102411191216131314915451618172818171992027212522122313241825142632271028172918302031153218332234183527182183184385364710869810161111122213141413154416241761815191420272112221023724725162615277281029113012318322133113415351236133763830152153441951962178859810251137122013914141531162817271819197201821142212231224192540262827282814295411622331749512618728879301010114012321321142715181616171918101321137495961271185910105118127134149151016141781881992062162212236246254261027102882983093153263373453563615371338133912405417427436449451312223242536373849410211512413514715516917618319520421422523924625926627528929930831532633534435636737738839640741742943844845746847548449750851115213536545555566579587599607112233425262748494103113125136146156161217518819620721192252382472552672762892983073163283363463583673773893954074154274394494574694710481049513253445536373839510511512413414315316517518619320321422423252442532618279281629113016311632313333433553673733853964044144244344444554644744844945045135295325435545655725865946036126231427364755687888991051151291351461561641771861992062142272332410259265277288294304318327334349357365379385393407415427439445454466475489495506516525534545556112232425363748496103115124134145156164174184193204214224234246254264276284291030431432433173443583643763843984044164244364454544654744824945035145255345495545695745835946056146236346416546636746846947037147247347467547667747861323324453637385951021121231331431531631741851952032142222332442562642752832923023123223343423533623723823934034154234334444554654794824945055155255335445535645745835956076196266336456566626736846977067147267357447547657737837948048148248348438578658748858949069159269339429559641921139436586127158159171037111212221327142015151628171318121920203921252221231524122528261427392822292211822332142651861574783892010171131122313241419151016101715181719152082192251111241314412513625737818931102311281216131214231511161717101818191020102118221323192417149213313452513619715821921105611211239132011129394115246327168119141012111512171391436112221384105236187981892210151121117212311422514618720817918102111111172113941451361671881092710111116121113914191581616171218514223032142851463272581497101711341225115211329421517623712846912102711241217192113184105126778813918101111512913914715141611171218819152015211222122312248257269271328152913301014253544526271183941051131241341451571631710182197202212227233246254265273287296305316321033834635336437538539124044184294311441045546747548114910505511252511223444546671585961061171261361461531651791861992052142232322482511264274284293302313327336345355365374384393404417426434445453464476483495504513524142434411536372849310411912213314615316217418219420421422223524525226427628529430103173253343453543653753883954074184284394491142735418576571484971061141291361431581671751851952042113223231324825122610271028151132939475106117988913101311912111314141015516817101881910208218221223162411251126727132813132435465568768699107116124135148151116617818619920781322324252637284941041141241321431541651721831932042122232332462552622742842923033157322333343353362377385393403412424435444454464473484495503513529535543553561114243546556473829310511312413614515316617418419420421222323324325526427328329330431432333534335436537638539540711121037465867778791010711812513101461581651761841992072113228236249255267278289299301131101222324252637383931031131231321451531631731831932052142232332432542622772832963063163243333433543643733853954034154234364444534654734864935041223344253647282931031131241331451541621751861942042142222332462532622752832943053133223323423563653710381439940161222324252637283921051141251341431541661751861942032122232322442552662762832943043143223333443553643733833944094144254344434554691223344453637484921031131231331421521621741841942032132242352442542642732822923023123233333453523623763833924044124241323334353637383931031131231331441531621731831942062132232342452552622752852981323334355677486941031121231341441531641751861991226354552657684921031141271371481561641771861942022122242332452542662732842983043163263343463533661323334453697584941061131221351451561631731831942042162242342432591322324353647689910101411141241341431531631741821952042142231224324654647584931061131231331431531621741423334353637982941031121241361441541641731851931423324354667683921031141231331421521621761841942042142232342442532641122324356667386951031141231351431511161017518519420421622523924525526427428529330214243345566475849210211312413214615316417918319620312233343536373839410411312313714715313233443546272849210211612313414315416317218419620521211233545546473839410411414233343546473831222334654697484152433435564738493103115123134145156163172182195152536495511226334115166167982114233443546676861222324353647484971041151122344554647484921041121223334455627485112439142434445463748393172534445312243447142435425563721323341424354555641527371526344355142234451424354555142232445563”

Here is the link to access the 22051 digits length big number: https://github.com/quran2019/Quran19/blob/master/5.16_Evidence_bignumber.txt

Fact with the Even and Odd chapters at the Verse level as digit sum:

As per the rule of Al-Fatiha based 19 system, we should test the same coding pattern of the code of Chapter 4.1.2.9.2 with the even and odd pairing coding as well as the previous one successful. However, the even and odd pairing coding is not applicable in this particular case. Since the code of Chapter 4.1.2.9.2 is based on the digit sum of all the numbers of the big number, even if we construct the even and odd based coding, the digit sum of this big coding number of the the even and odd based coding would be the exact same as we saw in Chapter 4.1.2.9.2. It means, we would again observe a successful coding but this would be the result of the mathematical property. Therefore, there is no point to calculate it again as the even and odd coding pattern does not bring any unique and independent information.

Basically, the even and odd pairing coding pattern is not relevant for the code of Chapter 4.1.2.9.2 to follow up and thus we do not need to test it for this code.

4.1.2.10 Overall probability of Al-Fatiha based 19 system in detail

Below I will calculate the probability of all the evidences so far of the main chapter based on Al-Fatiha and without letters information. They are bound by the rules described in Chapter 4.1.2. Recall, all of the evidences of this chapter suggest the 19 based coding design within the full text of Quran with respect to chapters, verses and words information. If we conclude that there is a design then it suggests that the design has not been changed since year 632 and thus our witness to this design supports the current knowledge among Muslims that the text of Quran is intact and unchanged. Now, we will measure how likely to observe such a design by chance below. The overall probability of Al-Fatiha based 19 system presented in this main chapter, Chapter 4.1.2, is calculated in the following.

So far, out of total 6 trials, we have observed 3 validated evidences of Al-Fatiha based 19 system of the full text of Quran, regarding only Al-Fatiha based key coding patterns and without the letters information. As per the rules, we also have witnessed the compulsory follow up even and odd coding patterns as successor evidences after each of those predecessor evidence codes. Out of the total 6 trials of even and coding pairing successor trials, we have observed 4 validated evidences. So overall, we witnessed 12 trials and 7 validated evidences. These are all the possible key coding patterns we observed from Al-Fatiha with respect to the rules described in the beginning of the main chapter, Chapter 4.1.2, of Al-Fatiha based 19 system.

Let’s now calculate the probability of all the key coding pattern based evidences from Al-Fatiha along with all the successor even and coding pairing based evidences that exist over the full text of Quran, without letters information, as below:

tmp <-binom.test( (alFatihah_success_nums+evenodd_success_nums), 
                 (alFatihah_tested_nums+evenodd_tested_nums), p = 1/19,
                 alternative = c("greater"))
tmp1 <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", (alFatihah_success_nums+evenodd_success_nums),
            "successes out of", (alFatihah_tested_nums+evenodd_tested_nums) ,
            "(with p=1/19) is:", tmp1))
## [1] "The probability of 7 successes out of 12 (with p=1/19) is: 7.00e-07"

So, the probability of key coding pattern based system from Al-Fatiha is calculated as 7.00e-07. For some extremely skeptical people, I will double the number of trials and re-calculate the probability for them so that they can also be assured about the strength of the presented 19 System:

tmp <-binom.test( (alFatihah_success_nums+evenodd_success_nums), 
                 2*(alFatihah_tested_nums+evenodd_tested_nums), p = 1/19,
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", (alFatihah_success_nums+evenodd_success_nums),
            "successes out of", 2*(alFatihah_tested_nums+evenodd_tested_nums) ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 7 successes out of 24 (with p=1/19) is: 1.75e-04"

One thing to note that, inferring the rules from the observed codings is not that simple. The rules are based on my best educated judgement. I aimed to simplify the system so that rules are general an used in over all of the book when suitable. Therefore for examples I kept the universal rule of this book, all coding are always tested in both 6348 and 6236 verses text types, in the Al-Fatiha base 19 System. However, in the presented Al-Fatiha based 19 system, for each Al-Fatiha based key coding pattern, which is the predecessor coding, we observed the successor even and odd pairing coding pattern in the same text type. Namely, if the predecessor coding was observed in all the 6348 verses, then we also observed the successor follow up coding in the same 6348 verses based text type. It as true for the other text type too. If the predecessor coding was observed in the 6236 numbered verses, then we also observed the successor follow up coding in the same 6236 verses based text type. So, the rule could also be inferred that way and their probability could be calculated together. I will discuss below that scenario, which present the system from a different angle and demonstrates how strong it actually is.

In that case, since the coding pairs are dependent and we have to test them both, the probability of observing a single evidence pair based on an Al-Fatihah based coding pattern is p=(1/19)x(1/19)= 1/361. Here, p stands for the probability of each event to be successful by chance, namely probability of observing two dependent codings together being multiple of 19 by chance. It is because the probability of the first Al-Fatihah based coding over the full text of Quran being successful in the full text of Quran is 1/19 and then, as per the suggestion of the alternative case, we have to test the follow up even and odd pairing coding in the same text type and it has also probability of being successful as 1/19. Since they are tested together one after another in the same text type, the joint probability of observing these two coding events together, is p=(1/19)x(1/19)= 1/361. So, we consider a single statistical event with probability p=1/361 as testing the two dependent codings together in the same text type of the full text of Quran. In total we observed three double validated such evidences. Lets recall each of them and how many trials we had.

For the first double validated evidence we have the dependent evidences pair Evidence 4.1.2.3 and Evidence 4.1.2.4, which was successful in the text type of all the 6348 verses but not in the text type of numbered 6236 verses. So, we have two trials and one success with p=1/361 in this double validated evidence event. The second double validated evidence is the dependent evidences Evidence 4.1.2.6 and Evidence 4.1.2.7, which was successful in the text type of the numbered 6236 verses but not in the text type of all the 6348 verses. So, we have two trials and one success with p=1/361 in this second double validated evidence event. The third double validated evidence is the dependent evidences, Evidence 4.1.2.8 and Evidence 4.1.2.9, which was successful in the text type of all the 6348 verses but not in the text type of numbered 6236 verses. So, we have two trials and one success with p=1/361 in this double validated evidence event.

So, in total we observed 3 successes and 6 trials with p=1/361. We can approximately calculate the probability of our observations so far in Al-Fatiha based 19 system with respect to the same text type condition considered as follows:

tmp <-binom.test(3, 
                 6, p = 1/(19*19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", 3,
            "successes out of", 6 ,
            "(with p=1/361) is:", tmp))
## [1] "The probability of 3 successes out of 6 (with p=1/361) is: 4.22e-07"

As we see that, if we were to include the same text type rule in the follow up of key coding patterns in codings Al-Fatiha based 19 system, it means we would witnessed an event with the probability of occurring by chance alone as 4.22e-07.

Since we observe an intact and unchanged design over the full text of Quran, this system along with its miraculous evidences, supports the current accepted narrative of Muslims that the full text of Quran with its word content and current text structure is intact and unchanged since its completion by the year 632.

Now, for the very skeptical people, let’s double the number of all trials but keep the total successes the same and see what would then be the overall probability. This should further calm down those skeptical people.

tmp <-binom.test(3, 
                 6*2, p = 1/(19*19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", 3,
            "successes out of", 6*2 ,
            "(with p=1/(19*19)) is:", tmp))
## [1] "The probability of 3 successes out of 12 (with p=1/(19*19)) is: 4.59e-06"

As we observe that even if we had the double of the trials we currently have, what we observed so far still stands as statistically very significant, which still suggest the design of the codes we observed.

I think both ways make sense, but I decided to make rules as universal as possible an therefore kept the universal rule of applying all coding patterns always in both text types. An in that case we had calculated the probability of key coding pattern based system from Al-Fatiha is calculated as 7.00e-07. It is statistically extremely significant, which suggest that what we just witnessed should be the result of a miraculous design. Of course, God know best and this is my conclusion based on the factual observation and the result of the statistical calculation.

Recall that all of the evidences of this chapter suggest that there is 19 based design within the full text of Quran. Since we witness a miraculous unchanged design, this suggest that the book, which itself claims to be of divine origin and will be protected, is intact and unchanged. Even, if you do not read the rest of the book, these evidence should be sufficient to witness the 19 based coding system of the full text of Quran. I have PhD in Error Control Coding in telecommunications and considering the rules and the entailing evidence codes of the Al-Fatiha based 19 System and the statistical calculations, my scientific conclusion is what we observe might best be explained by a super natural design considering the technology and history in the date of 632. Surely, only God knows the absolute truth and we can just conclude on what we observe. In order to find out more about this supernatural power, I suggest the readers to read the content of the book, Quran, for the answer, in which we will read that God has sent down Quran to all humankind and it is the final and ultimate message and the Author of the book promises that this message will always be protected. The 19 based evidences we observed so far, suggest that the full text of the book was indeed protected.

In order to observe the probabilities of different chapters separately, I will not add the Al-Fatihah and even-odd counters into the global counters for now. However, I will incorporate their probability into the calculation of the over alls probability of the book in the end or at to any point in the book.

So far, I presented the overall probability of all the evidences together of Al-Fatiha based 19 system of the full text of Quran, without letters information, which I presented in this main chapter, Chapter 4.1.2. In the sub-chapters of this chapter, I will also separately present the probabilities of Al-Fatiha based coding alone and also the even and odd pairing codings alone to make sure we measure them separately as well out of curiosity. Since we have two main dependent coding patterns within the Al-Fatiha based 19 system, I want to present the probability of them separately too. It was not really needed but I wanted to see their individual group probabilities as well out of my curiosity.

Finally, I will add these special counters to the counters of all the key coding pattern based codes as below so that we can approximately calculate their overall probability too in the end of the main chapter.

# Counters for all the key coding patterns
key_codings_tested_nums <- alFatihah_tested_nums +  evenodd_tested_nums
key_codings_success_nums <- alFatihah_success_nums + evenodd_success_nums
4.1.2.10.1 Probability of the evidences based on the Al-Fatiha codings only

Before calculating the probability of observing Al-Fatihah based evidences, without letters information and ignoring the even and odd codings, we need to make sure we counted all the possible codings we observed in Al-Fatihah regarding the rules described in the beginning of the main chapter. Based on the defined rules, we performed 6 trials and observed 3 different Al-Fatihah based evidences over chapters, verses and words.

Now, we can safely calculate the probability of observing the Al-Fatiha coding pattern evidences. So far I have presented many different evidences based on the coding patterns of the chapter Al-Fatihah. I have been counting the number of tests and number of successes out of these events to be able to calculate the overall probability of what we have been observing in this particular chapter. It is a good time to have a look at them by calculating the overall probability of only the Al-Fatihah based evidences so far as they are in a similar category regarding their structures. This means, we exclude the even and odd coding evidences. Here is the overall probability of the Al-Fatihah based evidences so far.

We have 6 trials and 3 successes with Al-Fatihah based coding patterns. Probability of all the Al-Fatihah based coding evidences so far in this book is as follows:

tmp <-binom.test(alFatihah_success_nums, 
                 alFatihah_tested_nums, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", alFatihah_success_nums,
            "successes out of", alFatihah_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 3 successes out of 6 (with p=1/19) is: 2.58e-03"
4.1.2.10.2 Probability of the evidences based on the Even and Odd codings only

We have 6 trials and 4 successes with the even and odd coding pattern observed in Al-Fatiha based 19 system presented so far. Probability of all the even and odd pairing coding evidences so far in this book is as follows:

tmp <-binom.test(3, 
                 3, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", evenodd_success_nums,
            "successes out of", evenodd_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 4 successes out of 6 (with p=1/19) is: 1.46e-04"

4.1.3 The Main 19 System evidence utilizing total number of chapters of the Full Text of Quran

In this chapter, I will present another type of the key coding pattern based coding evidence utilizing the total numbers of the text of Quran.

In the main chapter of all key coding pattern based system, Chapter 4, I had discussed the three different key places or sources to look for key coding patterns. One of them was the first chapter of Quran, Al-Fatiha and I already presented the system based on it without letters information. The second one was the first and the special verse Basmala. However it only has one key coding pattern without letters information and that coding pattern is the concatenation of chapter, verse and words information (chapter 1, verse 1, words 4 = 114) and I already tested this key coding pattern and showed successful evidence over the full text of Quran in Chapter 4.1.2.3 at the chapter level data. Because of Basmala, we could also test it over the verse level data too. Therefore, I add two more trials to count for those testings in the counter.

key_codings_tested_nums <- key_codings_tested_nums + 2

The third place to look for key coding patterns was the total numbers of each natural numbers of the text. Namely total number of chapter, verse, words and letters respectively. Since, we are still considering only the key coding patterns without letters information, the only key coding pattern from those total natural numbers of the text if the total numbers of chapters, 114. As per the define rules of the key codings in the beginning of this chapter, we accept it as the key coding pattern and have to test it over the full text of Quran in both text types, namely in all 6348 verses and in 6236 numbered verses. We also have to test it in chapter level and verse level data. However, the chapter indexes are from 1 to 114 and by the general mathematical property, the sum of those indexes must be multiple of 19. Therefore, we do not text on chapter level data as is is obvious that they must be multiple of 19 already. So, the only mathematically independent test we can do is over the verse level data by summing the chapter indexes. As I will prove below, this key coding pattern, sum of chapters, also exist over the full text of Quran considering verse level data too in all the 6348 verses.

Therefore the evidence code of this chapter is based on the key coding pattern of the total number of chapters. Namely, when we add all the chapter indexes in the verse level data of the full text of Quran considering all the 6348 verses, we obtain the coding number 215574, which is multiple of 19. Below is the proof for this evidence:

tmp <- sum(unQuran$chapter)

# Test if mod 19 is 0.
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0
print(paste("The sum of chapter indexes is ",tmp))
## [1] "The sum of chapter indexes is  215574"

As per the rule we also have to test the same key coding pattern in the numbers 6236 verses and therefore we have two trials and one success with this key coding pattern. Let’s add them in the counter for key coding patterns

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Also hold the key coding counters without letters separately in these counters:

# Counters for all the key coding patterns without letters information
key_codings_tested_nums_NoLetter <- key_codings_tested_nums
key_codings_success_nums_NoLetter <- key_codings_success_nums

4.1.4 Overall probability of all the key coding based evidences without letters information

Considering all the presented and considered key coding based evidences, we have 16 trials and 8 successes so far. Probability of observing them by chance alone can be approximated as follows:

tmp <-binom.test(key_codings_success_nums, 
                 key_codings_tested_nums, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", key_codings_success_nums,
            "successes out of", key_codings_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 8 successes out of 16 (with p=1/19) is: 5.17e-07"

To see a more conservative probability, I will again double the total number of trials and keep the successes the same and see the overall probability in such a case:

tmp <-binom.test(key_codings_success_nums, 
                 2*key_codings_tested_nums, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", key_codings_success_nums,
            "successes out of", 2*key_codings_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 8 successes out of 32 (with p=1/19) is: 1.98e-04"

4.2 Key coding pattern based 19 System with Letters information

In Chapter 4.1, the first sub-chapter of the main chapter, Chapter 4, I presented all the codes of the key coding pattern based 19 System without letters information. In that chapter, I did not include any coding with letters information. I made this separation to make sure the system presented in Chapter 4.1 is universal and applicable to the writing of the text of Quran with respect to the most of the Hafs manuscripts. As I mentioned before, writing the same words might be slightly different in some rare cases, similar to color and colour in English. Therefore, the codes with letters information in it should have been separated to make sure any textual criticism or doubt do not cause an unfair judgement on the presented key coding pattern based 19 System. As a result, I will present all the key coding pattern based 19 System with letters information in it under this main sub-chapter, Chapter 4.2. All the rules are the same as described in Chapter 4. However, I will present here the codes with the remaining possible combinations of the natural numbers of the text, which are as follows:

  • chapters, verses, words, letters
  • letters

4.2.1 Letters pairing of Al-Fatiha based key coding evidence

The only key coding pattern observed in Al-Fatiha with letters information is by pairing the letters information of two text types of Quran. Since Al-Fatiha is identical in both text types, which are all the 6348 verses and all the numbered 6236 verses, as per the rule we will have to test in both directions while pairing the two text types with letters in the full text of Quran.

Let’s first see the number of letters per verse in the first chapter Al-Fatiha as follows:

x<- nQuran$vletters[nQuran$chapter==1]
print('The number of letters per verse in the first chapter Al-Fatiha:')
## [1] "The number of letters per verse in the first chapter Al-Fatiha:"
print(x)
## [1] 19 18 12 12 19 19 44

Now, when we apply the pairing coding pattern, we observe the key coding pattern of Al-Fatiha, which is multiple of 19 as shown below.

tmp <- paste0(x,x, collapse = "")
print(paste("The code from pairing letters is ",tmp))
## [1] "The code from pairing letters is  1919181812121212191919194444"
# Test if mod 19 is 0.
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0

Now, as per the rule we have to test this key coding pattern in the full text of Quran too by pairing the number of letters per verse of the two text types to each other. As proved below, we also witness this key coding pattern in the full text of Quran too. Before that, let me also illustrate this pairing coding pattern used in this evidence as follows. As mentioned before, it closely resembles to the double helix of the DNA structure, where one strand is the number of letters of each of the 6348 verses and the corresponding strand is the number of letters of each of the 6236 numbered verses as illustrated in the following:

[ Number of Letters of Verse 1 (of 6348 verses) ] [ Number of Letters of Verse 1 (of the 6236 numbered verses) ] [ Number of Letters of Verse 2 (of 6348 verses) ] [ Number of Letters of Verse 2 (of the 6236 numbered verses) ] . . . . . . [ Number of Letters of Verse 6236 (of 6348 verses) ] [ Number of Letters of Verse 6236 (of the 6236 numbered verses) ] [ Number of Letters of Verse 6237 (of 6348 verses) ] [ Number of Letters of Verse 1 (of the 6236 numbered verses) ] . . . . . . [ Number of Letters of Verse 6348 (of 6348 verses) ] [ Number of Letters of Verse 112 (of the 6236 numbered verses) ]

The number of all verses is 6348 and it is 112 more than the numbered verses text type. Therefore, while pairing both vectors one-to-one, naturally, the shorter one starts over from the beginning part of itself and keeps pairing. As this is the most natural operation approach, it is also the default way of processing in the R programming language while pairing two unequal vectors to each other. Therefore, it does not require additional coding in R.

If we use the real numbers in the above coding pattern, it would be like this:

[ [19] [19] ] [ [18] [18] ] . . . . . . [ [20] [13] ] [ [18] [19] ] . . . . . . [ [13] [98] ]

[1919] [1818] . . . [2013] [1819] . . . [1398]

And, the final number after all the concatenation would look like this:

19191818 . . . 20131819 . . . 1398

Below is the code to verify the coding pattern.

tmp <- paste0(unQuran$vletters, nQuran$vletters)

print("The paired numbers from 6235 to 6238:")
## [1] "The paired numbers from 6235 to 6238:"
tmp[6235:6238]
## [1] "1920" "2013" "1819" "1618"
print("The paired numbers from 6347 to 6348:")
## [1] "The paired numbers from 6347 to 6348:"
tmp[6347:6348]
## [1] "2065" "1398"
tmp <- paste0(tmp, collapse = "")

print("Test if mod 19 is 0.")
## [1] "Test if mod 19 is 0."
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0
print(paste("The number of digits in this code is ",nchar(tmp)) )
## [1] "The number of digits in this code is  26634"

As we witnessed the pairing key coding pattern also exist in the full text of quran when paired from 6348 verses to 6236 verses in the order of pairing. Since the predecessor key coding pattern is also suitable to consider pairing from 6236 towards 6348, we have two trials and one success in this evidence based on the key coding pattern with letters information. Let’s add this into the counters of the key coding pattern based evidences so that we can approximately calculate the overall probability of the presented system.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

As per the rule, we cannot test even and odd coding follow up coding with any pairing type coding pattern. As a side not, the code I will presented has the similar approach of Evidence 4.2.4.2, but with only letters information at the verse level numbers.

Also, below is the 26634 digits length big number of the presented evidence code.

“191918181212121219191919444419332727474752523333474753534747494951514343292977777373343457577272191986861021025353999978786666145145155155828260607070111111707048481011016363808086864343686851516969797942424141555547473838585869698484505053533030373712112160603030909095957777118118257257108108707054545454454583838080717162629797454557571411417777101101363645451021029191545452521501507171231231636313813846461081081071071191195151131131676744441021027272555544444444898930830849496565989861615959737312312376767272585814114111311352525656474710310346461121127070585867678383115115122122656576768181747433337070114114545463631351357979373763631271275454898919619614614613013073732727757566661381388787323253535050666645454242898991915757646437373535187187123123575796966868505089896666626293931221226161585826626616316339397777545455556161123123185185777728628687871201205959130130242465651071076666290290121121110110494997975757353510310365655959525249496767494972727474939321421412712710410493932472477272123123118118182182122122818166666565545429291771771931931141142032031471472882881221222002001111111401404444656511611634343131106106383869692172171651651141142402407777122122414120820887871891891021021181181691692492491481489797929244441741741231231481481251256868656557578989112112134134797918618645458787545472725252545455155113813810310311811819619631924353247453377450371975054197475466476866436811643125116107125501075450725410772122107881225088815065815365925386921138679113967962964762484727486627109661381095213892526392806360803760813791813391793335791873580187348086344686304613230601325960325947322547114255411428541292870129757061756661546639545239795211579341151443436144116361201161201206712014667291466229126625212683524783374743376243916256919956449947444247994250997750697774695474157547015765708165438149434449113444811315248591528459408477409877125981271258812749885749475760476960686943684543614562612762292755297155104717010454702954412910541331056033516010751991078899878850876450266484261668410616629110689291157895315728531212875121687553683253107327310747731514774151547478544778694777696477546487545387745314674122146951223795120375512099551089999108869938865738100574510095455895188582918830298530121855712112557821911512558827911518658917970186719163702717129963792715529910779705590107106701579083106491576383265491856326426561185602643461996053345699108538856192108928815819278928515868785585436861552054364614420517764121446917754121406994544340379480433837958010038102951321001251026513273125656510573776510710527772110792272821499263287549936313975989320413914398732044914310173564913510187567713557876177885712861168881621282351687016217023517270371701281726437401281226496402811221069694281671063094546782307954508246795450135469754811356797438136671094335363210995357232669573724566178731264510217843126129102404349129624016349130627816328130717813728161719113758161859145589285484553924948100534349781001624390781031623190128103323157128603273571366013173581366613161584366506144439950216448799129216508773129191509773242191278191379720124228127886137117201472814086107117207471414011910792207801411571191349210780921577013475107100926970527562100996964525662389910664162561403852106681628814049526468498871492816411349687119528114011311768661952281401361174566104228116136804515810468116488010915854687748110109685463776711021868626310467942181296292104899478129139929689407898139589690407198425878907071128428978637067128408969635267205408269925272205116821049219672861161191043719645867311910037344585731001008634213851281009986592132801286199865966280976170861536610897477010215342108694749102524242195369138496652534244535613841661005337449256294136100563732921372968365456573243137416813354475768436041391337647111686060663990761141115060676682907111462504667578263717962424690575663647943421039065561056471431081033565741057771591081133595747177485973113369510571324821731033647105175321602138103106475817550160543869106655853509254936952655853100923493445256585910081346644171561025920181128666917162102692015912818769686265695359431875968446544535343103599044604410053951036290105604810063953962401051164859639639100406911611859110964110041691511183811013441384137151713827134753812837967111727957583128145967011710695167831281451227051106142167361281181221805114914275367511844180611491447513875774464616614439138327710464866643950325710443864619364275045575643484673365727504521561648367366575450702110516263613066545448703410583261381309454694878346483111138110944769747858641571111611106247104744258701571501611106248104874262707215068110874895874562146721456835876595123457214676145323539654412359727176573258393944305911371715710758663913230113113967137107666633132631135396463754663633406315653107468354933615940531563310759836493591598253853340593864445979821028541407138344465793610224412671323430653436162446262232403055344116254625221740205512417725412522176620100127677884147229466471008076908843476094139479980369040438560109139165996536894015385631098916574651728946153696359896374170172129462226914159326320017093129732221181418132792004193807377118172815279794110480647727172645213279471044264122276964311324047184240122886940311534010418125405588284033153561046412599553928473352563264449950393147895241326944485089318289344147694748511910189338252346747994710351581013033545281678699261039758543036543981498695265897955461364839824974956958729552619348588298748169597266524693150581499888818859616667467615014014974886788376174676876821403874446743375574356813482503853447643375511535107134785039534676943754115209107577885399546419464541352099857133857495105417764561353998681337974931055977455610239836899791109380594445311029783170999611083804044113311239710717010296648360401391138412316010713410212264706017613971841131605213477122707071176867164113635265775670937147869564816345654456629382471189511481554564447362648267118105114795516864125731326410767621051907952168371256713247107936210319011852433711267714774938210346118764356112807110374908286461327688565980691037190113861281329988745965696771851135412811799867410165616717485109548411788866110161611091741271094184199887761102617810982127544156199797760102547822829954113561267910160625471193022749966113861261041018762427113830657454661238671104688784421661381136519854451237271118688984461666311311419848453972631189789604683636611481484539606347974560428387666381494530608147534539425287436384495830228163534439735276431418436582122656342449073617696141353659211366560428790936169963835485977136266039876493336985385248487726268339131645133118852852614810926858344131305133118942860615310960856444453010033389455608553876045643645351009838285585856487127459319473656354898952875856464621276593146471005650481009541752764676261653514640100113508110092413827123675961383566405211358815592733842123945948387366865284585655767363427294754863735286828461566576286365728175616350526882111618365852870654781736141504468631116883488548706047487322415444486310968434830481186057483122110547448421098243137307811837577931651108274864237823113744784637427936659482448657372031364437465742753677947244435746206636683729571107535774272614369464166186873292211031356442636163691064130185773591968224331346454633863761062030805773597768424313834435491387676892068803673437742427313813143849168764189386811536112431044246731271318684706810541413850115961125710453463912792861107047105544161503396725735533939729235110294774547161663311472883511139110726235652927744471486625114458812311184110636250651392772445348702551454912347848163101503913984723953467056514749274772813910135395584169391054657562647362749723039593567551231697910594576026115361014911130112599067561235879309454191216042115861011071115511218890182561185858303454541211014272863010794557418867182521183858106341935455101139725330899410174746782523238581066819371556413972535489761017574868211732485850681577114364112197872785443762375258662117904856501815713814318711283785978554349238425506221905356861810713843187618355595855114496184545039213953608645107109436461515542585011432613154363960392560304539109316427513742345039322931283633602319262539303639373121272937523434394229632829334223252633392836453736212229275231343942206324292442172518334628204519364122202730312039172040243024261722181846372028193541322029302320261724402930202616222918233762284035223223291823232625242429192041162129152319622440282225233018302319252424691919413621631521192124202819251430273019193424286924192236426368213621302040193114592748194434472871247122491910042496822362730394025314159324855444947407169718649981008249442290276739642591414332118551224946407369538637987882254461906367676428913143671185812232465173485343373878342557613463376765285831966771587232635161486943653854349357743492379865625842961037110972716375616869119651105429933974519245989162434259103103109817189751316868119831105729643976514045419141436759561036981488952131946862835657276465765140107414441576784569469204866527194436235564227496575519110753445157328495945720316660717643573511042494971754291435311651593231198295685753317160527645575011036491087151425343451164859503155824868595334719052714556505736481082451675359454448485030558748585982347690427145561957100484424716755596844524884307487925811382587664424145961935100544473715755876881527084397463923711348586064424160964635565436735757538740815470503930637637534837604542536092465856603647571145371409254635078306776405361374645455370923558306090477211442716992136327785867464044612746424561703035393048907872751980421276910913173275658142461514425275842376181305439129481297848751238070127501095017341565014257151282563586237308179543912937129102486712352706350122501114159506557512854638362923011879753943374910249674952856334122511113759216524513654438365922711838756443294946491034948857634515140371482138243436943916546275038106453292346101035148787649517740351484938483427947916546255049106653422348102551687892495771935174952485227304745655225434945664642344825252668349242195153019321738525752243057453852354376454146403438253426493429423651343053323538475748244657343835355076504140404638543435495529603637344153363529474848414633341635129505250514046464654333561555660313738414336362929483441363374163512998526251394628463133226133563331413825432736242937342036147444351698246238391728233143224533463324123251527312419374420301429441516682419383717232344433945374618194821423201532314019194418301529101516681019183782310441239123711181448201419202032934013019131831151910301635102718878351017122912211135147420391941202893341306013333123195930303567274287393549171929212159353774115397641612842344660493369233759193075676542353920493319362110559753748115447668613742284618497169173762191047539654435312030333636271054775324815442068563744283818357142176262651043639424449312230213652276547233270154720285638445038673535428562756559365342794950223121425272654423587035475928423845503767443529854875245937533579425053195731264227725244225882355359384229455937514480295748392447374035494272533757302661274552562250825553823846294759835143803757333937474540254931723137553035613745345632503555328239463747368342433437353333372945422539318331755529355137613461327235453265395137413669423434313583334029434292395783337530294951326137617572424535652651384138695734663152832340254342925057323329304349403286374475444226235462643384538615735661015248234125724285503832102291444369192340158652449844382621084676435145946146351001018148364143728985763812810289144446945231481585523698183851108617697516094454631100418141361064374898976641285989414477453514856856036601855514561101974360674529314141604163106136741228931644559414163771993514562160216020552145421013043286725291541296028632213610412218312245414156635619940196614212163211042030211942138306228372525152429552811122321044218192242414156195622404866252127638510439303719381382462303748255224335539111193228422719254223412119452233484925472736852839413721384224273042487552373324393819452844274425482330214745223340494747293622283341212148422227264280753237202426382745364426441748303065474322304047472829342237333121224861224326368024323420342640274236632629175130122657343943043478128373450373731382210261594365366324703456343840314285633829150191215168122477349949943858187377050663735038831022175961652036355708756583899311088583383515014012144681064747497099488528876770836645350768310221717361482035355219878758103993151081808312035861404444731069247667047485128706765834245627639102371734248385350219408768103873156518096120858651193844347339924466494728514870416549426962373948374242493869503740336869874465689637855551573822344939554446494328264833416449476955372448444252497269613748335069614427684737205547578522364969553546424345266433446426474555324194427524572436138483950296121273247162020473585233633693235204238453264254446263245211940320192327304539433738193923292421263226163520343516232433223232205138253226254846313217212040122096232730433935372519192315241526202614352334141638242022573216512325152629482131191723202812209617272843223519252319171519151620181431232614233822202457171619232015182918212219282321281620191721281922191914231117261929162118183124261423172240241717261924202518191816223628162140162819182129192119151424111426172940212118232420141717244016171026232436251819131644362116164025281418172940212115112418142617174020212723222038173124311620104123213618182413144417214016232541143517214020211811181814263117292021272222203814311731402029412121421829242214351737401923414129352121202016182218131417313529232125222420291422171840172919212042232927221635183722191941342919212820261620221513161717352523172523242129222221189217241916204723452743162818652256192834741935287226362058156916771743258517106234421452247214292771962242716284747453343342823655056532861743935697260364758556913677474359854310611044584561475142427768623127432844472833393447235850395331614939104698960704782557813657474459444347110405832613051324238683131374347442128343928474558563970314249571043389647066827178405752446344614751403321930383285385931553792476321673467283745645665704942148574633366472661197176404252446310861505110619483110195938109858259735510092336357677567733769641086552495114844464836757252119817677428644106108495092106294834110555965109748250739710073338257667575734069841086452335135444248587528525881787787866210640497092109291053410255786570746550113976773758266665975604063843644033563543424558422870589078438712062374086706110969105401025678118705265471137267327559666059766011763441987357401035627437045674290705090304374120393777866961124698840435642118455289471127289325259596062766411791446587385756103402728708667259053506430507484396577646936124738865434742345989311124689335242594462986415291606532382656434026284386582528533964605040848365676464368573656531477919113360992314846453371423444439862152576072328726854367265743565839285139836087401158337677164418546655531817955113866042927648324539713341943166247573372728767853967355710556543970515483768711211582376971544145461115587816655648630426576403278394119973581968169247122331007236731396635921056354327036542576601125582426975546645641116687566646643130596595404978514159975258456869927512230100441926361314366269212763126321433680254260985576423675586610564606655565746803168591559510249655185597552724574697775613079446426691964618143122265612722312692143196807542619866763536165865105356038552957338058681031552671021376585852947539721267463776361677999648769346443816212229563322355924619637757161406659359216936567356838123295033465866103612676613710585532945139107126876310963746775993587823487434562702993338555624635374671484054593092419314319696716068541233950494610066456173665110558537751130107478759109897452752635298257873545367038935785100626835854643486354583062419114376691081601155412739115498110047452373185113858217718130164762591289485267262729945778357636373865579919571004568558572431086344581006213291767683108111115120127971152811347142313181713830213018451651623612544858673827579455782876233755653899465729453155587217108194430100271324776308347111451202397501944237135614371339173730583035452351333622544558423892573055352833233955533839464229283132582317161925305027234736302147244557234650494430374356333750393337295831353023363342224145374244926330343535331139135313391242352831321823371617252850462313361721192421573546154916302843243327503833292917311430173624422841213736442563203425352019381133132213221223351931161814371217142819461613241720191321243523151916342815242127193826291317281419172124232822212336212532202325202020381833222220222423191926162514201219142019191619241520181316242523221918341615112115192626131320281619182119233222292323211632162310020192019183122202015241919142616251920271948202119291924152318231621251722191821161911181528262413182019161918141919321929182319161816141002219171918312020191519192114221621192227264820212929292421231923202114171019142124194718172819241418171916192014151916191518221920181814292216171918142017191719302114221521232216261920152922293721441932205114381050143124484724173419361422173516322044153616201533223020931860291371633191221470176617503033142915422330163919491933152022213728442232465126384650543148482624283438362322223535322244213621201933213020931560381374533401223870306621504033372911421330333927493233362022212828542234462026234624541748182623282038172331223635182217212921451912621632010515138381264512240105389530312123402937211185136133602767323836802212028775413234612040235924441728188123162030175831343633185817571941291484540126326377105107138541264812276105769597314323832943216885596185605267643851803212042774513265615040285957443428628124168630775874343233151584557944173148774023229775610752549848427612876769753436783654362685359378563525964475167322842624511965635031283457873469624824146861017741745532271515245105949373407794193724829885641526198864250128427661538267456553627353533746634159204753679328536269119436362318234418733699848531467610111841445539274452321052393234060944637424858881234143615986285010442676151827045253197333533346754174203653409362536769674389624082944110233899874532776341185644783984444632482399235260554661427958931237043145951287110442675051887055199121011939334633537512974723646401076240674367130895640519473102398927432743343856907853849046714860995952895556611527911493149707114525196713842755084881075511891911015139644668535212963724146481072940554326130365674515073643929195723536643283872901235356906871115606259478977561091525611421491371305227963538237532843210752118459150514964846819523763314146483429665553263336467483506064362940572235326639283672421231115677683011553623847387749109405640192623413363026275335552331325532475230456750344946843619363724313346483442663653453329467983366047364040342234322939293669423511127772630225329383738344922404840312636344236442663535255373127552647230136734341746233626363724393314482842203626452829257929362947354031343534242921292369243527271826142220292237373433222848293129361442324424635052373736272326341929212131034181710232426253720391914192811202726192822254829252929351731235292431213423892453271418571445207222423763336028612944297414102325524645032378536562394347829681270105218541047246225592078194319611176273719422224829257229106176419452592999317434958976537514525743451937281421136366604361129449574541025555756460321388547567394807878686070655285547947107623559817881431676117762037464230193527529447210810654644845172591049932746595737611775485245433719333816311365664143481294095665450558675556055138584765733580129781960616519859479931071161940352781498110516715117852043466130141351247511044861083754894852172521044132776517973130117120486045249376433986377654141484879401276628501448653551595512958936511635911296519761945611419449427933611632405327514920105451512285374330611914136124361105786373726893452235223414577211792113017120416037249341931643398257722412948247925127542841144545349159251292993321162791366553761345131913141344152713361532155312511120184518221937323020193736253619572637202619342323372328453821232122173841393732342331263320251922262928243625345425413454304932252729373232273136295325192913291339134613211519132515271530122711431831186191032920133713251319142610201719152317371828213825232222533820393832292333268420281933263228243627342825313431302832272731372332293127293125282940292039274621213319332539273230332742434131251912616101491413131311131514101018171815161717181521142514221853162021381829183318841428993315321724652747285131413154287327129311423152919272031152818402120132719211633153315392632133319421541142518191212321613141114171320111015201019181518111617172215311431142818201628214018351843182114269938152217246523471651294123543673271291614291514194120321523183521321322191616411529151626381324192915431422181512293219133611351720202110292020193515181126172619182217311931212862092810401035174318212326173834221724252320161929242320361927211619291714184119322323193531321922121627411929351619381824192978431922341519293119193627351920402119292620213519181926192610181917161919211919196419191037101917201819232317193414171925820191917241920191919211319191718181919222319192631191927121427151910351419131814191678271927341719133112191227141912401919202623212119161916197101919181625191719251910419198379191120171910231619141410191281219131725191119101913132119251847191522191924262519172717191914151516102114141325143216352732271517251329121012121422123319282021233021281617161972019121811251717172522102291981692811201720101916181422102012261210131025161117103913432140251344737155219742469256917153174319109151321699216414118255532573510532180151082569295810561213822743319128942185307328103179019115208112641116317167171052282221391992161152873204020431964187322722037263410221104316185176019513960439040166134983713452106741296973694515394434710968132509972645111848558457511058718078108220696858625622113856747319163949185101192587394103173908011543813464321634616710110512982681395492601154773724075434164164735272923737343922110519714345185796088517260889082166519844134104106661297073904590947547856844505972475149486284535182876978511912222059685862592213756877339637991501012925817394132173738011819544314634903264463210172129153689654576049471147292758241107164511919452629212137973979105337153456579428868723488321953826351394431104386638702790599040754885304462195459424747495562315330823469525158122495940581659193718871539137913503929141917173161321373171181354151463390156450321072271531396131927571949261141792238212107285126194246223121399739792619233314531865174247681634383238535263443918312738213842274059254062481930662854164220472355273168301634345228583049294023193016171925184315261342132039141410171116401344171413181514331315950121031272313201320271719182616171123151226282426172423231639173921261723211420181317174716161738153847521444141810271921174216404025126216192219106108151692017231527176810162234222814302129242318302117422530432826234224201714241021112840224435143118421440134495112223125236520262021177918161628112715212644242017142331163117232125172121202049131517531935165417371541477114491435103319281737164640331241165122441037103915529491727153917391031224122261424214024641845213642273044285223122415171824242121283022213526313642324035441919225140225125316535262621317932916122872782110441120131410311631162318251621172010491315125321351154103710411171519949133519331628937134612331041125125044937123913521449102724391739143114411026122418401664184517361427224421521519101231151918112410214430172120262436233223351819122294015512431835182626312132914192012177208141017111213141012161516171817169171210171317121221121117101110131121518917132619271640949133212351035123325035937124013291436102324441734143714231030121918471629185917301427223321211529104031471931114110424413191317132013241323102315181412149141513241089181826162114141520171716201814171711121814161217151217381716924122117201718121212161714111813162126181817162620271519294019491632263516352433163518371040132916361023124417341337142316301619174720291659253016271133192126292240214716311141164224191413913211318131813231014151214121410142413181047958183216691413151317131613181317141113181416121727121638191616241421142025181812161617141618816102691817162620191525291419201617262016132417162018201917109131616171032121617251314141316191636178201216162518161111101914261422721111612111016102411149982117181118152312141312131215102124161815471458103212691019101317131413171391312142413141412121927101619191216161414141425141814161417161610813101491417142614191325111413201317152019131017152019201817189101618171832321615251714141315191836281918817121716151811111410161416141571611181219103410111130924822178112315221214139131615202122163315301426101712251024101517914131716916122224161432121319191036191919311227162014301416142414141414161210161314143714211419141913231113131013181513191810131512191318151814102618181817321519411516171314111515181428131827174017401565116514131614161515131611181619103419191711123010241422168112319221814129221615201422173315301426101711251424915239151311161216152213161332311312191636111914311927192012301416202415191914151417121416101413371321191918191423111310101518121313181213121212132515171417261618151714151341221913161513611815121412131627184012402365266515131714171518131411491640101919231720121710201919144316211120191518201221221315101415171515111420102011171415914231219141514111612615191312131531451217163211131412191419151215141520141512192015131913171514131030133913131913181414181111101515111213131612111213122125121719171616171512141413172221132115919661281512201218161618131215231726171516171317131812141249144013191323122014179201519264318214220171521201821151314101319181517151111142013201017181512141512171426141516106121920122115194520173732181356192312111445157815661542148312202018131613161513133230223921131319131313141118111118151511171325161411191372191217192616241717121414161792113218913191461212141520201118181621136151517521714161619151317131612141218141413101325121919201418915151026231818422617192117192018111520141313141816171211151416131410191817121915141719263115301015121920151917211519112093712181519145692315112045157814668428831719202013181916181612131232192219214419313271347135211331147185315471749255114431929197777393417572672241917861410216539991378866191451315514821260147020111117018482110119636801586524319681451166915791742164114551847143810581969258419502053183015371912110602330189026951977191181725720108117020541354144519831680127115621997164514571914117771910114361945191023191305419521515019711523117631513819461110891071211915511913114679441510220721555194414448898308174920651398”

4.2.1.1 Pairing Abjads of verses with both text types of Quran

The exact same coding pattern of the previous letters pairing code, Evidence 4.2.1 also exist if we use the Abjad numbers instead of the natural numbers of letters as before. In this chapter I present this abjad based coding, Evidence 4.2.1.1, as it has the exact coding pattern of the presented evidence code, Evidence 4.2.1 but now with abjad numbers instead of natural letter numbers. Even more interesting commonality between the two codes is that both codes are not only multiple of 19 but the digits sum of both codes are also multiple of 19! Because of that very interesting fact, I will consider this particular code, which is based on abjad numbers, as evidence and presented here as sub chapter of the previous code chapter as Evidence 4.2.1.1. There are two identical coding patterns between the codes of the two chapters. Therfeore, I consider this Abjad based coding as a followup evidence of Evidence 4.2.1.

In this code, basically we first replace each word in a verse with its corresponding abjad number. We then concatenate them per verse that gives us representation numbers of each verse using abjad numbers. We do this for both text types of Quran (6348 and 6236 verses). We then pair the two vector that contains the representation numbers of each verse. As you might remember, the longer vector, wraps the shorter vector as if a circle from its beginning. The resulting big number is multiple of 19. Moreover, the digit sum of the same big number is also multiple of 19. Two tests results successes on the same big code number, which makes it an interesting 19 code. Here is the proof.

x<- unQuran 
tv <-c()
for(j in 1:nrow(x)) {
  tmplett <- AbjadSeqofaWordSumValue(x$text[j])
  tmp <- paste0(rev(tmplett), collapse = "" )
  tv <- c(tv,tmp)}
tmp1 <- tv #only first round
#
x<- nQuran
tv <-c()
for(j in 1:nrow(x)) {
  tmplett <- AbjadSeqofaWordSumValue(x$text[j])
  tmp <- paste0(rev(tmplett), collapse = "" )
  tv <- c(tv,tmp)}
#
tmp <- paste0( paste0(tv,tmp1), collapse = "") 
as.bigz(tmp) %% 19 # mod 19
## Big Integer ('bigz') :
## [1] 0
digitsum(tmp) %% 19 # mod 19
## [1] 0
cat("Number of digits of this big number is", nchar(tmp))
## Number of digits of this big number is 419869

As we witnessed, not only the big number is multiple of 19 but also its digit sum is. You can access this “419869” digits length big number from the following link:

https://github.com/quran2019/Quran19/blob/master/6.2.2_code_bignumber.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

It may be helpful to understand what is going on in the coding if I print out the outputs of a few steps using the first verse, Basmala, of Quran as follows:

x<- unQuran 
j<-1 # First verse, BASMALA is input
tmplett <- AbjadSeqofaWordSumValue(x$text[j])
cat("Abjad number for each words of Basmala: ", rev(tmplett))
## Abjad number for each words of Basmala:  289 329 66 102
tmplett <- paste0(rev(tmplett), collapse = "" )
cat("Basmala verse is represented as a single number
     from Abjad numbers as follows: ", tmplett)
## Basmala verse is represented as a single number
##      from Abjad numbers as follows:  28932966102
#For 6236 verses we get the same number
# as the first Basmala is numbered. 
cat("Pairing of Basmala verse representation is: ", 
    paste0( paste0(tmplett,tmplett), collapse = ""))
## Pairing of Basmala verse representation is:  2893296610228932966102

I will add one success and two trials into the global counters for the global probability calculation in the end. I did not consider the digitsum success but just considered the big number itself being multiple of 19 in the probability calculation of the global 19 system.

global_tested_nums <- global_tested_nums + 2 
global_success_nums <- global_success_nums + 1 

Lastly, below is the “419869” digits length big number of this interesting code.

“2893296610228932966102232202658323220265832893292893299556919556916403812632640381263268133161681331619223715518791210155561791300922371551879121015556179130071289329661026601995212314547507129640387157222104516279166019952123145475022245845152908847618843162797296403871572221045162791245457324790191106722245845152908847618843162797162311395704113971557730779151245457324790191106710207738113123391162151161831106610401623113957041139715577307791511984547832956892146901429610207738113123391162151161831106610406364723632740479879766741198454783295689214690142967887843817738110416613710401839063647236327404798797667412241089213810329055131751407087887843817738110416613710401839063631106271459632224108921381032905513175140708206311061874596321879161147138142916198751407086363110627145963257810892170521384254163770892138987911377082063110618745963218791611471381429161987514070818111159010547492665781089217052138425416377089213898791137708509784710496101215289790879167181111590105474926635831137190671303667074941121215125257174159061550978471049610121528979087916733931125120621303583113719067130366707494112121512525717415906153946772477908298907979020916930828013719514290122733931125120621303143205011066513452177376631142148155971708953477581291339699333353946772477908298907979020916930828013719514290122795619019290797790741262841421711314320501106651345217737663114214815597170895347758129133969933335596497616551011190308117290788451142909463148582103290103741956190192907977907412628414217112555105166609038088575902734881271101388121290510575964976165510111903081172907884511429094631485821032901037414214752541421224412825885878658770131255510516660903808857590273488127110138812129051057691965125918968174974141329035874170613830874590963149128881490613454755156115398791508421475254142122441282588587865877013133232784047731735731784057170866206742282307791482479013956286987911221921218834157110125149831665169196512591896817497414132903587417061383087459096314912888149061345475515611539879150894845671032902161365176624141251656769066791016791332327840477317357317840571708662067422823077914824790139562869879112219212188341571101251498316651729465409854052054016044951668756110948456710329021613651766241412516567690667910167911503205217508132202142414775401241032904190730741117294654098540520540160449516687561105963141141611315022074120114861769615490965041387251032901046116622213170715032052175081322021424147754012410329041907307411125551051521141292111371101115540561434514659631411416113150220741201148617696154909650413872510329010461166222131707109181451715914132811403114113825551051521141292111371101115540561434514691651047462411471038539101214161901317113115999151159108451113110918145171591413281140311411383929077689131033215475751661817079165104746241147103853910121416190131711311599915115910845111311062905575397107033775151812059657894245113145111873929077689131033215475751661817076841517800103290968090293224187957281930126401164106290557539710703377515181205965789424511314511187289440115611548349120790456206841517800103290968090293224187957281930126401164131453715568611120472170191005311221249624181289440115611548349120790456206919645282102674657353077971314537155686111204721701910053112212496241813442814187911001705614415709283126211691964528210267465735307797637281715914241307377301374833717071235488431043442814187911001705614415709283126211596497139873751394993763728171591424130737730137483371707123548843104382110304644141571645964971398737513949937656112454886497251572235142698382110304644141571641062110322676316332560465611245488649725157223514269833046102247177961016791106211032267631633256042321101370671705614415709283126211330461022471779610167914064537104961316374569614237321190120190420315751423211013706717056144157092831262111020262904379096181550124776804762324063190174707406453710496131637456961423732119012019042031575141606497406311358255241624317071020262904379096181550124776804762324063190174707102749781901342141540753331161327071606497406311358255241624317079761907507690180207540102749781901342141540753331161327078651904684541164627079761907507690180207540289440115617048327312490810790251618273414951341764251141011114611181116131707865190468454116462707160649729718412136626041850146801161157070728944011561704832731249081079025161827341495134176425114101111461118111613170797619050676906835401606497297184121366260418501468011611570707103623678106102747418414229057143121170145111217010179761905067690683540249137681901330221496836648120575051896137346710642181707103623678106102747418414229057143121170145111217010173067843142902119777911102197514074112101379777911162491376819013302214968366481205750518961373467106421817072441032909773766307905165758711250140104131575952958142421831003261181116631707306784314290211977791110219751407411210137977791116540841674375013912121536026641436678987506690180426212766155140853141901313312481011743651174195313113414613862313890103285281818132228115519120110342801161157070724410329097737663079051657587112501401041315759529581424218310032611811166317071314537155686372471242491551301468329368919020038817797987915154084167437501391212153602664143667898750669018042621276615514085314190131331248101174365117419531311341461386231389010328528181813222811551912011034280116115707079561909541934113522411307246246407711135270713145371556863724712424915513014683293689190200388177979879151952905406591706691014775076908865409561909541934113522411307246246407711135270773130983752614939015048279158014095290540659170669101477507690886540660102771647306271102240731309837526149390150482791580140130907751687771311921521383071117513116651181116131707660102771647306271102240702412687506212722237108131307571465613115418172222817513813090775168777131192152138307111751311665118111613170712426609225138130757146561319241817222281751387024126875062127222371081313075714656131154181722228175138535663115158161708333511541817222281751381242660922513813075714656131924181722228175138246324780214141382138963153117573957037103211107663130757146561315356631151581617083335115418172222817513891651041843729672719197070724632478021414138213896315311757395703710321110766313075714656131656190417286487663877088010142619165104184372967271919707075961111113664766915902671965782958935107196572889569371248905717130572689575076901985605406561904172864876638770880101426120651211417690359540669123613539071110901135165659611111136647669159026719657829589351071965728895693712489057171305726895750769019856054065611226212471181706648843101413887241917631708921389879113770820651211417690359540669123613539071110901135165621647326411506651206386561122621247118170664884310141388724191763170892138987911377081016324557102324542063110714121647326411506651206381488175527082281751261715917947661249070620254072454488820126101632455710232454206311071415963141661105924184667201608066124214113012953322825518014414881755270822817512617159179476612490706202540724544888201266919645282102147103474258582904259631416611059241846672016080661242141130129533228255180144691964589102675611539879769196452821021471034742585829042116649715017132886540644141571641191711492184983437161211406632532313126265113527076919645891026756115398797765497941540275902511259371156163171113527071166497150171328865406441415716411917114921849834371612114066325323131262651135270759611111136647804305412701876296559061732150750190902112187476245487463385017028817536272477571685741551562260901503911265251986524915407654979415402759025112593711561631711135270740645378041657701118399655908791675961111113664780430541270187629655906173215075019090211218747624548746338501702881753627247757168574155156226090150391126525198652491540986397116247111232514213143296741721952167749429053150468323819024745411646214040645378041657701118399655908791671624125134766195321110189144986397116247111232514213143296741721952167749429053150468323819024745411646214039211066235730735741591513077911101014132908415571234661249042359771624125134766195321110189144105773427180211018041008290321901109159066975110136688433175123679081133921106623573073574159151307791110101413290841557123466124904235977196510511329066749861501301557123513917222433721618843146138668843987514070810577342718021101804100829032190110915906697511013668843317512367908113102749781901342141540496116741401965105113290667498615013015571235139172224337216188431461386688439875140708196510511627311113130347134183905162272211381841135224113072462464077111352707102749781901342141540496116741402555105147757714260907266612483723690471511301965105116273111131303471341839051622722113818411352241130724624640771113527071064150727054443851186255510514775771426090726661248372369047151130206433027232051804907711471151113203658205287919624110142299538106415072705444385118625651825296271235667531521109213627581719013020643302723205180490771147115111320365820528791962411014229953842180661311072513015126581719025651825296271235667531521109213627581719013032832831047463412611391404218066131107251301512658171901623176632135390757808798328328310474634126113914020631116115621766423454414791903907521557123466124902965977162317663213539075780879820678362367507411087319083790354190712014714025537105541612667533213907106345472728162744641136686700111535108921474181390201476536123718111088472991422063074111061913004719190110411836414862063111611562176642345441479190390752155712346612490296597720678368106612490583514989642206783623675074110873190837903541907120147140255371055416126675332139071063454727281627446411366867001115351089214741813902014765361237181110884729914220630741110619130047191901104118364148681773427184120214932254331987911711206783681066124905835149896421051941706723219065511007226290810901709751651374543690307791204181773427184120214932254331987911711314320501106651540715767968124511667169076041105194170672321906551100722629081090170975165137454369030779120413503746906660909047103853990356651540713143205011066515407157679681245116671690760411337783018413533144696132901161006135649851670413503746906660909047103853990356651540713143205011066512486642141819223813975462417690236124907330216276903303645436907301013377830184135331446961329011610061356498516704130259643665166124418810902815514764414157164314320501106651248664214181922381397546241769023612490733021627690330364543690730102555105131841313014745035171671903289644801443025964366516612441881090281551476441415716413145371556863720712420911515817651913190422555105131841313014745035171671903289644801441176957813118756107781461815702063179113177045449651320110565003825373201103825005653713145371556863720712420911515817651913190421020773837908161796907575132656517571416780990146106969305166108160130971961176957813118756107781461815702063179113177045449651320110565003825373201103825005653715013766516614620443182127967171102077383790816179690757513265651757141678099014610696930516610816013097196607355010385399041353212641661701144150137665166146204431821279671711667035146172242910708103853986607355010385399041353212641661701144222176443631041831108181570177907911317701686276615167206317911371667035146172242910708103853986921021204913796751314136252222176443631041831108181570177907911317701686276615167206317911373503746906690504117190347417668873965011661951130515872418382375614014108692102120491379675131413625294845147731096716267842108501454507791350374690669050411719034741766887396501166195113051587241838237561401410862321101370671705614415709283126211948451477310967162678421085014545077914064537456606371049614237321190120190420315751423211013706717056144157092831262111062899131131132096131831711246113157649320725944370740645374566063710496142373211901201904203157514104327268220422215512182594113617025918190171498171548443154707106289913113113209613183171124611315764932072594437073717828277341101554017159630096131832936813591901172904131492377061042022591317071043272682204222155121825941136170259181901714981715484431547071812114517191532253218443902122593607073717828277341101554017159630096131832936813591901172904131492377061042022591317072894404517116140822225850175461361965023016125318121145171915322532184439021225936070710912545171981104542014321554461352971355792532894404517116140822225850175461361965023016125322012083790629690246140195145903225975120121296109125451719811045420143215544613529713557925323223253113113120735131701220120837906296902461401951459032259751201212962264973289611195901906651621119467259811223223253113113120735131701226351142037176218259344256126138869053241971317014771881008701320510412264973289611195901906651621119467259811220678111547375224196482413610301044645022635114203717621825934425612613886905324197131701477188100870132051041651907147149259753213081635171683144206781115473752241964824136103010446450226351141351362430312479014941747156116417471101941762182594188479288476892143651907147149259753213081635171683144181211176632550190451724435741718475314157298131226351141351362430312479014941747156116417471101941762182594188479288476892143133351141097669011996661097181211176632550190451724435741718475314157298131816351142029619387268253176690520130133351141097669011996661097596111111366476690129315460130971966641141492130351716781101941762182595159241816351142029619387268253176690520130206781115473752241964824136103010446450596111111366476690129315460130971966641141492130351716781101941762182595159241650300413219029127967165130116784415771208241142901872062067811154737522419648241361030104464502583261446651162920667147661979111032267471571871101921303274829022032116470441168154473201703279214211032051376462147766503004132190291279671651301167844157712082411429018720620611111136647247901395623645441479157514801235104152428013850934116140713727614290345322601042583261446651162920667147661979111032267471571871101921303274829022032116470441168154473201703279214211032051376462147761062120702711719034417690688739687213747591747577475451475524794116524544147918119620611111136647247901395623645441479157514801235104152428013850934116140713727614290345322601042065113955613539157109416614214545077911062120702711719034417690688739687213747591747577475451475524794116524544147918119677190526111222901392065113955613539157109416614214545077913143205011066511246662411483416112426509211198677190526111222901395961111113664722290168622801385093411612035189631432050110665112466624114834161124265092111986865196170570477973135111113597779132161701718671514801235104152428013850934116120351896596111111366472229016862280138509341161203518965964837041216110454216113463170446150297150342618651961705704779731351111135977791321617017186715148012351041524280138509341161203518967563740534981106759648370412161104542161134631704461502971503426138411066511633255989879117117563740534981106710263110630324486610290540120543373841106651163325598987911711384508117822810990246116717903222341026311063032448661029054012054337330465865521381475397027913845081178228109902461167179032223453645732592479052715567330465865521381475397027911505216613181148596481055111562111711744311170665819028820251536457325924790527155672382116620567454901716841769056494901394152679151150521661318114859648105511156211171174431117066581902882025128944058155409147751424107913223821166205674549017168417690564949013941526791511741481436615515567301514543077915128944058155409147751424107913212164537804165770319669517414814366155155673015145430779151289329113236311936102121645378041657703196695266176442103814262931108250786125090965084527610327100519014290668847142210432419061344116729310111181038539730905128932911323631193610280431866571246514251804266701977791220426511305987976630121616660901710901429626617644210381426293110825078612509096508452761032710051901429066884714221043241906134411672931011118103853973090519747985804214480791904807916037018043186657124651425180426670197779122042651130598797663012161666090171090142962829086645471556691876626577091619611357332258151364807911379747985804214480791904807916037011028090564011016879372270103290815714217112829086645471556691876626577091619611357332258151364807911375963141661105435743610931192102809056401101687937227010329081571421711475373212663155714365115172415223213866884148075140708596314166110543574361093119226631125120621307185321803143230741590307791576475373212663155714365115172415223213866884148075140708532175105165534418414229057987911711266311251206213071853218031432307415903077915762581286665111554111175371003121010101706612407364789884814861702489253217510516553441841422905798791171181773819237187566614537282321129011741671715917972454906688415267915125812866651115541111753710031210101017066124073647898848148617024892282110338121135881052897908791678177381923718756661453728232112901174167171591797245490668841526791518650112045490111879157141454876653750282110338121135881052897908791676274573201791679474104810590390877021262196441715714833496198133592184983437161511010241715946014383293689190233106127967113280443512331008650112045490111879157141454876653750817731157507648517025926290117075012246224295543206169035160170594598109113241239571903121704229879117116274573201791679474104810590390877021262196441715714833496198133592184983437161511010241715946014383293689190233106127967113280443512331009561906747112431290968177311575076485170259262901170750122462242955432061690351601705945981091132412395719031217042298791171163111010942940016114281162051477731008702170422956190674711243129096150180665110779111054617217511741170631110109429400161142811620514777310087021704222581286665111554111110720954271341369068117015018066511077911105461721751174117095619019290791110422611721704229879117112581286665111554111110720954271341369068117059651051908105435735810918114851701801209919079111680152901593401107105115071170525539561901929079111042261172170422987911711976196704111066665110533361622243730162662248015290159340110710517196255536150309170468509046917119382958874110915055965105190810543573581091811485170180120991907911168015290159340110710511507117052553570175121494060212570210685163121411308711170897619670411106666511053336162224373016266224801529015934011071051719625553615030917046850904691711938295887411091505566175171417667277071411166224501399022749796437101411724485403149010265090844650904724185166390664224114165641621801571704832511507510111661408593497909355181418111727590395701751214940602125702106851631214113087111708596497574142789039148810041844775122138458375661751714176672770714111662245013990227497964371014117244854031490102650908446509047241851663906642241141656416218015717048325115075101116614085934979093551814181117275903957419066514189044941451190233106111790449808532331064817155715130721201775964975741427890391488100418447751221384583760520316651881376577916610290544574190665141890449414511902331061117904498085323310648171557151307212017739221770662597131956074182801381249823756190305572870518908611171518588605203166518813765779166102905442581286661314631313922177066259713195607418280138124982375619030557287051890861117151858810621103213111146313165959253547631418588258128666131463131631110665115466514170485415721155621704851702816862805382805361062110321311114631316595925354763141858824920665113249141875373766102902446311106651154665141704854157211556217048517028168628053828053620431866511546651428013810194180701207509657545071370214342905210362211770170509073112142413489101705317821307199714190179266907117710511507117083501042418336545375090731121739131653524245424920665113249141875373766102902446747115635474381013143066155810905874742903837246377801114214510801705875064220431866511546651428013810194180701207509657545071370214342905210362211770170509073112142413489101705317821307199714190179266907117710511507117083501042418336545375090731121739131653524245492212013790510577061938280641124661008751901321782262909111809516217010067471156354743810131430661558109058747429038372463778011142145108017058750642258128666516617541428825189089854092212013790510577061938280641124661008751901321782262909111809516217010073190837903547969045225314690142170921305774100066100823113507822581286665166175414288251890898540282773157123837961239690452253146901417319083790354796904522531469014217092130577410006610082311350782102340728981152756728277315712383796123969045225314690141964461111546651451112011554111112019611554111111690503170525529066934102340728981152756776235171379041110663259655901411059014296964461111546651451112011554111112019611554111111690503170525529066934176203172177739719618410329014044670876235171379041110663259655901411059014296811089815557411317066650135140708176203172177739719618410329014044670811029672661441141419552090142968110898155574113170666501351407081028090564011016879371061619064298791171111029672661441141419552090142967894665122849447441769050713110280905640110168793710616190642987911711278673664727291614311129096090664665132121635789466512284944744176905071312043186613141941769066165469667169050760312629027867366472729161431112909609066466513212163571121232190317721875623150879798791909329655307820672043186613141941769066165469667169050760312629065030041321902972758139909511187198791669910710134944594176904187913295111147951118131142621081414541559410566021536665224461427171121232190317721875623150879798791909329655307820673126634051326634045011598797327146418871048105545192906377915704717789104151510416503004132190297275813990951118719879166991071013494459417690418791329511114795111813114262108141454155941056602153666522446142711507661318109058747133592184984002418109067141130296742177312663405132663404501159879732714641887104810554519290637791570471778910415151041596314971507290500173214175114690810173216325114690225175621704221507661318109058747133592184984002418109067141130296742177691964528210273843969018741914730117530691201506189654851124120280418657104375619022357266124223954181128014473066610212010023295531130955312805361201775963149715072905001732141751146908101732163251146902251756217042225812867266648269676610290262167979879151691964528210273843969018741914730117530691201506189654851124120280418657104375619022357266124223954181128014473066610212010023295531130955312805361201771156190443906672770187130296742183246902235931712472325411361303478711201772581286726664826967661029026216797987915178946651611663114219990215150727981091578107513013049212018384396901156190443906672770187130296742183246902235931712472325411361303478711201771386175171417787581362894190722824114067136425609081013611211341865148537536425659081014182106418992485377894665161166311421999021515072798109157810751301304921201838439690745265002066516630151890542664782274418763378899015259571111130889120183138617517141778758136289419072282411406713642560908101361121134186514853753642565908101418210641899248537227508182111154665142811577506176848890708177745265002066516630151890542664782274418763378899015259571111130889120183150180721426254191360951192107566510372275081821111546651428115775061768488907081778812867219848243137710616290106966137731150180721426254191360951192107566510372581286661319813150627869216690102820881286721984824313771061629010696613773115018066131171124572581286661319813150627869216690102820789472212165300429165741570911312135175090261109569832936810670513059066730415205185483731610362487526171501806613117112457105845147662248496886111662245078851311566211166221613211201316622161326925132321912811708519048371226787398202691171789472212165300429165741570911312135175090261109569832936810670513059066730415205185483731610362487526172061767866224566622161519515168551156621111451311215174784187690354381111451311058451476622484968861116622450788513115662111662216132112013166221613269251323219128117085190483712267873982026911711503205266511546651471040110454901708847170665609341966412210737195970184750190969111202581373983297398262891162152579708206176786622456662216151951516855115662111145131121517478418769035438111145131596314971507222190387908329368106150719079867504291071408702731385113611118911621525797081503205266511546651471040110454901708847170665609341966412210737195970184750190969111202581373983297398262891162152579708302596436651154665144298514157070217062111102193751645571566211191313614011202022071317505707381164735863748461401311423219053031429547362351171161107450512061201511049711304795963149715072221903879083293681061507190798675042910714087027313851136111189116215257970881259643724292469023013117062111891082782577506278248752199721505527973025964366511546651442985141570702170621111021937516455715662111913136140112020220713175057073811647358637484614013114232190530314295473623511711611074505120612015110497113047988128666511541000251904115066511543945410424181101795243739713754351322615423110614911116614025190561715261690715101311706237812596437242924690230131170621118910827825775062782487521997215055279724911010942951230977111630920711057710958514877561704115257951170623188128666511541000251904115066511543945410424181101795243739713754351322615423110614911116614025190561715261690715101311706237302596436651122941517375763035575711017921741166721651321520413001095851520110561511329064057249110109429512309771116309207110577109585148775617041152579511706231611651591161635581109963025964366511229415173757630355757110179217411667216513215204130010958515201105615113290640575964837041200616610085317822747315112013161165159116163558110996789472396902469023041901706211185313180512107541512931111997215055279759648370412006166100853178227473151120131631110109429511646789472396902469023041901706211185313180512107541512931111997215055279765619041790667277063111010942951164658631142721106142110910736665165540453667521147790811751260908107914160071656190417906672770150180665115466102905445863114272110614211091073666516554045366752114779081175126090810791416007172952879127273595335104611911016611107417019015018066511546610290544106415072135171324435621554221511212669085511066102905813281471389383256217042251580351316610290581918157375921387011167690312629010241600717295287912727359533510461191101661110741701901501377232190954267214017190762317018666511311029013541676951231091141611213586611389144690572104665110775137106415072135171324435621554221511212669085511066102905813281471389383256217042251580351316610290581918157375921387011167690312629010241600711965105190467509051137483262371163162081123262901459584048151951651107751371501377232190954267214017190762317018666511311029013541676951231091141611213586611389144690572104665110775137384110726675373595143217595906066177961016791131744428781115311381159879711221511351713295589211285168190321001361347096100180955021702575426651131964462001511965105190467509051137483262371163162081123262901459584048151951651107751373921771103981979082931611281253138744702167738411072667537359514321759590606617796101679113174442878111531138115987971122151135171329558921128516819032100136134709610018095502170257542665113196446200151232110910706661061032574874917142661547332181151110121664134402153666753183392177110398197908293161128125313874470216774211207714113049266412450232110910706661061032574874917142661547332181151110121664134402153666753183224411906610693841663114230090141919021511181064944594176901219079193141663114219521677494290531504686089173566690901358721109179613214504211207714113049266412450105845394456376353795823156421511329041881238987911711224411906610693841663114230090141919021511181064944594176901219079193141663114219521677494290531504686089173566690901358721109179613214501051141171034353710385392951363114332145903229337755477062411507583212946074170190103290475399041359637115170631187491132363166105845394456376353795823156421511329041881238987911711150180723626231647314581184681121449310170104190535462104959022731105114117103435371038539295136311433214590322933775547706241150758321294607417019010329047539904135963711517063118749113236316669196452821026714024128790914144799307797287411402908589879146661501807236262316473145811846811214493101701041905354621049590227311062177293172300741487127390848167190433421661312591314572952131466387412122591317011216640751207902591274141600716919645282102671402412879091414479930779728741140290858987914666314320501106651141131354621517914254041311010424111571711620926941115752570529140411231111569323213156872757932131932601315775401115666527452766671038611315821106222131511024076171062177293172300741487127390848167190433421661312591314572952131466387412122591317011216640751207902591274141600717894665114714149113054021145355011010454061425250902781380131142149106421314967713148742811026120225913170731432050110665114113135462151791425404131101042411157171162092694111575257052914041123111156932321315687275793213193260131577540111566652745276667103861131582110622213151102407617150137723211209617215561475090143132853155906610290123296791570789466511471414911305402114535501101045406142525090278138013114214910642131496771314874281102612022591317071314537155686372471242497571137912384153831540661029012329679115013772321120961721556147509014313285315590661029012329679157088106072711488199908101331396136131453715568637247124249757113791238415383154066102901232967913921772931728981320110370311257053917960311522759065583293681063714222176240761748123655448319879117118810607271148819990810133139613630259643721193910870131101057881391002155859023690131966144114141232967915763921772931728981320110370311257053917960311522759065583293681063714222176240761748123655448319879117111156190443906672770118925195362180961915412531051172509096352888149061313069090583547651732130259643721193910870131101057881391002155859023690131966144114141232967915766210606651154952247513213185366869511434973710329090855875224142290238987911711115619044390667277011892519536218096191541253105117250909635288814906131306909058354765173211501377291795132514472432317411144401621060665115495224751321318536686951143497371032909085587522414229023898791171167433293047731811417184104416963219010442615013772917951325144724323174111444013429010914715566131950901390723590671476743329304773181141718410441696321901044268125964372541901803169081091422824109257152416264135134290109147155661319509013907235906714714263149710196810906374766141414326864736181090637473219029661065513010081259643725419018031690810914228241092571524162641351150766131810906374712114215731158795661901072701251032901003615316610290306791451142631497101968109063747661414143268647361810906374732190296610655130100131453715568637247124249155172261293103123296791150766131810906374712114215731158795661901072701251032901003615316610290306791451691964528210214775966641252170411155462079010211917023425411366452345701139213898750131904011026741156613221231234117791131453715568637247124249155172261293103123296791551301502031726262282346615869196452821021477596664125217041115546207901021191702342541136645234570113921389875013190401102674115661322123123411779113145371556863724712424975644141571555611539879151551301502031726262282346615819651051234901124191366508987911711131453715568637247124249756441415715556115398791511426371426311382761708425730766902128385877013119651051234901124191366508987911711596510519081060157315411235335706715714263714263113827617084257307669021283858770131103631514824119050496540664195729575145965105190810601573154112353357067157150320527266216665146224613658757319374231011379237023238343262170180122676101460947651321010327137515366124170790394123371301833515083781417023511337842601400601230513519014561306993132938770131294903797831375122011805155931796171561391157417113132195672372076654613911574114654266145614325142313371374231224685141503441669057029879117111036315148241190504965406641957295751415059643721375411364769634686737207665464974977411308739329113195333642441476340110510571503205272662166651462246136587573193742310113792370232383432621701801226761014609476513210103271375153661241707903941233713018335150837814170235113378426014006012305135190145613069931329387701312949037978313751220118051559317961715613911574171131321956723720766546139115741146542661456143251423133713742312246851415034416690570298791171131432050110723219078832112013706671411091725190414135710329047539904165150596437213754113647696346867372076654649749774113087393291131953336424414763401105105737167253135113722114429590136243031301433512689150229207904688433279131432050110723219078832112013706671411091725190414135710329047539904165392177110472128451306811287121157781115314152937253183907911104836129216147837253662717151175831253883411224824136142321916614031371672531351137221144295901362430313014335126891502292079046884332791713921771104721284513068112871211577811153141529372531839079111048361292161478372536627171511758312538834112248241361423219166140311874911323631662893296610213164394296271235141454130877159270694723187737566414307791514629417119132901874911323631661429037103290320115700316651131643942962712351414541308710912511323631321110281903667411159270694723187737566414307791514629417119132906743329304725312490507922021719095466324521504745214205661414957084161810171839079112211498074544155509412954541308874111142903710329032011570031665145451712531049081134707017618914073125310912511323631321110281903667411115672031665195212318614211471253674332930472531249050792202171909546632452150474521420566141495708416181017183907911221149807454415550941295454130887411128211645733216690873712316514608030779151454517125310490811347070176189140731253204318728056614264657291779079740631271567203166519521231861421147125381789841970154830782013028211645733216690873712316514608030779151325773077509051321903473072161211625311306817661029093195932550901690711042043187280566142646572917790797406312774118129729655511750745199182677922738904354071491529074310171678178984197015483078201301103027266901063259249669528881490613454247124508820790908121291303257730775090513219034730721612116253113068176610290931959325509016907110428277315780981136192102253202791741181297296555117507451991826779227389043540714915290743101716730318773676482923841103027266901063259249669528881490613454247124508820790908121291301091251132363120215217149143113236315666309282773157809811361921022532027911023406613166414310961071013171594176903245441479111114716366124955130318773676482923841103027210641301724435741718413813157214845441482013652396652453121038131109125113236312021521714914311323631566630981775627142902023077916021081212153602664143667915110234066131664143109610710131715941769032454414791111147163661249551401907547843969018741979167110302721064130172443574171841381315721484544148201365239665245312103813111665113539045654010710866423411404549015341479141600718177562714290202307791602108121215360266414366791517467841109901251525533228255180138987504019075478439690187419791671036315148241190505029521231862097021901166511353904565401071086642341140454901534147914160071314320501107184136711901136711904837111301215337119012181612191106130746784110990125152553322825518013898750711212711907134990481120948190491209101902874452879010143910363151482411905050295212318620970219037166471956698450613590751323209066901807501909622760905839222317103131432050110718413671190113671190483711130121533711901218161219110613031432050110721032904753990411566615541773609041108751130711212711907134990481120948190491209101902874452879010143911029672195669848746736851364107690540471049810905404119050407563716647195669845061359075132320906690180750190962276090583922231710312581286728189012966682619664665105113031432050110721032904753990411566615541773609041108751130392203166131443131333669713011029672195669848746736851364107690540471049810905404119050407562321103613725937714519066512581286728189012966682619664665105113015018072872908789153922031661314431313336697130181211451711006124497190415013506120236164253170123211036137259377145190665128440190132222787672905166761295110612764314172561128261202531128215115018072872908789157112123219031766516612490115317065061290111313081301328223811663491238142119454465118140208618181211451711006124497190415013506120236164253170111618071269151049040720213120723875106284401901322227876729051667612951106127643141725611282612025311282151220906931181669097235405326651282901401511713754071121232190317665166124901153170650612901113130813013282238116634912381421194544651181402086183214119066770131371658253109211010714086612021311161807126915104904072021312072387510626141376731222927248325210361424903243113116401042021312209069311816690972354053266512829014015117137540232121110207240201665129011137531707321411906677013137165825310921101071408661202131382110307842525612901126141376731222927248325210361424903243113116401042021311196701894704729014056217196701894704761791043649075023212111020724020166512901113753170743396843969025290531501491069597532665129011137531701382110307842525612901122096628090142106119670189470472901405621719670189470476179104364907501667035146172242910702321417406677013150223076404086612025314339684396902529053150149106959753266512901113753170113164911045416122096628090142106196510519046750905147890126047507431296675348735330972196675322016695811250501009090731612629018473104613126241303166703514617224291070232141740667701315022307640408661202531152665882629018479170248741872907564390246271241131649110454161650300706168268212665119651051904675090514789012604750743129667534873533097219667532201669581125050100909073161262901847310461312624130322654316689266342108312131664135290131331135150691511526658826290184791702487418729075643902462712414011105543275304884392253650300706168268212665135281072662662732265431668926634210831213166413529013133113515069151156695510131122149373415401875641307791186499791110307791902804137755661150116613170140111055432753048843922534019075478439690319774898307791122352810726626627310622031722552315611539879148156695510131122149373415401875641307791186499791110307791902804137755661150116613170110995744390130491750401907547843969031977489830779112216670351315406039073545590661241505705110622031722552315611539879148771904701112229013910995744390130491750814110665502334875402572481871781301151245082101719034417690953217016670351315406039073545590661241505705110912541665766323690471393114170651771904701112229013927715066131443131814110665502334875402572481871781301151245082101719034417690953217022654317223443131666090207873923171037321757037663212632128113779541508454361113010912541665766323690471393114170651656112819032131643488472599046870454361127715066131443131596314971507214079010013146815014079013145552491622654317223443131666090207873923171037321757037663212632128113779541508454361113065190714717114971106402373625971416561128190321316434884725990468704543611227467298797937124848202611424751596314971507214079010013146815014079013145552491663647236328964795636454369010541065190714717114971106402373625971417654976641475670454361122746729879793712484820261142475159649713992275139548704543611636472363289647956364543690105410339175806314287149879111088743984543690105537765497664147567045436111501377232190431661694151130262124887857415701342651661950511301244721203250337596497139922751395487045436111051941706723219065511003391758063142871498791110887439845436901055372065175366110208102142901611001389875015211544441326125312674965190141612536249651904543696150137723219043166169415113026212488785741570134265166195051130124472120325033763120661315178697904210519417067232190655110081773819237187568611603766145378379075731316717159115366819667915120651753661102081021429016110013898750152115444413261253126749651901416125362496519045436962065175366110208661249011476612490112084549011474549051145658610242113557631206613151786979042720510494545965104332383106666090407883171146540100105454664315153271418177381923718756861160376614537837907573131671715911536681966791512264917017633331220715913721075131137206517536611020866124901147661249011208454901147454905114565861024211355740190170583971315521383017901101747942131831757617071234296745407942390871711536516613017077205104945459651043323831066660904078831711465401001054546643151532714132845147750764461702264917017633331220715913721075131137339522328610385399090131411068666412914019017058397131552138301790110174794213183175761707123429674540794239087171153651661301707226351141351362430312479015515611641747110194176218259110884716188476892130328451477507644617095290837901795142160651631210141296339522328610385399090131411068666412911062177293172494651083275132214776307147662911022635114135136243031247901551561164174711019417621825911088471618847689213017414814366155155516267952908379017951421606516312101412961216453780416577031966951062177293172494651083275132214776307147662911025812866613114275076904107913217414814366155155516267918457385353280301245401477630779151121645378041657703196695401907547817737567749542708103280589014216030151454307791512581286661311427507690410791321507661313209063747466816374182334888091845738535328030124540147763077915125551051523645488130643487511329019511031224841323129239711515040190754781773756774954270810328058901421603015145430779151105845147750769075366110691170150766131320906374746681637418233488806519071471492597556066194130255510515236454881306434875113290195110312248413231292397115150261252642977017187641237511058451477507690753661106911702321201060661313009610346541904431114211071927163996259181463412956519071471492597556066194130596411103197266414756704543611130261252642977017187641237515961111113664732049780146491906610212055070454361113023212010606613130096103465419044311142110719271639962591814634129536116276280454414791903914965198791171159641110319726641475670454361113065030041191846861096301156664121708404977561165961111113664732049780146491906610212055070454361113022649732896379061086650898791171136116276280454414791903914965198791171186519041790667277096991282902933811105166595676211986219186510701170665609347873712466426146503004119184686109630115666412170840497756116245457334112012742931384141140461505062264973289637906108665089879117111020773757349459417690112478781148337865190417906672770969912829029338111051665956762119862191865107011706656093478737124664261475651043804893162767416547179112220476201212562454573341120127429313841411404615050669196456625317065121379148102077375734945941769011247878114833726197122466471411304926641245075651043804893162767416547179112220476201212562786736647103290475399041716919645662531706512137914832877222313575811101454369142685583411205174296971711204468105102619712246647141130492664124504063154023911260757711321076802786736647103290475399041715408416743750108121210560266414366789875020615514086690180426142904666904232687416176615514023287722231357581110145436914268558341120517429697171120446810510133511016266412496156464543690771074063154023911260757711321076802209073124290403341120127429313832936816254084167437501081212105602664143667898750206155140866901804261429046669042326874161766155140263315072321160810901974713351101626641249615646454369077107691964528210273321669087371231651460803077915122090731242904033411201274293138329368162103623610666101547541236977146708494290962185909655710902964157063315072321160810901974765651051443906310422334510904713890184440610456041176341573112090672107319879117116919645282102733216690873712316514608030779151331110315066511972453130194190153170877637708921381967085545655813637511484916103623610666101547541236977146708494290962185909655710902964157067206436651321791070319136995783058555257511123620516565105144390631042233451090471389018444061045604117634157311209067210731987911711150180725912152274185690141070733111031506651197245313019419015317087763770892138196708554565581363751148491622357666116927281151150551445701672064366513217910703191369957830585552575111236205197619066588736497208664001401501807259121522741856901410707187137901121038262114511808125653670122357666116927281151150551445701206137901127072621187063319048391369951429761906658873649720866400140109125661249032371477198545905123266108471871379011210382621145118081256536701673279477730779190290219206137901127072621187063319048391369951421027176827715541873202729050100109125661249032371477198545905123266108472581286723219078832112012901032904753990417167327947773077919029021957419066514996953234458319879117111027176827715541873202729050100421475441282514258128672321907883211201290103290475399041717041903336610357419066514996953234458319879117116604751038539107664262901325413444214754412825142492072142120248194110581048302902967917041903336610320651187411103077666327891290968331828669272369777394187702797660475103853910766426290132541344232204166966952888149061346024790132562672492072142120248194110581048302902967918531787111012381032903571601929010301042065118741110307766632789129096833182866927236977739418770279766010272517163706232204166966952888149061346024790132562671965105118849747237462378531787111012381032903571601929010301041062203172320150171698791661861426297834565753081771001843082305166010272517163706392164987916618419651051188497472374623738415615020791661507789104151510411062203172320150171698791661861426297834565753081771001843082305116064976621845415113290477546510140392164987916618461266963216610101601871101929623411062353074411323211379010301042963292473841561502079166150778910415151041612136964618375092149696461965092149680424667533284651220714716064976621845415113290477546510140384207253947957476610290139716812173026811553162908761266963216610101601871101929623411062353074411323211379010301042963292473921771103981979082929039980981128125313851321817147612136964618375092149696461965092149680424667533284651220714724920728375091249650966527384207253947957476610290139716812173026811553162908792166923411028030779149651987911711392177110398197908292903998098112812531385132181714743281017137663224920728375091249650966527106255678282991517977041685284330330779113890250921669234110280307791496519879117112271109107067218015114054216543054083722490156962249015046641262417690616272909748507024187585697018566254140432810171376632596438127215441375414111047291104210416448629015033313110492376207011062556782829915179770416852843303307791138902503311103150721989041184360904166488959415611554227912394789051036130625814132027290817136202507231412369074665552725113032090272908135202859501391210681016236491104111150105132018296107176901708854022711091070672180151140542165430540837224901569622490150466412624176906162729097485070241875856970185662541408812866651165661511408941874401543921955415615044379151596438127215441375414111047291104210416448629015033313110492376207013025964372466387218390273750661435374744841175783610177871032901009702733144307811483319879117113311103150721989041184360904166488959415611554227912394789051036130625814132027290817136202507231412369074665552725113032090272908135202859501391210681016236491104111150105132018296107176901708854017981810259669013554807661029097096881286665116566151140894187440154392195541561504437915196466719707480963025964372466387218390273750661435374744841175783610177871032901009702733144307811483319879117115872066516611053651778227290558751747165231649096816319409814704275480669025312317981810259669013554807661029097096223576661168190410741701170140057901033111664105196466719707480961036315148241190504965401875610304341110709610405192714758720665166110536517782272905587517471652316490968163194098147042754806690253123371789859669067113110661057473171223576661168190410741701170140057901033111664105120643302726612460845103631514824119050496540187561030434111070961040519271471028611201329078571104542019841715544623690297135572701227110669013437178985966906711311066105747317131432050110665125112490111307066157058653310414755478206433027266124608452271866683319554156154471028611201329078571104542019841715544623690297135572701227110669013452643141721839010041140202162135303766360456145321903613816276610290538508751462387911863143205011066512511249011130706615705865331041475547825551051477251120302130537411383618773313879122718666833195541561544737324712430324496610290537791520375264314172183901004114020216213530376636045614532190361381627661029053850875146238791186131453715568632755904715570793103491590664474334825551051477251120302130537411383618773313879122720489031665791666901671028373247124303244966102905377915203710202045141351268203391394176903336547479113145371556863275590471557079310349159066447433489716666121144103137103290120104142511427513179122720489031665791666901671028102091070672661057486762157091666901672701020204514135126820339139417690333654747911965105174311321116369640179092971666612114410313710329012010414251142751317911020773818379090975113326622432166101780963319039779195371020910706726610574867621570916669016727081773813216610178013533190879151196510517431132111636964017909210577381542637513092266810751309230779113037102077381837909097511332662243216610178096331903977919537102020417091350357301681783219029590425661061043110209667147529011436741811549141110227940667141817738132166101780135331908791518125964372103853975171187567639412417550011327581111915906644743698791130371057738154263751309226681075130923077911303734977381319210812121055811384153210721143906651138791136661701341020204170913503573016817832190295904256610610431102096671475290114367418115491411102279406671411469731006657855444375081259643721038539751711875676394124175500113275811119159066447436987911303725551051102115057074949614290290741041302824563554724183261463292796651138791349773813192108121210558113841532107211439066511387911366617013433146024649621152902907221847481311469731006657855444375014375113296554788184896412821203017018756270542984778161905025551051102115057074949614290290741041302824563554724183261463292796651138791278117907501319136995773171152879196192904544147919065625713890518331460246496211529029072218474813196641152171591791411562178439213717154745441479165166130170714375113296554788184896412821203017018756270542984778161905081773818049013556511119770436951824084335479152031278117907501319136995773171152879196192904544147919065625713890518314320501107210385399071966411521715917914115621784392137171547454414791651661301707677744229310111181038539730905181773818049013556511119770436951824084335479152031282773231141437061130412531038539730907721061161871526698679131432050110721038539907134290109147102318428210349071253677744229310111181038539730905143511054353212130680981136125317226498511627510622110225328277323114143706113041253103853973090772106116187152669867911561110317118756105837310110531414582533429010914710231842821034907125354011812972661249051028881490613454766526165381543544112907202609081721687187290932561792090150141140881316124775547435110543532121306809811361253172264985116275106221102253689030779153212803115611103171187561058373101105314145825381789893540170511540118129726612490510288814906134547665261653815435441129072026090817216871872909325617920901501411408813161247755474648106612447661249088966952888149061345475247508791100689030779153212803110234066512471242497567171591664149663165103186884710188476810612045436905781789893540170511574190665142253063009879117114648106612447661249088966952888149061345475247508791100313170716651287755774166514127731235136508229673624190907907412625081421711102340665124712424975671715916641496631651031868847101884768106120454369057233177156138411234583754114384337123492414574190665142253063009879117115133265750162490417104511321120131279103760015290901241166492905763211205728932966102261761411919532012090611319365015241431317071665128775577416651412773123513650822967362419090790741262508142171139713775149138963651529066103441138187813372331771561384112345837541143843371234924148168116155397123865947824291713917196810106171962395121434346337123862425051355511311101039702418492446513326575016249041710451132112013127910376001529090124116649290576321120571127153720795130813961236208115218739612362081152294261761411919532012090611319365015241439713775149954392184983434323610087083971377514913896365152906610344113818781337791371896662715568895291575590627367919468168116155397123865947824291713917196810106171962395121434346337123862425051355511311101039702418492446341252252112901179297149278117791511127153720795130813961236208115218739612362081152294791517166516690109520190303566603112670647811611176901551566123571131106115615717403580701314035715162081155136198060251116244715762041103116510111861217013165290857098010290661763971377514995439218498343432361008708881507266901111041121064781161117690106190531125750907217813115513619160100176014124778671623371576478552111769010608162116540907113140908070511060813039164781661117690670813031704085711314085807051786204122096791371896662715568895291575590627367919461051124756966952888149061345464930766899666224503412522521129011792971492781177915110577341966362526492749030766170967915171665166901095201903035666031126706478116111769015515661235711311061156157174035807013140357151620811551361980602511162447157620411031165101118612170131652908570980102906617610385661137477552418449902623161311502781658571819042547147888150726690111104112106478116111769010619053112575090721781311551361916010017601412477867162337157647855211176901060816211654090711314090807051106081303916478166111769067081303170408571131408580705178620412209625941071665116611581364041318331504788181051124756966952888149061345464930766899666224507915166771556641814731290474540461072068206611044492105773419663625264927490307661709682774755266730151512791378280261131477581008702418512206820444506103856611374775524184499026231613115027816585718190425471478731811956611932163251220726131429638107396471513291241874114413613722615211075190483198791171125941071665116611581364041318331504788181035484591763321951708111361698571611116498645577915166771556641814731290474540461072068206611044492194165215013578724193289111017621168277475526673015151279137828026113147758100870241851220682044450610377547394715617010441321529070784148537731811956611932163251220726131429638107396471513291241874114413613722615211075190483198791171125912877166511701044132109262520571849079112485170621115710744837013157107447218190277904722811814531107901074118147251310324596324591098577107451950717064810354845917633219517081113616985716111164986455779151716651112676907185113117062371095265542145714111212491210248140180951790217419045170664231624904132152906261941652150135787241932891110176211625812867290810699571505519101207508049062011041220245396461131149782656214137590121058942926546891753220872909321641417256895190162490411705686208851461505497096103775473947156170104413215290707841485377815072170424192907911609590102662242591287716651170104413210926252057184907911248517062111571074483701315710744721819027790472281181453110790107411814725131032459632459109857710745195071706481021814875174353879123017041851224727915171665111267690718511311706237109526554214571411121249121024814018095179021741904517066423162490413215290626961193736180770516622425812867290810699571505519101207508049062011041220245396461131149782656214137590121058942926546891753220872909321641417256895190162490411705686208851461505497096259627166512519373715014011206094765132751221384583198791171178150721704241929079116095901026622428166110750772521852269771327501909610218148751743538791230170418512247227167575054118035012551141233862519611937361807705166224151320527166519159066105533811521874908115229487211093276691041897372596271665125193737150140112060947651327512213845831987911711320320501107166511975321625747973961236208187154862816611075077252185226977132750190962331117166511031651409111190131107094590276111141811374786698843107213909526411239023849872110917669104315211020326527167575054118035012551141233862518131517166511086619613122551429075419069660108501112057151320527166519159066105533811521874908115229487211093276691041897378871072719020316651162490471335988138862413437102412184983437181211403217927376690320320501107166511975321625747973961236208187154861067744215329159066447415326651423136987912331117166511031651409111190131107094590276111141811374786698843107213909526411239023849872110917669104315211020326536115136135401809683289376816237142221123296797813151716651108661961312255142907541906966010850111205715147667766352812448329368983615574888710727190203166511624904713359881388624134371024121849834371812114032179273766901021205899042296712342057905671980316651106774421532915906644741532665142313698791320521102270321465090647021903611513613540180968328937681623714222112329679752366526371032474763632717330779120766151476677663528124483293689836155748128715771665191821962217557751414150152571710519015013147340110710505105718974181022833256375924154741829149715770931987911711102120589904229671234205790567198031665113312375128689796645490153414791416007132052110227032146509064702190351681164768116148141725236652637103247476363271733077912076617132162111347661951061537581110112081771372211389642959013658841328210121017722722120892212012135417791901287157716651918219622175577514141501525717105190150131473401107105051057189741810228332563759241547418291497157709319879117112276624177493102151612457214110340211595113290170712351384398454414791171113312375128689796645490153414791416007110215426911846853096321120750604112967530511290316651351681164768116148141725211036373219047663223693791416007117132162111347661951061537581110112081771372211389642959013658841328210121017722722120892212012135417791901035427116753661107461101151227662417749310215161245721411034021159511329017071235138439845441479117111039879190205230782020814534381624549015341479141600711021542691184685309632112075060411296753051129031665135135407160661609666195791675211036373219047663223693791416007136114247231782121901527541103542711675366110746110115110219151311045425931462184915906644741110142138411039879190205230782020814534381624549015341479141600713411001161259490141791902153513540716066160966619579167799571665180485312164413288125391252225146465307791513611424723178212190152754197193173525918967589669528881490613454789561153987971021915131104542593146218491590664474111014213841303181716651710401616651137475511426250870842415244175131166513411001161259490141791902154481258107508329368552510513336641295320909681311502725332710366979879117117995716651804853121644132881253912522251464653077915187862885514012307317512481101447414865128015290884761884398961837914160071971931735259189675896695288814906134547895611539879710514016036261132747668841415087514070830318171665171040161665113747551142625087084241524417513116651603121322565168184405407054443147539702190448125810750832936855251051333664129532090968131150272533271036697987911711104313723690751361021165115118390416615079167878628855140123073175124811014474148651280152908847618843989618379141600712594106650327751747661828402369777019642667531203229690342471051401603626113274766884141508751407085411531310812122369024315401075031311044181623122811160312132256516818440540705444314753970219013133117581110171042411879642135170321914127590811725153851155473524210431372369075136102116511511839041661507916710212058590537708259410665032775174766182840236977701964266753120322969034247651301151541153131081212236902431540107503131104418162312281113916712422635730115390155661617911101473336689961313311758111017104241187964213517032191412759081172515385115547352421516811666909417501021205859053770812433879034189681307987911711651301151320155717070111066161104131147554131111120150573916712422635730115390155661617911101473336689961021941741554705001155731224707071226669091015496151681166690941750102120547122610427620661029054196839965556679166102906511243387903418968130798791171135110490811104710490811104210023467109085525320279112815826590154766102909873190473201557170701110661611041311475541311111201505796171401345140158618144710290597307797661029059798791102194174155470500115573122470707122666909101549652114263751112081084317096511130312344112526756216182270253144915305766935142966135390702562155422151644141571648510775140791416007110212054712261042762066102905419683996555667916610290651523251913117752151661249050130144907101538553757661249071015312353757359211905104247729448310235110490811104710490811104210023467109085525320279112815826590154766102909873190473206811629717136821017085901144766170123901144196171401345140158618144710290597307797661029059798791999155362121446966681184327899052114263751112081084317096511130312344112526756216182270253144915305766935142966135390702562155422151644141571648510775140791416007167681166611046216511514784143272536741121013510541214490216782852085232519131177521516612490501301449071015385537576612490710153123537573592119051042477294483102731111395506612101249071423826721123206811629717136821017085901144766170123901144117132401943659170669107313559279117513527247473274121542777971771229024159708999155362121446966681184327899051131164305723077916311051661402271014210325303166102906116768116661104621651151478414327253674112101351054121449021678285208551320501106677961303580854564609696152358012345646090731111395506612101249071423826721128132050110716651216796121105425468708171324019436591706691073135592791175135272474732741215427779717712290241597085236690195969521231187564126311323631665113116430572307791631105166140227101421032530316610290611103354071606687096668319041651671894332672550362909012155132050110667796130358085456460969615235801234564609035137471352107375045185881431443131661029022641858135210711177612307617563617813205011071665121679612110542546870810315590661031211611011446071505741317071701746631142191548760751345698807651113122146411867913252366901959695212311875641263113236316610315115590154113117151858814317012316110115358370131962885664121141501911141675128086152310335407160668709666831904165167189433267255036290901217915166776690413973565221177017014130782441411759965111312214690715714130789813617908014690711312115132414117525141307898610137530966103213754051166714735137471352107375045185881431443131661029022641858135210711177612307617563617102177435811611156618089663698102555137540961031559066103121161101144607150574131707170174663114219154876075134569880765111312214641186791328135964371665154917066170132905107707351131662049655107018581374901621011411205433754966102901442702987911711103151155901541131171518588143170123161101153583701319628856641211415019111416751280861523102120526611014466916159668057212266110242125144669102421256610290146123147121022790262486317915166776690413973565221177017014130782441411759965111312214690715714130789813617908014690711312115132414117525141307898610137530966103213754051166714725912876677259133195608102177435811611156618089663698102555137540963414779893147966961426610014707113810329015107113851013013823698113753279151813596437166515491706617013290510770735113166204965510701858137490162101141120543375496610290144270298791171110347537536153112815826590154132102120526611014466916159668057212266110242125144669102421256610290146123147121022790262486311287157667716516651661401472591287667725913319560825912876677661102091761844772395403076641250417908139614173112821032901766102902199634147798931479669614266100147071138103290151071138510130138236981137532791511038190783925130779160051112051157907975162170180103290144270810347537536153112815826590154132106774421756651968131355912775110505107249907116271511706237248517022697755912015663630779110550953135413024713770811105837277902037478254413541301351056501577562113547070812871576677165166516614014755342422711047115751157238591782121116187152661008157135078225912876677661102091761844772395403076641250417908139614173112821032901766102902199679151667726931416690665527611371765274835117714149046237103819078392513077916005111205115790797516217018010329014427087417814703766222431426249814145461139521067744217566519681313559127751105051072499071162715117062372485170226977559120156636307791105509531354130247137708111058372779020374782544135413013510565015775621135470708259128771665166174755342422711047115751157238591782121116187152661008157135078255265871902031665123611177911204383779151667726931416690665527611371765274835117714149046237682064366771679010203141478701155176690120637142901206741781470376622243142624981414546113952671558690411875616566481709655901654785249162591287716651661747259128766176617505401959807771509655265871902031665123611177911204383779151667719511097172542929668206436677167901020314147870115517669012063714290120610354845947918422372505405427634929667155869041187561656648170965590165478524916102113066910775404707041166110454130669432090108647236328964786651135105475659130669107325912876617661750540195980777150961021205471226661441141475019096142621307396720124190321059073090810317915166771951109717254292963414779818144641912271021210488503546241769032751196103548459479184223725054054276349296878628301846853096321120750604112967530511290316651102113066910775404707041166110454130669432090108647236328964786651135105475659130669107325537132140575533265901405110212054712266614411414750190961426213073967201241903210590730908103111271539790178113766155341477981814464191227102121048850354624176903275119610391286018466609047401171096667301380372193752592372232962878628301846853096321120750604112967530511290316651140732401129471611292553713214057553326590140511491267337989367112715397901781137661551416690195961096680896695288814906134547895611539879710391286018466609047401171096667301380372193752592372232962351374766609035173772077150904543610237164100140732401129471611293611036378970014713617561792090561901509614912673379893676712596617071492597547915817651913113065119961416690195961096680896695288814906134547895611539879768320526677103290475399041713513747666090351737720771509045436102371641001517716613181090587472025215535712290154753951166485422419173147215246190454901704504714556066130152901032361103637897001471361756179209056190150968135964371661319135255733922214158101651291081395115662111107373641089010812475767125966170714925975479158176519131130651199625912877166131913535572961392111504871117384215262511519568668320526677103290475399041717913866775359051661060791571517716613181090587472025215535712290154753951166485422419173147215246190454901704504714556066130152901032631061667710329047539904165131707576650851781929045441479115714010329047539904171813596437166131913525573392221415810165129108139511566211110737364108901081247576768116103290475399041712591287716613191353557296139211150487111738421526251151956863157501106677863417142177773115179138667753590516610607915730318166778439650966204965092247190631061667710329047539904165131707576650851781929045441479115714010329047539904171813596437166131147774435751151528791114847146391710618051400132725111042653202022078398791171167681161032904753990417187862830184832933014335126831096132908874146030111087741460307689898791171131575011066778634171421777731151103104377513206680703012454030754098540307540987915130318166778439650966204965092247190827747553362502813596437166131147774435751151528791114847146391710618051400132725111042653202022078398791171112465113131113169146922760905839217667918786283018483293301433512683109613290887414603011108774146030768989879117111249890398362114665161570211112155229014234181555811118489831066412610702514549017087110103104377513206680703012454030754098540307540987915110322711042166113861875612278146227902761701224711381524217157170120711386690488907113162758791827747553362502171326698637142277121148157411487087201766741362511246511313111316914692276090583921766791103354071606687096524137524131750621504124989039836211466516157021111215522901423418155581111848983106641261070251454901708711010315117065510516712276090583922107319879117111032271104216611386187561227814622790276170122471138152421715717012071138669048890711316275879135175407862829020225590362511713266986371422771211481574114870872017667413625110212052276641615222711014765109734686141424107913210335407160668709652413752413175062150415152266775379605183566190411031511706551051671227609058392210731987911711151181667797090321679010923966203135175407862829020225590362513151577166131761205577109178114135110212052276641615222711014765109734686141424107913210375062171751286874356874146208301666239751286301683667915115152266775379605183566190411067744215321093884567151181667797090321679010923966203125912876677255471146671351362397763016898797315157716613176120557710917811413511031511164687501202874944594176901341708540101729718262136625221875090223116981841429042415548751454361211037506217175128687435687414620830166623975128630168366791511941652135135849390481317518768366427518769824623140710677442153210938845671713216211134711666813211101891871081212105581664143516969951232591287667725547114667135136239776301689879710214592901101873531031511164687501202874944594176901341708540101729718262136625221875090223116981841429042415548751454361211715414798147432140907754195320120951118791577530710613347541476629629053150149581521871941652135135849390481317518768366427518769824623140779956677466635532171321621113471166681321110189187108121210558166414351696995123320155861876245113271863245436905710214592901101873537316610212014775439422155299177919010521715414798147432140907754195320120951118791577530710613347541476629629053150149581521878277413542153275142781021256211023413527995667746663553210212055716783293682296453915728715290884761884316222913517190948100320155861876245113271863245436905721621468197268132251561101941762182594182819015964417661617652731661021201477543942215529917791901052501116669613037570297132901303761042978277413542153275142781021256211023413527995667732176166611017186711056602291102120557167832936822964539157287152908847618843162229135171909481003206811637514314793618843319661002162146819726813225156110194176218259418281901596441766161765287862837104661021201073077915150111666961303757029713290130376104297320104377513206680709833077915179956677321761666110171867110566022912816611075077896695983193232068116375143147936188433196610079151667710385399041651317075790811178262901413277410414217118786283710466102120107307791516768116103290475399041354035865112619366692908114631036543373016817895220290411385016629629053150149921393266110543371249014373145436113201043775132066807098330779151124467036984821206209642913737657786511496208028166110750778966959831932351374766609075733782774907696618791489159082255231561153987911227915166771038539904165131707579081117826290141327741041421711103257101145262902587410414217116768116103290475399041354035865112619366692908114631036543373016817895220290411385016629629053150149921393266110543371249014373145436116513014680916952539082976146898791122124467036984821206209642913737657786511496208015032052721237519066726529085701060127235612785762081111215610114721314036807051716176204122011610014140351005524751117905606613010263513747666090757337827749076966187914891590822552315611539879112222441786651248497135881210170450413219362904392139498791171110325710114526290258741041421711204318665166514168572110534375532331105408815128013812016051146401363371925087081064247909111468280443101371763750372805363766581445319879117116513014680916952539082976146898791122258128666131571574121077590101017065163901416570170887124904918796313511111249030779180872407901121067571731107104711704132163514711969689488276612403647898848148617064815032052721237519066726529085701060127235612785762081111215610114721314036807051716176204122011610014140351005524751117905606613010261023406651665141156610193417017181137662008165115224990580474539039130753974217728932966102952908379017145191841353109665617503724912102482659127021929045441479190626568906267538186903845441479112645390398722441786651248497135881210170450413219362904392139498791171197619017056548631422410621190170143662244195918219622175577514141501525717105190150131473401107105051057302565105718341300338122452419180117815741580702987911711204318665166514168572110534375532331105408815128013812016051146401363371925087081064247909111468280443101371763750372805363766581445319879117113311103150665166514137221570701766774166217066165934258128666131571574121077590101017065163901416570170887124904918796313511111249030779180872407901121067571731107104711704132163514711969689488276612403647898848148617064859643812665166514576303111125113211014640136337202320652078398791171110234066516651411566101934170171811376620081651152249905804745390391307539742177102021013257556115398791668095290837901714519184135310966561750372491210248265912702192904544147919062656890626753818690384544147911264539039879210267465735307797976190170565486314224106211901701436622441959182196221755775141415015257171051901501314734011071050510573025651057183413003381224524191801178157415807029879117112235766611666514180701807010188511464570117066560928987911711331110315066516651413722157070176677416621706616593413377830184150750763001702888149061345478154118038111911016615477743025376485715758190170616613716357056113562931262651661301140596438126651665145763031111251132110146401363372023206520783987911711249206651185165231135171321356661105094383779278190912392212012135417618316019669699512310202101325755611539879166802767843661171521875641185011710713427927819091976961352351521387919692102674657353077971024292566690741047301201724549011365108173190723477410445436112235766611666514180701807010188511464570117066560928987911711650300418075828741140290864162921062473906672913377830184150750763001702888149061345478154118038111911016615477743025376485715758190170616613716357056113562931262651661301140314320501107232141740108471038539907112410329096522905314965512065132166901001701302905314911665113879130013424920665118516523113517132135666110509438377927819091239221201213541761831601966969951233715210847103853990713219078832112012907301305024913282084215013029666410838856537276784366117152187564118501171071342792781909197696135235152138791963143205011072966512741849603751290654154351321906851109072347741044543611102429256669074104730120172454901136510817319072347741044543611232901441670414689716974150103701170661659281461118111613170765030041807582874114029086416292106247390667299216692681101011379066422441240103264214611314320501107232141740108471038539907112410329096522905314965512065132166901001701302905314911665113879130013469113296820131968204186908058266147965111611138371521084710385399071321907883211201290730130502491328208421501302966641083885653719651051543661161089191108578236155642156661617477919028413131432050110729665127418496037512906541543513219068511090723477410445436112316252612228451788965241869080521161113823290144167041468971697415010370117066165928146111811161317073321776811346161720032913161202131921669268110101137906642244124010326421461133217711046111110329048111533315529313713169113296820131968204186908058266147965111611138631906654292131631131832905427659906123543037011414563531554371965105154366116108919110857823615564215666161747791902841312322026668261581612474524110203441471902316252612228451788965241869080521161113810622175628210290556567553418512156133217768113461617200329131612021319529018161561653019535565332177110461111103290481115333155293137131186901816118129812347065707751481447111316168122711025510329052012046665263190665429213163113183290542765990612354303701141456353155437466103290750761357315154049634145914012414220192269612414253019210329014571901212191530905631262110473750349023220266682615816124745241102034414719010207738379081969061775750103290147771190285705797139754751146103290202307662777912192106221756282102905565675534185121561258128666512281557115113290410791329529018161561653019535565574190107902614246141666508987911711186901816118129812347065707751481447111316168122711025510329052012046665281773811355324118756773907531115581124103290417551363077915146610329075076135731515404963414591401241422019226961241425301921032901457190121219153090563126211047375034901907738196866454728290820512801020773837908196906177575010329014777119028570579713975475114610329020230766277791219278947266901028343217126740339825812866651228155711511329041079132258128666511154186613113597576904031705741901079026142461416665089879117113143205011072321120129632190782103853990356651540718177381135532411875677390753111558112410329041755136307791511020773837908161796907518322451662147079167321669035490160935662149699681770571391706857512029227690121354437708611762277822271779196183496761409213879190331903977919531327171119077381968664547282908205128030020665120210714946857321103616016514705716510717107149401315281087822277894726690102834321712674033982296747750769050254066689664317515411625812866651115418661311359757690403170388451476688437870961715914241307379631421307111320115846642390145643249356178201387911498782621996643139523143205011072321120129632190782103853990356651540711058451476688437870963530691759417028125414314778478816416816316722322151961554791020773837908161796907518322451662147079167321669035490160935662149699681770571391706857512029227690121354437708611762277822271779196183496761409213879190331903977919531327171166010272564390296271241262199512547364390296271235290531527471102473002066512021071494685732110361601651470571651071710714940131528108782227328451476688437870969566884312536114229674775076905025406668966431751541161566955104321212437366411242650462419013810624461936631142106575150154801399034111688723766884310714911515245490296271235141454611453884514766884378709617159142413073796314213071113201158466423901456432493561782013879114987826219966431395232714290731578038741575166224922214431316166884187212056651960688723766884310769571058451476688437870963530691759417028125414314778478816416816316722322151961554792221766966901199610688514966010272564390296271241262199512547364390296271235290531527471102471062177293166511351361504919687258917583885621073198791171132845147668843787096956688431253611415523690268411101971299024175214215166220220553519602021353971040183907916901566955104321212437366411242650462419013810624461936631142106575150154801399034111688723766884310714911515245490296271235141454611459211881874192009614712682087915398791152327142907315780387415751662249222144313161668841872120566519606887237668843107695715013772321904316691075081817473766102907939211083227110736876514866421226691201506149098791171122217669669011996106885149347516447815721679198797307661069210621772931665113513615049196872589175838856210731987911711112045661713198797307664469615523690268411101971299024175214215166220220553519602021353971040183907916901965105166514583381929045441479190109191241708791210731987911711921188187419200961471268208791539879115226631146987501091917131574150570815013772321904316691075081817473766102907939211083227110736876514866421226691201506149098791171129778157132908847928847689251329164635454361113034751644781572167919879730766106921337712083711250067144782905340135109115180866155906612455375090502123351301120456617131987973076644696526784314172781010451333641110921388070819651051665145833819290454414791901091912417087912107319879117112067841102499102168572903971357316162663114698750109191713157415057082767841102499102572181120249350111672977815713290884792884768925132916463545436111302752031721461032902026697270252118911875641185011710719830710712229061884113573111732111024056820321384316370143011116614565371337712083711250067144782905340135109115180866155906612455375090502123351302014547675261653815149845436514252678431417278101045133364111092138807082064171135736639461352798089623190882479086884713164314996422067841102499102168572903971357316163921772931665114290230726961432121580705722290618841103232717112767841102499102572181120249350111673921771104611113071071222906188411357311172629010188471316435574183201105304543611130275203172146103290202669727025211891187564118501171071983071071222906188411357311173211102405682032138431637014301111661456537131453715568611113014683293689190388196177979879151201454767526165381514984543651425963977293912364213143296599129186348312626511352134206417113573663946135279808962319088247908688471316431499642206433027213573014311754015566403540143197535476328339217729316651142902307269614321215807057222906188411032327171134290109147282598911566248184685309056268212668431262111491372905314911665113879130013439217711046111130710712229061884113573111726290101884713164355741832011053045436111308177313530779119020211147270571936323690471036103166511387913001341314537155686111130146832936891903881961779798791512581286721817664147411259639772939123642131432965991291863483126265113521341726111515404437511211011511511127220952321137901030104296322905314941206433027213573014311754015566403540143197535476328318121111722013710019010031416660905331303429010914728259891156624818468530905626821266843126211149137290531491166511387913001341337712084373184413290837104146238793713912101249014373145436111308177313530779119020211147270571936323690471036103166511387913001345408416743750290531562114111031262903077911502581286721817664147411224678411021913101205223178172611151540443751121101151151112722095232113790103010429632290531494169145804961556666951236755444110230779150213573161018121111722013710019010031416660905331302971357311065817524146884799681627842133771208437318441329083710414623879371391210124901437314543611130748311022652901355375035152138791988205534849352879756988208614230548754084167437502905315621141110312629030779115040111055492253202139903578114590129017661032741884117770824678411021913101205223178220177110253695511751399065476814631814769145804961556666951236755444110230779150213573161024921756966952888149061345413843666292971357311065817524146884799681627842921026746573530779774831102265290135537503515213879198820553484935287975698820861423054876052031665188137906639414226553198791171140111055492253202139903578114590129017661032741884117770819274917416651422706636781632201771102536955117513990654768146318147976190417906672770162100255870216230675052103622117701703078187531710657541769018157512178613361443137710616290106966137731249217569669528881490613454138436662957419054740114090263116181347871929879117119210267465735307797551491115157126669201201703478719018501171221865140122492605203166518813790663941422655319879117111331064347110922288861319223271036610319274917416651422706636781632492072132508540104508540561153104508417021261316256115398791110100976190417906672770162100255870216230675052103622117701703078187531710657541769018157512178613361443137710616290106966137731817731157507648517010456969066180315854861359032266188987911711574190547401140902631161813478719298791171159270694729566680759617011166151246398461427501047181120306712810332015010470777819190530415701015551505359624849713593731987911711551491115157126669201201703478719018501171221865140122492964467416651424948441233104170254342905121312411049039133106434711092228886131922327103661031503205266571032904753990411506651577750182562805421711522804431286610324920721325085401045085405611531045084170212613162561153987911101002581286665720431866511488177311575076485170104569690661803158548613590322661889879117119164746241150721064323271104159270694729566680759617011166151246398461427501047181120306712810332015010470777819190530415701015551505359624849713593731987911711574190674711665881143725964258114348631130964467416651424948441233104170254342905121312411049039881286721266615190406382976812649857526904065132212049831987911711150320526657103290475399041150665157775018256280542171152280443128661033618108540192901469710425812866657204318665114826631772753661107463077911064937141377837225906610341916474624115072106432327110414753732120631557143651156441121138327476688414150875140708574190674711665881143725964258114348631130596510432121243736641860702830901070312511709879117118812867212666151904063829768126498575269040651322120498319879117116321207025266315510373127017142591796031104351683411577690572477147634103290144249151127090852715010470760214268477731008702122315987911711361810854019290146971041062120702525364775690109791683411291555697919022720793254257097110770131266317727536611074630779110649371413778372259066103413321772931721846651414776102604516987201103484185165750475373212063155714365115644112113832747668841415087514070810491414517181140311384467422263216612356596510432121243736641860702830901070312511709879117111022683270651135307791211496458701140312625807077634871203707763330976187632205569612107632505010090113070713164911045456070762809014249019521643570146111613057092129053150116613170163212070252663155103731270171425917960311043516834115776905724771476341032901442491511270908527150104707602142684777310087021223159879117112261043169213831412985131641425707106212070252536477569010979168341129155569791902272079325425709711077013119651051665081311429060161975122255935290531501131213170133217729317218466514147761026045169872011034841851657504019011613264510451196189515961015126413810491414517181140311384467422263216612356399810457365110228581188581476142906016188253106290531501311022683270651135307791211496458701140312625807077634871203707763330976187632205569612107632505010090113070713164911045456070762809014249019521643570146111613057092129053150116613170123290147783177477814115076310170170133616613122610431692138314129851316414257071049141451712109041141372009041540545184535470511104010041137514086411411316660909657176717153045229053150116613170719651051665081311429060161975122255935290531501131213170131932050110457155343451470956151135444413201554762682126684517701413275530414019011613264510451196189515961015126413810912545115175168057971761217513998104573651102285811885814761429060161882531062905315013110511247501251013165661010896695288814906134547523928621056706661312329014778317747781411507631017017013361661313143205011017145471038539906510491414517121090411413720090415405451845354705111040100411375140864114113166609096571767171530452290531501166131707170249307791540293140210910385397307416583319320501104571553434514709561511354444132015547626821266845177014132755304110964915401291504035910540699079074111109125451151751680579717612175153841156274320150103296539906617105112475012510131656610108966952888149061345475239286210567066613111701267832247412901690856473143205011017145471038539906554877841644662265971141729184289329661028613511219040980523285390613288160446155142348901607041103290156350901779010760217711702493077915402931402109103853973074165831022683270651307791161722213709042413013842109649154012915040359105406990790741111216315402729409113942901158867144538411562743201501032965399066171584115517923418991159421170126783224741290169085647548778411358677931891529029248314054877841644662265971141729184853178711101158540103290277130861351121904098052328539061328816044615514234890160704110329015635090177901076021771162311252368677919521231187564126328419511042265130103853990411201301022683270651307791161722213709042413013842181211172931019013041411216315402729409113942901158867144651905263713190377751641611301293712917103853929047170166121113015841155179234189911594210205677321257051682611305487784113586779318915290292483140133124756253184766125380908531787111011585401032902771303143205011091812190571132354011111002661905716231125236867791952123118756412632841951104226513010385399041120130843109178218633717181211172931019013041419768122211719361192130310311308114166110517951211032967104138270641311287231966130315223320111306519052637131903777516416113012937129171038539290471701661211130162311252368677911094166142145450779110205677321257051682611301058128315641972277236611069113097196133124756253184766125380905735107915876152882018654012460362314320501109181219057113235401111100266190576207141253721385132975470705408431091782186337177467841165836236110729110115197681222117193611921303103113081141661105179512110329671041382706413112872319661303152233201113012828132706513077911461244070241881133116502175730779796206517618311016061580901411623112523686779110941661421454507791636472363212157125123125121511058128315641972277236611069113097196227901322534147723725449111218282110193701610425735107915876152882018654012460362809102125627111221142132907467841757326207141253721385132975470705406801084796470321551144746784116583623611072911011517565104380489313125942138141706101131247110193701610421282813270651307791146124407024188113311650217573077979620651761831101606158090141273417132115611026014451963404111071911138140716745970241866143729791860104636472363212157125123125121516561125668208108372714710232965547227901322534147723725449111218282110193701610428166414106210680831176202741125561901048091021256271112211421329074678417573242153903414066521763739144741872072941110379152902901122140680108479647032155114413090526111501101886631142189361429013171032902311812519401311117130222715775651043804893131259421381417061011312471101937016104233946540666274932367914859227341713211561102601445196340411107191113814071674597024186614372979186010420631766106169751110305665113020790161158767144656112566820810837271471023296554757424741540320904549034041632813279229220371032901290478166414106210680831176202741125561901046503001101183119687566311901402906813046572979742153903414066521763739144741872072941110379152902901122140255510515306612111678617667734625167213013090526111501101886631142189361429013171032902311812519401311117130222715797641572311514653041490530173233946540666274932367914859215361751048107147715290814134214020631766106169751110305665113020790161158767144206784140175731835601061477114597011475742474154032090454903404163281327922922037103290129047188457821407139741443295702418320501215553979274111715165030011011831196875663119014029068130465729797232202658997779117720725925551051530661211167861766773462516721302404554044342011011517481661210369019811010463602306613015165213097641572311514653041490530173210581773265352137140766773462516721301536175104810714771529081413421401314537155686111135911701056602324213404720678414017573183560106147711459701147306784380415546572979718845782140713974144329570241832050121555397927411171511156112339152486351304134413247351906190137371043141376666813490137311302322026589977791177207259566175460374665907510024741525517477917957240455404434201101151748166121036901981101046360230661301516521301062905567383209015591904732090116901304119280417104324714079161337105817732653521371407667734625167213061414366101113901556690531838749175317761314537155686111135911701056602324213404725812861361358190403540467715014090562841951102624221701312104651627913470830678438041554657297973741029584432507761156112339152486351304134413247351906190137371043141376666813490137311305409052477021260104834733113066609053079177514656113056617546037466590751002474152551747791795729281017139200653299517101941134417116821290671106113010629055673832090155919047320901169013041192804171043247140791613371064141721287227294071019411345136130614143661011139015566905318387491753177610242390327337211371032137190153715632311905694724723390411561132156311043529135258128613613581904035404677150140905628419511026242217013121046516279134708596510431325403734654015034950956425402896514115610355774117374102958443250776355315134189147773147024189931703068218633717540905247702126010483473311306660905307917751465611301623311799353213912266412115402928101713920065329951710194113441711682129067110611306129020671090106907011471535247233137190133901301064141721287227294071019411345136130976491540222509696133661301024239032733721137103213719015371563231190569472472339041156113215631104352913525117544342011011518726393282638116272948089072469077417058251110336111305965104313254037346540150349509564254028965141156103557741176817049013013917166772835531513418914777314702418993170306821863371759615280053801623311799353213912266412115401062177110961765741114012004812155229014234181651151463901472791611708612902067109010690701147153524723313719013390130566175930106320901169056679111047976491540222509696133661303667843817799890503758943100791679613163110450504574603746666090361004824319049251792696551651481031091708791906251175443420110115187263932826381162729480890724690774170582511103361113023223221029850116619511304625041145102352691032904118777616661701762251102601061372613141666090131130681704901301391716677289644674117518157158575961528005380843109173521043141327907405612141139141166701466214110385397307411710621771109617657411140120048121552290142341816511514639014727916117081028619017222261411832101208482591317075661759301063209011690566791110472879012210385394962592607763667843817799890503758943100791679613163110450504574603746666090361004824319049251792696551651481031091708791906202113113111115121270613149211101115531512322322102985011661951130462504114510235269103290411877761666170176225110260106137261314166609013113092217790157212797090131111151212706131101137121115196446741175181571585797681222611461113151115122370621270613110154312111518431091735210431413279074056121411391411667014662141103853973074117651905247149103853928977024414611028619017222261411832101208482591317071776112141320502121363212123215132797641682376011066904791311512328790122103853949625926077659651051124109481911511707977041689611111137379614168211620211311311111512127061314921110111553151505511227567972147109769879192217790157212797090131111151212706131101137121115115078222513619060840015111025946846245697681222611461113151115122370621270613110154312111512497077626812216225197211315961329070717051194170357065190524714910385392897702441461220905010815644244177611214132050212136321212321513279764168237601106690479131151232321109615752132177218596510511241094819115117079770416896111111373796141682116650300411215187091362599650551122756797214710976987912067841165495284282903219072966197501507822251361906084001511102594684624563638107147810718452831013110010545450779167249707762681221622519721131596132907071705119417035702619303211512051151523113051013766197916722090501081564424416814519094554066130703749154770415867311142468380564171252571167147414548890130320905021106688411387013091086631147232110961575213217721810555661105171628391627975096341411386296274123426314442371265030041121518709136259961138417120516139121066110592510439277346687251811707814347716419010587016104266884157014813196320462476412513177236611069113097196206784116549528428290321907296619750573510411808361225791345311509655779152117026047117121774741106624537841612955101403638107147810718452831013110010545450779167562141667904990481849481904981310341211665126193032115120511515231130510137661979167181125714750122377437131101109133211168145190945540661307037491547704158673111424683805641712525711671474145488901303209050211066884113870130910866311472061764432511042472331371908846130901037411710555661105171628391627975096341411386296274123426314442371225117644325110458688024190904127411711384171205161391210661105925104392773466872518117078143477164190105870161042668841570148131963204624764125131772366110691130971961621764427909051141741702745411158748121674832851012490460702071159071196664119585316019593532050453793551142908874117573510411808361225791345311509655779152117026047117121774741106624537841612955101402361115171261401212459112359137818453165116562141667904990481849481904981310341211665115032052173205073610635470764035866110385398618112571475012237743713110110913321166320501101716832050731113236312626679020617644325110424723313719088461309010374117843160173252341732562931251176443251104586880241909041274117100017052471961209630529317026290303741041621764427909051141741702745411158748121674832851012490460702071159071196664119585316019593532050453793551142908874117206176153664189443420776236111517126140121245911235913781845316511665112010771132363122290612541473150320521732050736106354707640358661103853986681554514799915517447528416631142663205011017168320507311132363126266790206784319735824741540185468068770140121281661596660901407914693784316017325234173256293116231414702576404766124443921308186164599014712682141000170524719612096305293170262903037410418111159010012453771137061345540188206176153664189443420776104766106663215132143784113332050155565487141137861381024265112010771132363122290612541473746471025191412223114214071678878724191734901423808162801547766815545147999155174475284166311428764541833105783916231791100461536206784319735824741540185468068770140121281661596660901407914693777190526111141222901275620645450779724145410188741176914136612911623141470257640476612444392130818616459901471268214181211175267631111195222490846181111590100124537711370613455401889563245579813253851661021208661032909072147957104766106663215132143784113332050155565487141137861381024254214117107120840901411122251746471025191412223114214071678878724191734901423808162801547761964195105111566101920811378764541833105783916231791100461536607141112225114012127092673157461650413217024841902001101156610192081458329047771905261111412229012756206454507797241454101887411769141366129184678431365721487915173572110691318121117526763111119522249084664611157157144103411104115727062115661019307081458379563245579813253851661021208661032909072147957206784142167770968061001402905751101429073602573516016545171975421411710712084090141112225163647238323264796307299224315509015477619641951051115661019208113732678433187796612412912517911726961135181416666290417415704664181468013816459708607141112225114012127092673157461650413217024841902001101156610192081458329047162317911102946611377014290174112212911299113845512149619229951834516621417084678431365721487915173572110691398617644325110465122230071264611157157144103411104115727062115661019307081458372067843911724712416220575206784142167770968061001402905751101429073602573516016545171971507822251663114132966956072821318143474185108987492397125314290991371429016211048461011124563626364723832326479630729922431550901547761487843873106287296776326784331877966124129125179117269611351814166662904174157046641814680138164597083617896236110322965516512421103601387061161411082422170256150290471711488461011162317911102946611377014290174112212911299113845512149619229951834516621417011674897234195222807051750986176443251104651222300712206111111322247147816088620678439117247124162205758611469159041261321411369011867773115128470610912281507822251663114132966956072821318143474185108987492397125314290991371429016211048461011124563621824914743153641511487843873106287296776105812831562361783547690596226141615711101481461113036178962361103229655165124211036013870611614110824221702561502904717114884610111344171576411309165714766411301116067112161271216465706218153199739909018165116116748972341952228070517507464710251914166311421091551452955728753065190760677762061111113222471478160886746784313511569211666101986311681117648168164361903213531211714162710144861146915904126132141136901186777311512847061091228150785622113553195125455805769110294100772619371067904114418249147431536415150978478371046611069266352412611401212146875377918601041058128315623617835476905962261416157111014814611130471203156747371085611341474170274590577481216749328510561151314717101712161017454352741171344171576411309165714766411301116067112161271216465706218153199739909018165116102809056401101687937663678157587891939674647102519141663114210915514529557287530651907606777625551051142128652250115117142652412481011130611148966118829018606746784313511569211666101986311681117648168164361903213531211714162710144106217729316651140121214287072366110691130971170708661577013205104165225011511714265241248101113061133396611649615078562211355319512545580576911029410077261937106790411442581286222131753710031210101017076612403624172631368677871954574558651321341201102894125419083113050978478371046611069266352412611401212146875377918601042815810591167501012104041757711574784132400155299112733396118071050299177911164712031567473710856113414741702745905774812167493285105611513147171017121610174543527411737417712068214371422537062622107481311028090564011016879376636781575878919396134632491579813292851811294140901843513011480841817790791722770320902993761375724166311365287912062555105114212865225011511714265241248101113061114896611882901860617410031111610694714513010621772931665114012121428707236611069113097117070866157701320510416522501151171426524124810111306113339661164961702495183916231797465729791238723715570911131613170624866513757913807513025812862221317537100312101010170766124036241726313686778719545745586513213412011028941254190831130656190715779014132662484412219373761479611054142670937634171081729010293737121140321792732170262248414315081302815810591167501012104041757711574784132400155299112733396118071050299177911161376190715779094668731270171421925707081423219118031202145911003101042418119154433249171709373741771206821437142253706262210748131956190715779010712062860123879375646513107065713463249157981329285181129414090184351301148084181779079172277032090299376137572416631136528791206162247143175259253208061711974111048245411646254017410031111610694714513070419051456426314442371217024951839162317974657297912387237155709111316131706248665137579138075130120171012071571839056011045488925435165619071577901413266248441221937376147961105414267093763417108172901029373712114032179273217026224841431508130240784380476463120240791130126180664147221309711702592526290677418413520101454161885236543713761907157790946687312701714219257070814232191180312021459110031010424181191544332491717093716465215581308111089048271329049147070108191210312224128724215622241287242172224217137856513212163595619071577901071206286012387937564651310706572467843117540664128692320901354903818410938779151162247143175259253208061711974111048245411646254010363151576323011111814965785701151561490704190514564263144423712651907147149259751516565030041212701111301201710120715718390560110454889254351232202654977514653151130240784380476463120240791130126180664147221309711702592526290677418413520101454161885236543726137586417583553031164652155813081110890482713290491470701081912103122241287242156222412872421722242171378565132121635156695510432123732624154081121321960737116321905048237320502021720310136612111302467843117540664128692320901354903818410938779151258131662204340222514624190138608872186932356103272116374117103631515763230111118149657857011515614901616519071471492597515165650300412127011113025693671380952113149080111618842323220265497751465315113013764117158659087937262901018841480261375864175835530311974574141141001133159066156695510432123732624154081121321960737116321905048237320502021720310136612111301031715213851321145970112671121258131662204340222514624190138608872186932356103272116374117421227862917913012893296610210737147142155400161245451471191030170139766100256936713809521131490801116188423103646578432368677911471191080961376411715865908793726290101884148097641171421969016010329017114019745741411410011331590661599080701033215475751661815404075408411401031715213851321145970112671121699011412519011909581052131661701467321804113142122786291791301138290718849610225150861219697131107371471421554006385641121113124545147119103017013976610012819071131103646578432368677911471191080966813207525514771231319764117142196901601032901711405817664073742612614712675596706290536540159908070103321547575166181540407540841140174150981521354921202597979680413169901141251901190958105213166170146732180411311062905575397107033775151890131894245113145171382907188496102251508612196971317269047771504775132539710120263117411375139016622241765640176212638564112111312401209161253128190711311028091401519113753949112011771248108893069015683119651376406539802151140816168132075255147712313195290206705811680705724210212531325817664073742612614712675596706290536540684151780010329096809029322413117415098152135492120259797968041311259102902102474961311062905575397107033775151890131894245113145179861756641290750810750547995175272279417013910445621172690477715047751325397101202631174113751390166222417656401762121623182058411154527013151890153112715651329613916613789907980461401650314562112401209161253596314166110593432251316651130829272651166413839418770810280914015191137539491120117712481088930690156831196513764065398021511408161536676195358209210750124801642022122411309529020670581168070572421021253132505961426660905841117089689715510839719391684151780010329096809029322413147120315674737516631075012452713074562111259102902102474961312061764432507701875672696559098820151303389045911280444166722489013098617566412907508107505479951752722794170139104456211596314166110543571517977041689275713912121049578614796110541426212248921301623182058411154527013151890153112715651329613916613789907980461401650314562116703713613273179147823446865963141661105934322513166511308292726511664138394187708131453715568611113551117042217025615029053142456211536676195358209210750124801642022122411306919645282102671266964657297975059614266609058411170896897155108397193913617896236110322121837138666090530510416113859734145970241845490197136674197227723661106911309711704712031567473751663107501245271307456211596311069508013128290951774526888522531138475311249623370241810075504610349128290148849019290103010481906421312061764432507701875672696559098820151303389045911280444166722489013053851043804893910901619071121877835375963141661105435715179770416892757139121210495786147961105414262122489213037470776651100901044341889700371421275888311266964657297915167037136132731791478234468610627077613072319650989075131453715568611113551117042217025615029053142456211691964589102671423219118031561153987976919645282102671266964657297975965104311598949051731412532904141346661516749971477366174165831442888539061310309034590411843617896236110322121837138666090530510416113859734145970241845490197136674197227723661106911309711701062110661555110779683116013810926280414531151092531314164104512821028910271596311069508013128290951774526888522531138475311249623370241810075504610349128290148849019290103010481906421313578395180108066102120160791538510438048939109016190711218778353718551656701701315189102681585141623438311614114374707766511009010443418897003714212758883112669646572979151106217711055431253138282102541339770708106270776130723196509890751138510471731801061411381584612353831027169196458910267142321911803156115398797521491371706863189642255661363164179153596510431159894905173141253290414134666151674997147736617416583144288853906131030903459041184392110294665113866367817829016189851891022821027110621106615551107796831160138109262804145311510925313141641045128210289102718146578477061011411176120616796551651109421091708791357839518010806610212016079116217625919140110256425109140185516567017013151891026815851416234383116141147467841165836236867104190717411210270254781547461908111514125329041410413290121791146452421564523212163510621771105543125313828210254133977070823220266623278761353224813011363774371019562871011320601110477540524659010385397307416626251113851047173180106141138158461235383102716052031567011471262825214913717068631896422556613631641791532499031266648511266879213676103290551373921102946651138663678178290161898518910228210271137619048785377011725090793582721945066216632725317024186532462503250300741178146578477061011411176120616796551651109421091708791586176443420770753281331110274720775345881352731621762591914011025642510914010205677317068261121536909041668414611211151416534213474678411658362368671041907174112102702547815474619081115141253290414104132901217911464524215645232121635102861903015215190102131232202666232787613532248130113637743710195628710113206011104775405246590103853973074166262512322029029611686612100146111316052031567011471262825963141669014790155212692109324990312666485112668792136761032905513770419694310501502331102629092074515221376190487853770117250907935827219450662166327253170241865324625032503007411717014778964657297911358161901157972008135861764434207707532813311102747207753458813527395611212153690904166841461113116647754710205677317068261121536909041668414611211151416534213481490105058151903015215190307791102131102861903015215190102131232202902961161511210014611131232202902961168661210014611131101149905821269210935963141669014790155212692109357419066421008767619078641467690721163701934105015023311026290920745152270419694310501502331102629092074515222869047051525435326186714195623661564651381701477896465729791135816190115797200813168190170611638150908668741764915621129055518082632629017017610413195611212153690904166841461113116647754719678474657297912072369125511579720081490105058151903015215190307791102131817731451785123766100190451992169066156710262906747410412153690904166841461113113064755047232202902961161511210014611131244103290977376642100841967920397107902156103290757576907211637019341011499058212692109319272914352138207903301305159713591120141882015190690791102131574190664210087676190786414676907211637019341050150233110262909207451522357753174352690791131286904705152543532618671419562366156465138421904705152543462129111442472411204831874571681901706116381509086687417649156211290555180826326290170176104131604250901883191826196784746572979120723691255115797200240466311069055421229614931341461113716552681773145178512376610019045199216906615671026290674741041215369090416684146111311306475504723290139082224142585818113170152244103290977376642100841967920397107902156103290757576907211637019344361464913215260903162658871111927291435213820790330130515971359112014188201519069079110213168011296770908551385132151127147357753174352690791131129490471647324720042190470515254346212911144247241120483187457374178711101231250155307604250901883191826196510519081079013676103290551373671421069371459117426290674741041215369090416684146111313836471044724046631106905542122961493134146111371655262751787111011648601715107019348014707919066102120556536300525813723290139082224142585818113170152160810171136678418380113701117691743981501057157436146491321526090316265887111286714313152190560776190130987973821195315190690791102131680112967709085513851321511271475808104571411976811348925350766110141320502531362536632151329613051818647966610570176530901255172366110742104129490471647324720094770211138391390151903077911021373741787111012312501553076042509018831918261965105190810790136761032905513736714210693714591174262906747410412153690904166841461113138364710447952457838372979196106770713837297912751787111011648601715107019348014707919066102120556536300525813736114611071190905542126921493134146111371655261608101711366784183801137011176917439815010571571136175104810742135232629031590342472867143131521905607761901309879738211953151906907911021316363151140714773081042651001041441574181541161118754058081045714119768113489253507661101413205025313625366321513296130518186479666105701765309012551723661107421041487843147772910610381429062315556951498341365142947702111383913901519030779110213715751414114466513413617260425090188319182616851818114466513413698952457838372979196106770713837297919481773266260101111662601793611461107119090554212692149313414611137165526236311251831101378051893613651427690103276682019771136175104810742135232629031590342473921381106691770132907294314378121496335459140709013024034145063631511407147730810426510010414415741815411611187540331766645779907966447148784314777291061038142906231555695149834136514227517871110123181057914064146511612190623540157514141144665134136172232202902966140611116137168518181144665134136983126212037126290694731041393266110137315111021894817732662601011116626017928690470518481184134705113123631125183110137805189361365142769010327668201977102623157821662213921381106691770132907294314378121496335459140709013024034145012718231578219133331766645779907966447150299706514061469010213127517871110123181057914064146511612190623540697822106190873512242322029029661406111161375691369029761320913831262120371262906947310413932661101373151110218150269524372869047051848118413470511311124108715123581511384063042010262315782166221433120117160131127182315782191332611081265148540514211611138150299706514061469010213110202702772514213127513815113813169782210619087351224167416101578218113151116418256913690297613209138206784147139256150269524371351196106111911241087151235815113840630420128304147433120117160131232204921382611081265148540514211611138268116202102027027725142131275138151138131596226429612401409071129070651907515113275314061311674161015782181131511164182174263540711903008526020678414713925627825341521381351196106111923054329316112812534657125341492513291590471283041473622315816654410964013146293610329019115711613014061469010213723220492138660215829032190722651032513066859818111613126811620259611012401032901246140655126214013146441769686251132907681385962264296124014090711290706519075151132753140613198617511729024620340631135214017426354071190300852602063176610666124265923211596118236855375771081138154459782278253415213819850108121874916907852861442305432931611281253465712534149251329159047343147847706414128199220724517715542236223158166544109640131462936103290191157116130140614690102137312621304265022624112180090144794322281751161113824115517677660215829032190722651032513066859818111613163645702104445344124116545115159611012401032901246140655126214013146441769686251132907681381171126844657299881901477135722986175117290246203406311352140636784715740622071413012994331262110159222490846962744411255103264114767879117776420631766106661242659232115961182368553757710811381544597824941461111314175613781104116111387518211023614611048824131264741985010812187491690785286144206784148954541642525134314784770641412819922072451771554222321109701737107366121113131262130426502262411218009014479432228175116111382411551767710202629043790961815501245968047623240631901757076364570210444534412411654511512751028723713515690771262646116137753332075515205725447510911161381171126844657299881901477135722227375861802141131182151261116806251089520744315166122611676113166411151106661801316111512612021312071016321161477636784715740622071413012994331262110159222490846962744411255103264114767879117776461290768314113801097041421106106111611131494146111131417561378110411611138751821102361461104882413126474332205331127131816624711313863208061710213205090779035479206784148954541642525111711268446572998750103172110411022175710317213153510221757811331165021757139121210329068879142212043123211097017371073661211131206784132763518741983714746572979710202629043790961815501245968047623240631901757071031841712103743714531562177180735681049390819011614617072751028723713515690771262646116137753332075515205725447510911161389529020681129625330970901388371049621470901697722737586180214113118215126111680625108952074431516612261167611316641115110666180131611151261202131207101632116147710621771105633711712114011165638147717751415313146218616263130777147262241544869012161131311421853151411162737761290768314113801097041421106106111611131340249457668906926474012812021313322053311271318166247113138632080617102132050907790354798117077696559074124790180219613417087915111711268446572998750103172110411022175710317213153510221757811331165021757139121210329068879142212043125813168290222511048290410540512147797206784132763518741983714746572979727327745820259191116967713011833116120480771031841712103743714531562177180735681049390819011614617071372810457306811361974517119042571190812309503215519118718043507281329050171036202131319174615163223419215111612089529020681129625330970901388371049621470901697716246545797644785668205693205053666431290710378313161605283796123967109081429106217711056337117121140111656381477177514153131462186162631307771472622415448690121611313114218531514111627377245456711588741287486357294798871155471441109933616588611441552644537554341120117429296131643901694697874182933275387913402494576689069264740128120213186519049050268106741829330768178466381132363110385399035741124101662966114217111308117077696559074124790180219613417087915117013141754611614696258131682902225110482904105405121477971036236781061027474184142290571431211551451112155101758711250140104131575952955962421831003511516277011164182827457596128127327745820259191116967713011833116120480772491311090901330683664822149750518966334671013875140707137281045730681136197451711904257119081230950321551911871804350728132905017103620213131917461516322341921511161208103678431429021115542275140741121013713597779111616246545797644785668205693205053666431290710378313161605283796123967109081429306784313377085631528316257150756514856701493901407012411014471441346120143245456711588741287486357294798871155471441109933616588611441552644537554341120117429296131643901694697874182933275387915661812624110151383197748577140661471426701354653170786519049050268106741829330768178466381132363110385399035741124101662966114217111303067843827759777911358107120121791115792741117151170131417546116146967313098375181125624112047715110362367810610274741841422905714312115514511121551017587112501401041315759529559624218310035115162770111641828274575961281258131662204370222518047616190187564115566222211517072491311090901330683664822149750518966334671013875140707339175518552140750601412161358210329028110367843142902111554227514074112101371359777911166561125668208108372429541277139326611015331514546511551316711322575107045657811350208967061070136745471371012190790306784313377085631528316257150756514856701493901407012411014471441346120143259204930315215715545618679756618126241101513831977485771406614714267013546531707956190954193411352241130747177569639357623166601707306784382775977791135810712012179111579274111715111717061207152187565435136042138264491236110361135511569045629022213017077313098375181125624112047715116818043587121909157713290615219254372581316622043702225180476161901875641155662222115170733918144325077633917551855214075060141216135821032902811098901514015589682146346774153155437656112566820810837242954127713932661101533151454651155131671132257510704565781135020896706107013674547137101219079076617531136146572979117757075054510257545115478518359065517479103241635111843636142259204930315215715545618679710367824246572979117757171956190954193411352241130747177569639357623166601707948451478709649091661990117170612071521875654351360421382644912361103611355115690456290222130170711984567831453221367823631752818358311318182513113875148849073112895214016818043587121909157713290615219254372067841136117901087919138166159143713391814432507761701314175467811361098901514015589682146346774153155437206315189082246572979776617531136146572979117757075054510257545115478518359065517479103241635111843636142500445175871036782424657297911775717110296032115158901484171777948451478709649091661990162815229379703104865114057320906673047103853949690116777119845678314532213678236317528183583113181825131138751488490731128952140181111590961352011166870902067841136117901087919138166159143712063114272110666124146921301269891177140732871311038539901030113254259312121241469213030762167120177170131417546781136162176518960325251107160478419016111043141470426631141321001372012309131130206315189082246572979761290206130862902486681103115177207717947817071514717022961092419090790741115004451758758611166591448131531351041304481511029603211515890148417177779651321740314158716281522937970310486511405732090667304710385394969011677740623637341756153718111159096135201116687090587491415721707754831504152557206311427211066612414692130126989117714073287131103853990103011325425931212124146921303076216712017725551051906022066327766609053079151162176518960325251107160478419016111043141470426631141321001372012309131130160611190540591821308236752754183581317541837715754184062347661290206130862902486681103115177207717947817071514717022961092419090790741112204561745487741665651586111665914481315313510413044815140623637400615316590530797796513217403141587358315161121665218731504152557406236373417561537130120107738324718713005874914157217077548315041525571501805668131110574019011374825551051906022066327766609053079151388457821327401901001457025087915116061119054059182130823675275418358131754183771575418406234764563154010419015570922045617454877416656511621762592526290303706212904134414739213082267138188467070840623637400615316590530797704190554356583823107083583151611216652187315041525571202904703715910431679023966701147121090222927130120107738324718713001334114748212074831222124791511501805668131110574019011374819651051307661031221101142665883336519313019312017738845782132740190100145702508791515222471161034574171558407081834396692070279122392456315401041901557092964038715721679116217625925262903037062129041344147392130822671381884670708270313133124712460875109223456770419055435658382310708312227903915714143290222824611202904703715910431679023966701147121090222927121651477412271124621171399012413341147482120748312221247915139220719549813911851662309047636211011210514729057591236614470728932966102370225427357139148196510513076610312211011426658833365193130193120177384137901131446190547262242670152224711610345741715584070818343966920702791223927894665166124903237147198754551232661084729640387157216791177791819811025740121018072373145114290170103959621213807012703131331247124608751092234567103501351016253186109030330779113890201987919891706113741222347013122279039157141432902228246120431866131307665119630766408987501216514774122711246211713990124282773421578977903922071954981391185166230904763621101121051472905759123661447072394871119630779158070298791171137022542735713914837178985966901804131849541466756172932211766919638413790113144619054726224267011501806651119439522788250661066507016504757566106981150789466516612490323714719875455123266108473923410166577901777918198110257401210180723731451142901701039596212138070122711066571120423215501801460861244875790810918625751974184135551103501351016253186109030330779113890201987919891706113741222347016264971254433730766979879117112043186613130766511963076640898750236315122113881148337282773421578977902663179193161661244450051239487111963077915807029879117111166514732164224681113566140423717898596690180413184954146675617293221176691969644662143281625466511549871135702362654839879117111501806651119439522788250661066507016504757566106981150204318665115469615097779155231535514392341016657790976190453903733478114814211595111371032901506170491701934227110665711204232155018014608612448757908109186257519741841355515964975531069333661063319879117116264971254433730766979879117111020204129665753510813892154236315122113881148337105194170672901296541180316432901136690751987911711266317919316166124445005135281072662763328397566796830779122270707116651473216422468111356614042128281327065170657021136136221104138463155840708964466214328162546651154987113570236265483987911711817754627142902171613301449013911706715110613870720431866511546961509777915523153551418065185766714713545785766714797619045390373347811481421159511137103290150617049170193420631766106627325951637847280138120160516682732754759649755310693336610633198791171175651043804893515713244312456671471020204129665753510813892154574984130779710985402731554765404426610212014112329630779151105194170672901296541180316432901136690751987911711948456798901981243558721108771143119529011436697352810726627633283975667968307791222707071285101240184975717010441751290472513078201301282813270651706570211361362211041384631558407083022064366131463131655595925354763141858881775462714290217161330144901391170671511061387073811661171601376651228443571806518576671471354578576671473143205011072195541564625612711013947685315105113359218498343746362705651313209015309215420631766106627325951637847280138120160516682732754715021066576712018904467120559095227712426695010615690158192142150171259237118519611849170175651043804893515713244312456671473311103150561306610627290100488073126742171151906628570157498413077971098540273155476540442661021201411232963077915127867366472277124266950176902361711919098170133170794845679890198124355872110877114311952901143669757419073166934990955807029879117111285101240184975717010441751290472513078201303841106651306278111389753537307661033022064366131463131655595925354763141858867206437266102120166142227212260908108114833738116611716013766512284435720431872666826165631412116115022261137187110160572101115190204671429087901033311371874017567707314320501107219554156462561271101394768531510511335921849834374636270565131320901530921547894661316611046696109521200104018390797358146701150210665767120189044671205590952277124266950106156901581921421501712592371185196118491701349773819259651068137307791506701610423311103150561306610627290100488073126742171151906628570114697310066578554443750278673664722771242669501769023617119190981701331707204318116665180566142666414307177907974063127574190731669349909558070298791171115018066572384112274181461101671651251307066537503841106651306278111389753537307661031031785640631135880523224741472917790797406312767206437266102120166142227212260908108114833716231125307791661244450051204318726668261656314121161150222611371871101605721011151902046714290879010333113718740175677075663151245509012410165401354807917894661316611046696109521200104018390797358146701986175755904758424190117512234977381925965106813730779150670161042752203166517711086833666146901131481469731006657855444375014631961693077911303720431811666518056614266641430717790797406312714263149710196661029032090637471956664131105908671466680766367121296111909804175881501806657238411227418146110167165125130706653750181211115666110462361421906857103178564063113588052322474147291779079740631272353473574111669013171051231571623112530779166124445005178945610711166106183625114112410329041631361836211756631512455090124101654013548079122790493966690931711986175755904758424190117512225131146983077919011210495615080575111049349626150805156211022710089317117522031665177110868336661469011314838411072667531711049111150805751110492985615080131951150511461806676082146319616930779113037789472837224729610706701032901160418271358651927141142631497101966610290320906374719566641311059086714666807663671212961119098041758810207731741131190162669042367181211115666110462361421906857258128666516651422701530811372353473574111669013171051231572581286729012961501301818114768111989066150513029085901201309317117894561071116610618362511411241032904163136183621177815072135191132906665818410812315722790493966690931711302596437265111312214611032371250959086757226418320904929090412267698797872589176735314797661029024212526222987915125131146983077919011210495615080575111049349626150805156211022710089317112321511032905354705913287258917307797384110726675317110491111508057511104929856150801319511505114618066760822703131325751092234567353147976610290262229879778947283722472961070670103290116041827135865192714115032052665166423908744791728149150147170262227690987971020773174113119016266904236765190520791413076690218258128666516651422701530811373926576657661301210111154506278103290165258128672901296150130181811476811198906615051302908590120130931711817753077915086613012101112288865790810918421313076519022266512544256142413076690758781507213519113290666581841081231576312066514894112486528141701123763213167054065190520791323025964372651113122146110323712509590867572264183209049290904122676987978725891767353147976610290242125262229879151258128666511477176441415715541013133450751883561357504518651618279537741782232151103290535470591328725891730779720631146987501361038540669118041828968565190135727031313257510922345673531479766102902622298797631206651756989060912128013812452079132301130661247968086110150320526651664239087447917281491501471702622276909879729777218341914011267453732150319311701122571106519052079141307669021820678417196107120181171591664149083926576657661301210111154506278103290165601457374537321369036831817753077915086613012101112288865790810918421313076519022266512544256142413076690758206176443256959079864414157155410131631206651489411248652814170112376321316705406519052079132521175751023196331566181249014212476901475775725812866651147717644141571554101313345075188356135750451865161827953774178219651051131151109146140224537825132780758147577147987322063114698750136103854066911804182896856519013571961463003961554166688766827582631206651756989060912128013812452079132301130661247968086110781507232190110664241831910723297772183419140112674537321503193117011225711059643812725422737301376660901717761502079166150771027515104120678417196107120181171591664149086914528296187419673332361103706610832751680714160145737453732136903683154090935167220663291076644171571488329368919066108320922061764432569590798644141571554101311062177293172661245323166102901983293689111028013832243176544521175751023196331566181249014212476901475775718545736612421210112421256610290262229879119651051131151109146140224537825132780758147577147987321901709675460106395255247557196146300396155416668876682758210202041296651896695781507232190110664241831910723105845147150491961331103314785158724742107319879117115964381272542273730137666090171776150207916615077102751510413321772931722486642141877910790193076690101111462177911356615123384104684724126707151130691452829618741967333236110370661083275168071413064865406104310321701307321180145015011805367011186273510690664001345409093516722066329107664417157148832936891906610832092392217563077917786127064942271163011105456688540106217729317266124532316610290198329368911102801383224317654425812867232190110750769066418540185457366124212101124212566102902622298791781506651311519159066113022611511205770615676280138319111113647929879117111901709675460106395255247557134751141205696418454414791901396413037307662484131437832893768162317915381020204129665189669517261665761329030779113688214018175066531493825376653287565371058451471504919613311033147851587247421073198791171158611112611323631203712332248472905315566609020730925717083321772931722486642141877910790193076690101111462177911356615123384104684724126707151130388225422614505132662914066256116512803064865406104310321701307321180145015011805367011186273510690664001346472254255951101150139705230129174111392217563077917786127064942271163011105456688540817756276610290302379227381437976610212016675142781472952439073151987911711258128672321901107507690664185405335104189328151741706116211256851698251901166856781506651311519159066113022611511205770615676280138319111113647929879117116311106651154106657611066515442511451377111181957502482789610385397305666423905065705526612454279511347511412056964184544147919013964130373076624841314378328937681623179153839217729317218776756766248411356624841797311232511210930779178403319027161921726166576132903077911368821401817506653149382537665328756537170328379096555111218379096571451103241107266102903389014070290419879117115861111261132363120371233224847290531556660902073092571708314320501107232114113712701475128277484273732388225422614505132662914066256116512807894721421566101211307791951096127065261155456616816166514653113614670112329046701611561307791809701663451847513264722542559511011501397052301291741115965105190810790661029025714026638762338817756276610290302379227381437976610212016675142781472952439073151987911711809961507223612117088459136682504361554761065291963473131071713653351041893281517417061162112568516982519011668568145462017915047241875115170140661516311106651154106657611066515442511451377111181957502482789610385397305666423905065705526612454279516331507224212530518329368162791124131392177293172187767567662484113566248417973112325112109307791784033190271619267425790125183101083293681623179112419217032837909655511121837909657145110324110726610290338901407029041987911711266110182146636669662251067935112840213423143205011072321141137127014751282774842737321064150727522715656611287219206343278411508103678947214215661012113077919510961270652611554566168161665146531136146701123290467016115613077918097016634518475132282516624111111391441827850145132905661410134596510519081079066102902571402663876233839410298571765669032940374076114690141809961507223612117088459136682504361554761065291963473131071713634451459132902921352104153147512575111235125181454620179150472418751151701406615122357666116128118166422413216380130633150722421253051832936816279112413178817052779787129907756617251627421142192332537483513067425790125183101083293681623179112419230114751011115054280226786238130266110182146636669662251067935112840213422825132296371215132157467373096830796326761355325120547106415072752271565661128721920634327841150810363575123651896559088576622492873712349511128251662411111139144182785014513290566141013444614615115045471809668190394102985717656690329403740761146901411175146736757164277473363445145913290292135210415314751257511123512517354570296967057100796871316269010790141223576661161281181664224132163801301259664152307915906653766121144307664474110079642788170527797871299077566172516274211421923325374835130781507266901095133596610296133833496183198116238218451626923011475101111505428022678623813081773756629677279715098820259256112681069081075113075111208937727911412825132296371215132157467373096830796326761355325120547196785110215110930772110690681843575123651896559088576622492873712349511110516487509663698251351313076627905615771446146151150454718096681901364418436651490130183904350727115548751358918117514673675716427747336938510307423691301581456719222653696735457029696705710079687131626901079014134378981058221501051202005116276740104177731125966415230791590665376612114430766447411007964232845362512456611770974427120127343307872909177093587815072669010951335966102961338334961831981162382184516269219077381662011151596695982513387093626680817737566296772797150988202592561126810690810751130751112089377279114194845738439690187419671408761184677819290791971617931491778105849797271111503057819290811196785110215110930772110690681841036236781061055667112149633584698410410825915255681641461779079153456711051648750966369825135131307662790561577178946651663636730766161644781572223411201274293078725891757422913644184366514901301839043507271155487513589181051124117502236690106312445490261779669528881490613454574227668093851030742369130158145671922265369637178989915519373683321393171134378981058221501051202005116276740104177731350374690103290754784396908277466827453577581130425131915903076610975132197479870435817776313331951381401384168184328453625124566117709744271201273433078729091770935822090212324915904539066809014119077381662011151596695982513387093626680116651449763991590447151948457384396901874196714087611846778192907919716179314917781058497972711115030578192908117887849914166718432015641183902322981036236781061055667112149633584698410410825915255681641461779079153456711049141665711130515066511577178946651663636730766161644781572223411201274293078725891757422981773811356686013510065732733179762690227902161437911051124117502236690106312445490261779669528881490613454574227668033217729317230768307987507566129016024519275214051752140317751741371789899155193736833213931711251783620930598251130239907373114466102902421253051238662967112618372883503746901032907547843969082774668274535775811304251319159030766109751321974798704358177763133319513814013841681841487843217317517195522090212324915904539066809014180211026224537213145011181120938868120121080210869131813510541662931311166514497639915904471512975145430768307963071105403784411351311052037788784991416671843201564118390232298357512365189690882751662249293123495371049141665711130515066511577126611012095114413576431232301110266898512714887088177381135668601351006573273317976269022790216143791251311251831108774811093531007332177293172307683079875075661290160245192752140517521403177517412454573124275732421252011598797327100251783620930598251130239907373114466102902421253051238662967112618372881051124750966952888149061345475667514878432173175171955817731353077911723076672979118075796305901097208021102622453721314501118112093886812012108021086913181351054166293131258128672102902491104130765155702211296417331791110371081110379921101002975145430768307963071105403784411351311052037296412432661459012901824431151394183153055342741702791110373575123651896908827516622492931234953720631125183110668774811093531007107251129779111013392266110120951144135764312323011102668985127148870859651043212352104314141660540307200662868649066104104901468017773113086713702101143625131125183110877481109353100714878432198992639616511581651507866237029068244245457312427573242125201159879732710033217712010203166131165140713116514379018410511247509669528881490613454756675781507230111066884122157322142383013053058177313530779117230766729791180757963059010972015018072107220155252627081281240411710903059625812867210290249110413076515570221129641733179111037108111037992110100258128666516539066749753075732327533661247032404117168329368106903059629641243266145901290182443115139418315305534274170279111037105112475089669528881461345475811251013165661010122524797379340901242562063112518311066877481109353100710725112977911101339210207734127054070092723510858531262110251140369632730590104136596510432123521043141416605403072006628686490661041049014680177731130867137021011436258128666511554185166140818071301416468057588631487843219899263961651158165150786623702906824415018072751305415115512684886591991239013003321771201020316613116514071311651437901842894401166576261317821204441421166511577178150723011106688412215732214238301305305596510432123521043141417262293072006636014813615018072107220155252627081281240411710903059678150721554184882742662712998632581286665165390667497530757323275336612470324041171683293681069030596809963197215932256512141329030766211120303227627973071202108170879710511247508966952888146134547581125101316566101012252479737934090124256345207263151762349595546511095637905471101211378955403110207734127054070092723510858531262110251140369632730590104136106217729317298251907337206283381110118121904181010636690516110118121171258128666511554185166140818071301416468057588637815072183579513218390217597411584831150180727513054151155126848865919912390130010511241175675237411441050669086979638813164390109115816026766610290597897553129236227909116651289440116657626131782120444142116651157712275086652108234112014942932815537816614016450059651043212352104314141726229307200663601481369210296754624176903124778426801757519879712271417815072155418488274266271299863884325951956036580563546215117861251203248259174271478099631972159322565121413290307662111203032276279730712021081708797150320526651566417572418557017614787066714734520726315176234959554651109563790547110121137895540313503746906660909047466381038539903566511062177293172982519073372062833811101181219041810106366905161101181211712582964756155403540135390138102725417690366136904847913793469311066403134781507218357951321839021759741158483128944011665145515540354046326690743151963236155130761043103215513017024187177911067116105112411756752374114410506690869796388131643901091158160267666102905978975531292362279091166512861108966508987911711227508665210823411201494293281553781661401645002492048903166511291407754223291809014737332192066853766102907753714237941157319875019512023812193766296120112751305908996140667141921029675462417690312477842680175751987971227141206784111966105754223222245372373713052352963788432595195603658056354621511786125120324825917427147974175862807021911003959063210513538550903301471063772237147150320526651566417572418557017614787066714763111066511541935150603329015679153898791171135037469066609090474663810385399035665110285110353798791122103710417711469021527148841708258296475615540354013539013810272541769036613690484791379346931106640313435751454308412645371040183907914828944011665145515540354046326690743151963236155130761043103215513017024187177911067116986453747431540700724511150905969626638286110896650898791171125131146981836637042854013902713587241917115027148841708249204890316651129140775422329180901473733219206685376610290775371423794115731987501951202381219376629612011275130590899614066714125829622917030856041115942519029674134206784111966105754223222245372373713052352963710516012021785611511323631668021044313197417586280702191100395906321051353855090330147106377223714710945441245023163111066511541935150603329015679153898791171110229970651388131247124194144755198791508142951511352334176517617172102851103537987911221037104177114690215271488417081376112168262667907567690324609041272216601110477540524659010385397307416626251357514543084126453710401839079148366784381779989050375307797202561153987916099540761175610966801243734698645374743154070072451115090596962663820617644321014132750667304110820178577128315257377821431103741112513114698183663704285401390271358724191711502714884170856617644210385399066730472931011112905125829622917030856041115942519029674134116746312045797811496571013192269317915110516012021785611511323631668021044313114878432829367289329661022014549028885390613149247745611539879151109454412450231232202658351126807131968691061419612610229970651388131247124194144755198791508142951511352334176517617172181111590192269317911030798694084361053117166113421376112168262667907567690324609041272216601110477540524659010385397307416626251206784150067770105100041135707124010051254511511527176790126103119310070836678438177998905037530779720256115398791609954076117561096680124373463741777077014378474963354659777119290387107140206176443210141327506673041108201785771283152573778214311037411159611012301219010329072121454056617644210385399066730472931011112905110205677321257051682614134413247351200541904251408641130417706121035341119226931791131463463155840708116746312045797811496571013192269317915165611213790311150932184726637170841416631136130148784328293673701283156419722772366110691130971170201454902888539061314924774561153987915158611151712610329037539901503143665191306612450852208255371055314166609014823220265835112680713196869106141961261176951311079402229056295731198244632142714718111159019226931791103079869408436105311716611342168190170611638651043922102079016115886720820678415006777010510004113570712401005125451151152717679012610311931007087164148834151261331661304639026075702545101176902531428527083741777077014378474963354659777119290387107140612902067109051590953582066814728969631115090806524121842083012622047269161905107024182472339034074111596110123012190103290721214540596510432523739254096555112511101072921421711139121210329010684570210015110205677321257051682614134413247351200541904251408641130417706121035341119226931791131463463155840708766176443250770134145070711132402577712924081163619642956474893103217017024181991426181103245371120142901447196555709265611213790311150932184726637170841416631136130650300413219035162205419072370128315641972277236611069113097117069196458910267735377006531537331591268205861115171261032903753990150314366519130661245085220825537105531416660901486919645282102671011101901806517111122019066907541735756578852151289797117695131107940222905629573119824463214271475326351041572137107178593491171528820186540124603621681901706116386510439221020790161158867208120153712071511281133206819071641488341512613316613046390260757025451011769025314285270874678411658361391226641217571411905043810661290206710905159095358206681472896963111509080652412184208301262204726916190510702418247233903407411195611221066342272216964990481819481904981396331201100911038142903779013059651043252373925409655511251110107292142171113912121032901068457021001518261418923213976822139262668707661764432507701341450707111324025777129240811636196429564748931032170170241819914261811032453711201429014471965557092162319624779111022249050877065030041321903516220541907256214199540761176613099540761179059190351306919645891026773537700653153733159126820524110901212951322931914825110913941291711682966130139412990591903513069196452821026710111019018065171111220190669075417357565788521512897972464315066513211399010703198151951327664824753263510415721371071785934911715288201865401246036223220290952123145461629627416041066660907005138270671471201537120715112811332068190255510516660909809088575273488130687202417467841165836139122664121757141190504381061062178711101231177907917227704524567714744704372932956112210663422722169649904818194819049813963312011009110381429037790130277141228710631901417106901418261418923213976822139262668705968122258141812784912009615040210748571623196247791110222490508770266317842161570532616369014156214199540761176613099540761179059190351303583178421514195326111609014152411090121295132293191482511091394129171168296613013941299059190351301036236142106321142980316651246431506651321139901070319815195132766482475097847661437297918601041078172879013632549707156362232202909521231454616296274160410666609070051382706714724641110319665403581726167169741872330482555105166609098090885752734881306872024110363151202107910341147822964686106217871110123117790791722770452456771474470437293225551051111706450208277141228710631901417106901416703713613271117914702344680663114132201371001230913113059681222581418127849120096150402107485737095573742257741477846251652130266317842161570532616369014110197510110827531176417025413583178421514195326111609014153851043324663566577381397782014054010362361421063211429803166511824914713856218111301110961450978476614372979186010410781728790136325497071563621036315120210791680420871131274791510329041137019080514224641110319665403581726167169741872330482063176610610866805132103853990416551321036315120210791034114782296468672952466381125551051111706450208256259253319071397262901021474104142171167037136132711179147023446806631141322013710012309131130179818101141583266166912130370955737422577414778462516521301136661104190751661307625095623307909066884165213010197510110827531176417025415863176610614211091073666511875675366110746791950475385104332466356657738139778201405401024239032223377509012913714290371032909056719022212089479513467013161707132140905963735190958364735190476471824914713856218111301110961413145371556863166585132103631512021079168042087113127479151032904113701908051425668498791206317661061086680513210385399041655132105112411750665214463183796965590543757295246638111812111112465113511819537256259253319071397262901021474104142171195632455798132538515316660901407914824710329096539909065513217981810114158326616691213023617644275090513332939556710190103741111136661104190751661307625095623307909066884165213059631416611059370815090184511032904753990413510911112641661701138586317661061421109107366651187567536611074679195047184317536611074679151130102423903222337750901291371429037103290905671902221208947951346701316170713214090596373519095836473519047647366784334980490554035892540969051113145371556863166585132160637419085401045170301803154059730120185666190664141346191170222715114611181131701645315543756684987912619077516476611032214512049055112188613110511241175066521446318379696559054375108117871110123146572979113587212051619011596199813181211111246511351181953760513811013177013290772943143781214961451914129181906235409563245579813253851531666090140791482471032909653990906551323431478477046591406412681161219062354023617644275090513332939556710190103741111022987065113817590139591515963141661105937081509018451103290475399041351091111264166170113835612837706269747116859311613118431753661107467915113019891108471032902749148265115641119914651383667843349804905540358925409690511150269524774061371606374190854010451703018031540597301201856661906641413461911702227151146111811317016453155437226491411381167513130414151261907751647661103221451204905511218861312751401383166511166651299745341116131138151108117871110123146572979113587212051619011596199813370225424981396612460513811013177013290772943143781214961451914129181906235404711206210329013140657585511314069068611015190915321469112134314784770465914064126811612190623540230510514631956853151051146111161371022987065113817590139591511062206535554312535076611021835612837706269747116859311613139217790670110198911084710329027491482651156411199146513822750815716413747811741933223740951622116418215026952477406137112804217418113111183110315123110110253122120877253965590857282406811712531161372264914113811675131304141512063179110292337692541416104131275140138316651116665129974534111613113815126190583125874917413236315649113113312307024188710137440659824131264743702254249813966124275904761325701108247112062103290131406575855113140690686110151909153214691121119746312014290731571673012050678133167230510514631956853151051146111161371176957813118756107920222511715941811181214539040919449312626014010622065355543125350766110218771905261112229013934134152904543767911726113981320904701313921779067011095290556664147297919052637227508157164137478117419332237409516221164182162312224901555087915111280421741811311118311031512311011025312212087725396559085728240681171253116137112804217418165045942206317911029233769254141610413168416129655906487731654519871126146321082864913154711472619058312587491741323631564911311331230702418871013744065982413126474196934181426255321249510329090121222311422759047613257011082266317911102941196675332496512207147119746312014290731571673012050678133167162311461209874431460471038539907421158130117695781311875610792022251171594181118121453904091944931262601401681901706116381301779063779152570321616115771905261112229013934134152904543767911726113981320904701312271031611097709879734111354095290556664147297919052637227907751647557741667710666609053279177111749032090510511421711130162312224901555087915165190526371491243414157112804217418165045942106290702151580131103037230314166609047437684161296559064877316545198711261463210828649131547114728913171782903219071129452051118122345711323540111110026619057196934181426255321249510329090121222311426817052471168401728309622542917242017026290139741041421711130266317911102941196675332496512207147160810176678418299613441479162311461209874431460471038539907421158130812788490600540417469423231168190170611638130177906377915257032161611551896095901116632483322271031611097709879734111354023256773170682141443579159107105042215034411195125804641554026217485722790775164755774166771066660905327917711174903209051051142171113031432050110173736641651905263714912434141573311103150562164732641150558182668329511873456169632106290702151580131103037230314166609047437102423905059280615631366110321032901290472891317178290321907112945205111812234571132354011111002661905710226832706513077912264777690674111530961411197113882110575775246590103853973074117681705247116840172830962254291724201702629013974104142171113054877841471151654171004665632854122612946418041658529616081017667841829961344147930611656951845402539119385296289329661028863185613051270722650510117617185796812788490600540417469423231232210132575675611532997913251896095901116632483326632050110729604519290115147771158867153513147917613441872621230232567731706821414435791591071050422150344111951258046415540262174857255510516660909809088113157526657248813068720241314320501101737366412264911151132363157661428892228904921513311103150562164732641150558182668329511873456169632728319651961878613647996552247190102423905059280615631366110321032901290472067841489621741252823283790751007916710226832706513077912264777690674111530961411197113882110575775246590103853973074117162311427211062229013956952559042011112536250907310967162672598311642313796953104572079067110711715487784147115165417100466563285412261294641804165852961062110661553224711072979152342152247110113667723661106911309719630611656951845402539119385296357458395180108066102120160791886318561305127072265051011761718579635878472016157841804759615890666090757147103290180937067232210132575675611532997913274678411658362368677916766320501107296045192901151477711588671535131479176134418726212309484583790962433125551051666090980908811315752665724881306872024169196458910267247411016561153987915122649111511323631576614288922289049215113761125715373521733916817248157072831965196187861364799655224719010296090611514165342140206784148962174125282328379075100791678156773170682616632483315116231142721106222901395695255904201111253625090731096716267259831164231379695310457207906711071171783106032910901619026047242179834579132493271476215033227141151903077911022111062110661553224711072979152342152247110113667723661106911309719628236497200170600129902534682129067110470516521461113135745839518010806610212016079149414726211624717796987912165247661103221451721151523114617358784720161578418047596158906660907571471032901809370671376112658516690410901461774678411658362368677916710621207026123690431416681166471801916218201373790611373710431413766668134901373794845837909624331286904705152543532891201489104641113869196458910267247411016561153987915118249147311516674819213113761125715373521733916817248157072952262111086512246671519014951605511582703710296090611514165342140699812225825519010965113068720241815677317068261663248331512467843872111911049032166901068056644131783106032910901619026047242179834579132493271476215033227141151903077911022111396969777919010723781184161217282364972001706001299025346821290671104705165214611131131661150910132911267511319586715190711152409716122649414726211624717796987912165247661103221451721151523114617190773115546327734269059622613761126585166904109014617170321159147919616711516290326261176509096791816872872921470241810621207026123690431416681166471801916218201373790611373710431413766668134901373725813162125131325066102962301372869047051525435328912014891046411138392110470371612236211147907758647187499047613211824914731151667481921311431901518010845248903266241908720131131829027035417713172952262111086512246671519014951605511582703710622067714654110873272916821816211111177111310011114669981222582551901096511306872024116069457139100574690635120221120764712467843872111911049032166901068056644131130904765199161140750100415411111291210140565690100566411131139696977791901072378118416121795290717144016803814074010041112512277761202131131661150910132911267511319586715190711152409716122681773911555406658713013081116130629911331764111401907731155463277342690596226660209513737061329016637451546470416180104364904501703211591479196167115162903262611765090967918168728729214702418776324915112153690904166841461113116647754725813162125131325066102962301376561123497411103221451205115152311461139211047037161223621114790775864718749904761321343843375664111187446170142300464155402621748146171431901518010845248903266241908720131131829027035417713119850108471561204876331084769464411511138106220677146541108732729168218162111111771113100111146976812226132366310611317848787269232186511606945713910057469063512022112076471160631540124180659013090476519916114075010041541111129121014056569010056641113165030011021251559130111321290412682126611085661952907171440168038140740100411125122777612021319983205011021251321146137127014721211861017691411493184443131817739115554066587130130811161306299113317641114019407739016591255115987971611429214776602095137370613290166374515464704161801043649045013420650241486295173247414227545677632491511215369090416684146111311664775471514610577322473077651321876215596710904866561123497411103221451205115152311461155312212514641554018329683710329041211121536909041668414611131130647550473438433756641111874461701423004641554026217481461725246531813201201086186411265150870613225014147010412911138198501084715612048763310847694644115111381270121053712157551669041017025395468212906711047051652146111319768122261323663106113178487872692321865131277314517851237661001904519921690661567101461716063154012418065907681210807505210362659091721146265030011021251559130111321290412682126611085661125147112225176661796912551159879713011429214151998320501102125132114613712701472121186101769141149318444313160426090188144977791130719407739016591255115987971611429214775807732247307550513296106770711342065024148629517324741422754567681051451532121131131132138545259341414140151461057732247307765132187621559671090486451464134252108031138695135763154652031702111515531221251464155401832968371032904121112153690904166841461113113064755047188170217961726391308156653252465318132012010861864112651508706132250141470104129111388535070651911112712865836456115311270121053712157551669041017025395468212906711047051652146111315762564433617063466648662419053613831277314517851237661001904519921690661567101461745146909954342530725912070715176812108075052103626590917211462102131182595112514711222517666179691255115987971301142921415125412107734561022222411410456706120107125911604260901881449777911307172567061379714790747804634141477580773224730755051329610677071514233150101900901063376658890215554635214611131512206781329646341151257681051451532121131131132138545259341414140264415707710890473908141540134138451464134252108031138695135763154652031702111513182704117711162405136131188170217961726391308156653314131101131165511394114856662321315092037101901815834161137802222905245111388535070651911112712865836456115319001039021711630717711715429214151576256443361706346664866241905361388810629015472221241514514690995434253072591207071516756773170682678122626114513264737121536909041668414611131383647104471021311825951244103290977373671421069372021451329414617254121077345610222224114104567061201071259111000170524719651051908106651217256706137971479074780463414147754511948171361411299023051761864167051661542382111385142331501019009010633766588902155546352146111315122067813296463411512563528561156832606479404116132215511251174141772512154711930895373212906711047051652146111312644157077108904739081415401341388815045146471291467151467641469441570172515113633114617318270411771116240513613120258212514641554026217543141311011311655113941148566623213150920371019018158341611378022229052451113896161451473442347396114130158536817312354138211138900103902171163071771171542921415167596432125111162772158669017078225146111318810629015472221241513121706171672311966327734269059614614161571110148146176756773170682678122626114513264737121536909041668414611131383647104476042609018814497779117079125511598797383114292147724410329097737367142106937202145132941461755047661134773296106770711000170524719651051908106651210215646511634214054511948171361411299023051761864167051661542382111385164062414740624156091406416352856115683260647940411613221551125117414177251215471193089537321290671104705165214611131287241782823361875615115488150451464712914671514676414694415701725151136331146173613157218762155710904862025821251464155402621754118151961302453416490750961614514734423473961141301585368173123541382111388141210634722224114713209066609014044148116514511212369771061066476759643212511116277215866901707822514611131318811306519762134113017022221301776312170617167231196632773426905961461416157111014814617355567561423515956750837773681120467509051604260901881449777911707912551159879738311429214771246432861475504766113477329610677071150410215758321904903141156102156465116342140421297967528217040779112251640624147406241560914064122471181222512223114132103853944541966952872417828233618756151154144912109022231141321038539445419669589170141791483613157218762155710904862861210197207581329055866132142415286812559042011111815196130245341649075025295320120102107940222905629573951191454116462140814121063472222411471320906660901404414811651451121236977106106647812206435618722223171515731881130651976213411301702222130177630259643561416371304039664161681355567561423515956750837773681120467509051796315405890666090904728264097779141677371246432861471041930750512767550511019012428729915714715041021575832190490314115624920489031661312994212979675282170407791122343849568841977791479135115130171321032901761201211174319290387907114722471181222512223114132103853944541966952244897234195222714714491210902223114132103853944541966958917014179148121010437244614213322231142286121019720758132905586613214241528681255904201111741488990981522229584677578622224890322529532012010210794022290562957395119145411646214025693610271397109040111795241321649013024057812206435618722223171515719752571110148162318201363025964356141637130403966416168116465215647963154058906660909047282640977791416773759611111132224711546216255272283521038539101271104193075051276755051101901242872991571471334544124502312492048903166131299656190283352144523438495688419777914791351151301713210329017612012111743192903879071147120212013790470573827066176433111191302401082244897234195222714712840656377437495701361161403114815613170112101043724461421332223114210280222401513550131102711023768031621113117414889909815222295846775786222248903278150222511762591329039110447611883111613056545655544790176222445776256936102713971090401117952413216490130240572214121018156907113419752571110148162318201361028611205551167114916441116181861387011646521564189147819048973149064010022297156538596111111322247115462162552722835210385391012712415105130787255436141390148156937311351411312893296610223535581561104923150415511138133454412450231107535581186801005161296656190283352144521167125497743665168871114511656113112021201379047057382706617643311119130240108947702521671147435690138128406563774374957013611614031148156131701636315170628858746823614139012451127771415110280222401513550131102711023768031621113188381492778150222511762591329039110447611883111613056545655544790176222445776255714281138451477431365621241566776127585255111382214121018156907113462641110652728337224225190496321317224624511027102861120555116711491644111618186138701206431507287827810717065121113145125256378276420189147819048973149064010022297156538108909584129250662592517241510513078725543614139014815693731135141131206311427211062461101033725554479023110329018611177641175572615114055227167733090907741137235355815611049231504155111382497077614769467310103277107535581186801005161296105812831565571192125666811131504155374315361951204189011441622116712549774366516887111451165611318511289056436107125450770207258211516785174451409477025216711474356901388177371235132775820690214153136448012820690245510365706363151706288587468236141390124511277714151814901767413290104245715142903103152001206711513188381492728690171202206901042457157255714281138451477431365621241566776127585255111381020104511049056131206901042452111516264111065272833722422519049632131722462451102771190470718021757706120107115620643150728782781071706512111314512525637827642010286190287521113861041951204876111256421409012113710890958412925066259251727090327065150370641653091868023527826615116580453714114524508074618588196691317570151206311427211062461101033725554479023110329018611177641175572615114055227167733090907741137138290123203246411907096741195120616140955807418805312497077614769467310103277130907796938913077038462008141111442021311058128315655711921256668111315041553743153619512041890114416221812111156891254502073554785112890564361071254507702072582115167851744514068418208443208417690757540817737123513277582069021415313644801282069024551036570249902715245411395250451610271186792626183213784136126261591315411441156408149017674132901042457151429031031520012067115131357458395168162311467510206121220081791482511324545143276312048231131286901712022069010424571575863114272110614211616166910907503209068570518171411941762592475879102010451104905613120690104245211151337506641810876207144111117119047071802175770612010711562063114272110618195750173248332241653299511509086688417649156211232659053241102861902875211138610419512048761112564214090121137140195741272910266902505312128324884120726074421441111127090327065150370641653091868023527826615116580453714114524508074618588196691317570151170872144906122079204011972221249811365456950770137138290123203246411907096741195120616140955807418805317282775105122790547102171147480716005431381541321161517031322116112113713090779693891307703846200814111144202131203111449108478023021381812111156891254502073554742745412352467623113654741137684182084432084176907575402061751424127414047480716005431381541321161517031329053223517156249902715245411395250451610271186792626183213784136126261591315411441156405078117132147909915421218170132733131357458395168162311467510206121220081791482511324545143276312048231131604811713285584411113091327507690421540586311427211061421161616691090750320906857051817141194176259247587942610114215119511175076904215403375066418108762071441111115091212518022947215233411772224127413132719151747712113720631142721106181957501732483322416532995115090866884176491562112326590532412861206219512061652139196821256425317690115191416530918019512015666170168141131140195741272910266902505312128324884120726074421441111175234293166571045656706118075017087214490612207920401197222124981136545695077013725812862125121224841321092772215120021347728277510512279054710217114748071600543138154132116151703132211611211371011209587711319515123011867477121137203111449108478023021381509986110326681101641314274541235246762311365474113724920493037361907011523215189641910329018611177620617514241274140474807160054313815413211615170313290532235171565668498820810837240507811713214790991542121817013273313136635514751157211566122060481171328558441111309132750769042154021881058919761656327390906034771316360774261011421511951117507690421540758371349060111786770131150912125180229472152334117722241274131327191517477121137267589125321138286120621951206165213919682125642531769011519141653091801951201566617016814113133917581411907024221752849013181115761377523429316657104565670611807501075355850065316137191911605511138584128015125812862125121224841321092772215120021347340249179908101461329061611055161321151513513110112095877113195151230118674771211372806075028260726531044873069260413247101062415511138866041318205564957715099861103266811016413166186411106613169141215162285132794166906478624181702968013124920493037361907011523215189641910329018611177658357612185611565329951320906690180106147825129064819590104131621113756684988208108372402063114272110619671140736629071881909017323209066901651070714154286518906417736635514751157211566122020678438721116275261131607461715611064177218810589197616563273909060347713163607744711131141779675154061623890207103636015175837134906011178677013164074215514613826758912532113812775828278714126121167234138339175814119070242217528490131811157613742171471032902246441580134466138107535585006531613719191160551113858412801517835105122121138340249179908101461329061611055161321151513513110627077022912439013902213828060750282607265310448730692604132471010624155111388660413182055649577150140710501923619060840066321513212164906071341714118675770616879012705406168713253487661864111066131691412151622851327941669064786241817029680131626431417211250049113175227619590156347132903560136018437051138583576121856115653299513209066901801061478251290648195901041316211137249902715211664138023391143551125171113820631142721106196711407366290718819090173232090669016510707141542865189064177105770252129562649032135151668111312067843872111627526113160746171561106417716081017406678713407614181032211160156907294113296669064717013011046451547712771316472795539151447111311417796751540616238902071036360151104910727147191433236047360735155112237341281640742155146138281589618444131796714413469812775828278714126121167234138109181115612447481516614083372242251904963213142171471032902246441580134466138970919690136121915611015111137165452783510512212113814790476710094764181561320881466138106270770229124390139022138596314166901476641815123279213115014071050192361906084006632151321216490607134171411867577061687901270540616871325348738817732662149081315666214904783762215690615715621162643141721125004911317522761959015634713290356013601843705113872530665116160091811675688070103193151125171113811564115124990271521166413802339114355112517111389549170162215862041580351311057702521295626490321351516681113124920489031661313085109056161669010461171215652131156481721381608101740667871340761418103221116015690729411329666906471701301104645154771277131647279553915171071571616672113446613810491072714719143323604736073515511223734128134024917906612908717011123113128158961844413179671441346981749847330341113141102227062527151091811156124474815166140833722422519049632131590516715621838615413131160077970919690136121915611015111137165452185881120714661381479047671009476418156132088146613859631416690141619013171131303685191101375431451151596314166901476641815123279213168071528098117415511138388177326621490813156662149047837622156906157156211289131711562129017411461317253066511616009181167568807010319315112517111381156411511516631151330642137244617156110641151954917016221586204158035131109181115632171129212511017687240110575176904390622014490864701121191101092121091041329022744770640311137683581360111024356249204890316613130851090561616690104611712156521311564817213822220517154684396905645110385392905554479060612190871104202710715716166721134466138326512861217018947047617910436490750340249179066129087170111231131198698421427214717498473303411131411022270625271526192032115120490115536475905167156218386154131311600771166126511163061038539901690871858811207146613861651326876610647596314166901416190131711313036851911013754314511516363151140716785676677390131685651179680715280981174155111386519052476612753396523071106641811127101302891317115621290174114613165611250882081083724117790791178711101247103290287151341369086742353215290342471516631151330642137244617156110641151374177120114214373619014339159729104969633215327024181091811156321711292125110176872401105751769043906220144908647011211911010921210910413290227447706403111376835813601110243561621762592532050616296274160410670052371416777277325907113422220517154684396905645110385392905554479060612190871104202162311427211061392229061887474544124502713265128612170189470476179104364907506122621431904432102722161506422350377431866601110477540662114121253935074166198698421427214776617644275090512871011320611769610311725096264277961091032447411726192032115120490115536472661764427509051829087211087896619531801971216197696283124904601051179103296116612651116306103853990169087691964528210273267901093732493077916721730120536047170318115547557616513268766106472043482225710151101711325736222571002177901030110154132118655636315114071678567667739013168565117910146869904519220790161158867307791152651905247661275339652307110664181112710130347129320564164728122104756150478411506665611250882081083724117790791178711101247103290287151341369086742353215290342475722633521043141374177120114214373619014339159729104969633215327024182892691031180119672089616726190150771621762592532050616296274160410670052371416777277325907113437906590754735244111771486620670823841122741814841122031665166241901059715962962906133528932966102662102376126687333280741111623114272110613922290618874745441245027111031817669010451321908192298306109590143593058661226214319044321027221615064223503774318666011104775406621141212539350741668619032392854710401147861072824111592323227554131659014079713985357661764427509051287101132061176961031172509626427796109103244741171591043101223286103853990907771266176442750905182908721108789661953180197121619769628312490460105117910329633750173205073166130155761788755737531651104129314028763541339152486351301001372012661563158659022221306613010385392029013069196452821027326790109373249307791672173012053604717031811554755760366101277010329065014221041489479744122791396610127705751351175314142829011517687214141315593122657151142908820434822257101511017113257362225710021779010301101541321186558178989910276756775221155811241032904175513635492707971592774748201014686990451922079016115886730779115267431330921211111013922290618892150171347129320564164728122104756150478411506668210163766811527915722633521043141102767532479721365176624141186797289269103118011967208961672619015077236182756711615628617226140381244157155247141414299797379065907547352441117714866206708238411227418148411220316651662419010597159629629061335550901557001431362695990128967061244546621023761266873332807411123618224073243170131110318176690104513219081922983061095901435930586236768118675671032902161365176624141251656769066791016797861903239285471040114786107282411159232322755413165901407971398535511328379096554796573013203211203388166159104310122328610385399090777154904635321908406651130207901611588673077911523375017320507316613015576178875573753165110412931402876354133915248635130100137201266156315865902222130661301038539202901301695096692232669221835159879160366101277010329065014221041489479744122791396610127705751351175314142829011517687214141315593122657151142908843124752756115398791817898991027675677522115581124103290417551363549270797159277474820443528561151132363121211130331366516176741155866811389010301044690362770674313309212111110139222906188921501711567203166516680421418250903134387376217435473077914837124142496632136519879181151124272653248779071032757976776703525142682101637668115279117371190174654030782056115290292483140102767532479721365176624141186797109035121668709613312010730530782067321679011084110329015031435234115113053165116482431905011015111171236182756711615628617226140381244157155247141414299797107906690754740183780996559077375550901557001431362695990128967061244542823921885087911824509425557288814906136278044189570236182240732431701314352814675213766775164192130877280905096618843354454507797236768118675671032902161365176624141251656769066791016797107374690669050411719034117688739628369144776511328379096554796573013203211203388166423348066753321842151326714792119751601529029134214054904635321908406651130207901611588673077911524544113591832141666416950966922326692218351598791102167106413017261671697418723304157431247527561153987911023401710321231787229790296103246152217774435285611511323631212111303313665161767411558668113890103010446903627702361821203322161905048241150124291145177907912601101567203166516680421418250903134387376217435473077914837124142496632136519879181151124272653248779071032757976776703525142454140129961287232068110130331490307791152173711901746540307820561152902924831409312530041247753287411402901421233611444232311090351216687096133120107305307820673216790110841103290150314352341151130531651164824319050110151111713187739042152103290475399041357416610790669075474018378099655907737586861906780108066102120166837110965553679128239218850879118245094255572888149061362780441895701091251732190353219066920751021511433229690342474352814675213766775164192130877280905096618843354454507797526293804427509051665497128741140290166804514651163421401073746906690504117190341176887396283691447761020262904379096181550124782804762324063190115701170661659281811161317074233480667533218421513267147921197516015290291342140348783517409616296090262115170745441135918321416664621090661311241032909649170751116137102167106413017261671697418723304157252465818132012058773143351521441389070291496335459663219531121907975568164146192907915347171102340171032123178722979029610324615221777102152538618671111551516706215023249151138150344188281890901320150103853929032066913355312361821203322161905048241150124291145177907912601102235766611666753321525215181714782903219011010066106630502321085133575531454140129961287232068110130331490307791152583576661161208411104281436111066110506328147289329661021062185247861055219056071052909933653077911379312530041247753287411402901421233611444232319068719168112075012190103232631877390421521032904753990413574166134206506099628686190678010806610212016683711096555367911085190186982229010912517321903532190669207510215114332296903424719407732229645211471115090477432108535376885262938044275090516654971287411402901668045146511634214011789211750320110898137031241569024971105265187249307791570102026290437909618155012478280476232406319011570117066165928181116131707217324177773115114110385397306651600713487835174096162960902621151707966611075047621090661311241032909649170751116137148908141343411321617716066613613832090667739012111464911154739071526908209922111246522225246581813201205877314335152144138907029149633545966321953112190797556816414619290791534717181773751062511329010174370061942491479925241251895421114098654051321509017040714712515461398014066512729107140113710215253861867111155151670621502324915113815034418828189090132015010385392903206691335531131968632477539669528881490613454561153987916412235766611666753321525215181714782903219011010066106630502321085133575531142903629031272652826955716610021106007158357666116120841110428143611106611050632814713861751716036610182087536850578161062185247861055219056071052909933653077911375019036411032186901304111752811179557690687191681120750121901032326321416619610626684683796965590934169987916691213420650609962240205191523016656043791416007110851901869822290532781929819407732229645211471115090477432108535376882824140013191713010712087761651161178921175032011089813703124156902497110526518724930779157066137958231564215113290172261403812531571679879111713021732417777311511411038539730665160071288908662482419064316190866903081172907884511429094103853973074166966611075047293101908667737743190866148908141343411321617716066613613832090667739012111464911154739071526908209922111246522230110061935151031665604815754241509046881773751062511329010174370061942491479925241251895421114098654051321509017040714712515461398014066512729107140113721312651681229267706104202259131707131968632477539669528881490613454561153987916412581286151221961001365321701429073191110620214290362903127265282695571661002110600715861751172903598642114290100184157197253319432124277710121013132090531612531386175171603661018208753685057816142903710329032090661107004720047740415407125350190364110321869013041117528111795576116210212511762122531104013741658332141661961062668468379696559093416998791669128553825313209615719016420224020519152301665604379141600711021565626287401281253532781929832595139086861921058150111111266520372824140013191713010712087761651162254633486614313212701846613795823156421511329017226140381253157167987911171304490904113290641483773215285005531234418522539777912268044665614295728890866248241906431619086690308117290788451142909410385397307416660390105947231110904682369777911719057629310190866773774319086667954733057157305661303052671103011006193515103166560481575424150904685927069466512958575066520111213126516812292677061042022591317073375065222545103212101032436562581286151221961001365321701429073191110620220790450766374616586175117290359864211429010018415719725331943212427771012101313209053161253282651716360903481429037103290320906611070047200477404154071253102340665148241190506660116210212511762122531104013741658367439661936119219371003171103370685538253132096157190164202102357454412450231102156562628740128125323078363077912024332595139086861921058150111111266520372062261029693368945225463348661431321270184186423423231590107474490904113290641483773215285005531234418522539777912268044665614295713274740469056241603901059472311109046823697779117190576179719511158774117111446795473305715730566130305267110286904705113986241365927069466512958575066520111125070278471413213713741337506522254510321210103243656107535589511381085220790450766374616128380901529034214028265171636090348548778322969046647102340665148241190506660374138901657706743966193611921937100317110337061281151030110716231289329661023399510171429061555394210235745441245023137014610832345680921682307836307791202431271802121429015414020622610296933689452533705090105118642342323159010747102308558201761903213274740469056241109320509096510277961981051038179719511158774117111443703553096421969016028690470511398624136186306321424767317532320905712507027847141321371374172035491473735114290219145250348107535589511381085279411450678138581283809015290342140139219114015073519114054877832296904664715078565631122257374138901657702064990241901937811401281151030110716231177251901329078691339951017142906155539422064990241905037316116622213170737014610832345680921681283525722490951136481782127180212142901541401709513714725337050901051159110865113103321023085582017619032159110476325041103111311093205090965102779619810510382064990241901135532987170131370355309642196901602531519688413118630632142476731753232090579556411861305772035491473735114290219145250348638564112912021317941145067813858128190151131139219114015073519114021753756411507856563112225717411481032907514814774320213120649902419019378114085113597321772519013290786916501103007061312064990241905037316116622213170710989049390321501555010087511283525722490951136481782174195985717095137147246201355801213736159110865113103321424549063151159110476325041103111311511336472064990241901135532987170131633460110659103090345904118425315196884131905964547142961553195564118613057289131752618762638564112912021311128041178357128190151131259890120113217537564195150521311322181156417011741148103290751481477432021311501073572524393113885113597329581222531605111010091316501103007061312519047011114157313810989049390321501555010087519183220725390169961311741959857417176711211312462013558012137363431464134252138142454906315117417452453132151133647129412057355647326334601106591030903459041184417453114151905964547142961553136614611113128913175261876270695784384321381128041178357281581414882598901201137025188541315092037253479101901815834195150521311322181156417012002255220751272750469671501073572524393113810281403620958122253160511101009131134411190052511312519047011114157313810633766514918322072539016996131232120125771384171767112113124151051463521313431464134252138181725120963601741745245313270014418261294120573556473210390217155307177117234417453114151666442750905136614611113119013463706957843843213825646750905128158141488106167102715770251885413150920372534791019018158341102114103135722200225522075127275046967421242102722140102814036201170126158463513134411190052511311514196790524841063376651420014418262321201257713814878411651061121241510514635213111420925944616757141321084710385397814718172512096360181762112225170014418261051388632901334821401039021715530717711723425682148715546537135197561414116049431666442750905113399152611361901346373111013961256467509051930382110791106167102715717426630810211410313572220678111421242102722140651120107764643245117012615846351361318152151419679052484206226801376611016979120014418262024331492071190140148784116510611211599076222541501142092594461675714132108471038539781472014414182228318176211222515861115171269741116624141110513886329013348214063752323631569585182903219011024690247137972568214871554653713519756141411604943158611151114110385397301339915261136102740117821449019373073111013961507102247949690736199930382110791724746746874969617426630825832626251222402321048483703641692484206781115963141746786642951070677651120107764643245174100311422141021331946611661318152566955031015039590511429088741112062268013766110169791766176467509051117250961617275103087904622024331492071190140266176442750905124813011363774372931019086615990762225415098617646750905193115110329090901472014414182228397619691590184595847161616554539516762207995488241860741172893296610286519099264624545127710329014758611151712697411166241411475451325486375232363156958518290321901102469024713797137611274031110740171586111511141103853973025813166651510316616548157102740117821449019373060647716411507250710224794969073619979651321796316660901407977247467468749696638626364730121044825832626251222402321048483703641692484778513151838391623187119369659631417467866429510706778132031562164732641150665124331174100311422141021331946611612828113826288742751407085669550310150395905114290887411127341713214012129417912159618756962601257661764675090511172509616172751030879046263631518908044532319027115588021290158664911779079126010426617644275090512481301136377437293101908663921101138764851171414791131135857510791541611526721875654098617646750905193115110329090901475965104315066514276901907141161218236981137932791976196915901845958471616165545395167622079954882418607411775355618296695981272286519099264624545127710329014763120519681083724112396710901268208111382628874250882014647545132548631663077037741967528881490613706124454137611274031110740171596510438964217013120281137932791258131666515103166165481571036236781066610154717790791180770222241421713785651321216356064771641150725487784147115147414812197965132179631666090140797133106432321110115177907911807703209065902993761371083209065901274166311365287911376386263647301210448853178711101238103290357897115508901416619902151447469668451297465090623140778513151838391623187119369640190754784090293166131551106985181320315621647326411506651243312063114272110610911581424569066582311471268214128281138262887427514070878378963077911869511767417510227341713214012129417912159618756962601251667035186512617023501879263631518908044532319027115588021290158664911779079126010420678362238372401239690193977417690669021679739211011387648511714147911311358575107915416115267218756540522247116299791596510431506651427690190714116121823698113793279159631510519513617986742353215290342477535561829669598127227661818687411714929516114524649663120519681083724112396710901268208111382628874250882014663631518908044667103247667505151226779117263166307703774196752888149061370612445418245121577901356759651043896421701312028113793279125832626213110861101356710362367810666101547177907911807702222414217137856513212163586151656841814112096650132090667304141217775487784147115147414812197483151143129010329047539904177711331064323211101151779079118077032090659029937613710832090659012741663113652879113731241252231902477478531787111012381032903578971155089014166199021514474696684512974650906231403441021936119261196210731661374019075478409029316613155110698519566612911009541103853990414120631142721106109115814245690665823114712682146601261031160702540661701659062477837896307791186951176741751025862491503907021801031400702540166703518651261702350187925962269975074334720678362238372401239690193977417690669021679711365101115714664038115320631711755222471162997917714181126484651755963151051951361798674235321529034247970171111993059458502708766181868741171492951611452464961344171326349079416111013675024176901779062763631518908044667103247667505151226779117210912517142601711075708391623182018245121577901356767037136132731791478215034418611061290116620411017142661317422583262621311086110135673851022827551243311597551753586576291416517586151656841814112096650132090667304141217778177381879191187401751471529081413421344667483151143129010329047539904177711621762592595111874175492324541301394731241252231902477472361764675090514527610327100511429088723441021936119261196210731661376231072722835078062907290812803071939090579566612911009541103853990414126617646750905111931428195215616172111419666012610311607025406617016590624763687534964196790171151119412223158624915039070218010314007025407661764675090511713919593115050373908137612229220111725090605405962269975074334731415066513211407615031603419314121490156557540790721136510111571466403811532063171175816624877951251474904111035221791779112133890872110932910727714181126484651753664566568162156453903731031127890901091925190901037297017111199305945850270861537321103853990308751003141666090148134417132634907941611101367502417690177906275963149715066516036514091111091251714260171107570839162318202063176632658353235215261952409111930891363963201103143113777571661002670371361327317914782150344186110612901166204110171426613174265030011017137251961148635812411312910282110501732011031431635929357166100838510228275512433115975517535865762914165175314320501106651303117323983216724147103853910127181773818791911874017514715290814134213446697619013733120190109321596315076790864721621762592595111874175492324541301394716217644275090516632185411429901301250412177123617646750905145276103271005114290887268415181003584222184966026210805616024191934390901091314789090103726231072722835078062907290812803071939090575861901705654507701235703092395703039010912367909010996273081901037226617646750905111931428195215616172111419613310641301724431316368753496419679017115111941222313887723425406656041676617646750905117139195931150503739081376122292201117250906054099845373078207663154032046509062262314150665132114076150316034193141214901565575407907212164537165770111804977791211708816624877951251474904111035221791779112133890872110932910728091111678621880901307179157852253138576528791211708366456656816215645390373103112789090109192519090103727467841165836161766664114461537321103853990308751003141666090148210784380418677410766102120107307791596314971506651603651409111290518259253208046445413014452110320227023690155320465090622622063176632658353235215261952409111930891363963201103143113777571661002137619010401049347430120813437104281571372516651650300110171372519611486358124113129102821105017320110314316359293571661008636411506651141170665431104467613313573752070266811003143205011066513031173239832167241471038539101271156695510411875690158766108924690213154647651122635162215657311176901043135046148337976190137331201901093215963150767908647259651011157732190353219084010624461936631142162176442750905166321854114299013012504121771102077396661021205384310712199147614451712263516221073768415181003584222184966026210805616024191934390901091314789090103725965105190810116612492171591668113073758619017056545077012357030923957030390109123679090109962730819010372206784112124929979115610366124471441844113310641301724431312067841121249201262424313617561792090130140903887723425406656041628440190681311382701782998453730782076631540320465090622625222471169879111015035100561216453716577011180497779121170861674579750779111015592809111167862188090130717915785225313857652879121170820631766327204519213897431417216111168770874678411658361617666641144290518259879194214122290195214921302107843804186774107661021201073077911022821417121244610874114150215592202961901402905182592532080464454130144521103202270236901553204650906226281773816674316641416231791511376190104010493474301208134371042815713725166518104573664141623179175370092636411506651141170665431104467613313573752070266811001020773816690180223529533350890106135149143226903210776906830090156695510411875690158766108924690213154647651122635162215657311176901043135046148337392177293166578371109655478987505965101115773219035321908401062446193663114211984573345221183110668179167102077396661021205384310712199147614451712263516221073794845837909624331596510519081011661249217159166811307372581316829022251305205405374176902168202225154020678411212492997911561036612447144184411036315154041190505021961204381905081156206784112124920126242431361756179209013014090276784372311093668886616378011150901205313427154964713155716610082844019068131138270178210275180414268131352965914052224711698791110150351005653217510516656053422706636781137616745797507791110155922581286661317537100312101010170766124036478988481486170248922063176632720451921389743141721611116877081843175366110746791517536611011172497126970675360157071543372905182598791942141222901952149213081773811705111022821417121244610874114150215592202961901401036236781061066471329013033141299177911168177381667431664141623179151258131682902225114275076904105404610714782022251540810457366414162317917537009265190307614965552467125951102077381669018022352953335089010613514914322690321077690683009065030041214121965223921772931665783711096554789875022012083790621239690473119845733452211831106681791676519071471492597547351617654094845837909624331117695781311875610710822257951118791110493103922581316829022251305205405374176902168202225154054214117107120830921411122251119154438915410581062221024175103631515404119050502196120438190508115641381041732967618415722606135727678437231109366888661637801115090120531342715496471315571661008326819109042037155465376832312472991027518041426813135296591402144579750879111066515321751051665605342270663678113733321111564639029549274741232138412801389071832717411212581286661317537100312101010170766124036478988481486170248926770902107323129219165454116468184317536611074679151753661101117249712697067536015707154337527777156641101299091581773811705112331075867001032906244549031262419671036236781061066471329013033141299177911162278177246661151318634781781706238480147822581316829022251142750769041054046107147820222515403417212201188016615525690259540651903076149655524671259511013107416552453764561138687801238378014782116502572815595595165030041214121965223094219816012551457318512621402201208379062123969047323320575515612067912275181471547029382706516519071471492597547351617654082774755268391623179157117695781311875610710822257951118791110493103921101937784390533193905421411710712083092141112225111915443891541058106222102417561125632056108201785832629091118393372871616010116185471293101160413810417329676184157226061357597146424187563585922590225134162563268191090420371554653768323124729981130872121104433022144579750879111066512976224188727147811213219607371168401728309622542917242090289329661026553811671161889632773629231510551256708333211115646390295492747412321384128013890718327174112130381382760224116647690387901076667709021073231292191654541164682598271379835154540264120361419635154140224719052777715664110129909155671857114713617146361468372069623310758670010329062445490312624196711552229071472229090585294512278177246661151318634781781706238480147821321229608223872872110917961110115134172122011880166155256902595401377827654801376611050331101310741655245376456113868780123837801478211650257281559559512711377613670137817653011197759253144109242121140173248332222916309421981601255145731851262140130127361295202136284907616276148723320575515612067912275181471547029382706511287130711361894835125690431412628277475526839162317915713131302371335921711334370140711019377843905331939030723740177411658781033516112563205610820178583262909111839337287161601011618547129310116031713775210615222902531414165152048597146424187563585922590225134162563151176541025047737240411111345033781130872121104433023038138471563203211203388122251297622418872714781121321960737116840172830962254291724209023362071575517840210817291510293737655381167116188963277362923151055125670810377394715689709373038138276022411664769038790107663877156561903501111518115418410175309614132662484412219373725982713798351545402641203614196351541402247190147711105111210031010424181191544332491717093756718571147136171463614683720696448125810750681263704907029110011552229071472229090585294511471257167501283292015114075010041580371321229608223872872110917961110115146671432861032130080712491032907403713778276548013766110503312722221248571750502711377613670137817653011197759253144109242121140173248332222916259117989062080137661105033710490222612581750130127361295202136284907616276148710211376221115531379017071452623131287130711361894835125690431412623373276479673827069042114013131302371335921711334370140710360171041144070220261411157136130307237401774116587810335123310720211151712631713775210615222902531414165152048128789715652564131106598032320905714596103816353935470315117654102504773724041111134503377071583916231791688215438270170830381384715632032112033881222513372531104323382902221320708307797962065176183110160233620715755178402108172915102937373152343292851105814670169457076163670176364314110810377394715689709371036151119176035010091101151387715656190350111151811541841017530961413266248441221937372273170453688101271703144147711105111210031010424181191544332491717093727721783130448125810750681263704907029110031386511401301145020832161205624537349741130145903423609023281731714712571675012832920151140750100415803717132972511412591011150564667143286103213008071249103290740371038122271401511071067401511191544115311713627222212485717505067155362478423115173183115162141262259117989062080137661105033710490222612581750216214688721101538729611401038539909214122810211376221115531379017071452623134553718010314001561116590557791821303373276479673827069042114095571222773517787536532753035614224741146814079167103601710411440702202614111571361303164549075071319774824718756132107108323159057233107202111517126109732445340478105733718755046812487225132445340512114712878971565256413110659803232090571459610381635393547023310713276121787382902325451715353228244124815447144192225150181707707158391623179168821543827017087011301206913110332154757516618170733725311043233829022213207083077979620651761831101601713213155591875641125190110660741706632131315234329285110581467016945707616367017636431411083332177981311354921707081311036151119176035010091101151140732401129471257910990572259662155425181359409056122731704536881012717031446722411615015550100875127721783130259627156915901839241901619030741262313865114013011450208321612056245373497411301459034236090232817317307193771511233411141511732530908302419010311607081713297251141259101115056679041431540102170300723356627505161210381222714015110710674015111915441153117136483716190414315407404314502499027217038081160695154515314167155362478423115173183115162141262132178113073011010124539040924723390180456231114021621468872110153872961140103853990921412285211036374683761471174284171701291125013056455371801031400156111659055779182130103837121837909112171090719695571222773517787536532753035614224741146814079167671175770812151611120617674112064632573164549075071319774824718756132107108323159057171321866704241349735173109732445340478105733718755046812487225132445340512114735116150407315405129565595090270223310713276121787382902325451715353228244124815447144192225150181707171327315983170896869103290663325770113012069131103321547575166181707455591407373419015234210490115171321315559187564112519011066074170663213135671314351513143571011160414319015714133321779813113549217070813199182222602511405016674921019614073240112947125791099057225966215542518135940905613511511049040110194843870194674695202136672241161501555010087511197173517311813914136259627156915901839241901619030741262862321062313725625939111413829014330719377151123341114151173253090830241901031160708877153110570863671071193110212708679041431540102170300723356627505161210320119214134275611015050130483716190414315407404314502499027217038081160695154515314117132171908574721224190245130245120183132178113073011010124539040924723390180456231114067161750407315406176743837361965211036374683761471174284171701291125013056233130719155122290253321038371218379091121710907196111690291771425774673138270657241851110901429149013067117577081215161112061767411206463257307321427219357050903827069017142114017132186670424134973517313910329081683418501468014435116150407315405129565595090270269466728876312869090585047671713273159831708968691032906633257143143688117161161517611425697455591407373419015234210490115297503324703521212113036142416148741836014686142907107887904125086735671314351513143571011160414319015714129750366573138513250597011135114216047991822226025114050166749210196297911429015516820940610610329071361303511511049040110194843870194674695202136303813847156128723206811013011971735173118139141363411071002919893137691216511018756609659058754071608709648091661996862321062313725625939111413829014322731704536881012717031444653079862750877153110570863671071193110212708307321058939521231357510961574051110305103853973074166512177710320119214134275611015050130707193772639155917022122536685464913613017132171908574721224190245130245120183315116111001614063521159701312621724634125301164621406716175040731540617674383736196749406111001673031038539202325288415401341312331307191551222902533212411596143710329060251286111690291771425774673138270657241851110901429149013020162648378014782103213831292819018730732142721935705090382706901714211409675433236247871471441471391032908168341850146801444981495601101421107364363586946672887631286909058504767689128661554507021379017141479151503317798130143143688117161161517611425697257253807151253121208297503324703521212113036142416148741836014686142907107887904125086797782889128722975036657313851325059701113511421604710375062140981481375436083715914311548141123298276682130297911429015516820940610610329071361306332337619046358076121905303580764117107074165831363038138471561287232068110130803511376454811108874165833411071002919893137691216511018756609659058754071608709648091661996119205755156120679122751889903196499015122731704536881012717031444653079862750895621307321058939521231357510961574051110305103853973074166512177741661701138791966707193772639155917022122536685464913613072332202511389012039562289371409077541315116111001614063521159701312621724634125301164621401425537081137051747110210673230749406111001673031038539202325288415401341311411195616336721032110411545212411596143710329060251286211175116411905820162648378014782103213831292819018776463907838713610251470419675433236247871471441475052929081312531049045225321813641526177014981495601101421107364363587917013690797110113368912866155450702137901714147915150331779813046539711091081122066854025725380715125312120819113249984959614198130240108977828891287231970218113437659013080103853920225321814870118311026810375062140981481375436083715914311548141123298276682130723661106911309711706215215546767416590170819752633233761904635807612190530358076411710707416583136421301909041653902629056013641946632142479997072893296610254547354071608709648091661990664129075095949051402110115451602708141110115012061450970243161680351137645481110887416583273135516482135476155510361439867210340211071411101233310511013521119205755156120679122751889903196499015114626303756595309581121381712701404171036873660972431412621385687275758313897260135141131107548668776895621870252586515901607319170112251964166170113879196610815518302861101039791131471412471141556021828610759470196212311675710866805118715582277672332202511389012039562289371409077541141351351340371107251321356411111703219541521141212130976421372081045244971707052089731810362621425537081137051747110210673230100575018161350586371411195616336721032110411545250570690333212795114013652070222292766321513221117511641190585313017056103115090545764639078387136102514704114739053037469065907541177729310385391012355394314166130505292908131253104904522532181364152617701483659040786526763122242390612541437791701369079711011332902467717479971120137116290479379655726141651514743719280417104324714079111021029946539711091081122066854082147753472513261265315181987573714719252109152652420311962163111702629013913619113249984959614198130240108141119902049303152561153987915131970218113437659013080103853920225321814870118311026882152454016026311096530769174901601514164707902689096104288853906131244547567723661106911309711706215215546767416590170819752278108160682271124905138915429357175100942130190904165390262905601364194663214247999707256707340321951370765780154445154547354071608709648091661990664129075095949051402110115451602708141110115012061450970243161633184721107215223017136211740357727313551648213547615551036143986721034021107141110123331051101352187104165195141131225971174586401462630375659530958112138171270140417103687366097243141262138568727575831389726013514113110754866877622396811882124160896156167951478702525865159016073191701122519623487540144905406039075074370123017106351311081551830286110103979113147141247114155602182861075947019621231167571086680511871558227761421452137212661110114135135134037110725132135641111170321954152114121213097642137208104524497170705208973181036262477211013152650516832111316631141530473103470173100575018161350586371381755801429012211630647390811476512122205057069033321279511401365207022229276632151324235949160120753110753130170561031150905451421452170500111525821106222196231411101151421817473414739053037469065907541177729310385391012355394314166130781714766609041195354707648365904078652676312224239061254143717381651081011139658310629024677174799711201371162904793796557261416515147437192804171043247140791110210299745320501106677250131135618110324537112014290144719655570751009821477534725132612653151819875737147192521091526524203119621631117026290139136728165102221248105615519655721451021411199020493031525611539879151141351255150610215103261667320628215245401602631109653076917490160151416470790268909610428885390613124454756712190153815573224537841615101341712221101083278108160682271124905138915429357175100914222980371010147412610632237371305121531454706714971120895815803746904548822567073403219513707657801544451371091728090517090581321224220724112032084907110332154757516618170733184721107215223017136211740357787596117404704723673037103853973075541871041651951411312259711745864014910716075492150205557791541621466222396811882124160896156167951474111262476229961037282370217234875401449054060390750743701230171063513138320721193775705090171382706904211401421452137212661110113380446671281158565132247176350597011135114216047477211013152650516832111316631141530473103470173199584742217141397859753077915410566023242134047138175580142901221163064739081147651212220870242616050415195730779796206517618311015452205444112612611512074149201309719642359491601207531107876590248012075328047513389431362362847061317228142145217050011152582110622219623141110115142181747341211701609777115234145678171476660904119535470761118517301153103341821131516116131707173816510810111396583106263241901071781460121108153103315174532050110667725013113561811032453711201429014471965557075100914370639190191134106645251613118151728165102221248105615519655721451027624190107170792651401321774744552014192641687016121311413512551506102151032616673206228174811068610527141750131121901538155732245378416151013417122211010831418590202175902534671289077941422298037101014741261063223737130512153145470671497112089581580374690454882505540815905111049335116351313710917280905170905813212242207241120320849071103321547575166181707293120949807113187596117404704723673037103853973075541803741770411106921161491071607549215020555779154162146622425017137294663115152713141112624762299610372823702179219550513418320120551111933131131383207211937757050901713827069042114024232141313442173013071319062369022370241827113380446671281158565132247176350597011135114216047293120949807113171131199584742217141397859753077915410566023242134047331251907653752043176731131870242616050415195730779796206517618311015452205444112612611512074149201309719627132141313419012124219193113161510721417024182718765902480120753280475133894313623628470613172282931209498071501317113112117016097771152341456971949014321045611118232012051151131111851730115310334182113151611613170720511521317103613122796051224209969495251904258131536412702418271263241901071781460121108153103315129311593970414491438872381706131143706391901911341066452516131181511093205501311902627789516852419020621155123642762419010717079265140132177474455201419264168701612131307107136151104119615151110248281748110686105271417501312493093395811248925133614185902021759025346712890779429311553970414477502511205854722290253123128035110435122228613055777677813771409052011611512394850554081590511104933511635131921951704971304417101201832931209498071131653205090473103290351115280374177041110692116655532425017137294663115152713111913521005148117251424417011118114713019631309016021943112421032702418921955051341832012055111193313113127177486720741214540827226970904213124232141313442173013071319062369022370241827127129290352521592111513014691904829312094980711317113165473540331251907653752043176731131661669075153701461105091943114910327024182713214131341901212421919311316151072141702418271803494369110770293120949807150131711316547354097194901432104561111823201205115113113725191311471069013155621032702418205115213171036131227960512242099694952519042581315364127024182716511311350351110804501531151032902405923514417011113829311593970414491438872381706131245113122104113277810212951204113110932055013119026277895168524190206211551236423101151281467131252108702418738131265627770241857209467307107136151104119615151110248153355484711265114812124930933958112489251336109212807735108212801478221290253706131293115539704144775025112058547222902531231280351104351222286130557776778137714090520116115123948114289327907368729059766917677921951704971304417101201831071421766981127653205090473103290351115217161531849301201020901764717916555388421985265258709087171751307791151119135210051481172514244170111181147130196313090160219431124210327024181439541723513027177486720741214540827226970904213121118496136519655901858307912712929035252159211151301469190486418756752001111874991522474143077916765473540193064221714307439862750661669075153701461105091943114910327024188838145475471561153987915180349436911077045126106831966956547354049577644221249153451132241164212521502417136130137251913114710690131556210327024181420784530371301412602071412197117019369692413463050252921306511311350351110804501531151032902405923514417011113819524511312210411327781021295120411312388122264892031011512814671312521087024187381312656277702418572094676916520765701153355484711265114812141120210771763132928071001041616120213110921280773510821280147822129025370613147104904087372652477227901181080671142893279073687290597669176771011202115188319071677010714217669811271111329035153703810610735725223811171615318493012010209017647179148125390143211037265247710714086612021318842198526525870908717175130779115132142076132901150110651101122213177013114395417235130777110311424903243113116401042021312111849613651965590185830791387227775186105282901511108836418756752001111874991522474143077916710399473113454130038111930642217143074398627505117739859011688381454754715611539879151171207807658209451261068319669519582624566240561151374957764422124915345113224116421252150241713613061111242901553701290454909271420784530371301412602071412197117019369692413463050252921307750336105026547422151059021812893296610251147051110331777615311953810725038222296529213123881222648920101321765022307610714086615316916520765701951242779125917116194651101122213177013141120210771763132928071001041616120213120111271633563471049040873726524772279011810806716112147670613244050011531716773411472101101120211518831907167702718282221031044753281490142111132903515370381061073572522381164212130570716775612848125390143211037265247710714086612021311228791160137358135061226145339066012213131651914032142076132901150110651101122213177013129132141313429011138483152788177711031142490324311311640104202131101361471477624229714126210011138722777518610528290151110883103809071901401101384698210399473113454130038116316945446266766113151177398590116194444170159164470416126416917120780765820941120717376453209195826245662405611513719573624476244056110168611112429015537012904549092770695741139136290531507507750336105026547422151059021811667035146172242910702126409017105165714151147051110331777615316503007061682682126657381072503822229652921311020563499030782012610790501191101321765022307610714086615311028619087105810051856299471719512427791259171161946511011222131770131162315111159051272910701304561002201112716335633399811696103275010852161121476706132440500115317167734114721016320571562594549092727182822210310447532814901423211401070373023718031414767040311481317016421213057071677561287730130613431704117190741046140311122879116013735813506122614533906601221313165191401713587140151401476314031129132141313429011138483152788147430556329907731305168261403111013614714776242297141262100111812753448557090259114461204511204131103809071901401101384698299127156212501801130131131631694544626676611314112128777321402128766609053047574194444170159164470416126416963154571941703564666090142475531514112071737645320911119414175160699907570195736244762440561101686329777761715611645490927706957411391362905315075064364132246569012716670351461722429107021264090171051657141632626076999035706503007061682682126657632977711119571562124549092710205634990307820126107905011911051207124777015941251771028619087105810051856299471716320571562754549092716231511115905127291070130456100211111241233998116961032750108523968807329412155840702473701363182599159664110129136459159015390155661617916763205715625945490927101119622674348615787971012190790321140107037302371803141476704031148131701321103637897001471301469740390327730130613431704117190741046140311452857156104582329804411244541713587140151401476314031138722796352811323210379623631474305563299077313051682614031151171901289075644189450812753448557090259114461204511204131121222714775062477614776624135222243325374799127156212501801130131131111355403551230816210847103853920241121287773214021287666090530475741980417644041703193152631545719417035646660901424755315132130761329078652193930381111941417516069990757051498441183540417683308632977776171561164549092748132911030556385509025754064364132246569012713184745793141138540632626076999035709514492221107121732150576329777111195715621245490927514961062956508791113540105120712477701594125177651251828104811198820307791131463463155840708632057156275454909272271003119453509017710766111112412589571125001190346167488044214641208702418453293516889790719013039688073294121558407024737013631825991596641101291364591590153901556616179167245816510222124810561551194177916637101119622674348615787971012190790477249713746530074169232110363789700147130146974039032803291241701411043110452857156104582329804411244544580490351001464153251387227963528113232103796236312854781464176151171901289075644189450787512341666090171412122271477506247761477662413522224332537478051551485244265111135540355123081621084710385392029458392110411342526007119804176440417031931527575124921555031113213076132907865219393038913294163155856514984411835404176833082119841374222481329110305563855090257540803291241701903248715631131847457931411385404132917011449514492221107121732150576321453134514961062956508791113540106712061032856957495394256512518281048111988203077911314634631558407084135881512271003119453509017710766411710513581072475895711250011903461674880442146412087024184532935168897907190130773294113210385399090505124581651022212481056155119417791663775125145134477249713746530074169228518756416101803291241701411043110113297517356115398791514580490351001464153251351477135663179321633261722854781464176122875570713901354683535090177107667875123416660901714148051551485244265184038213013941945839211041134252600719201201325327575124921555031111415451032730130498913294163155856477601110329211984137422274180847108471032904753990413580329124170190324871563169729115013616960857413291701144159143351132363166632145313411652242241106712061032856957495394251928211087164964711402525116156871211252211701413588151116117040815141171051358107247252354471180781222526177329411321038539909050513471651162158751251451349601571472175232363166521112851875641610154043190504506972641616751113297517356115398791516941747981063190126174111351477135663179321633261721161113245047228755707139013546835350901771076681124396461100110831211642817115131289329661021161113713114540231578221884038213013941786762001080371306131920120132532811167612109082312038241348871415451032730130498263463903104776011103291019564064170874180847108471032904753990413530440509202131697291150136169608572514027615914335113236316615190179751165224224114620219282110871649647114025251161568712112522117014690224401101161170408151611262252354471180781222526121873093471651162158251905329601571472175232363166521117311403054043190504506972641616751731996694174798106319012617411130353470711161113245047116111168171041318112439646110011083121164281711513181124513014114011611137131344161417670154023157822181401106461005513054735864080131613281255819097684090896517867620010803713061311161130411041354010436901701012537557107190214191936465371367003061414241459011095356161021750701811167612109082312038241348872306462634639031093090461374246334517081019564064170810195640641709304405092021319207133013591137352172514027610295171612995173110225313215190179752171711711111082311311462025047390110168222901884104121737312621613712222975221749746902244011045272290110804519225104526112621161126317013121873091954073532050907412531312519053278387331211317311403013037212840314239021212414613173199671045390197935511429094939690116501032901037413035347071967744275090512222845711611116817104131811606913102194102841968112451301411401980256463267140344161417670111611290105290128446513114011064610055130547358640801316132812558190976840908965176112451371087653112188113184575270641116113041104135401043690170101253755710719021419193646537136700306141424145901109535616102175070181814251857103561801312306464115403919340652693090461374246334517086919060311077561872366110108731106116751311019564064170910027410728661592071330135911373521761178172431610619087451275350756511381029517161299517311022531325719087119110171418540942012171711711111082311311419037126514854051421161113850473901101682229018841041217373126216137122229752217497540573139046650221867821383213145272290110804519225104521166951959015011611263170131142451711080311811954073532050907412531314115183001283726934217922174161013090411377838733121131122262204921386830422113037212840314239021212414613111977430562626711779902697119030085340299200741322569075151132355311317104539019793551142909493969011650103290103741965571013109290145141981340747494906541110776801389677442750905122228457119810722999011567747672811320255925281160691310219410284196383796456319835131284207411905619802564632671401416397514756114010413741696116112901052901284465131437902175696695288814906131244547611245137108765311218811318457527064113103722510813173241903207510838926151116417614081814251857103561801311355418190143570406598411540391934065261947151406837691906031107756187236611010873110611675131143121170144132246561981409017510431262111002741072866152118418121157896181217012895141637418414229057611781724316106190874512753507565113842054013014697403120131167571908711911017141854094201116111661201244714190371265148540514211611138144020261509711110484513154057313904665022186782138321313428829690166531104132131116695195901501301231262901802170485164541110170121119812621447114611131142185315141116353142451711080311813421418501017177729021612910714314076241138411518300128372693421792217416101309041137200116429670621880735681047588412226220492138683042212013710017510037137862833226611211977430562626711779902697119030085340299200741322569075151132355311312511036193292625779709214611132902627513114096557101310929014514198134074749490654111077680138116922834182311152608013811981072299901156774767281132025592528376567011804126211131383796456319835131284207411905625165192232141639751475611401041374169614670276312626278053651131061273374601701314153111314379021756966952888149061312445431111631121131131037225108131732419032075108389261511164176140200404967761238327701909071382730970436921311355418190143570406598191819032554044317211513307415641115711158012150571613153651559050131788131194715140683714132050136113236317416696921431211701441322465619814090175104312621192185904821101621044164901302407702118418121157896181217012895141637418414229057214187568813612510719042054013014697403120131167791875675779569511611166120124473087663745643279074056144020261509711110484513157132972511071547342882969016653110413213157329725132461614670120243141108130123126290180217048516454111017012111981262144711461113114218531514111635319121220621067120183342141850101717772902161291071431407624113834117299620011642967062188073568104758844423780966103120137100175100371378628332266112106325701113585291376357931116538766251103619329262577970921461113290262751311401373510163293575190324876003176611692283418231115260801381417933775547706241150837656701180412621113197178906031101877851526251651922328463797169111113617561901509614670276312626278053651131061273374601701314153111319217552275661751219095427283352144776311116311211311417120213629619205113290384503371391216659120040496776123832770190907138273097043692131118355776200132904541130140191819032554044317211513307415641115711158012150571613153651559050131788131131033215475751661817071413205013611323631741669692890899092411172508070651451126192185904821101621044164901302407706803796479325051214187568813612510719012183796134131777918756757795695523196665508110553545111314014621230876637456432790740561096207451768930690156831196513764869613257132972511071547251154832074125405732972513246161467012024314110842037840111204731701910053112280902932124961813119121220621067120183121187565698714253513193012010719634117299630347011012196870202131442378096610315208777660646382177013110632570111358529137635793111653876611930583780920741410676341907077613735101632935751903248760031766967744275090512169040638790177107607519151141793377554770624115015040791012229056295739717890603110187785152614101502872971501016296121413843111513222254762024111037384637971691111136175619015096119810222313956559655217135197561414116049437921755227566175121909542728335214477657621537710830816131116308159562471417120213629619205113290384503371391216659178209904167846772079018472671441183557762001329045411301406737805113290432602297926916725316813790775152524213103321547575166181707420961073311029073677973250130890899092411172508070651451126111661115905111617170368037964793250511685158232552247909209046641121837961341317774849729993863050232706359777911002741835152319666550811055354511131401462121812111710381429016715021213110962074517689306901568311965137648696132124291611857257111326873280230213832251154832074125401621261133159017749141420378401112047317019100531122809029321249618131596315105195136179867423532152342471211875656987142535131930120107196695784715111731681994730347011012196870202131471113361962401112905405208777660646382177013165611298095424101139134119305837809207414106763419070776861147824099764713159028166967744275090512169040638790177107607519151108696457021147615115040791012229056295735471902379511214141287142731141015028729715010162961214138431115132222547620241110373103171529711138119810222313956559655217135197561414116049437705113199418126450438121576215377108308161311163081595624716310847103814278147782099041678467720790184726714424171518590178742175051256366737805113290432602297926916725316813790775152524262681779611311782113973110141930324209610733110290736779732501307943748212074831129961038539909041289329661027463129310113611661115905111617170361645103290411708411685158232552247909209046641236111601202662015756632411367136748497299938630502327063597779110027418351157511901111013118121117103814290167150212131116612513920631766321429092612090920706318413130416590170841124291611857257111326873280230213832213523236315646743229690152903424716212611331590177491413567732126413291701144596315105195136179867423532152342472062485116923331695784715111731681994757613159051141112032516377554770624115047111336196240111290540106270770987583065903661135140966561129809542410113913416211218320508290160757701472103853951307791210778611478240997647131590281664751759388961604745451277103290160108696457021147615111664181205110352411421605471902379511214141287142731136130905037743729310173074117103171529711138722125440132665152905321544770511319941812645043812172998535847533154477816190501631084710381427814735745329922514969307417071932178651307791221708241715185901787421750512563610191114223311039019373062681779611311782113973110141930322555105111170645020879437482120748311299610385399090414064537115612037282651201663168307791150367463129310113612164537210615111932140785632616451032904117084154877841135867793189152902924831402361116012026620157566324113671361166247920120453232990293103126901301575119011110131166914537236340615311119060541754111661251392063176632142909261209092070631841313041659017084111201262979029610324615226611234115540418655256132213523236315646743229690152903424710164170211616118037571011921303567732126413291701144103171529711226222773901435459620624851169233311315311684628349015671715732119013701111878620014592657613159051141112032516377554770624115066092782746226811646214010627077098758306590366113514096576167905110452479667911621121832050829016075770147210385395130779121077366355721442639207124751759388961604745451277103290160201777132905092594621401166418120511035241142160227364914411012710411574813170113613090503774372931017307411713736656413872212544013266515290532154471028619076491510134131729985358475331544778161905019490451411414651383574532992251496930741707193217865130779122170840190790110583447411038539202262321311019111422331103901937303064435176242115472255510511117064502083394617575233321405228406453711561203728265120166316830779115036106212056489706180901381216453721061511193214078563225935141975490221138548778411358677931891529029248314037517514213111074881381166247920120453232990293103126901302591148970658045213816691453723634061531111906054175412257851223706277185321311120126297902961032461522661123411554041865525613210584911112182364136010164170211616118037571011921302255241540134321110137540103171529711226222773901435459610703732127031416660906131311315311684628349015671715732119013701111878620014592665611266609053277908166092782746226811646214024151051496354319138576167905110452479667912591101382078625111181366355721442639207129522793572192017771329050925946214026196274441103241521252273649144110127104115748131701189154571661941703570137366564138137818464428157148124218086822947556205102861907649151013413130176146789611445404714413469012514769467521949045141141465138220905669990697401907901105834474110385392022623213110512539047199355971329065701713064435176242115472174147776146789646572979117790402339461757523332140522837014377177109095830701739901297011972710621205648970618090138241772561306721110917147694625719126225935141975490221138577491115123906389098215202375175142131110748813820132052779627444110324124861324624922725911489706580452138104975777506014121235116290411962257851223706277185321313402494571031160612076570125105849111121823641360197936175902531556214147310009074153135597225524154013432111013754038490501617072812181070373212703141666090613131220909669990737656112666090532779081106290470611414513236315114029014511535480511030184470770113770724151051496354319138227113776107190125355972591101382078625111181798810457285136031202207657012449522793572191031818421412031971242903977896213518638357035597261962744411032415212526116651662659096861289549447189154571661941703570213262582446501710511378184644281571481242180868229475562053309250107286592301761467896114454047144134690125147694675247935581753511111361756190150170220905669990697339319611331511025510512539047199355971329065701712061450905159238887024181741477761467896465729791177904021031713270690111590711049711307791294996157821391117093701437717710909583070173990129701197272673649198100666090532471112417725613067211109171476946257191262691965622241415271365774911151239063890982152022363196512979675201320527796274441103241248613246249227172126671599175562791511049757775060141212351162904119669123611064190511442363134024945710311606120765701255365107411167061379822541881203119793617590253155621414731000907415313559724171521618113973037586148212439142755638490501617072812182168771610325195176902469047314022090966999073713717610647069051106290470611414513236315114029014511535480511030184470770113770726125332362472271137761071901253559722649111519369692413492130798810457285136031202207657012445364186413132155777110121121044313110318184214120319712429039778962135186383570355979164115616790239150562611665166265909686128954944768415179053513521557213262582446501710516264111065232925914169202131330925010728659210203201677951262508142171147935581753511111361756190150170318667731062934547291142616847811015012761471111111550113566256339319611331511025525437050488140121266904890142962061450905159238887024183717734140845136442905611542210317132706901115907110497113077912949961578213911170920165090859608813821161397825510326163211407690150913419314121490156506901563651469540120913540150344136141281903569014277512167751845905402059054014490540603908411326039021290510511421711267364919810066609053247111314320501106248738621391166537506919656222414152713633990905826657962123141616757236319651297967530042337193714012126690489014296172126671599175562791513497731875687161796903566102120870164561691236110641905114423631146973100665735544437505365107411167061379822541881203113394211750843968601911018353549957710181099131288110668690142962417152161811397303758614821243914275561178921175021531471015314166609090216877161032519517690246904731406111081171022059030310051209013717610647069051224411906651288814906134545611539879164466512612533236247192041397673512702195401424166168843969066355805196071902264911151936969241349213022490296657463412144776536418641313215577711012112104431313193205011066511875610721066515287971463882001779798791519164115616790239150563214119066513009035121666596804115108736142907365054073136377437103290965399090357766516007168415179053513521557129321186901022519051375579307871247901138781756626411106523292591416920213180112904173052893296610226902518110203201677951262508142171134977381996921040909682051213913186677310629345472911426168478110150127614711111115501135662564189614479707902689096104288814906134545611539879164466512543705048814012126690489014296933004122167905241223717734140845136442905611542281773908559724695214964495202771711597412801446610212016630779151201650908596088138211613978255103261632114076901509134193141214901565069015636514695401209135401503441361412819035690142775121677518459054020590540144905406039084113260390212905105114217111043272482204222203211292031514431112896070731432050110624873862139116653750220835090471104150116235437441429075733990905826657962123141616757421104133961371936290352411105875290661019437524135630042337193714012126690489014296611445148100113910259475403497731875687161796903566102120870164561244136469589902945431704504132193904452071243581091666491020967501469731006657355444375017811190249742172501174142908001926853096762012106514913394211750843968601911018353549957710181099131288110668690142961695169013766581102096750117892117502153147101531416660909061144341845401503441241969061110811710220590303100512090113350813811519361761936290352411106610196717115446862244119066512888149061345456115398791644665129640387157237139411103901834396692070279119204139767351270219540142416616884396906635580519607190976190909177707472521339613767411782177116661011008810969066581909016093224902966574634121447762495087041110666599086677015054796106573790669180319320501106651187561072106651528797146388200177979879151306657502031665198791120165665132141190665130090351216665968041151087361429073650540731363774371032909653990903577665160071344385110665797798597820751129321186901022519051375579307871247901138781756941466651355906643673166101969301145338820747987491714266154736625315351321081212260908117918011290417305278178713411206842925464414157149103290156517912690251815568164146177112218475857349773819969210409096820512139145152259152418961447970790268909610428881490613454561153987916446651280711901746540421561116728104108933004122167905241223543961542185821106229597621113315901618177390855972469521496449520277171159741280144661021201663077915133190441169520106325520311378236752782661387555610329028715110432724822042222032112920315144311128960707530811151312221245757856672086806655220835090471104150116235437441429075737147170754097621364813159087421104133961371936290352411105875290661019437524135610296090529214217111306114451481001139102594754027031313257556115398871244136469589902945431704504132193904452071243581091666491020967509210267181463901377971781119024974217250117414290800192685309676201210651497815072417667854040115041668005069040114150070232623729690152903424716951690137665811020967508650112010625718321310401839082053540115041143611443418454015034412419690650300419879140665718335148271932229013956171414791186113350813811519361761936290352411106610196717115446862205677346671407167856418952559030779148372964038715723713941110390183439669207027912014549056115398871107786576612197619090917770747252133961376741178217711666101100881096906658190901609310577375147465735307797249508704111066659908667701505479610657379066918039981041665711930866442448753754066102902167973066575020316651987911201656651881806657107167576934438511066579779859782075112861866651664351151012540717841572173967509414666513559066436731661019693011453388207479874917142661547366253153513210812122609081179130218066571019028755287901014966537502781787134112068429254644141571491032901565179126314111665773116590140415713911665375055681641461771122184758578121296651164510325805114290886651600714515225915293109141665710329047539904135280711901746540421561116728104108258326144665175832103211057051142136248241906131671032904190860665160071354396154218582110622959762111331590161336193519854052054080741173319044116952010632552031137823675278266138755561032902871516501914071222418127290208111142451711544680530811151312221245757856672086806655596431416621064573714717075409762136481315908715669551013118756122786610296090529214217111302806611075051423907505110381429041150665154071270313132575561153988713509010914714077510047151797704166609014892102671814639013779737178307791668628279090502204130463155496793135913413077912090750463463155840708781507241766785404011504166800506904011415007023262372969015290342471247395095133131321736147573552142706747806660905307915135658570100214217118650112010625718321310401839082053540115041143941466651309108663114165030041987914066571833514827193222901395617141479118630218066511429629113790199662205677346671407167856418952559030779148372786736647755477062411502014549056115398871107786576612157419084119426290812989879117111057737514746573530779738116611724013711686146441415723814211032048917032032711670696132902611611125973752119095901701034746711181086690263998104166571193086644244875375406610290216797223119104881806657107167576910275669045791128618666516643511510125407178415721739675011661067120457973021806657101902875528790101496653750237934579726314111665773116590140415713911665375010453644579781212966511645103258051142908866516007117612101761474904176311032931091416657103290475399041351624514775021714131702583261446651758321032110570511421362482419061316710329041908606651600713271305684579733619351985405205408074117105557211045797650191407122241812729020811114245171154468079445675964314166210645769196453817667911566955101311875612278666990126901937811402806611075051423907505110381429041150665154071120501901441595403509010914714077510047151797704166609014882211966703801731408540791042217101218768611845236861205175781540371783077916686282790905022041304631554967931359134130779120907504634631558407085367507611154012473950951331313217361475735521427067478066609053079151356585701002142171110281875611154094146665130910866311411171761120714732013224678114030218066511429629113790199663917708110581032902173065114290145278673664775547706241150507102735112969013069090454790483574190841194262908129898791171117110989285213121590120351438116611724013711686146441415723814211032048917032032711670696132902611611125973752119095901701034746711181086690265071027352419696739081280307193909057289329661025341611161222231191049561121215369090416684146112111514165342140102756690457911286590708221411061186631142170132051224630502327064115190307791102211116610671204579768418777958723332115123793457977784340120213110453644579713969697779190107237135167115162903262611765090961916872872921478281184161211514615617612101761474904176311032106217790105741658321016111013096451877782162451477502171413170218810457264128148202136327130568457975627157442750905110555721104579786135112190403540794456795611212153690904166845113529713542269196453817667919588151895507816163050232706419655907838371437353077911519010213769901269019378114094770211163050352096120501901441595408991111018604516480702111145822119667038017314085407910422171012187686118452368612051757815405367142142153675076111540680108477549696470321551102818756111540198351084772366110691233321151117176112071473201322467811407784340120213139177081105810329021730651142901451551901701111315071027351129690130690904547904831062206157151127914114418261711098928521312159012035148613571219040354050710273524196967390812803071939090571327474046905624153416111612216231176157524205873917604733302461441501010341342540956112121536909041668414611211151416534214010215646526261311634254012865907082214110611866311421701320512246305023270641151903077911022111611478477091406416841877795872333211511338119862159214721877843401202131186901588541396969777919010723713516711516290326261176509096191687287292147828118416121151461564751754541164621401062177901057416583210161110130964518777821765011101213411201652290531602188104572641281482021361505964361130154453905732117115627157442750905163726258244650171057861351121904035403448943175021010728666695611212153690904166845113529713542268418168590102595881518955078161630502327064196559078383714373530779115190102137118719071399213794770211163050352096636313212429075381899111101860451648070211114557624791590457915153671421421162247414457976801084775496964703215515863124945797198351084772366110691233321151330247419644189408414727977784340120213121936511242903976715519017011113110363151141169423101142321911803710622061571511279141144182619736457506090142817069012459018332861357121904035402704570280677513527024181327474046905624179631911118761131162311761575242058739176047333024614415010103413425406162341105901708404224711041021564652626131163425406643027782161147847709140641128594117041594116722315113381198621592147218366351253413677041186901588542821687721415932587202414751754541164621401166965120125967507321459610385395746813947342176501110121341120165229053160399810178102228848045364115059643611301544539057321171165030041555776372625824465017105715933112083916231791573448943175021010728666618111159070100090474145734442684181685901025153647277539121806139714011871907139921371889545702318773701615553970241863631321242907538197641171137331201903527411757624791590457915196452103290961741171622474144579765611229310111124146638741175863124945797124131415701383233024741964418940841472797704531018604774917031382193651124290397671282813270651132907066710813113410363151141169423101142321911803759651051969610321201301973645750609014281706901245901833213761121306526227045702806775135270241810516012081635392029013079631911118761131956112130652626162341105901708404224711045965105111521437223173205049621901306643027782724141130652621285941170415941167223151809102141507323663512534136770412361116612187211091713773043365073770236901157147409066170141282168772141593258720241586111591352104314111669651201259675073214596103853957468139473421464167042202130399810178102228848045364110621779056311120265030041555773911694128051110581593311208391623179157236431411081161191544315518111159070100090474145734442411453902277720213615364727753912180613971401074512022278318895457023187737016155539702418330202131477581470241897641171137331201903527411763856418092629614711955751102013113014114096452103290961741175673776610711411132790730782656112293101111241466387411724545147119103017012413141570138326919890236867791147119108096704531018604774917031381159651282655181282813270651132907066710813113411788590170840422470715965105196961032120130891147778571611432253138137611213065262102713212513196855253105160120816353920290130546379667813195611213065262340810457306811361922532028790390715659651051115214372231732050496219013012841355169301774188712272724141130652621854596299438746561809102141507321707810329097260131236111661218721109171377304336507377023690115714740906617014116617256872757583138586111591352104314159651011136171329725113114641670422021307293192117573841925911062177905631112023016012021132363113912166591391169412805111058388128315620712476172735258318013766110849623643141108116119154431553408104572551281202136411453902277720213613761904634129614511431452711074512022278322790105819355832936855251051666490286481761374256136195012510510433020213147758147024182271107502545607583294311105657733288319963856418092629614711955751102013113014114032845738315755393742651169320280418705406203067975673776610711411132790730782258128666131142750769041079132245451471191030170286120566871127358395236323207580766330679769198902368677911471191080968149071511156655051743115965128265518814120566871127370951804126221117885901708404224707128690715111666180251743891147778571611432253138784096657659170669107310271321251319685525310207733513522744674757290483411352518090810113290501481311501671342179151546379667813110210170614481123857422395062170167340810457306811361922532028790390715681045661241473534187078132028011521671284135516930177418871227210207739513214190190843969065917066910731854596299438746561102066124176653714079010041155598603591701170781032909726013110204587061417085405181864157062170173166172568727575831381965105186054875166104059651011136171329725113178150724439066787293192117573841925915963149715072843969081773759879190425780517679151301601202113236311391216659125829666576591706691073388128315620712476172735258318013766110849615018072321904766106813901503741659170669107334743225113640110164829640110168793198791171134081045725512812021362581286729066129051466322312036610290346218343474235117215094143441372893296610210207738184396901575681543620306791511376190463412961451143145271206784328576586155709562279010581935583293685525105166649028648176137425613619501251051041331391166512121391096615176622711075025456075832943111056577332883199270313132575202813086748211414145915731205123215443284573831575539374265116932028041870540620306797137619090810790421105439784184781210419104131987911711258128666131142750769041079132150596437290381136128190140579076641810461111496414701312861205668711273583952363232075807663306797916474624115072905119618112104191041516217010081490715111566550517432764381266517538750334101133990181725613081412056687112737095180412622157419022316124664142152290750411802911062371526771101122707911507265902394712105647157490417176710636277136277137563647119756314769759332522763776110897109896110541325227637344105434990266059713628690715111666180251743150137729159066110539193511181379022615093927840966576591706691073258128628276906613129096965510701839549255511044110951632374627416671904588111355805155416249081454146879791590661115418807331791736102077335135227446747572904834113525180908101132905014813115016713421791516601027192906377919057750341210113914010210170614481123857422395062170167150320527217160366101832190291662925611025625156570428304233512173761531478268508901202144877501990172141963862615701038539256668104566124147353418707813202801152167159104396358010696936750516675141890102077395132141901908439690659170669107333116995932577476442815714866920120823760949031234102066124176653714079010041155598603591701711212321903177291590821474111966105102045870614170854051818641570621701731023407276172129661932122701970241851102285187283187307797196510518605487516610402569035121257356611370962173470198047028721868781371711919049191904913164321090139177815072443906678246431507249152614010450572256103853990903580665160071596314971507284396908177375987919042578051767915137166471038539907125829666576591706691073327717307111353219012039132190719220690963690142901036669081314169026211854067126540723066516007115018072321904766106813901503741659170669107334743225113640110164829640110168793198791171132577307750905129310166142258128672906612905146632231203661029034621834347423511721509414344137314320501106651321416674027311036090141293110360901416611036090215519012507307210207738184396901575681543620306791516503004132190297250341213913420678432857658615570956229674775076901353904565401373356892208133139116651212139109661517661166135390702107108307664181708270313132575202813086748211414145915731205123215449204641813975805713761909081079042110543978418478121041910413198791171110584567323071556610851747416114110401839115059643729038113612819014057907664181046111149641470131245457313722115351107108307664181702227136719291647462411507290511961811210419104151621701001854514752166916307668996276438126651753875033410113399018172561305964381266514018560731130893686901471268214574190223161246641421522907504118029110623715267711011227079115072659023947121056471574904171767106362771362771375636471197563147697593325227637761108971098961105413252276373441054349902660597136133106432327110478165005751841176784111517244313132710366971301501377291590661105391935111813790226150939232845147750763009632112586312029273176901777514117411097520617790791117161103290130556115315098791668025812862827690661312909696551070183954925551104411095163237462741667190458811135580515541624908145414687979159066111541880733179173670419032710364414157164660102719290637791905775034121011391403711082829910329018030779152031150320527217160366101832190291662925611025625156570428304233512173761531478268508901202144877501990172141963862615701038539256667815072443906672770872110932170152131621553717010090677103141212676961151905731326743141261329064110311501091049707971624907911311987911711159104396358010696936750516675141890781507241790667277017790791121261133810915015210327083311699593257747644281571486692012082376094903123415018072858107505774104612105689305162165180802693147215290218711212321903177291590821474111966105656190443906672770262686612490423251110217419107478211037124458516217010026475345304171092418769841875714187212418710684187718418750741877441874789045851251110372111081110372113051103721115211010010234072761721296619321227019702418511022851872831873077972581286665166751747135710120831396902123878230768162791671297791511232418724701142411101157870830768987912239225690351212573566113709621734701980470287218687813717119190491919049131643210901391781773157753554751246120777791102873815058679166150104873932105122327855103124643150724915261401045057225610385399090358066516007115032052721474319746339621154914115010410385399041655132371664710385399071961261116811104628774162332771730711135321901203913219071922069096369014290103666908131416902621185406712654072306651600717153893205073612190530358076411710761038539903574132577307750905129310166142557372437447156372013710012661563779651321796314165901714314320501106651321416674027311036090141293110360901416611036090215519012507307222097121184857146115133687101327065130779113765030041321902972503412139134138227115480958291282811442296747750769013539045654013733568922082591287715610385399029115074193130116613539070210710830766418170896111516690468867199903661516132770671144920464181397580573152343292851105813796615835476777461507105845673230715566108517474161141104018391103615111917603501009110115124545731372211535110710830766418170222713671923975011928881490613454750908115010331151741623185451475216691630766899634116972212053216972932596438126651401856073113089368690147126821430423113617786111906467021331064323271104781650057518411767841115172443131327103669713070910681450911112961387083284514775076300963211258631202927317690177751411741109752061779079111716110329013055611531509879166807317098820709874813170419032710364414157164347217547162780441665584181075113037110828299103290180307791520311478122211071695377419675781507244390667277087211093217015213162155371701009067710314121267696115190573132674314126132906411031150109104970797162490791131198791171113383745415287130149222666609014247563627815072417906672770177907911212611338109150152103270820914784951117418659551065890809017505181107271411411381501807285810750577410461210568930516216518080269314721529021823377485515098096341373711005121592437881846561904439066727702626866124904232511102174191074782110371244585162170100264753453041710924187698418757141872124187106841877184187507418774418747890458512511103721110811103721130511037211152110100303222777495359029321601999041215114796324219015234247258128666516675174713571012083139690212387823076816279167129779151123241872470114241110115787083076898791223922334774832369069013425326071371618867192269317911378177315775355475124612077779110287381505867916615010487393210512232785510312582122084037665123113726656150320527214743197463396211549141150104103853990416551327971823914090147414120128932966102181125801810766891029612611168111046287741623498137931114142900627153893205073612190530358076411710761038539903574134139211057773581397661215573724374471563720137100126615637796513217963141659017141033271102101500111462911010028806222097121184857146115133687101327065130779113767116217017050045611138227115480958291282811441337222401777470176951120891134259128771561038539902911507419313025538270617081565120211327137961115166904688671999036615161327706711443572122411637490816280154776315234329285110581379661583547677746150710416921117982770247838211587673077911371036151119176035010091101151751125141843257248737397501192888149061345475090811501033115174162310383711250067984165110574791341169722120532169729322242626071151604541164621403042311361778611190646702655420465729791177417092617091068145091111296138708827741091532161712051397321729716415273170988207098748131731750623632911085568234721754716278044166558418107511301013653576033510535714781222110716953774196755572693178322729315110724965044134611040814013383745415287130149222666609014247563622976657274170719321786512277082091478495111741865955106589080901750518110727141141138103831908042666820615211634351674871209212551233774855150980963413737110051215924378818467115476532174117019061230322277749535902932160199904121511479632421901523424710383145322133245512667236766514704123347748323690690134253260713716188671922693179113775115431154540132138311429614411022241600712582122084037665123113726656281903929585407971823914090147414120155728710946413394101901037411718112580181076689102221511429014565324625032502917411749813793111414290062731128163781812314514171083413921105777358139766121307321427219396710742614010332711021015001114629110100288062961315509065336142671162170170500456112331476439247911113372224017774701769511208911342582188101081098787126817727063012437411725538270617081565120211327137315222773021131885038290730741173572122411637490816280154776111620711033277105537255314166609014810416921117982770247838211587673077911379675433236247751125141843257248737103207411710513119032204901151524113010383711250067984165110574791813827607116597645631741491104622242626071151604541164621408137172329601110477540524659010847103853973074165542046572979117741709261337636927111832947138358757514070882774109153216171205139732172971641523013472659610921214290103741623731750623632911085568252720679305120612071529310110374117101365357603351053571321381266577086210321104067913298355726931783227293151107249650441346110408140158682774787972976657274170719321786512277081242717795198773121371253202797103831908042666820615211634351674871209212551188801471576711547653217411701906121487506277717763577023870279710383145322133245512667236766514704154314075019096123371413266248441221596378013766110140317977511543115454013213831142961441102224160071979565018756804359612819039295854025912876677519526664614713014114697403903255728710946413394101901037411744466414181361301464039622151142901456532462503250291741172622471069247708244375317977311281637818123145141710817813111681770247414927702797307321427219396710742614083660161131305136869908172532027979613155090653361421384239620229943131676672331476439247911118880151896695258218810108109878712681772706301243741177986226116218414167212628341130315222773021131885038290730741171091116207110332771055372553141666090148133454412450967543323624719693322106731501032074117105131190322049011515241130153136267141016142901551373515181382760711659764563174149110462117012578325523299092090466478137172329601110477540524659010847103853973074154877841646067291843376369271118329471383587575140708270165090965046010324121777301347265961092121429010374162319676671474675090515272067930512061207152931011037411728912541222571321381266577086210321104067913298310621774115111622265707158682774787975663240614612427177951987731213712532027977885168261202131188801471572624137115119937304926148750627771776357702387027975965176275211081543140750190961233714132662484412215963780137661101403179766617052465789511319795650187568043596123220229652217406492259128766775195266646147130141146974039032312621612915144466414181361301464039617033090141938511412727113126224710692477082443753179739290457580441600586178131116817702474149277027979229058702586131836601611313051368699081725320279742190169692124093114071150960138423962022994313167667312624765111049616545618880151896695232202474061317986226116218414167212628341130256510511084710385392021312893296610210263249120131109128742082621311334544124501791012917413565113119693322106731506565105110847127967120213115313626714101614290155137351512509020412203721019013111701257832552329909209046647102322433431315487784164606729184286904705174811312701650909650460103241217771026231578216622119676671474675090511271823157821913328912541222571502997065149131131106217741151116222657076978222751061908735122456632406146569136905796132091387885168261202131150269524372624137115119937304926186565813041935965176275211081609491351711466661705246578951131112445785130452218123220229652217406492112410871512358161436138304141513126216129151433120702117160131170330901419385114127271131226491411381167513139290457580441600586112013852406841442218621892290587025861311674161015782166116221421901696921240931140711509601283042213126247651110496165456232204921382322024740613126811620225651051108471038539202131174269711903008526059625629920074132256907515113235531131102632491201312782534152101031138128742082621312273771516722538112905116952179101291741356511315681118926151116418265651051108471279671202131569136904063712509020412203721019013122612755251102322433431311997811022869047051748113196515358102623157821662211424549098012718231578219133270187891502997065149131131312627707706978222751061908735122470060456913690579613209138350521161021311956211511502695243713921212051511311865658130419310517038050151341241183100351116411566094913517114689254017511244578513045221811741159611612111241087151235816143613830414151892135254043312070211716013119676671474675090512264914113811675131289125412225711201385240684144221862182595315543716741610157821661162215324115748131701128304221231361060183126138232204921385307012963513126811620210667326717426971190300852605962562992007413225690751511323553113124677065643213827825341521010311385325104173213122737715167225381129051169522327649156811189261511164182232202324080176569136904063717991790741226127552512361891174719978110245091144070896515358885405207471424549098095561039401290511207472701878922220569407202312627707708929019414140110700604201587119017035052116102131195621151922907156431287139212120515113163856106737105170380501513412411831003511164115610837712103156892540175140134664119032174115961161216608952489213525401127926151967667147467509051532510416175146289125412225780674663566609025953155437110045961315324115748131701170103692313610601831261381196965113853070129635131102861120715146610667326723220418670124677065643213837032882475325104173213151190811212327649198204372322023240801762279020622581511167991790741196766714746750905123618911747289125412225745091144070842164146112288540520747956326465275131701955610394012905112074710129690612222056940720215266588892901941414011023220211032214512049011515247201587119017015266588922907156431287101849950147138638561067372067843150471311083771210315610263621211032116511401346641190322272165247660895241029603252511127926153809055664118557090138532510416175146778156512021318067466356660902279012096119489113725691100459613143516190115962001701036919476135254011969651138196766714746750905110286112071514662891254122257232204186701421751122370328824795632156527513170151190811211012969061982043715266588227902062258151116232202110322145120490115152471967667147467509051102816280525092891254122257109019025121624216414611222667517517089563264652751317011526658810129690615964310574151415266588118164105232202110322145120490115152471424601526658810205677317068261101849950147138106890470704113771617713820678431504713112873032706511026362121103211651874108472272165247196766714746750905123281310296032525128912541222573809055664118557090138421550112277815651202131956321296527513170122790120961194891137256910129690614351619011596200152665881947613525402322021103221451204901151524719676671474675090511516241901077289125412225714245490421751122855115686289956321565275131701346419679092010129690611526658815266588471241496372322021103221451204901151524719437103290210791102816280525093999045192138109019025121622869047051184816215023245141266751751708186565029650236156710131152665881020567731451785123759643105741514155188462118164105196766714746750905180414261424602891254122257102056773170682614214514611221068904707041137716177138956324565275131701128730327065110129690618741084715266588196766714746750905123281323220211032214512049011515247289125412225723290100285842155011221311464913278902629073041136295632129652751317019349055645118557090138101296906122290230611311526658820681521132022322021103221451204901151524717447199151624190107712949087321424549089229554085511568628910812491512501553073464196790920196766714746750905115266588289125412225747124149637421671027221943710329021079195632382751317013999045192138101296906128690470511848162150232451411526658818656502965023615671013123220211032214512049011515247102056773145178512379919048337919415518846268126370196766714746750905180414262441032909773736714210693728912541222571287779074151442145146112239990451921389563245652751317018141201020576215023245147101296906128690470511429016116125015266588596431412121312322021103221451204901151524710205677371569665677314268132329010028581967667147467509051131146491327890262907304113622891254122257934905564511855709013823220252762222902306113113224578720681521132021081905061521101744719910228214312949087321282091206289229554031262151155511675807710812491512501553072058721101434219676671474675090511967784115538628912541222573741389016677042167102722112804217418716231956323827513170163631511407546101296906112461083523315266588629907232202110322145120490115152471706065169299190483379194146784159540681263705767841165106141244103290977373671421069371046363231590107471287779074151410317147930399904519213841178874781412010205762150232451476154775107247286904705114290161161250239201120965964314121213190390556801376611047411110205677371569665677314268133941000957196766714746750905122790493120821487289125412225759681222612101861312322025276228912511046213224578754668231741108190506152110159905581022821431812111156128209120624114879011012335312621511555116758077551102501104872058721101434277977220119619677841155386109452761837413890166770121115090966007111280421741871623124631412021026363151140754624822211977791216977417690754731669335611539879132124610835233102429382412450696299072565181917060651692222458395164478157216791146784159540181125187756883916231791515767841165106141948458379051804767579167104636323159010747150788490382570771031714793058519016231047178049653125251161711161317014117887472322026612750962829090228517020151615477510724710912566525611611239201120964174469131611080311161118276247465477812207151181137903905568013766110474111258128614176761193654097090323941000957301147789615740641412530907612109082312033590346412279049312082148710226870613833746345915159681222612101861312751787111012311139712361033828289125110462227829073011096174165831381411972146214054668231741133941417065132050904742501991911421711137211917121599055814912525614884906822151418121111566363151741911773123164215117111255311511111040870241841148790110123352209790670701140613014157511161105614415805215114420213714290830582551102501104871104907141492113140412112505907797722011961021525117796731977485810945276181705563904397417704341821186121064012111509096600711020570423205090823535247413612463141202102475311251331202191874017573666090460133158419248222119777912169774176907547316693356115398791326064711364115610385399064381374165843228932966102105160120211323631661024293824124506981490470415951260131256518193397421231165436540862167064357082224583951644781572167912704234114161102171153118112518775688391623179151289329661026219190569484583790518047675791672304731105073215078849038257077765418242185470412519054710217115315851901623104717804965312525116171116131701701742124161278318634911143108138232202661275096282909022851702015124677673642831161573156417021275153110912566525611611417283421236268633567417446913161108031116111827624746547781220715118113774448149132462818106646212173551131191141512581286141767611936540970903213475173696984875132316566686274301147789615740641412530907612109082312033590346412304775113257848171102171113110226870613833746345915110114611567201905465113274315284907601312751787111012311139712361033828270106021213130096225530172520963014152213821291090706131129801206151309616145113274315245490140129741131227829073011096174165831381411972146214047531791904764182012005763627713113394141706513205090474250199191142171113721191712230771389017147411765315907271404141511491252561488490682215143611469047157666090476471411066363151741911773123164215117111255311511111040870241823220265191110537200137061202531517902842985613117712080638475606151329645361402209790670701140613014157511161105614415805215114420213714290830582119644145782668451130647550413421401104907141492113140412112505907041906621966715413211810197014611131102152511779673197748589861464913266124280131130982227113817055639043974177043418211861210640194371032902102145351409077102057042320509082353524741361281584195360418126654047547686081384753112513312021918740175736660904601331584196363151261317261273606471136411561038539906438137416584321741973405230517871110123110516012021132363166206176467509051977436224635308149047041595126013156684987911213397421231165436540862167064357087484974258581811317015227042341141611021711531494146491321526090316265887121289329661026219190566801129677090453181113851321511271121230473110507321294903616473247200765418242185470412519054710217115311081249151250155307701742124161278318634911143108138586428106619079182110137658313024677673642831161573156417021275153117014645326611037509859519071411511011237584511429090941038539730914172834212362686335672063176632661103720301621092773610925866710950210321039174448149132462818106646212173551131191141511376411716611037103272117910741680702108025911347517369698487513231656668627458611166511661103765324625032503009624723313719089912304775113257848171102171113125551051318413130661103710381429037796995407611791101146115672019054651132743152849076013163862636476632104310385399090150311302701060212131300962255301725209630141522138212910907061311298012061513096161451132743152454901401297411311669645329632090453283790185226324753179190476418201200576362771319296267604717033077911372307713890171474117653159072714041415112828132706511329067108706131134361146904715766609047647141106374178711101238103290277130232202651911105372001370612025315179028429856131177120806384756061513296453614032681910904703715546537119644145782668451130647550413421402555105111170645020870419066219667154132118101970146111311019741872902848651140130986146491326612428013113098222711385863176610614211091073622257194371032902102145351409077216473454704118022257281584195360418126654047547686081381024239032103814290101890476363151261317261273117695457417213126211020038270651174197340523051787111012312562594962206176467509051977436224635301811251775107920222515668498791121133139110716611053674849742585818113170152306437021161615703748757031714941464913215260903162658871212261254651069032570511306120151224514768011296770904531811138513215112711212223146578142515351032901275855155167176708129490361647324720014912546573213090465090558621081249151250155307596510743141843476424116313121702418586428106619079182110137658313022531125977431551671821701464532661103750985951907141151101123758451142909094103853973091162176442750905133329395177101154522177120631766326611037203016210927736109258667109502103210391865412566631190321032909653990902373279074062137641171661103710327211791074168070210802591636438125632050551741662101022406402153476676165861116651166110376532462503250300962472331371908991147766157905196810115156149025551051318413130661103710381429037796995407611791596510413246635282906550211814966386263647663210431038539909015031130261907751647320504125474172710202775164192166964532963209045328379018522632108190529221083096225429172420170382437579296267604717033077911375961111113222478924173406583136128281327065113290671087061311341093741787111012381032902771301334544124503268191090470371554653716217614141211653901304862555105111170645020827590715616650410972013510514203814210910329010140651101974187290284865114013079820456204103290141879111014051270586317661061421109107362225797478411351151034062661032907516621647345470411802225742190121612165247537109137819022611510807821086511164141821024239032103814290101890476807811510340651728175116406316251176954574172131262110200382706516363151411755726151140941315640130700406642537256259496222790506138110262516774464255112821164191107181125177510792022251636315155120777220510365371331391107166110536205355190201412361109535611132901142115305306437021161615703748757031712063176610610866805157646537136700304641344226125465106903257051130612015122451472497077614769467483310103277222314657814251535103290127585515516717670810287080564011409070613111599011611885907411107859074120478590712785907069912939693429011156811014064014912546573213090465090558622891317115635136040136120013706120213159651074314184347642411631312170241840311167716011056143202131225311259774315516718210210467111635131136513480674178271269214090181162176442750905133329395177101154522177125990476516144710329020747651326145113419193061990516151161113176801174332151206511518654125666311903210329096539909023732790740622409050618845962270710251116111311501402019023320636438125632050551741662101022406402153476676161062177901132021317126929688314776615790519681011515614901337789512121401311045414147759651041324663528290655021181496232910663123044182203153267241131116170210590192261429046115131045121077261907751647320504125474172710202775164192390810904148871612022119614144654076250108190529221083096225429172420170382437571062177904591080311313111151961915181570412048011013515314901107506049959611111132224789241734065831361321471065908105167040311605312893296610222090663115152713040151215471441705718811311460166451110466463239951215611311096618641110721101311111310125528872750131133454412450585190282907147804964711402525116156871131252246569011143267651169101511621761414121165390130486232202665261116115153990299208901324232090704081512759071561665041097201351051420381421091032901014065118290711080371331161118276247465477812207151181131577982045620410329014187911101405127030114778969140641222903098512389082618877612109082312033590341119747841135115103406266103290751665965176219113593061202131421901216121652475371091378190226115108078210865111641418278851682612642151203761421001791126261768078115103406517281751164063162511205349649246510218611115191159633894414131636315141175572615114094131564013070040664253712865907082214773026832706411384634651165915122790506138110262516774464255112821164191107105812831562361783547696129905214921412121161376363151551207772205103653781490986671163641110140299401841001109711401911220369090540411021711406137205355190201412361109535611132901142115305339319296963139121210329074116892063176610610866805157646537136700304641344106217871110123181909287414372497077614769467483310103277406311876228241140562051028708056401140907061311159901161188590741110785907412047859071278590706991293969342901115681101406402479045187621559671090575289131711563513604013612001370612021311386175259251713037838710741769045411646214040311167716011056143202131401904704727211641961701124358470471021046711163513113651348067417827126921409018139071107463155836104369051847047341155526357403107259904765161447103290207476513261451134191930619905161511611131768011743321512065115113861751529096090447411471380222902531061167012465847047240905061884596227071025111611131150140201902332022790132432602297926916725323370544431475475173106217790113202131712692968833575252144150731913813290116417433177711641741570417671381759013959151133778951212140131104541414772555105147813620116612490425488130232910663123044182203153267241131116170210590192261429046115131045121077106217729316651669019121217473130831966853892221504927013139081090414887161202211961414465407625013861751677517714010621779045910803113131111519619151815704120480110135153149011075060499162745137904545077911321471065908105167040311605312301379071522539013956792138155450708220906631151527130401512154714417057188113114601664511104664632399512156113129640387116156286299437002494726766186411107211013111113101255288727501311301462311701312029619381144125107810671777085851902829071478049647114025251161568711312522465690111432676511691015154214117321902966106413904193171232202665261116115153990299208901324232090704081512063176610685903083205011414625922497516077105290113913050522511441829071108037133116111827624746547781220715118113157798108771713212190530702165308266113159010766301147789691406412229030985123890826188776121090823120335903411110274832341105714746315544629747905824183419522271475965176219113593061202131656112119810661244747996555913209085747788516826126421512037614210017911262617113990187561154096555115661101469111981136171112053496492465102186111151911596338944141315735107915416122612062128659070822147730268327064113846346511659151142637841616541067611113106879152253167155108791131105812831562361783547696129905214921412121161374757896368042147549215020559182146814909866711636411101402994018410011097114019112203690905404110217114061374214467422261206233931929696313912121032907411689567311257669515560010621787111012318190928741437249908651220130146974039012240631187622824114056205586111517661218467571411217321417402282479045187621559671090575216473454704115022813861752592517130378387107417690454116462140729529941843789083351132363166174019047047272116419617011243584704762611282348166121036901875641305101170661035165213039071107463155836104369051847047341155526357403107748112955867248166121036901875641305287170661035165213013861751529096090447411471380222902531061167012465847047976196915901845955672931019010365396227901324326022979269167253233705444314754751735735107915416122612062357525214415073191381329011641743317771164174157041767138175901395915174678411658366513951227318413261320465090184255510514781362011661249042548813037920316651688311513513170114247200496534514111490473155109211614690713575110621772931665166901912121747313083196685389222150492701312752031665110329017614023761661196112596901725103783723666422131140913861751677517714037080312010137114727111953051190387901379056104665115077134140110822921311627451379045450779110209087365635741741570814401196552807911314729015111088323013790715225390139567921381554507083803214737130146911208106650910617141479113729640387116156286299437002494726787190714766609041195903571121103221878711301462311701312029619381144125107810671777083881283192537701616690516732082903211203388166872021341164977911075421411732190296610641390419317166021514637103290107280318201598372364502063176610685903083205011414625922497516077105290113913050522511442067841325121477913011111814969681011515614907981087717132121905307021653082661131590107661028619011965214901412121301154125538213010807415110274832341105714746315544629747905824183419522271474211116526111222902533245461150516094704765611211981066124474799655591320908574765190526372224181614887017666412120174371139901875611540965551156611014691119811361717295299351932563205011323631801376611047437573510791541612261206271142637841616541067611113106879152253167155108791131596315192153516375114271475789636804214754921502055918214681423620179166310177907915311404214467422261206213441712295151220679170415673112576695155600181211174316634131661412197190249908651220130146974039012223212010906651225231721396586111517661218467571411217321417402282067874111920152616543056115398797216473454704115022859651043203373415251111407501004112950345711958193163729529941843789083351132363166172209080956115398797626112823481661210369018756413051011706610351652130232300904314366107170715222622290340149666793142535103669071778268921469014296748112955867248166121036901875641305287170661035165213036223698791662369761969159018459556729310190103653968099632090666901414547681164153480988203077911375735107915416122612062746781111875618767711063967717474678411658366513951227318413261320465090184102751177142611276032115111135612151416534214037920316651688311513513170114247200496534514111490473155109211614690713575126116166236108200275203166511032901761402376166119611259690172510378372366642213114095965105190810790518668418113170126537080312010137114727111953051190387901379056104665115077134140110822921317294635534943386612414903089015631666090532791511021192559666090532921020908736563574174157081440119655280791131472901511108831331064323271104719290817221841129573803214737130146911208106650910617141479113728066110750519954076166261102177787190714766609041195903571121103221878713143205011066518373873706654076171101238103290277130388128319253770161669051673208290321120338816687202134116497791107588523219026432190782660215146371032901072803182015983723645035037469066609090471429037103290182491472067841325121477913011111814969681011515614908177375736589087671526641430779710286190119652149014121213011541255382130108074151162176442750905128290661403197542138513215112711214211116526111222902533245461150516094704740190904728211487393216687493231018756540965590122555596660902141921376519052637222418161488701766641212017437109125115621241249611374535171729529935193256320501132363180137661104743722012083790629690209473460941315901601941703570289329661022329013908222414258871111811317015271286904705166775462138513215112711213411259086313364126588712159631519215351637511427127517711040120213181423620179166310177907915311401031784251346710361015213854525934141477134417122951512206791704112949047164732471989692141108138469651131181211174316634131661412197190129490471662326211952465371080311449714790747804634141451772321201090665122523172139630678431429021134671036110183522067874111920152616543056115398797266176671696671140596510432033734152511114075010041129503457119581931632441032909773783287217668414611211383647104472209080956115398797604250901883191826813232300904314366107170715222622290340149666793142535103669071778268921469014296852841331202191874017573216909046211055682362236987916623622378471032907704961165914010341236380996320906669014145476811641534809882030779113710362367810610556671471352901411032779190141144170690141102115342902157591352131746781111875618767711063967717420678365794424496257413210157959058666090170879157010275117714261127603211511113561215141653421401091251732090659014041150665126116166236108200228322164717110586034565965105190810790518668418113170126525646750905114110385396673072946355349433866124149030890156316660905327915110211925596660905329266641150722236695634743012046515751157147454906125414311331064323271104719290817221841129572263511419102931019492887439214913597779132119154433245436445372806611075051995407616626110217773883246525477106905296716245450787145461139776314320501106651837387370665407617110123810329027713016863470213210143742390137908364704758852321902643219078210583246525471714147913009046341211323503746906660909047142903710329018249147102960529866124443921302079041211588671448177375736589087671526641430779716217693628375090511554504541301395215577162176442750905128290661403197542138513215112711219484567683137598797103853990411503201287268110130401909047282114873932166874932310187565409655901225555966609021419213763631511407552804891503473806655109125115621241249611374535171394102985780664922012083790629690209473460941315901601941703570596510418131522798089623190804135656232901390822241425887111181131701522131021421011519879187112869047051667754621385132151127112134112590863133641265887121729925404778161905027517711040120213123220416096695288814906131281899019356115398797103178425134671036101521385452593414147752224711629979112949047164732471989692141108138469651131181211177832366313478311290871294904716623262119524653710803114497147907478046341414517717214166226377431866103853973090536963067843142902113467103611018352150320526651353208290321120338816626617667169667114026631766326583130662264527690103271005114290879053696244103290977378328721766841461121138364710447206783610645837236571084132965571047604250901883191826813586457022334199151953582066811619022978285284133120219187401757321690904621105568220622696350743347223784710329077049611659140103412363366661731621568990142110592249154522177710362367810610556671471352901411032779190141144170690141102115342902157591352131421556989010119711417227723661106911309719620678365794424496257413210157959058666090170879157024914066571431941412079710912517320906590140411506651712283221647171105860345627714322564675090511411038539667301158107776905110326590666411507222366956347430120465157511571474549061254143122329877276961329027265170872902263511419102931019492887439214913597779132119154433245436445372891251732190350663423883246525477106905296716245450787145461139776206311427211068566720316680168634702132101437423901379083647047116745837120519655901107206105832465254717141479130090463412113238724714314290731571504014132108471038539667304123690717771029605298661244439213020790412115886714410362367810610556671121496335465322817213281032715111135305781779079117871110124710329028777162176936283750905115545045413013952155775488846641472951108797911787154094845676831375987971038539904115032012872681101307294654099540761176663631511407552804891503473806655370102167546623941029857806649361578844615769075807659651041813152279808962319080413565684676616754662213102142101151987918711276101190125561153987911227299254047781619050110480490147837147465735307791482322041609669528881490613128189901935611539879755674556686620152224711629979115617438710385399083411812111778323663134783112908712597764527610324449904818194819049813172141662263774318661038539730905369614065024917025406039079051417961503205266513532082903211203388166766176442750905125955122109475671925190907305141796266317663265831306622645276901032710051142908790536962614427509051154601111810385397304179620678361064583723657108413296557104723617644275090519159014762931031914179658645702233419915195358206681161902297822661764427509051452761032711851142901031266873332804179620622696350743347125949170210329085135702540248103814254651417963666617316215689901421105922491545221777607355010385399090414215569890101197114172277236611069113097196109125171038539901426014111562179954076117741172491406657143194141207972661764432507702511170118277955714184190531901624904190903525190571901002289329661024019075476683190291701401212689777914733271206311427211061819575066760446311161422894416668914912434221277143265190483371571645184616211581077769051103265903448943175038184109387791902232987727696132902726517087290586249135390702253958477025404616224781100014210070828912517321903506634259622699750743347206311427211068566720316680586778435009115115513941116745837120519655901107206225457027054443855375782952531428527083872471431429073157150401413210847103853966730412369071777162176442750905132032112033881665121777103623678106105566711214963354653228172132810327151111353057817790791178711101247103290287772454573661428082081075013359217113343701481548884664147295110879791178715401077451476614670339085147661242181111427890248203908514772946540995407611766586111517126320907909019090591903598540520540367540790741663701021675466233917514774187289514225482432472339017611053615788446157690758076620766711329079117871110123810329027713084676616754662230766669035244315642151132901811243422127610119012556115398791122115346130140963051953009011048049014783714746573530779148392203156915905611539879160556745566866201976196915901845248161649653909169432503005141796156174387103853990834122734016110977251791907224961451914129115290342140125977645276103244499048181948190498131028457028290321907947826669081314169016112432111014290166721190250300741661406502491702540603907905141796222137901559751132907857766176442750905125955122109475671925190907305141796314320501101748798750514527610323811066648702411231261442750905115460111181038539730417963668190967411292219342962361764427509051915901476293103191417963064370211616157037487570311512661764427509051452761032711851142901031266873332804179622612546510690325705113061201511245147125949170210329085135702540248103814254651417963451811732141740323951111769010354011195076901035409509079074166607355010385399090411727877013612105394137021016754662109125171038539901426014111562179954076117741175963151016660356786603564166423909721341391714147911372661764432507702511170118277955714184190531901624904190903525190571901002998453714559777912103184640190754766831902917014012126897779147332137324915130779122618458965705090382706901711053140206311427211061819575066760446311161422894416668914912434221206317911381106691770651904833715716451846162222317911220371086680513733448943175038184109387791907158624913539070225395847702540461622478110001421007081094544124505962269975074334727825919586778435009115115513941222458395164478157216791225457027054443855375782952531428527082454573247901911067162176442750905132032112033881665121777105773756719172214012126610212087055341920901429624545736614280820810750133592171133437014818177558730776690711867071723464631158407081077451476614670339085147661242181111427890248203908514720145475561153987915158611151712632090790901909059190359854052054036754079074166109125171096680966953391751477418728951422548243247233901761105270165090965845114290145125090965086245451277103290147662114121253973062076671132907911787111012381032902771301028619010583265907917307423476673070623076666903524431564215113290181124342216210606613130096225530172530966552151104221462140115346130140963051953009010201000551516892031621198517882211317073922031569159056115398791603714110740521511719021261110624648358193163976196915901845248161649653909169432503005141796596510432033734154041549010247939796901535251111407501004112920511103457227340161109772517919072249614519141291152903421408121296651668411103290753990789590550834901567142051576211102845702829032190794782666908131416901611243211101429016672119025030074166278117907505111441110299341120624292471571416211222137901559751132907857886107150203166512491032907403717162476037314320501101748798750514527610323811066648702411231289526529271515169026073709020136681909674112922193429630042337193714012126690489014296731111165170106910329047539904190860665160771306437021161615703748757031151371773411354017143651156441522321386688414807514070822612546510690325705113061201511245147278178664764731458118415817664119140963451811732141740323951111769010354011195076901035409509079074166331110315066511474323735892305951113009617278770136121053941370210167546621940773411104540171605596315101666035678660356416642390972134139171414791137206317663265831306622610385397309053696998453714559777912103184693109111665110385399041651373249151307791226184589657050903827069017110531407894665166491534412111378190592471725089010329092422063179113811066917703021806651242103263237790412223179112203710866805137381259643665715034412235037743186610190287552879010149665160071289329661022631411166577365901404157139116653750715262938044275090514179031066562241906131615160071109454412450306120150324652547634215233419915195358206681101149135570827825919143768132037965517101111086680513214612011118637451204130315791426250814217112224583951644781572167918121506651846100113190614471005482742190614472819041156154110316714012966512454573247901911067711057737567191722140121266102120870553419209014296232202909521231454497817755873077669071186707172346463115840708475175152909609044741147138022290139113268720241201454755611539879151177611246037469065909041601110477540524659010847103853973074166109125171096680966955308111511135071569046283540103241142902722162701650909658451142901451250909650862454512771032901476621141212539730289125352104314175010286190105832659079173074234766730706699019373013735320501197416210606613130096225530172530966552151104221462140105519012690145103540102010005515168920316211985178822113170797641171137331201901092199095736725403714110740521511719021261110624648358193163357247143453221730120531032909117031445965104320337341540415490102479397969015352511114075010041129205111034577292624154062567414779055713081212966516684111032907539907895905508349015671420515762112525213019040522734425324712432113737070161042278117907505111441110299341120624292471571416211174148899098152100167108106161905049236142886107150203166512491032907403717162476037596510436657738192315270611614156043893289526529271515169026073709020174831512475483688078927702791465106923004233719371401212669048901429673111116517010691032904753990419086066516077129640387126687247140945120106894371773411354017143651156441522321386688414807514070820678432113130590756914119054011127817866476473145811841581766411914096532312427111013771171331110315066511474323735892305951113009620678438888454155561153987914219407734111045401716051178751074128277381375146969296820512139128217324779148206317663265831306622610385397309053696339175254804609680490991931091116651103853990416568637490521261071540207414920130971967894665166491534412111378190592471725089010329092423129219165146902559047011145411646214030218066512421032632377904122246584299712947556135160812596436657150344122350377431866101902875528790101496651600711176957813118756107210112225126314111665773659014041571391166537502361124427509051216904063879017790107607519775262938044275090514179031066562241906131615160071358112242207954512787933241103241822165221777306120150324652547634215233419915195358206681101149135570825551051519706450208143768132037965517101111086680513214612011118637451204130315791426250814217111216453714730779121031519561308121506651846100113190614471005482742190614472819041156154110316714012966511646961557165115128932966102791517166513683924793766501931711718135964371665122290613441479232202909521231454497676811666110462475175152909609044741147138022290139113268720241133291713914672155196790124156103475071451562827810347949019290263661034117761124603746906590904160111047754052465901084710385397307416625912876677198914411067105113162170106153959079859547701316612417011891265308111511135071569046283540103241142902722163164549075071397118415875132346227906642390874479172814949229236902294793289125352104314175019416521351358290531561222656496116696153901352707699019373013735320501197418277442181239120286131105519012690145103540303596436677612707021915542263474701170661659289879117119764117113733120190109219909573672540103868141229316914383251408707150171962469080701357247143453221730120531032909117031443197687223443106729262415406256741477905571301407323076613141104018390797358146707252521301904052273442532471243211373707016104248232280512831547281469512029313539012273619018131712361113510553170717414889909815210016710810616190504923614228132893947443566107540317901551034425965104366577381923152706116141560438931476679772391023113290668778140748315124754836880789277027914651069217132966317085617477909205151227080130296403871266872471409451201068943513747666090757337253622067776220651669027074170190130206784321131305907569141190540111171329446737927573323815030766150104532312427111013771171281661107507718766100113706784111031417148256717707782477901151320761176610611216656717147821703142067843888845415556115398791421713253841150784212412015730590639636275041157724705013611787510741282773813751469692968205121391282173247791487316692683293662197112012372662969090711343391752548046096804909915471033257473076620030766131417061385022321177686374905212610715402074149201309719644743471560901416591090215115668741201234227903129219165146902559047011145411646214025912877166511554187311513627882412866660222465842997129475561351609511766775622276611681198701957307791662101176957813118756107210112225139172398639130318390886246904543690115779194236112442750905121690406387901779010760751977315320501106677431701008129266104677335811224220795451278793324110324182216522177784270345581641479965565452051681309317112555105151970645020810212051606197566131837242307666545205712164537147307791210315195613028166110750771010804369611073961604119093121111646961557165115127130836532700210462130546307651605609628932966102397137186104013790741209169192011196151152903354093121117915171665136839247937665019317116252904433629418074766224923076613664467157197788560565537488903568135964371665122290613441479813130716651110664129048890450419776768116661104621021211132575667513597316610181427334108657923810727311409106873139063329298964857423360826151133291713914672155196790124156103475071451562827810347949019290263661034110386283018430766170962869084675865124230766910702141371667147259128766771989144110671051131621701061539590798595477013166124170118912622766241772161459077021411890211227110863160932169621910151130651109721421316616641210901096665073613012111556711566161770536707316454907507139711841587513234622790664239087447917281494922923690229479335130566241771329063779190661153566108013121190931107141194165213513582905315612226564961166961539013527078168116663214966379776669210987918277442181239120286131151320526677153104766296106294901349271413035964366776127070219155422634747011706616592898791171173192166928987911711103868141229316914383251408707150171962469080701138227873197687223443106259229772874114029090351217014074111140732307661314110401839079735814670727120575811312015686348232280512831547281469512029313539012273619018131712361113510553170796754931136252931711281328939474435661075403179015510344230127175866419214766797723910231132906687781402339116690755322750817132966317085617477909205151227080130676811666110462747803683924793735137476660907573372536220677762206516690270741701901308427033565193679901659012156151132906405405685187029879117111713294467379275733238150307661501042591287667721113086911474904763901551131411911042276090507265545193206511221964135114125313025947210524596514595314591304591306692811304904726581147238501205293171128166110750771876610011370678411103141714825671770778247790115132076117661061121665671714782170314891516677198904115072105866431076753718670051657501306211150713018139671190614281457119061317132538411507842124120157305906396362750411577247050136313320501106677130490413217396421890574365137769015250483173166926832936621971120123726629690907113410216612471790518819023485513766296111351907147199228215790142179023351259270813990498317215057893726717905155267137103855978272252470210657121112101204190766513293418104131987911711547103325747307662003076613141706138502232117715132052716613110917321413514474347156090141659109021511566874120123422790320320501107166516656715749041371763710636437713643771337119376990165623125912877166511554187311513627882412866660541143115127987911711931101865126651951176677562227661168119870195730779166210106774758184396906619530766772791513917239863913031839088624690454369011577919410354845948618449041121257422777279731532050110667743170100812926610467732591287667777611141051657501039016512422712747968130931711842703455816414799655654520516813093171117132962963154047136014090416104018390797358465709010212051606197566131837242307666545205794154313086871022562816611075077101080436961107396160411909312111447661454078613290637791906611527130836532700210462130546307651605609631347616713024447661241469213016712014212139713718610401379074120916919201119615115290335409312111341758139215066516252904433629418074766224923076613664467157197788560565537488903563513747733189669581313071665111066412904889045041977328137661314911120228290655325610212111325756675135973166101814273341086579238107273114091068731390633292989648574233608261511349682905161315225314410386283018430766170962869084675865124230766910702141371667147233151202804901010446253227662417721614590770214118902112271108631609321696219101511306511097214213166166412109010966650736130121115567115661617705367072566124771388166288116708811483319879117113513056624177132906377919066115356610801312119093110714179137149665089879117118168116663214966379776669210987911021948818430766899681890129620290138151320526677153104766296106294901349271414597771561939096537144511437310385391101281121527319216692898791171125912876677574227110664249986577093626681213822787843109178379083411032904753990413574165832592297728741140290903512170140741111317289179628347142909747968134710329043411502712057581131201568631024239032223377509012913710329037539909056711258931104314195121842130167862313077911379675493113625293171127031313257567561153987916030127175866419281210907737567181463901377972339116690755322750893125300413513911222906188741171414791226676811666110462747803683924793721730120111187505877021322331101443530779113784270335651936799016590121561511329064054056851870298791171111789880490839162317913258741723661106912591287667721113086911474904763901551131411911042276090507265545193206511221964135114125313025947210524596514595314591304591306692811304904726581147238501205293171110276804675090511429016115521971032477903515110381429075547706241412171518915166771989041150721058664310767537186700516575013062111507130181396711906142814571190613573588256115193611911912146214031332050110667713049041321739642189057436513776901525048313025964361130154295903101464141511021661247179051881902348551376629611135190714719922821579014217902335125927081399049831721505789372671790515526713710385597827225247021065712111210120419076651329341810413198791171137177390855292120135101796207753296215090849634013035148505227505101624922715132052716613110917321413515578790176521213114867231663140987261903214135206320320501107166516656715749041371763710636437713643771337119376990165623113680490539411043206783651848628001515564511032123245111079414771159611515411431151279879117119311018651266511286208264135534262307905737711012050416215909371134106774758184396906619530766772791511702649032653764951111751351013834110015542211581035484594861844904112125742277727973373271413074311675025912876677776111410516575010390165124227127479681309317111515981962773019636111113109627444134168107160171329629631540471360140904161040183907973584657090526293804427509051187502495242792369833936277253218941543130868710225622790391325649551031551941404476614540786132906377919066115998320501102283209096111308391069022032150901553571473134761671302444766124146921301671201421211115901353547520901367547103290375399090567115631666090557791821303417581392150665126314117139138262131742138183120157702418357511203212948760037351374773318966951028619071914072758661301038539903779013032813766131491112022829065532565961111413729511154731130134968290516131522531441815201714111349854025311312313023315120280490101044625310912566113251531757979126713025661247713881662881167088114833198791171120631142721106967513171106323624779137149665089879117112555105111170645020810219488184307668996818901296202901381060371361251717315612590130459777156193909653714451143731038539110128112152196101491676908201418791146167872419172832471242881058701610422962743373827081468030779113725912876677574227110664249986577093626681234351032747017650120209109141882069079113128932966102206784132763530779122290109316080420871131274613515968350517487012931012603269082014187911378431091783790834110329047539904135741658335777314352732131329609031590342471317289179628347142909747968134710329043411508741084749797211081441024239032223377509012913710329037539909056711258931104314195121842130167862313077911372063114272110632032112033881212511302703131325756756115398791601471712905114743981217514713014691903212717576244310237138478121090773756718146390137797110480490671814639019679793125300413513911222906188741171414791226399810177259132090671473532082903211203388121251130217301201111875058770213223311014435307791137142787253166146540124563621178988049083916231791325874172366110691192477668414278321059097451141138102768046750905114290161155219710324779035151103814290755477062414121715111788510441282773813977820192100137201902932100311675735882561151936119119121462140102268327065159711683077911377301013270641144708671111164512242333270641138463463155840708302596436113015429590310146414151960901528634247336422905074737177390855292120135101796207753296215090849634013035148505227505101624922728071190300809507416111039471779079172855787901765212131148672316631409872619032141352063187732462909603211515890163411107540301600655535126103192130136804905394110432067836518486280015155645110321232451110794147711596115131932050110176611032214519091204905514113012862082641355342623079057377110120504162159093711341049141141890212511301702649032653764951111751351013834110015542211589447732647139141303373271413074311675031218056212413412382057200110831172126051130151598196277301963611111310962744413416810716031211190131448611116470161042526293804427509051187502495242792369833936277253218861119078875677921442279039132564955103155194140861119010459521329073071109983205011022832090961113083910690220321509015535714725232090789613290429180617714168107541115901353547520901367547103290375399090567115631666090557791821303143205011066513214176190312791037600674729113710410385392906583263141171391382621317421381831201577024183575112032129487600371091251781903533011113047361601112539017166498411028619071914072758661301038539903779013056214111323631103814290377661210731903517066560928142171159611114137295111547311302786736647152902901122184758571815201714111349854025311312313014376813203796551710111108668051142171110912566113251531757979126713037110290123229092811792809040151206311427211069675131711063236247232210132575561153987973187737530779125551051111706450208276431506651669155210110711132190353219084066131119286145763567171106037136125171731561259013058777045276103271604503641296721190250291741721961014916769082014187911461678724191728324712428810587016104229627433738270814680307791137218116726631877375512326797365160177521211744612411314511322471903435103274701765012020910914188206907911312806611075051423903231590250373509032047147321270375619047847191635401449054060390790722067841327635307791222901093160804208711312746135159683505174870129310126032690820141879113797619691590183984795161616554531725220795075096878712508107168177270629248647357773143527321313296090315903424735990156416590530797121352626679015064223503774318661019028755287901014987410847497972110814481257092375823661876290474411774214518731525512063114272110632032112033881212511309310911172664142249114217111471712905114743981217514713014691903212717576244310237138472173241777731151110480490671814639019679796661107504739981017725913209067147353208290321120338812125113037166472254471724379615715510452479667911350923127017142320958831844167547457811213219607371427872531661465401245636233915248647192477668414278321059097451141138287371402371178851044128277381397782019210013720190293210031167445379613710226832706515971168307791137730101327064114470867111116451224233327064113846346315584070833990902124514732190180665147937614864796090152863424733642290507479603245151280711903008095074161110394717790791728960966313246905796751314136252318773246290960321151589016341110754030160065553512610319213033146224849633545917790791722184758573193205011017661103221451909120490551411302807119030779117015401049141141890212511307012219411502548121167969411511141793551142908866516007194477326471391413012869466511828290669209277093115019950142963121805621241341238205720011083117212605113060880609269172261403812441571556642349679151312111901314486111164701610425261286569159082255181861119078875677921443028428466512962712351391145490617674786111901045952132907307110263941117506675312441631416341412259712151289024179145475854025232090789613290429180617714168107544189614479707902689096104706124454289329661025261316253519612170874165831443143205011066513214176190312791037600674729113710410385392906583103896161371429616131915902172059074110912517819035330111130473616011125390171664984130650707707799016577037543155920319825175307797562141113236311038142903776612107319035170665609281421711350901091121893991801320909513304142077190717411210130190855253969655127867366471529029011221847585733111031505610385391012141665114376813203796551710111108668051142171186232345392313754132247124345392313730519530017010329072116374111371102901232290928117928090401511407328739171058845132954621101254245074153990520754110329073774226766609053079159165213023221013257556115398797318773753077911287897156819013901675143996444511038539130665127643150665166915521011071113219035321908406613111928614576356717133732574196059151112239020166960599014712682145877704527610327160450364129672119025029174172455665404078644766540407160128510321216115433211129112837111266103290685218116726631877375512326797365160177521211744612411314511322471903151517156103290375399032090125667147111135305841779079117871110124710329028777280661107505142390323159025037350903204714732127037561904784719163540144905406039079072303847166131791478215034418611061290111111062041894314266131742976196915901839847951616165545317252207950750968787125081071681772706292486477035990156416590530797121352626679015064223503774318661019028755287901014910938881257092375823661876290474411774214518731525514211207193109111726641422491142171165030011021732417777311512891254979666110750471167125559514114713803716647225447172437961571551045247966791135092312701714232095883184416754745781121321960737162311257661101671081343391524864724412588341951063267901545228737140237358311251487657559665706290160445379613716231139570411397155833399090212451473219018066514793761486472702101327587104532991695147390135092960324515110282901653205675315141478487781085296096631324690579675131413625241720701346102571751009331462248496335459177907917221847585738610152218103321585461186342701280711903077911701540117832491513209032988476215023249141138701221941150254812116796941151114179355114290886651600714161015215025313812869466511828290669209277093115019950142961331064321614760880609269172261403812441571556642349679151817739125643386270906267052138526128656915908225518143614649132136061170280138302842846651296271235139114549061767474214801461113115023314020190202639411175066753124416314163414122597121512890241791454758540505512051613190480418961447970790268909610470612445472952349741773140475261316253519612170874165831449163732189613014503110023292645141659017021038961613714296161319159021720590741102861120702613065070770779901657703754315592031982517530779730726449161350901091121893991801320909513304142077190717411210130190855253969655120615644011131896351403311103150561038539101214166513919016921240128043862323453923137541322471243453923137305195300170103290721163741111877147142905790819015111013947140732873917105884513295462110125424507415399052075411032907377422676660905307915916521307014578224113324715112878971568190139016751439964445110385391306651548778322969046641108110273113373257419605915111223902016696059901471268214339318696387901771076021771455665404078644766540407160128510321216115433211129112837111266103290685110495123715057315151715610329037539903209012566714711113530584177907911787111012471032902877711717511968618648610327522303847166131791478215034418611061290111111062041894314266131742167909634013069090454961602893296610258611270545477459098702063187236961032852815649730741121109388106645782287957401017522421120711811257147503683061343765030011018538075418128360377289125497136130905628716310137371624513610724313111671255595141147138043516190135512952752216231125766110167108134288415759075787244125883419510632679015452916453775900111139535157358311251487657559665706290160684151891253321623113957041139715583704190770478562415087514070827021013275871045329916951473901350921170126783224741290169085647102829016532056753151414784877810852102861903249151125663213690170988203077911316636781238751407084172070134610257175100925551051111706450208386101522181033215854611863427017965117462411332121641117832491513209032988476215023249141138339814137511615111416101521502531382062474154090457823279073613310643216147417200329804170639590623909711138817739125643386270906267052138110495123457822411332471514361464913213606117028013859651041324663732119013703116742148014611131150233140201902016213309087891025150551205161319048052626311096190694572952349741773140471404181111967591637321896130145031100232926451416590170225820290137131102861120702613701787462307264491611028090564014833151456211101807120615644011131896351406503007061435739190169212401280436564831517313615083114018771471429057908190151110139475365104419871070145782241133247151756510438713354877832296904664110811027311148784327971570547138110109087339318696387901771076021771358141331650176110190361421104951237150573393785154812155611082636142117175119686186486103275222661127619018536596167909634013069090454961601023579203211513510724760119647586112705454774590983921101671241971909902063187236961032852815649730741121147361251637654081757815221777106645782287957401017522117102273176758231811257147503683061343758611254924196811853807541812836037740617541666090171413613090562871631013737162451361072431311104577551385615314351619013551295275222164732641190521819511128841575907578710274011782144907865219321077916453775900111139535157290211042389013173512657181100868415189125332150730521724537358741441307041907704785624150875140708566954917822521632534909010374111701267832247412901690856471817621742615740511103071038539730741107102861903249151125663213690170988203077911316636781238751407081667035146513212067022469225551051111706450208729523205049621741201796511746241133212164117160933981413751161511121172320624741540904578232790736921953417200329804170639590623909711138499651110495123457822411332471516722081084710385392025965104132466373211901370311678074961426852162133090878910251245370509099552626311096190694556509095214210241236311404181111967599773812192582029013713160330855872568990323701787462406990826527819041731305461066102809056401483315145621110180719324753265030070614357986319277086564831517313615083114013861620870853651044198710102268327065114475651043871337045310186047749170314878432797157054713811010908712468358141331650176110190361428614971601303393785154812155611082636142121645782242151517226611276190185365969556706971114410235792032115135107247601196471178751074123156706392110167124197190990142784769977791516147361251637654081757815221777923004114166609011710227317675823202962375861125492419681797319041406175416660901714686874532110457755138561531567872110917139216473264119052181951111411209085101111381027401178214490786521932107719648370321382902110423890131735126571811008107014751032150901708171471507305217245373587414413089752253136161188566954917822521632534909010374110677152120818176217426157405111030710385397307411071016804907661761667035146513212067022469237623077052729523205049621741201748663236317514070278962893296610214960148765762208171609421200141143221172311280484711192195359651041324664749965185166773267220810847103853920218630775678074961426852356511122453705090995201454905650909521421024123631633460110997738121917090831551006033085587256899032623735823406990826527819041731305461066203126453710369631932475321303207921759863192770816681212613861620870856787211091721310226832706511443604071611351411317045310186047749170332512072146124681905310186047749170386149716013020549135131121645782242151517292779028619095567069711144694424514661311178751074123156706113990500212165731427847699777915165121081229230041141666090874108477889732202962371051124417065179731904122826070660068687453218450841888107515678721109171391091535160521411209085101111389212190120350857196483703213841127676115107014751032150901708171479896217961371768975225313616118898903391167551540106771521208927135851540101680490766176891591189637623077052341747110125748663236317514070278961287211778301401496014876576220810501353421404212001411432108117871110123111280484711185166773259651041324664714227064107140851667732105125390471251863077567194451315160356511128929011567720145490232906411013163346011024970770521709083155100227128905662373582389213525402031264537103696312897859057130320792175140134207147011668121265327421574813170156787211091721367066604111236040716113514113123220410101213251207214613090115512301905310186047749170321061211205491351313061255239277902861905073221148141128169442451466131615319041113990500212165731431003155128151210812215346220874108477889732914415331311051124417065159647790722282607066009290222114356013818450841888107512622793572931091535160521392124170861137921219012035085722090407202411276761158810736389896217961371763849066311515276464118140311131610742123173161162902116162111311711151032151989033911675515401254411321519271358515402591151127891591189624970770522485941043417471101251337441706511287211778301401020712156105013534214089290115677108117871110123125911013185166773224970770142270641071402271289056105125390471252209063172564194451315160102225977158135696170116115280892901156772681161101411402329064110131105125390198166249707705211244515844222712890565934545148921352540681331122289785905789290156677140134207147012681161101315327421574813170124970770526706660411122271289097232204101012142112010257130901155123095632181131701210612118221191362103531306125523128742082626650732211481411281113417681361531904185166773214310031551281892901156771534622013131110131914415331312497077052596477907222712890569290222114356013842112046572622793572931744711970113921241708611371294908732220904072028922955408810736382001557261173849066311515276464118140311131610742123173161162902116162111311711151032151656112109125441132151421120126572591151127435161411037012497077052248594104943901511861337441706511201744565610207121562019071561478929011567763856416690562259110131210173148882497077017990508115510227128905687711156413532209063172564684168617810222597715813569617011611528013981484253106626811611014114036651553137781411051253901981662321469096321124451584428091026640593454514143110484190681331122524110904189290156677137611226811611013110215090412497077052255510514854882271289097113496895401401138968671164211201025723611166121956321811317018516677328221191362103531532471911287420826266593115491411134176813921211190328516677321861813532914789290115677258138581313111013119713858249707705223278572271289056128909211755136421120465785166771011744711970120622673871294908732421158541562140892295540473759620015572611711207510857656112109684181655164211201265735822634443516141103701629907943901511861081101151516877821201744565668418165442201907156147358226299638564166905622361111132022221212101731488842111013717990508115510232202658987711156413539517103889068416861785078290307791321398148425310661816843714235090177901076036651553137781417232697063881371359905951882321469096327635070651203772104809102664021535070651496110306348511351021961431104841901132327065183710690708221415241109041773823713293090320904532113909511158913761124512522225366816941102150904197908271084710385399075412555105148548850909810641571134968954014011389686711644370641281641461771122236111661215067671084515255685166773217318832172232505153247191187903641241133252116047593115491411025613216081103253144921211190321056467012112792720241110293186181353291476394131301156791152258138581035505592561971385864320610447395365232785728267370176153422411289092117551363317741677183714111314987211092310127811080311381352372111064170185166771016439014319721124128461285925303561170651206226738760292806207182153692219564541176561153987913287211091710526819073157129415439999013413142115854156214043124157175355775035141147375961025611743318773756610212089679151661021209405287237141142621491032907251745221111120751085728290307820126307791950750431084710381427814768418165516335631153411032902955611539879115341358226344674313664172532636114442362990710561071601915170108110115151687782496534131151070701684181654424710074182129201208411041361211358226299259199109269110216236111113202222121545406829511019819153114042111013745451718690431072319140134012812021312322026589945188112486132493599128932966102110363504179517103889020790450867507829030779132711212121722113770618168437142350901779010760431241571753557723269706388137135990595188779144401160612076570119127927763507065120377210450920715307062551021215350706514961103063485113510219667779369125315562141357011323270651837106907082214110561071602946952958377108323013613067738237132930903209045321139095111589331564719417625912892745125222253668169412369307288175297908271084710385399075418433101201751025090981064157843905616170717721292744370641281641461771122431486605792070650676710845152556437553312445417318832172232505150973511396140965301879036412411332521160476043207921751025613216081103253144102865364170610564670121127927202411102931359035413887065163941313011567911524353011305770610355055925681152192986432061044739536511679893770628267370176153422411835590807331774167718371411131498721109231012781108031138135237211106417012821279647251311705888970664390143197211241284612859253035611706515321528159549162251314913213860292806207182153692219564541176561153987913287211091710526819073157129415439999013413128290951774967068114490253138431241571753557750351411733901697123526031814114410256117433187737566102120896791516610212094052872371411426214910329072517452211132516514084187117972829030782012630779195075043108471038142781472823611311387505133563115341103290295561153987911534133750663236904799052921306743136641725326361144423131212510847103853920210561071601915170102053111304965341311510707011166125491471007418212920120841104136121111967011421041409040714125919910926911021610296052923241345154540682951101981915311406990503731611662221317014545171869043107231914013401281202131128352572249095113648178294518811248613249359911709513714711036350417392907768310332207904508671929047041108326113071467511804110311131711212121722113770669901141251901190958105213143124157175355725315196884131779144401160612076570119127927955641560130575092071530706255102163856411291202131677793691253155621413570128190151131105610716029469529583771083230136130621753756413315647194176259128927174114257913123693072881752851135973284331012017510213714521913184390561617071772129271741354921361109815243148660579207066619052472049011515241130437553312445426192032115150973511396140965306876586266043207921751091256690454497102865364170695357616615714145461139521359035413887065130172311902931665111769545419010778665112766413993217141586590170879775295653243530113057706337506611126321417408122041171051662063681152192981312125113215064223503774318661011102872422871101012361411038539730116798937706826141113236311213526266790103113719073076907315076790800186061939090942296103540241909079018355908073311103150565965104321237326241540811213219607379010159275733111210203718010606613170751282127964725131170588897062821029071171322910130107120870616510913290469071411209516564170254046103207751000193100708532152815954916225131491321386743133092206317972067914863513020725322583791815869101625511191282909517749670681144902531387112122493801069214266100712396710901268202625089879177111307339016971235260318141144953576166775164161130325165140841871179726137778164728236113113875051102056773212570516826113033750663236904799052921307435761776613013121251084710385392021339421175032187569723686779195251130659075041164102053111306377711827666967509608539628290960231907511661254917758254375664167985114474637971196701142104140904071416743457366557916712461816763679110296052923241345128290901250532804951151081716990503731611662221317011566672031668028881490613107128019290128075247508791100128352572249095113648178267779607509051591185404116862854093115127878135401032901431955114290886651600711709513714710286190676692090183236126207902561109119229966508171392907768310332109035121668709632190729661975066920411898849054024796679143951070601749424553119876619290470411083261130714675118041103111315385104181310911461875680476215201716990114125190119095810521316363151890804527177907917222531519688413120678362238378099655906486692795564156013057138617557050903827069017110531406385641129120213156617579710121028335212819015113120631766326583571537352631312408775319523457166100221753756415061024507117411425791311586262124187561115408511359732421556989010119701227728661107221309711701371452191316274567720022714747174135492136110981522492175024712437741756619052472049011515241130206787411212498114774168165663402619203211511090351216687096659079377881103661016876586265927109666101870903512166199628932966102583466115668013065356155352552667100580255351002662665166609053041732130662261038539730905369610912566904544975962261416157111014814611130953576166157141454611395219077311554632773426903017231190293166511176954541901077866511276641399321714158659017087977529565326815545147116840172830963054201701411714541301395233750661112632141740812204117105166206367661764427509051150344184230647711691044121013790840704474526822250666131212511321506422350377431866101110287242287110101236141103853973026637321156317843130461666090170841826141113236311213526266790103113719073076907315076790800186061939090942296103540241909079072946540103853990351244876513033111031505659651043212373262415408112132196073790101592757331112102037180106066131707511028457026590791920708839162317911387492366920708282102907117132291013010712087061651091329046907141120951656417025404610320775100019310070811769578419097624684513521043141103853929010613067431330922063179720679148635130207253225837918158691016255111915369370416690751318756804769075221155811241032904197782051427112122493801069214266100712396710901268202625089879177111305487784147115894148175139535761667751641611302063176610653515321401108229213191165692702540126100019310078226137778164714878411651061121177907911371041020567732125705168261130182454789414812175290977797894148121974357617766130162176442750905132032112033881665115777133942117503218756972368677919525113065907504116428913171156124789129066516625390566312361103487918711130637771182766696750960853962829096023190757963154080448151132903514426241767758254375664167985114474637971026314971407804481511329026290101884111948667434573665579167124618167636791952120470576655906894111066911190536512829090125053280495115108171631905007066513653671566672031668028881490613107128019290128075247508791100249901572254051368046106853676777960750905159118540411686285409311512787813540103290143195511429088665160071392904761089812024224341044210286190676692090183236126207902561109119229966508171782556989010111565661107297916101876210903512166870963219072966197506692041189884905402479667914395107060174942455311987661314537107155315755087916679538510418131091146187568047621520171663205011017320507316663631518908045271779079172294845676641430779710385391853520678362238378099655906486692712617777076612911301386175570509038270690171105314095290562160109921901529079147612514056617579710121028335261290761576632206317663265835715373526313124087753195234571661002586111517126117466545187561307124103830910866311475061024507112161514578281195730540663119032103290965399090340327907361586262124187561115401036315114110791635715529454882208258103210074215569890101197012277286611072213097117024643141175404119050502627456772002271474739211080495508106421387061161411082262412170496150290471711063751371888826702418248984130779117624921750247124377417575355615296695981264214020678741121249811477416816566340695727451170131106375137188942670241824889412475087911761090351216687096659079377881103661012322042403615188990459103276485245741658314459271096661018709035121661996232202658314614110791624754136601449014913761658346611566801306535615535255266710058025535100266266516660905304173213066226103853973090536964859622614161571110148146111301811256690454497190773115546327734269037146113236317671020431843913978312816815545147116840172830963054201701411714541301395268905771430111307791326641290484176617644275090511503441842306477116910441210137908407044745268222506661737119018261397859755113523434650451121905664146177112226637321156317843130461666090170841282102963077911102224905087767294654010385399035124487651309277315112248641082013611472533205053625398820181271682475413649966011447911028457026590791920708839162317911387492366920708109125451711362695990128965254411244546862531176957841909762468451352104314110385392901061301051124117566531847665125009651215153693704166907513187568047690752211558112410329041977820514283613341530701251600902236657012130779151548778414711589414817513102908094111581188210114861011492253138206317661065351532140110822921319116569270254012610001931007822631416517950375305774023668470258790148784116510611211779079113710472903213304730814290901034172807411118245478941481217529097779789414812193882254295358206616216217644275090513203211203388166511577756256990829032190110246902451506017066393602891317115612478912906651662539056631236110348791871113033750658712112032013566110700312664556796315408044815113290351442624176102340665187970314824319050420871026314971407804481511329026290101884111948690460379890109141102129344169701124561002952120470576655906894111066911190536513311090471626661506319050070665136536733321111665132296631659014079714192072249901572254051368046106853671079066907571478056614261032907091111353054578177907879117871110124710329028777392904761089812024224341044220431811656661426387496335856471987507825569890101115656611072979161018762102156465116342140131453710715531575508791667972326921836310340641663205011017320507316686190323923447166492115987916453813817590141591519484567664143077971038539185351761032901115517124465168261207120116531966406137126177770766129113010258106316625090268214117061116137952905621601099219015290791476125140723380119029316651144741872162196305772719572430572629049674110662121465123498710747040631901362331376129076157663253610232804721141322714140613165516663904011701032901166871219014611586111517126117466545187561307124103830910866311475056570170682611461191741137121615145782811957305406631190321032909653990903403279073613797122466471219079755681641467570103631511411079163571552945488220825810321007486561706826114617246431411754041190505021090351216687096201906690904130649256392110804955081064213870611614110822624121704961502904717110637513718888267024182489841307791176643380119066840770297819066582805705570241877481320904771214961329015674140753556152966959812642140206662132501106691770987911306612454122244715012126641290104791695727451170131106375137188942670241824889412475087911769710331402994053971140613723220424036151889904591032764852457416583144405903240634471331201001457643667776724986671163641190539662322026583146141107916247541366014490149137616536102705291461191741137289329661025322051583757511965571092146114871121296373897001471361756179209013014096576323011185140901811256690454497282415969041141404114617371461132363176710204318439139783128113121254114158140740100417527683315906890577143011130779132664129048412821024547157664129557837903796908535100465909224331173711901826139785975511352343465045112190566414617711221103026651664125189390137411516282102963077911102224905087768047640633115267414816619292773151122486410820136114725332050536253988201812716824754136499660114479180430540631642167546623871011116113628210912545171136269599012896525441124454686253282901531211146491115473907152690820992226282904787071051124117566531847665125009651215110862681046651965052690791131836133415307012516009022366570121307791518049057121770262829869228290791137102908094111581188210114861011492253138861903239285471621384213849635087142077138263141651795037530577402366847025879034215662965590987973414205272903213304730814290901034172807411123676811868114551062210315638822542953582066162454312627645011646214056256990829032190110246902451506017066393606777936193375065871211203201356611070031266455626141322254768021747108668051373102340665187970314824319050420873332111156681311105045412223234590514471501212664129010479151904603798901091411021293441697011245610022063114272110614273090223103853976033110904716266615017764117115137561153987973391524864733321111665132296631659014079714192072162311427211069621231446167511079066907571478056614261032907091111353054578177907879117871110124710329028777865987604871207487915190466141262137204318116566614263874963358564719875058631142721106142110910736665133329395567101901037416610215646511634214056214111323631320507312626679072326921836310340641816641478791116770861903239234471664921159879164538138175901415915123220266703262667904539037335619936263148502103290103741661761032901115517124465168261207120116531966406137232202658395358201661132363149111025810631662509026821411706111613723223213151647212904947471666090530791775146561130723380119029316651144741872162196305772719572430572629049674110662121465123498710747040631901362331376561961503514751329050690156917513540365146954012087354020590540144905406039079074111536102328047211413227141406131655166639040117010329011668712190146111667035146172242910782466387411150565701706826114611917411374366166412901047914160071137971224664712190797556816414675702062263417342494567297914865617068261146171362182679010937011090351216687096201906690904130649256329282905401299064338011906684077029781906658280570557024187748132090477121496132901567414097651041617514054020666213250110669177098791130661245412224471501212664129010479139266840770321132901301207032121837138666090971033140299405397114061377045104913912121032907445104379040590324063447133120100145764366777672498667116364119053966753556152966959812642536102705291461191741137339172616716974187233012210866805137353220515837575119655710921461116810686614191066241147826675332184215132671471303307090141130331901351529029134214071121296373897001471361756179209013014096576323011185140905071029665919390103741662824159690411414041146175341611161223609017116147524196961312125411415814074010041752768331590726664129141728628210245471576641295578379037969085351004659092243311487841165106112110329070911131113572178177907911787111012471032902871511103026651664125189390137411516548778414711517190169432954963354591518047640633115267414816619262077143357236892138114208151804305406316421675466238710111161136282388106866829010301044416651011420871147255301502829015312111464911154739071526908209922262829047870748108626810466519650526907911312893299049780490571217702628298692282907911372061762833524176004238619032392854716213842138496350871420771382363112576611519675133421566296559098797341420521971022211488113963068039646531817690189144236768118681145510622103156680521758466981936969241346305025292130454312627645011646214035745839516447231791677793619186121020475561153987915126141322254768021747108668051373232202750613556511690103273074378612113033321111566813111050454122232345905144715012126641290104791512217752278905149631096229192902779610920631142721106142730902231038539760150462532226786422106736211655211424147754017764117115137561153987973391524864718112571475099515396142742471115090311169050813210361623114272110696212314461675155675266570266141121010781318659876048712074879151904661412621373577731431321061182533113613866324833275596706290321459701586311427211061421109107366651333293955671019010374166814658411113530511775741665121777111913059014413912121032907707512256214111323631320507312626679040631516188378099655906487739355195290581219155422816641478791116770148784392804266182650110151558195550482322026670326266790453903733561993626314850210329010374166566849879112023220265839535820166113236314911149125282416686518622322321315164721290494747166609053079177514656113020678439434521515530926417024186561961503514751329050690156917513540365146954012087354020590540144905406039079074111729522453779017320501607416621113816174970118144166703514617224291078246638741115968173115031665114401061033735437230170319511516510474366166412901047914160071952906212662641440741101079620622634173424945672979160390451219495775556362309131136218267901093701921789614884901779010301048190167155114755477062417515436175967329282905401299014881909510443827365773130779113797651041617514054020678741682013197743077911020392668407703211329013012070321218371386660908146578432166520596752826686217507045104913912121032907445104379026290117197808199148849088382125225330779113775355615296695981264253651044191516472371088321371558876095406625313879151339172616716974187233012210866805137353041969625111154196968379696559011410816810686614191066241147826675332184215132671471303307090141130331901351529029134214025812869088507102966591939010374166261901111371301466641751301371199653416111612236090171161475241969698467686738274178211915443155116371548763772666412914172861020908706321474729979132147471487841165106112110329070911131113572178177907911787111012471032902871511812111156681311105740190113748548778414711517190169432954963354591515321751051785741658140037460474313774372931014179662077143357236892138114208151167315129310335136222124871690131388106866829010301044416651011420871147255301503143205011056487982674151608813821161397829761032610714179628932966102302596435675041148187569242190418102829015017116174631463901087915148944536259719533077915128932990497627890497715903729629073426312061762833524176004238117371213257362225115290350140104413250141412363112576611519675138611190121671201551730679790162317973971998820111302881254176006716812535215942197102221148811396306803964653181769018914425295320120102107940222905629573951191454116462140680521758466981936969241346305025292130146973222471967296305130140903574583951644723179131990914177213854161120621473212703756190478471089011419012034716714021446186121020475561153987915114890754196313290140784116583623220275061355651169010327307437861211301651665311055784185901931113122177522789051496310962291929027796109194077390991147433077912721881294051212416739615616795147407062265051011769091253857961504625322267864221067362116552114241477540108085786531105708636710711931102127081811257147509951539614274247111509031116905081321036865019011130831907740540661249071516521305567526657026614112101078131319320501105622411077139567547241823696213904633653577731431321061182533113613866324833275596706290321459701673205256322471419025590963281465841111353051177574166512177711191305901441391212103290770751224840631516188378099655906487739355195290581219155422230148784392804266182650110151558195550481091256615290791476134770566849879112010511411710329047539904135149125282416686518622891317116651321032901201812247541361432419074953942520678439434521515530926417024186815545147155998665865901708797729522453779017320501607416621113816174970118144371903968990390952123114456135650963414113802833526176776596817311503166511440106103373543723017031951151651047350374690754110646539032190644106244617866311429529062126626414407411010796314320501101748738177711146586590170841603904512194957755563623091316352856115212667906641153320909515514792178961488490177901030104819016715511475547706241751543617596733321117320595100959761919396192519090103103853929014881909510443827365773130779113715032052563203211203388110385391853520678741682013197743077911020729046353219046425664652541651110222951187379515851156122259715747617674765710641959090570814657843216652059675282668621750252953201201219045471479157107940150344122290562957310710131715941769032787472629011719780819914884908838212522533077911373715211312366128113163120296193812682536612213564742390668843491136688723764161607155860536510441915164723710883213715588760954066253138791513187738118021612471248184563547641769066907879753041969625111154196968379696559011410831216713024447145141454887416625812869088868611201679030779151321395721296576987978162317918573261901111371301466641751301371199612514717321903178412966984676867382741782119154431551163715487637152908379035479646196708224719671390356183770822471901020908706321474729979132147478177375106257107940231957366776170419590755775317541181211115668131110574019011374826394111750247124377417548514079056115398797471771789815801062610532175105178574165814003746047431377437293101417965261286665111996356112379096343908632205115152311305611539879182665127417501673151293103351362221248716901313311103150564981391247366641521101050663111317236611069120241314320501105648798267415160881382116139782976103261071417966364115651212017282120444142741173025964356750411481875692421904181028290150171161746314639010879151318773753949159082561153987914919445362597195330779151302812845632141306971061032901039112338667142627890497715903729629073426319377176535661664176901541977411781173712132573622251152903501401044132501414131432170215811017129013650247103853973041796861119012167120155173067979016231797397199882011130288125417600671681253521594273012017285482123147901544725295320120102107940222905629573951191454116462140350374690666090904710329018249147146973222471967296305130140901932419024141796319909141772138541611206214732127037561904784710890114190120347167140214465262938044275090511110110231110024914031151148907541963132901407841165836730120166894317371651665311055784185901931113114890754146390104791156194077390991147433077912721881294051212416739615616795147407062265051011769091253857965222471169882011981066124479655591320908571211080857865311057086367107119311021270813464518094170843257223352179786501901113083190774054066124907151652130296403871075162921571552774747973193205011056224110771395675472418236962139046336580645104313970279767320525632247141902559096321062203156661102891351511705768585272893296610210290155411479757674112648817737567139121210329010741421036791110133922302781171207505112862921261091256615290791476134770102902444135202804208711062616819046903512166870961051141171032904753990413519077390106251321875697236867791952519879113769028990121676190103111611366522891317116651321032901201812247541361432419074953942510290351216687096666090451589075714768155451471559986658659017087972809090477667490904166903524431564215113290292483371903968990390952123114456135650963414113802833526176776306193131705444385537578288253911938527025810643213051999155362121107813135037469075411064653903219064410624461786631142957321120235533211201732141740103853990653143205011017487381777111465865901708413141505622132190119559972717635285611521266790664115332090951551477811056321417581142973007142179072532661055153271473332111732059510095976191939619251909010310385392906503004144977128903619076925715910613337454416144704129290215617677615032052563203211203388110385391853527870066413210329047539904135741663007290463532190464256646525416511102229511873795158511561222597157476176747657106419590905704825295320120121904547147915710794015034412229056295731071013171594176903278747133460371521131236612811316312029619381268253661221356474239066884349113668872376416160715586065619028335215952318773811802161247124818456354764176906690787977814095454419062312167130244471451414548874166440147510511799511801133868611201679030779151321395721296576987978162317918573128906290342661251471732190317841296654877832629046647152908379035479646196708224719671390356183770822471901285708563121353051878177375106257107940231957366776170419590755775317541181125785226103853973090536962639411175024712437741754851407905611539879747177178981580106261086519093969010950103290103741526128666511199635611237909634390863220511515231130561153987918266512741750125977045141768230651142908774733111031505649813912473666415211010506631113172366110691202416784119916190901095649730747636411565121201728212044414274117450357147706818607411215491159177022621651327540111611090331877375394915908256115398791491308253415830281284563214130697106103290103911233866714210233619351218290351169377176535661664176901541977411714523845374081170141314321702158110171290136502471038539730417969701711119930571358100243585027087301201728548212314790154471021210762901784903619735037469066609090471032901824914716375588277531755332977457911371161932419024141796956324551140907527541172413293113614452629380442750905111101102311100249140311516767125137904245074173012016689431737505747110584611065645213832148907541463901047911566007471105846110656452732131329609031590152903424177652224711698820119810661244796555913209085712135777314352138741154538122473431311346451809417084325722335217978531787111012311357222964038710751629215715527747479753281213111157482591317078064510431397027971391363497413210622031566611028913515117057685852733917517790118951151029015541147975767411261023021395941865529103281773756713912121032901074142103679111013392357758268706138139597727811712075051128629212610208019023311038270687671441029024441352028042087110626168190469035121668709617981810222654871873917174060887218691740796559086510725110822264826646190773901062513218756972368677919525198791137690289901216761901031116113665211711163208859024149333131012018424461428651731029035121668709666609045158907571474961164671349928090904776674909041669035244315642151132902924836602221248439655511717505057894306193131705444385537578288253911938527025810643213051999155362121107813136035913713596032992012038096957321120235533211201732141740103853990655059614213312023510231415056221321901195599727173911527317688724401113165702418781105632141758114297300714217907253266105515327147101680490111141070187270866503004144977128903619076925715910613337454416144704129290215617677610286190719615141971615705322787006641321032904753990413574166300686135132228071222893296610280015513217674133074865030011071612574366113346054715220250950626561902833521595214241329609015534190152903429098781409545441906223220229661211914064146511634214044014751051179951180113389496457024655915112890629034266339175806140310079022315321690305475487783262904664753510214479432228175300161114412857085631213530518763645702804165451151181125785226103853973090536967481128189061328871633090401011461113115190406718651909396901095010329010374172353710511741706908105241125977045141768230651142908774785013711514770790272115141147678411991619090109564973074730114778961721511221450357147706818607411215491159177022621651327540111611090317414771356421981513082534158921577171279102336193512182903511616095166702571290531002771452384537408117014178614645323832501013411141810488144970171111993057135810024358502708312925711651152127632115110212107629017849036197776103290106150184361421637558827753175533297745791137116650300706535810901111961706295632455114090752754117241329311361441028090564012143767671251379042450741152665889515667418729099106473104131496150147750574711058461106564521383265030070616826821211665160074711058461106564527321313296090315901529034241776815677390977820126107905011913577731435213874115453812247343131636315114078565116732121635853178711101231135722631328090291776667353281213111157482591317075214913787170686317711139136349741322308446598791339175177901189511566684491896421023021395941865529103269196497162113622211204110236707901811551003577582687061381395977596510431159441894561020801902331103827068767144507967351119690179818102226548718739171740608872186917407965590865107251108222648266466919877390374511171116320885902414933313101201842446142865173188955116569031496116467134991062457810610664766022212484396555117175050578946171111312221619409111683603591371359603299201203809628216878110614112413450596142133120235102338132242250413911527317688724401113165702418488893474211130522031521364110168049011114107018727086168371324035871511301028619071961514197161570532236111601202103853920212168613513222807122146741101148418125142310258001551321767413307181109173610329636142907411765030011071612574366172952167140135108471038539903574162954715220250950622065114130990324876590140791100371424132960901553419015290342909817214166226775905369623220229661211914064146511634214016231146525120211151894964570246559151206226131136165259339175806140310079022315321690305474853510214479432228175300161114413346063645702804165451151105071522687590144527481128189061328871633090401011461113115190406717824150390967235371051174170690810524139071521759024285013711514770790272115141147181211115622290253301147789617215112212565105110847103853920217414771356421981511287420826246638113236319215771712791683209045321609516670257129053100277102657142811567837861464532383250101341114181048814481773706142132031292571165115212763211511925280412140125377610329010615018436142102296591109617561650300706535810901111961706214918014412544354010280905640121437141111171804407521526658895156674187290991064731041314961501477686522633473615665030070616826821211665127029665406146177531140815677390977820126107905011911012969061667741125163631511407856511673212163510215247161661105073157631328090291776667369951268214117067521491378717068631771164440503705723084465987913391465251207155666844918964256811171893416919649716211362221120411023670790181155100139657962122416275965104311594418945614245490627605079673511196902701872896919877390374511669678171188955116569031861147770770106245781061066471250784710381421554221216171111312221619409111681368049031262114140282168781106141124134471901127156406903381322422504123211014011012971404888934742111305220315213641102439541443905131683713240358715113023252512361116012021038539202121652108477889732155114674110114841812514231025255510516748818110917361032963614290741173437896152177907974721464181046729521671401351084710385399035741629163108471038539781472065114130990324876590140791100372063176610614132827411721416622677590536961745962315651162311465251202111514064537321861208610703156206226131136165259289125115666248903228932966102184903514858212013346098901050126105071522687590144521291060782415039096927741592131139071521759024212977390266186995401812111156222902533011254517180025651051108471038539202109675104170651128742082624663811323631101181906315116832090453214245490102657142811567836337691749015881773706142132013021611877019252804121401253151111529614010229659110961756192773158784823247796872311491801441254435401051124117502229091114111117180440752138617516332617268652263347361567989678327029665406146177531140481012969061667741125110912566904544971021524716166110507315725644210385399051699512682141170672221764121290512477909664440503705726617641225078645276103271003079014290668847293101111833914652512071551624236676522931411304926641245056811171893415511028046139657962122416278177558718670717233005401158406641218014245490627601057737567191707321463901407082701872891020773815866609017084137321894116510703798262901669678171812109077375247414307797197068611477707709761969159018452489516164324190860741661250784710381421554221217661764427509051951241032904753990419086613680490312621141401487843147606652269318201297988201304719011271564069072926241540196729630513014090232110140110129714023211010124539040910010545431262462140102439541443905131176957813118756107920222511071013171594176903211181212729046351323252512063179123872375592729058511017454065210847788973215516314672872589171062573216690140106780962555105167488222176259251713037063437896152177907974721464181046134417153210477561153988111985151261979170411631084710385397814710363151482431905045614110385396673620631766106141328274113761126676903417013122971101091431751101046140110668421741170190692174596231565110163245511409075275472403211647754969647032154114440645373218612086107031562555105167418138513245671414634631558407082891251156662489032206311427211069521231187564118354052054098661301849035116887076616754662103853990715821205965104146687429414844650519465061698901050126596510411220715214117016947470612910601331241175065390247769561153987911229277415921311343147516120317084042247015130779148129773902661869954072210847951321000511674126441570962123117310866805114070830112545171800548778414711514741481751310967510417065140190904728211470611614156061221871461011819063151998453796869311679655166619664122141113790142454902322021032208539202831456337691749015810912517103853990274411302161187704815111152961401091256690454497927731587848232477968723111669581113077971504014132108471038539781411051124117502229091125551051140907077706132904254775399052075411032907377422676660905304165213013861751633261721167130120511875641354853190666090901308319679896783361524848675781425087082893296610210226870659711683077911314634631558407084828913171712872320711095134643141113216690405461111096511306872024110912566904544971029603252474134413247351623712190412154732190774704113025644210385399051106217729316651112917157511031262903103157746661249071516521302221764121290512477909615410170634274267070746219418117136988203077911372661764122507864527610327100307901429066884729310111182785189777919902831422344237122598311642313796162423667652293141130492664124501314537155686111609540662531387915155110280462067843219669589102678177558718670717233005401158406641218026190676180261132090401351406130141575111611056144158052151144202131115333103831010327024185061087212892261287226464831215819316310577375671917073214639014070814678741225808910290526120473147411191655827916710207738158666090170841373218941165107037982629012828132706412261086680519166662031521429038710301108045158691818613174781210907737524741430779719706921789614884901779010301048190167155108791679761969159018452489516164324190860741661036315118718714781608867661764427509051951241032904753990419086669651049139121210329011385104392773466167814179647990482114828211030779110806214878431476066522693182012979882013010205677317068261663248332715962962909811030110223151951701756029277292624154019672963051301409028690470515254353248712058246513823211010124539040910010545431262462140494147262116769141109966124171921311176957813118756107920222511071013171594176903211181212729046351381773962187100441113234010717061384666321072212151206317912387237559272905851101745403741777077021632220311882082433205064463146728725891710625732166901401067809654877841471156641481787013209054037339372151651061121106301171751609517151131156140222176259251713037063391754434273419010441107140134417153210477561153988111985151261979170417467847146756165837324135466609017087913851471036315148243190504561411038539667361050191414391015154813810191513826368490331614217071376112667690341701312297110109143175110104614011066842174117019069265031947139412929627123511676908842422152197111381016324551140907527547240321164775496964703215411448177390279818909012907104668523197112555105167418138513245671414634631558407081028619067586590351061032901221806685153196206311427211069521231187564118354052054098661303143205011056424873851110307787907610385397307416651217771688707661675466210385399071756510438048931312594213814170610128211030779110806259651041466874294148446505194650616328177326511510332569013632549701464126656116759633732190148432926137359651041122071521411701694747061878316610212010730779113312411750653902477695611539879112278135526165300247901391792110874310456115398797343147516120317084042247015130779148617171661012770247901394809879157734803077915375072210847951321000511674126441570962123117310866805114070818784016066102905377978749327810613577166321427502212411270418954876911226383911642702418334108230779158078254877841471151474148175137814413440190904728211470611614156061221871467535689695998453796869311679655166619664122141113790206918410667475198791171123220210322085392028314518783775611307797109125171038539902744118710066884123298750289329661025784271556624417790791178711101247103290287151487586313925798791866653750109125669045449775556288193451611239763077972888149061345456115398791644665111669581113077971504014132108471038539781417534111115212244417309011130515315908725551051140907077706132904254775399052075411032907377422676660905304165213068486145763567110207906711071171116713012051187564135485319066609090130831961672599951173282906351111024790133111725090968122016090263623735840902631241620708290263111121051902579662780441895703615248486757814250870868486183110668179167132131742171414820138144908107024186158090141102268706597116830779113146346315584070855245319574177972891317171287232071109513464314111321669040546111109651130687202419664597027514151714184140785651167321216115102960325247413441324735162371219041215473219077470411306136321507257426280217476632363156221106217729316651112917157511031262903103157746661249071516521307512747790115138111506112161040183907916115629692611327148878227148767987911521541017063427426707074621941811713698820307791137758111016620111627211778239614285278518977791990283142234423712259831164231379631059210329055151886515801151314537155686111609540662531387915133912725666195791672067843219669589102672181381104138267211226190676180261132090401351406130141575111611056144158052151144202131115333103831010327024185061087212892261287226464831215819316375877596401507546241769025311061279151146787412258089102905261204731474111916558279167507150722728729025966874123282013898750128281327064122610866805191666620315214290387103011080451586918186131747259651068137931702190921789614884901779010301048190167155108791671871001062238666704148098750103631511871871478160886189766813805110401839079170416965104913912121032901138510439277346616781417964799048211482821103077911080622021507216788908811589053573614210205677317068261663248332715962962909811030110223151951701756029278649439015014419041823428690470515254353248712058246513818795321661017805075462417690327414661021201073077915149414726211676914110996612417192131202448373271036697987911711817739621871004411132340107170613846663210722121517566129016030151448540661021201073077915137417770770216322203118820824332050644202670861707218849716141487462111548778414711566414817870132090540373393721516510611211063011717516095171511311561401381613727047691350357471029655923391754434273419010441107140191281910392381735174678471467561658373241354666090170879138514763293315401270147506843574224971091721951206421726429664290230661029066753052491610501914143910151548138101915138263684903316142170710348950539526503194713941292962712351167690884242215219711138651301551305654561201477729054441665013208177390279818909012907104668523197119534166376102861906758659035106103290122180668515319679151667710385396371147110103632271389017688741113143205011056424873851110307787907610385397307416651217771021946612475077526165316966952888149061345457422767475651043804893131259421381417061012821103077911080623414779875812011556618081072201551079506810429986577093627883281773265115103325690136325497014641266561167596337321901484329261373799566771038539637128932966102967549311362521878316610212010730779113822748772369430768533781355261653002479013917921108743104561153987971021205571661158043979619511058017257017070186661466149921697915161717166101277024790139480987915773480307791537508135964366713220162206710016220651321669090100170130183901004158820281182199129178130590837502061878401606610290537797874932781061357716632142750221241127041895487691122638391164270241833410823077915807822091475161079501446198907507389141229327192805114403278144134341421526132307681067096753568969525912876677321907883211201290103853990712069184106674751987911711171322513178325793234213290661318109298013066915351280582957174311314163070283720618783775611307797827748421329088661843571192056647649613119671032318634714641590305908701301871006688412329875082774787446962888149061345464930766899621110811103721130511037211152110100578427155662441779079117871110124710329028715131348955515517616818390412205398081697012271206610101347586313925798791866653750799566771373735113775556288193451611239763077972888149061345456115398791644665165130195256165121801422510671090183176373511316614075341111152122444173090111305153159087315320501106677866191041167117081768486145763567110207906711071171351374773315402397330779159142167259995117328290635111102479013311172509096812201609026362373584090263124162070829026311112105190257966278044189570447661454078613290103010444166115684861831106681791671321317421714148201381449081070241861580901413035964366771551241517690656316591180701007411755245319574177978277413530779185345436321906539066674140121231513564247051591705371271922347383104251217562801381201663077914596645970275141517141841407856511673212161151513205266774881098454795129227116301110545661688563941839030779110370161363215072574262802174766323631562213134897506090183547704122011373149633623815166311512801381114141248301661941347512747790115138111506112161040183907916115629692611327148878227148767987911523206811655951101150139705230129174111758111016620111627211778239614285102121113251355611539879166803324719503098517111055724712933158042971259062164390615750104701906590156106466909111468682916461072593321103161157976629692310592103290551518865158011515018066516651430766246255131987911711339127256661957916710263149720241951902932228169356153793496186558757319879117112181381104138267211210202101325755761836649979167662961245431866791517587759640150754624176902531106127915126631766643217901417915150715072272872902596687412328201389875025812867275811101861203418299964225965106813793170219015562041110587461475095154955241745198791171118710010622386667041480987505924567258283331101231198907813310112661065902729073090159366629615051154189766813805110401839079170417815072171669091120215072167889088115890535736142300206651183137108216491131662414150041814124416188421106014021311082169382279055157864943901501441904182347041906651467762216612223921879532166101780507546241769032741466102120107307791511058451474127096133762771327216746737251484371458118051140121901213713581193511401469014687031987911711202448373271036697987911711258409665166514756451616786151732187393214123753037541981872519819073146398791171175661290160301514485406610212010730779151812150665156266124321517881493792205679209084152142171120267086170721884971614148746211125812866651321202905003130766496571989013364477182143106503701309230553113816137270476913503574710296559228245676610290242125266207054030768987912239219128191039238173511503205272103290475399041150721266659713063293315401270147506843574224971091721951206421726429664290230661029066753052491625551051162705117010066321921104973113013851130156289329661025964330272103853910121506651103489505395288388100651301551305654561201477729054441665013208532070638821113599059518232953416637686273750604774917037915166771038539637114711010363227138901768874111998423181135103264041191104102194661247507752616531696695288814906134545742276742532419012559711417293234147798758120115566180810722015510795068104299865770936278828990364780119110231142411167151799566771038539637120165090965102779619810510389675493113625210276809366971382274877236943076853314316454758426451142901441021205571661158043979619511058017257017070186661466149921697915186410936564717813596436671322016220671001622065132166909010017013018390100415882028118219912917813059083750206840770451417861373082091475161079501446198907507389141229327192805114403255629110864146177112234142152613230768106709645664412812591287667732190788321120129010385399071901883217225047215267108171322513178325793234213290661318109298013066915351280582957174311314163070283720621730909290453268763222827748421329088661843571192056647649613119671032318634714641590305908701302514090463031141957532411961937811408277478744696288814906134546493076689962111081110372113051103721115211010018440212614112066255070131348955515517616818390412205398081697012271206610101344843124932136901020417995667713737351137422954704175014147728542065130195256165121801422510671090183176373511316614012156750327907363153205011066778661910411671170817325171116190504203513747733154023973307791591422687392104014053170690111590470134447661454078613290103010444166115484444170636513730359643667715512415176906563165911807010074117134301509890142827741353077918534543632190653906667414012123151356424705159170537127192234738310425121756280138120166307791452525148701611513205266774881098454795129227116301110545661688563941839030779110370134980490227801376611010374131348975060901835477041220113731496336238151663115128013811141412483016619413486861907110614254125336513132068116559511011501397052301291741111231015441104415373113110212111325135561153987916680332471950309851711105572471293315804297125906216439061575010470190659015610646690911146868291646107259332110316115797662969214697352474416746412893296610261903554287235128186561501806651665143076624625513198791171186121066089524102631497202419519029322281693561537934961865587573198791171199810805364170610202101325755761836649979167662961245431866791511021342010453299109026631766643217901417915167156750133647258128672758111018612034182999642611019637741751556204111058746147509515495524174519879117111489035689023931213530545350901771076659245672582833311012311989078133101126610659027290730901593666296150511543191720114171323571120960750905178150721716690911103890151475246590108471038539781140300206651183137108216491131662414150041814124416188421106014021311082169382279055157123913843111513222254762024111037370419066514677622166122239210421415510196105845147412709613376277132721674673725148437145811805114012190121371358119351140146901468703198791171131211190126655657725840966516651475645161678615173218739321412375303754198187251981907314639879117118405675014114423656812150665156266124321517881493792205679209084152142171137198506781085225812866651321202905003130766496571989013364477182143106503701309230553128016150875033216510329005628245676610290242125266207054030768987912239290691903841000208155451472024314110815032052721032904753990411507212666597130907134925551051162705117010066321921104973113013851130156307591596433027210385391012150665127172628932966102242752883881002255369285320706388211135990595182322079557862737506047749170361110114899842318113510326404119110411501361201112532419012559711417293210190125116289903647801191102311424111671519785302016509096510277961981051038122124590457911027680936697955662157143164547584264511429014459628211045568641093656471710197510741706990813840770451417861373081424549063151556291108641461771122218750132789624744741136145664412811444110190171789018832172250472152671081806453092173090929045326876322233116110812396251409046303114195753241196193781140316412103296184402126141120662550701748112251964843124932136901020415364736714296422954704175014147728542061511141570138561038142288121567503279073639125989052242235325171116190504203661461311311322181156417012687392104014053170690111590470134160105944141128148444417063651375073213186387134301509890142150107351910803113869513515025251487016122086537205902959064761334980490227801376611010374118110911562221317701388686190711061425412533651314171767112113112310154411044153731131343146413425213814697352474416746416990217155370619035542872351281865650022212415186121066089524227909671909359981080536417062619041212109664121102134201045329910901128047478201696677671567501336471021524064134770111696611019637741751497269137277526148903568902393121353054535090177107661201781909287414373191720114171323571120960750905125124915534270175961038901514752465901084710385397811403415083211580132090130041123913843111513222254762024111037368418917751407015509610421415510196121651297182624724112055731211190126655657784078471519054812184056750141144236563011477896132906415237198506781085226258171191482801615087503321651032900561372406371038906919038410002081554514720243141108137619076781320509628932966102102960959061664136790713491029609590618013766110510373075911497269138322969017790791411417702717261066146453275052427521184511211655162255369222760096113192620795571723214884113047611101148185512154730790135215411150136120111531142706339116651101901251166291111477585707599778201319785301467411019030782012612212459045791252955662157315429596282110455659630090101975107417069908133874491424549063151427277218750132789624744741136134024714441101901717820722277351180645309155903541331161108123962471426465631641210329627167676748112251968827661265364736714296168140690457916151114157013856103814228875982514114056391259890522422351178851044128271036614613113113221811564170174831491417063491601059441411281596510414669217077699317380133507321318638717645490631511501073519108031138695135150927732471582474474316622086537205902959064761359651043765165718110911562221317701381302161183014601105304171767112113126582432515032090185905274713554719010413559249879734314641342521387718184113151699021715537095137961036318296594500222124151166721167511211551112279096719093556787211091713926190412121096641215808790132715213811280474782016966771777731641616617010215240641347701116962892331156135132907152149726913727752614937782225624511211000120178190928741437177212774257120241251249155342701759682390170141699130341508321158013209013004110661464541708125686416841891775140701550961623132541202411216512971826247241120557255785157552452884078471519054812181845413201210907374130114778961329064152222313210385397374126258171191484364541222668169411372406371038102152655521956361307541137619076781320509613996484354110296095906166413677261280901252055364110296095906180137661105103748812510431694114972691383229690177907914114177016145307871352804110661464532750558611166121661210367541118451121165516306711531711429016121757227600961131926326957411011484181025172321488411304740645373217916510703156185512154730790135215412063176610675060774977820575311427063391166515466822254761841512229829962911114775857075997782013113021415510196146741101903078201262170213028932966102101647161830412525212016947315429342432115159630090147318145387449557245706427277142214173402475245554020722277351657226103151155903541254181411052471426465621141122722412716767622041110783882766126811922061401681406904579153626912475982514114056885813011788510441282710132041300132070174831491417063491019473231008415965104146692170776993173801332632074129021113417645490631511244627329277324715824744743166842106710259651043765165759241951911302161183014601105308272057024502658243251503209018590527471355471901041355924987975024790591402224214798132538511509086688417649156211232155177181841131515004122241951379610363182965948483714516672116751121155111102632112066761517690323218961460315399090906656787211091713959251513719683916231791515808790132715213832113990107031981579813253851140907754717777316416166170965532214769711204469012011512892331156135132907152420921411710712083092141112225117190111775014937782225624511211000161126791361474379791601032904753990417117721277425712024151192141112514341115076790594917071032904127016214111135613722251141324325722335217918239017014169913044674169210661464541708125686414117196162313254120241220911043140130255785157552452811617890436370418184541320121090737419674126522231321038539737418112132196073243645412226681694114041322221005710215265552195636130754122014614557139964843541128522654072612809012520553641536222415748812510431694139829116216145307871352804126442116258611166121661210367541598951107730623067115317114290161217575007021449032695741101148418102584238711557406453732179165107031561671061116220631766106750607749778205761120211625466822254761841512229829978765662130214155101961131215562893296610210269714578961329064152217021302258810164716183041131041138752120169471051222429334243211517898190960706147318145124488557245706406666090361001422141753155370617152455540478371290657226103151161497254181411059065155211411227224137145716711032204111078374026815910871621757811922061408002415668486735536269124254954195905914088581309811450121103873132041300132070127032041106845616551610194732310084199020811654090869339971263207412902111343305670638814610641184124462732221149144127809641461771122842106710282110786120715559241951913355314212619827205702450304104241110826211371032340502479059140222421479813253851150908668841764915621123215512704611011101405004122241300711202118461384837145264901151667714010263211206676151769032321896146031539909090669567837119059251513719683916231791512649011598038232114032113990107031981579813253851140907754795678371190751122965532214769711204469012011517401185690581219155342524209214117107120830921411122251171901117750460680821161425271611267913614743797916010329047539904171956783711905119214111251434111507679059491707103290412701621411113561372225114132432572233521791264901159803823211404467416929835501122411719633686112070252527209150421822091104314013050172311321139011595114211617890436370415327549010052669674126530882875535187336528112132196073214485025010720582511131404132222100574505701461422201461455795678371190128522654015793751582411315534252536222415726490115980382321140398291162983451461122264421162270159453132102155342525989511077306252090707701759016550070214490983728762996140842387115579567838931762408951202221401671061116280077322714514061120211629567838937876566226490115980382321140113121556981406311414010269714578961329064152744941301147756465729225882409021890411079081036213104113877801231082024110512224293237108144122789819096070624720173165167321244883368619037451406666090361003601008136511028290136565315537061713067863205052478371290325982432292471614972649011544210714090651552409019132056289329661027092381300563714571671103261454906315174026815910871621757744100124194214908002415668486735329254954195905914038214098114501211038731937302703204110684561655169414599020811654090869339971123377431330567063881461064118412854013022114914412780964146177112213988235614882110786120715513990141632335531421261913912673720294164304104241110826211371032340152882103827046110111014013311017171119630071120211846133062717064726490115166771401173263429395678371190932241901937302649011598038232114025190244908573695678371190751122117326342937401185690581219155342521333208731202460680821161425271173263429395678371190601301243264901159803823211401073318091089835501122117326342933368611207025252720915042183311031368135017231132113901159511421173263429353275490100526619324190822241413088287553518733652117326342931448502501072058251113131116905045057014614229995706222141289567837119011732634293157937515824113155342523519011565010385399090106264901159803823211401173263429398345146112271216901390270159453132102155342521173263429352090707701759016515232128631918103853931190123751980511488461011983728762996140117326342939567838931762408951202221401191111125251901207171300800773227145140117326342939567838931112155511428517822649011598038232114011732634293981406311414054371117571201013184674494130114775646572911732634293240902189041107908103621831901396158370360780123108202411173263429323710814412237087324419871024720173165167325198686816133686190374511173263429336010081365110282901365650420718168112630678632050521173263429332598243229247182110826490115442107140117326342932409019132056664181136709238130056117326342932614549063151671115090136744100124194214901173263429328932966102555446976390785801105303291173263429338214054371771116147032079214519373011732634293941453315481261233774311173263429312854013015132151213513988235614811732634293139901416325041069613912673720294164117326342931528821038541133110171711196117326342933062717064719021811361173263429311732634293932241901937302976861111362519024490857361173263429311732634293119121114513332087312021173263429311732634293682908372146013012431173263429310733180910854371771116147011732634293117326342933311031368131193881600560110530117326342931173263429319324190822241412999571022210162311732634293213576702131116905072861210029995706222141283561486117326342932041032603702351901156501038539909010663674681173263429359318551712169013901036195161173263429317610241176182152321286319181038539311901237519805114884610114171024141710811732634293250256119111112525190120717130042967117326342932014549011121555114285178212890535117326342938929017654371117571201013184690746011011732634293633116530183190139615837036073091155105117326342931709087320323708732441987102033712623031519868681611276811171173263429377181219845042071816811261302201173263429319710359218211082067843211173263429395237103796236316641811361321321413211732634293141102411411086711150901361450264901173263429390053555446976390785801105309493611732634293128575437177111614703207921457351171173263429321137230313315481264015861173263429336245852151321512135225289117326342936052735041069614113211732634293128905355418929054111732634293402102414021081902181136104146901173263429310490936297686111136270372073111732634293780750132789611912111451051589110356841173263429370453101860477491712202846829083721412468117326342938981285113054371771116147018656551412451173263429384991817111540119388160056011053015390503901371173263429398962172999571022210162312990115639289329661028650263921357670295561327067286121006501478411083561486546417322041032603702818108411191492636746827010847477122355108593185515963141904766328651110103619516137614778387580140176102411761821164417324171024141710836510841738492250256561145059189361364296713665220145490350108321289053595874182732892901762141084112890539492907460110976147915936136633116530662441282732730911551054871084190979249217090873203226651813251601082033712623031105122210315012768111713021920111177181219841020596362306213022027038156197103592166423902067843213413211531952371037962363123220290497132132141321554915537891411024114110811781113675651450264902151432702147900531606778497949367483110615046303114128571641210510511477351172555105173521137230314339071511224015861704592752943624585214110290715148225289141102905021160527392285390715148141132989016712890535615418929054120110841706514021024140210810512221031501041469010912517103853990416570104909363143205011017466381038539903527037207311503205217991143838681178075013278963025964372510416117017962834714290974796813471032904341150601110477540524659010385397307411110515891103568427867366471038539903570453101860477491712202843311103150171019028755287901014912468232204752441509887195127016381244307689889812851130196510517111301110264533150333685523190471865655141245258326626657287411402909034634128111097741118499181711154081259643721596680575447690238791902121011675375191329023190150486311038539751716610290637329047153905039013727020441351046119110166111074170190989621710511241175096695288814906134548756315570623011505742276105612990115639804137901117284956753526810710822576182772811403169061212089882070935814656865026391437681266662411441813316661049113825197016642138170120711669556132706371781371528210830779190379915013163116765014784110829713573618364076155120132904544148119337139908747669501831370519882061715464173265619044390631044527610323866511488181084111914922702048175961119110166111467232551270108474771223551089210267465735307797307249752471243572914567301689879759631419047663286511101437511329655471063669013313187738379659865404116862854045833276151059079109901127122128778471029655921481376147783875801401051941706723219043166910750301689882047510381421090107664262901325411701164417322806611075051259511329042390322519037103290147909441365108417384928861071502031724624369537541411104689156114505918936136931091116613144696665142313698791136652941166651104530135590661861712473186395571452021421861454541551454963413421343501083229713573644921546094135690160265653421409587418273229713573624913598791542687108282121661057141432155479414892792592864847911389016012547329053152247343747110241540214108411289053949225812867290129677962579011965390190476303104665089879117119761479159361361051941706723219043166169415766910903201103703245436150716624412827323021806651676180726641113622904584411366617010448710841909792492128618666572201679031123210213582324925149255411669015011727912665181325160108812596437271432790512511329030789813871146540166901172797105122210315081773427662245630768533750181520201549701705125113290973565221177017013021920111110577342746341213911017790791422614293076679791511020596362306231932050110721276610514743197124666275627038156150320526651187561474311754078416115511327213775090653717011327053731811321036699086411032904753990411506651600711664239037115219298115186436683367236902086674870434440708327616168574526125627114654010012062791416007134132115319644674166514553235467327616168574861111904702987911711232202904972235766611666753323211048106987911054019010092155491553789812596437260817141479715098791663604453651407089066158236165905559014070298791171111781113675652581286661314147013122190810750199120246223132750470298791171121514327021475964381272307661036441415723817066409587707815951202462551519221606778497206517531101901353715045411556618021474437914160071748311061504630311420678417196319774756675164121051051147105773155661021201815814717082555105173569196452821026732166908737123165146080433907151122810459632320110961429018461352641246662756170459275294948454011751324011767669202374011551175141102907151488229067307667979151141102905021194116665130652111366422922853907151482454566175132661767125101316566101096695288814906134546959521666133183904226710257703710975978423076613907783293681621474073198901671091251710329047539904165706154132547117602273172463868303183908864877051890665276690199606969638205114404153967260904543690307791804741112011084170651282773837908196908477515566422517310512221031502043186613166411963076640898750289329661023326636683313311015610727959061941109125171038539904165703143205011072321901102951096610622337640901155301211353011106692473143205011017466381038539903520431866516651454312511647139132746247150110362458631301335921849834374636214534136903011106692411503205217991143838681128245673076641210646690911146812926090811791340451302596437251041611701796283471429097479681347103290434115060111047754052465901038539730741112454514719530811696786477142236110778414811734590733786209907617790139236425797278673664710385399035258296712539882010311899050337135219791745811281253202121902179733111031501710190287552879010149809963197253097657814150139371709331244904543690307791733202238791416007123220475244150988719512701638124430768984063154023912639196451315439615586931811901965105171113011102645331503336855231904725131146987506690345902123055212583266266572874114029090346341281110977411126631146987507101891245153181071082072179071933109032124657318125964372159668057544769023879190212101167537519132902319015048631103853975171661029063732904781773812863980831317790791590270204413510461191101661110741701902322026668261110222611313001513012221317014015901051124117509669528881490613454875631557062301150574227610561062217569669528290976191518041379011172849567535268107108225761827728114031690612120898820709358146565964381266516651410345444119015866650898791171114376812666624114418133166610491138251970166421381701207116632845672362376611781148337371781371528210830779190379915013163116718545891028910828210248631297135736183640761551201329045441481193371399087476695018313705198820617176617517110586034566691590605972646351103827061393665619044390631044527610323866511482893291135210431411132363174166112702048175961119110166111467232551586111661216932371251761671622011211132363174166119210267465735307797307249752471243572914567301689879710912517103853990413580159143353672447626611143751132965547106366901331318773837965986540411686285404583327615105907910990112712212877847102965592148133778301841501959659147113143141588886716145114201129014124351051262685035178327869139907443307110888658658146902107319879117111051941706723219043166910750301689882047510381421090107664262901325411707563623109592701019486909375651280661107505125951132904239032251903710329014790944130259643721222101875610237310660808861071502031724624369537541411104689137167104675071302533209066905091475018214825913632236850341881850117128113136235166609053287150213522211387011157972599012372904711049310911166131446966651423136987911091254517125381128730782053555431253941166651104530135590661861712473186395571452021421861454541551454963413421349310911166131446968329366219711201237213590711342971357364492154609413569016026565342140258128672314725513552579168122113516614029713573624913598791542687108282121661057141432155479414892792592864847911389016012547329053152247343747110241540300206651865826535127590879769590607707911206612631258128672901296779625790119653901904763031046650898791171110584514749196487518651101119275908769590597791120661269210519417067232190431661694157669109032011037032454361507178150721227866687902384114467141105338202527372659127025395117062372384145885104453775385531332417341115376411311591416664065056874702987911711289329661021927491741665142384157063110779148869333241789032054157302180665167618072664111362290458441136661701042581286665166851747218396902503729580627554604713797590371273742037321685803151110163568347029317111286186665722016790311232102135823249251492554116690150117279133910290332806183790871041556618021478433198791171181259643727143279051251132903078981387114654016690117279710912517103290475399041657081773427662245630768533750181520201549701705125113290973565221177017063631415927098791171110577342746341213911017790791422614293076679791516363141543516612454122231932050110721276610514743197124666275642611311617110790597791206651150320526651187561474311754078416115511327213775090653717011327053731811321036699086411032904753990411506651600713321772931721836610091015151101662966159611012227014611181116131707371152192981151864366833672369020866748704344407083276161685745261256271146540100120627914160071102268706138496591515310686904212985496439024627123510166296613126211290531501317079644674166514553235467327616168574861111904702987911711106217729317216341941775366110691130971962235766611666753323211048106987911054019010092388225422614807214066256146280812596437260817141479715098791663604453651407089066158236165905559014070298791171164722542559511011501397052301291741112581286661314147013122190810750199120246223132750470298791171181773905236091109535987911711596438127230766103644141572381706640958770781595120246255151922596510519081079025714066102904753076855220651753110190135371504541155661802147443791416007110511247501244549026177288814906134547108189012902067841719631977475667522750831249466903404728171057731556610212018158147170811661881251109879114610570631262901055716634210831213166413529034529053150131616634283987911711691964528210267321669087371231651460801091252011211032904753990416580810459632320110961429018461352641246662756102861120132907857110454201984171554461352971429057274111948454011751324011767669202374011551175109125174715571135867822906730766797915110519417067232190431669107509411666513065211136642210621772931726641472979117757072343882805901007054064385791570245456617513266176712510131656610109669528881490613454695952166613318390422671025770371097597842307661390778329368162147407312555105147757714260906558111557511779117111302893296610210641507270544438561371091251710329047539904165705965104321235210431414166054024113695736741477511303254711760227317246386830318390886487705189066527669019960696963820511440415396726090454369030779180474111596510519081079011391366920412181495690186707029879117112827738379081969084775155664225173574190731669346691090141610329010381571310782204318661316641196307664089875039981072640967290810661244113015265247938427609208708332663668331331101561072795906194180936251319723317115072663267135913835834702314320501107232190110295109661062233764090115530121135301110669247206784171966610212018158147170820431866516651454312511647139132746247150110362458631301335921849834374636214534136903011106692412513112518311016130754098987502824567307664121064669091114681292609081179134045117261665761034111451551135013615990211621157015357150495656708245451471953081169678647714223611077841481173459073378620990761779013923642579777851160662321436629690175050875140708258296712539882010311899050337135219791745811281253202121902179733217729316651756612908075214070417521411557780996319725309765781415013937170933124490454369030779173320223879141600712513136210610385396687194741866296124901106373120279145406315402391263919645131543961558693181190206313621062623371137176296109893140413249020225131146987506690345902123055219484514775019096669201201023713849531987911711266311469875071018912451531810710820721790719331090321246573122090772753123441126167202226477734215113290418419024481773812863980831317790791590596438127240147021916681686232202666826111022261131300151301222131701401590314320501101783411213510329047539904165801062217569669528290976191513025964372136156301230790741115964381266516651410345444119015866650898791171137152356199362141103853973032845672362376611781148337331110315072606477164115610385399041150185458910289108282102486318177381286398881329030779153471717661751711058603456669159060597264635110382706139366210607266152744938712650321849633585647158750289329113521043141113236317416611280661107565804353854010522184213058980513077911175861116612169323712517616716220112111323631741661181259643721397412933076817810912517103853990413580159143353672447626611105112475089669528881490613454655486125310130156681069614845675014486183562893296610237178966952821026746573530779713377830184150195965914711314314158888671614511420112901412435105126268503517832786913990744330711088865865814690210731987911711150320527213719681069666753321479094417563623109592701019486909375651133106434711017288613132710366103302596437212221018756102373106608022357666116113236316637167104675071302533209066905091475018214825913632236850341881850117128113136235166609053287150213522211387011157972599012372904711042581286661311693591557571040908110878905198791171110912545171253811287307820535554312531020204129725351081389293109111661314469683293662197112012372135907113424545147195308116962818112441031849804166588258128672314725513552579168122113516614088526729012969096611911016615075130020665186582653512759087976959060770791120661263110912535210431411058451474919648751865110111927590876959059779112066126922427507652266130614311959701846622484966622456107396471513286337473901264312626651411011255928015257970293171178150721227866687902384114467141105338202527372659127025395117062372384145885104453775385531332417341115376411311591416664065056874702987911711844351136651096832936810671907986790653461641501047163233984427398262891082782192749174166514238415706311077914886933324178903205415730532080661031042461033665175916611046696480315189032825812866651668517472183969025037295806275546047137975903712737420373216858031511101635683470293171127124690351136651096133930518911144486870885061036609104351181908899013088339102903328061837908710415566180214784331987911711205351026486125310665109610193662417502893296610281135161011715739812265426554290112113113393041816531878438705716513471462377390570518901921091251710329047539904165702713307666173408413219166140316640781350312115304965359013570627063631415927098791171127177483531972208301208241120870315908763631415435166124541222861247178772473912814261131161711079059779120665192110166881049879167471166588319774756675332177293172183661009101515110166296615961101222701461118111613170730835661191048966952888149061345464913015668106962874114029056115398791843503664121704462971022687061384965915153106869042129854964390246271235101662966131262112905315013170714132052191046657314320501106651577117272497625103296508132730741661062177293172163419417753661106911309719625812867238144118125066394164870931711388225422614807214066256146280109181171377216244390661080104647225425595110115013970523012917411184318111313170674905317591518721201077877350115661117745315152323872419326170781773905236091109535987911711111575076143227135251821166131115150757199149018466418095159651051908107902571406610290475307685522319134804788149525375711608111951512095120714010511247501244549026177288814906134547108189012903124125228641662263130919311061162541421222521122511079879117112275083124946690340472817596510414669287177731307791171111661881251109879114610570631262901055716634210831213166413529034529053150131616634283987911711314320501107181128730781481253202155706215030111598797936662731562888149061345471054118031051262140155413664141598791171128932966102371789899155193736833213931711109125201121103290475399041658072611028263614632166901661071150117818912890136808472456486464230782057166100210286112013290785711045420198417155446135297142905727411110621779011915140690119899041314440532025317014066429882057166100810912517471557113586764290477433208493600265909586128954944136145329610519417067232190431669107503143205011017121217416231062177293172664147297911775707234388280590100705406438579157013171251714111971138614777307412555105147757714260906558111557511779117111302959061035323354887903297309061041113508132730741106415072705444385613727817672323611926803232745405965104321235210431414166054024113695736741477511303717737553244025016615396142681405965105190810790113913669204121814956901867070298791171137178987732493078265741907316693466910901416103290103815713107826862141636177961387023998107264096729081066124411301526524793842760920870896047171106313689961419119419045742528932966102232861903249151320906687411878539606510442138809362513197233171150726632671359138358347023711029071412507220713614420678417196661021201815814717083711322497998382513112518311016130754098987502322101325751045247966791511726166576103411145155113501361599021162115701535715049565670833111031505672167196274778511606623214366296901750508751407088431601773090150323321772931665175661290807521407041752141155775875231290631199042876710329010374111251313621061038539668719474186629612490110637312027914564615782103262750511429090532206313621062623371137176296109893140413249020296011073610217030051142909053141948451477501909666920120102371384953198791171128071190177907917221402209077275312344112616720222647773421511329041841902443023205256329321854196857223125041217775964381272401470219166816861406903238851329609041090571174170691289329661023424769040323121215137774170691314320501101783411213510329047539904165806503001107736091201911063360171302596437213615630123079074111976411711373312019010941274111130371523561993621411038539730964521032909617411113033111031507260647716411561038539904115025551051111706450208817738128639888132903077915347171102960529866124171921306210607266152744938712650321849633585647158750530751074170614630779120480122212151280661107565804353854010522184213058980513077911178177390392223170299712096661165165213081259643721397412933076817810286190119073650712179232911130105112475089669528881490613454655486125310130156681069614845675014486183561705348117012071071015165213037178966952821026746573530779733547207501503205272137196810696667533214790944115122216745141133106434711017288613132710366103186121023550572235766611611323631661020730140772581286661311693591557571040908110878905198791171136483210202041297253510813892607832454514719530811696281811244103184980416658854214117107120830921411122251885267290129690966119110166150751853479111109125352104314120545936172893296610210511950479372427507652266130614311959701846622484966622456107396471513286337473901264312626651411011255928015257970293171114235153844351136651096832936810671907986790653461641501047163233984427398262891082782551514870161305320806610310424610336651759166110466964803151890328107750765002712469035113665109613393051891114448687088506103660910435118190889901308811871701715120535102648612531066510961019366241750128281131463115840702811351610117157398122654265542901121131133930418165318784387057165134714623773905705189019288611021527133076661734084132191661403166407813503121153049653590135706270200426208701891028961134522717748353197220830120824112087031590871076378612471787724739128115751222901001161709211016688104987916747116658831977475667539158130835661191048966952888149061345464913015668106962874114029056115398791843503664121704462972005421413205219104665731432050110665157711727249762510329650813273074166391510517681101012512893296610215475127725812867238144118125066394164870931711180170877003151109181171377216244390661080104365212110101784318111313170674905317591518721201077877350115661117745315152323872419326170791752138213151111575076143227135251821166131115150757199149018466418095135010832231913480478814952537571160811195151209512071405266790131711211313124125228641662263130919311061162541421222521122511079879117111031715225312113859651041466928717773130779117115438721109172133143205011071811287307814812532021557062150301115987979366627315628881490613454710541180310512621401554136641415987911711107071529711138371789899155193736833213931711125925341529681197512531407261102826361463216690166107115011781891289013680847245648646423078205716610022067836223837809804770106217790119151406901198990413144405320253170140664298820571661008201454247124660516429047743320849360026590958612895494413614532963942612342893296610252411090413143205011017121217416237209542390411317125171411197113861477730741126671959051295906103532335488790329730906104111350813273074152471905118756411038161102904127817672323611926803232745401277525613537177375532440250166153961426814025578515785285317541371789877324930782661511110441146161120410566862141636177961387021875110441140781107357503399769604717110631368996141911941904574252063151890822553708732961040232861903249151320906687411878539606510442138500445175873711029071412507220713614472612809012520553641371132249799838488125104316941232210132575104524796679151100617657014451214703722298373331110315056721671962748261731478220790165630516784316017730901503222090188207492587523129063119904287671032901037411117956208951177713412533077913557646157821032627505114290905322619203211479601107361021703005114290905314114528071190177907917221401454130232052563293218541968572231250412177714541226471406903238851329609041090571174170691409815501122342476904032312121513777417069110581435501226503001107736091201911063360171486580220143754897641171137331201901094127411113062268082116370961776901155261271132155866964521032909617411113011890756101152555105111170645020865898413796406201029605298661241719213021813061426247296247530751074170614630779120480122212151250901898210197152817739039222317029971209666116516521309275149213259018910286190119073650712179232911130247353279073078217053481170120710710151652130242950573103248428932966102213576846335472075027766951428571512221674514160676623122257094221110127186121023550576961501090311526766102073014077438318522261174284179012236483286171611400616078310163859091542141171071208309214111222511165890853479111702012054593617677839061143765165710511950479374384077050011226378428417904814235153864120576551514870161947471446111077507650086130106141118717017151165130551282811314631158407021121131188611021513192540200426208701891028961134522029721889761859054010763710516810631715615751222901001161702111201108183739158198628735180200542115090321203739151051768110101251707326631154751277748432011111801708770031517483147365212110101727029616656917521382131515524117157113811473501083213764117176138375266790131711211312322029049710317152253121138179872161536425438721109172131439513821070715297111384979526054012592534152968119751253140791251390150121206783622383780980477066013556220145424712466051822150512205839426123439211030362524110904120113862720954239041105122210315012667195905117777510191524719051187564110381611029041155351004211277525613534571066902557851578528531754111511176035071569046251137673615111104411461611204105684293373187511044114078110735750339976872719620631518908225537087329610403132625004451758712614247656726128090125205536411766748248812510431694199981013710061765701445121470372229837369766773905043631420403826173147822079016563051676225122209018820749242744162117956208951177713412533077913557785401241032909626192032114794057512893296610237613314545220790480145411671191454122647112730193514098155011228753110570210581435501221678411057084865802201437548251326226808211637096177690115526127113215586611156611045791118907561011518610812390797658984137964062033116121813061426247296247955826079725090189821019715257624777390457979275149213259018913712102477735124735327907307821045364457972429505731032484176121017614749041763110322135768461624514775021714131702776695142857327130568457976067662312225709422111012720775845797696150109031152676610555661104579743831852226117428417901223564549067861716114006118415230779115110163859091137402126141120116589017058644511352515013070201206818265251677839061143765165739152128067220420111143840770500112263784284179048270108471358118651110864120576146741101148418125142310259474714461195214241116332540908695686130106141146787418775073575033997616513055817734665113290166951511514165342521121131110296090611461113113192540152518668451202972188976185905405965103681631147026634511503441882818909012901051681063171562637115648061202131211120110818374823295661509862873518068569630455817747979020911075171052591671150903212037210525615407073266314637586775551615407484320111112827156262174861074831474461701423002702961665625890119454901191188012455241171571138114730865659319041137641171761383721879011023220290497113508132667301106077117987216153642265431109257145371109143951382454103290513724979526054080687996154540791251390150121731032901037266013556288939654782215051220588623251762670904862269620264131392110303622242612732011386231719215163713837111350374961350311441051222103150862321062411377318381102893296610234366609075241502527221308107581177775101912163929010321101300312026413715535100421302285325137978471345517134571066906043210624113757426213742263412687401281202115111760350715690462511376737635222152218849033057156412513084293373142555708671725354129872719641371061701412537511623132623196611020614671621261424765672366110901425368051100158176674823061438490236842142902347162999810137146658280511440619571026976677390504363142040331431926948015014218158622512295309351782580170230215962247158427441621505247472064110329092215501264315878540124103290961093207175060972169158940575120813586103290661308051100158376133306376636911112091061707925022171584522079048050561514713117025797257915816711920128158257481127301935111055129735511060936578753110570216577412520792012010809695655167841105708146611048111165139572513237115142329566761417162111566110457911475213721281921301861081239079750537100190913161130331161483659088613669028380611309558260797896695982513513130766170967036690103432576247773904579779137342951903461464120870241813712102477735146212351134153641313215511301045364457971410171101115111104314117612101761474904176311032295715962962901201362969014119032162451477502171413170793205011589432524769210401045118032713056845797148171120775845797171321011401055566110457971719524172253564549067104138263611511718415230779115164113713025052137402126141120141153263051510136651170586445113525150130567128790505120681826525184346838222101927391521280672204201111671786113236311279671202270108471358118651110842092602024111029914674110114841812514231025171126196478599669521424111633254090869566810395511467874187750735750339976827801095701127289329661028653367477731032683568177346651132901669515115141653425229740641342611703112971013425210296090611461113149130214373274062501525186684513131221135774051956190596510368163114702663451150344188281890901290227857173791422637115648061202131103207411701311170132571051482329566150258128666516617542051017811116612441881090281551471191101661114644141571649567041398661029059786366910901468103290106886310501501465114038290670413981704835098051140293101314721307919011110412311011040906554671150222516856963045581774797902091107517105259167775171121052561540103114046375867755516154030222812827156262174861029453944617014230028924725890119454901191188012415805403730865659319041373258218790110388903507821135081326673011060771340567668302654311092571453711092801210392110454103290513722911309696080687996154540957235509731032901037231611888939654746035455862325176267090486226962026413122511295402242612731354937156513171921516371383711135037496135031144171371862321062411377318381103103005634366609075241502527221308107581304110610216392901032110130031202641373041105305403022853251379784713455171115054060432106241137574262137422634126874012812022681325402893296610268920754076352221522188490330571564125130716268327065121114255570867172535412953313632706514137106170141253751162360196319661102061467162360412264772366110901425368051100158130037512313061438490236842142902347162562501466582805114406195710257053511631431926948015014218158562930321547113222263150473219035321906684077057170866206742394104018390791182229454414791613371039879132454414791660307820535325191544710632282102154472953093517825801702302159622471583775150524747206411032909221550126431582077011071093207175060972169158341702137208135861032906613080511001582535357306376636911112091061707925022171585629615056151471311702579725791581211755451150311120201281582574827048243190501105512973551106093657141102321657741252079201201080969565556745490146611048111165139573741203711514232956676141716236090170411475213721281921302519070701385053710019091316113021116970764836590886136690283806113015021101456778966959825135131307661709670366901034329558772777913734295190346146412087024182014534184621235113415364131321551130542456645121141017110111511110431411170135612075121295715962962901201362969014119032835248116793205011589432524769210401045118037190680289329661025951794265113525150224321481711837747313251171321011401325565117195241722592531117010413826361151171356425473611663215132986476411371302505218758201311411532630515101366511132232013756712879050511016163811938184346838222101927108126511103654267178611323631127967120287323193224328420926020241110299187566210117112619647859966323302782681039551371746827801095701127377431119865336747773103268356351617661931462974064134261170311297101342522133151491302143732740625083176622241313122113577405195619080714443766193632278571737914230719511019332103207411701311170132571051102614142258128666516617542051017811116612441881090281551471191101661114644141571649567041398661029059786366910901468103290106886310501501465114038290670413981704835098051140293101314721307919011110412311011040906554671150222517533161762831289329661023621181615177517113565533577821031140681615154030222814046632512945398371362289247105676620158054037115620841373258268766263889035078238681905113503405676683074214327025128012103921103019014629113096960412569569572355091941929173161182327662224146035455130371941112251129540452722106135493715651469414170754017137112750473103005612750475403041106107463051193813041105305401101009014430711150540156810205715402681325405989511079518368920754048738511103077501017162683270651211967321807024090681931104113553313632706513031812394973451449019378152360196307485224213375523604122647347106918142152652130037512313085771819056843551562506943556677851213157053511672050571577539831525629303215471132222631504732190353219066840770571708662067423941040183907911822294544147916133710398791324544147916603078205353251915447106322821021544727846718115110151191377515273721150264316644229922077011075601395725390731523417021374731055182877505006623225353574255829943625629614633740196266312631109653012117554511503111201171201116696715576270482431905051847136885906815510614110232715316885905175674549010357718296232374120193510961313609017041797735156567027309115511125190707013823397171611540611708211169707622150424721288590268517691600174513156150211014567756720077219071706519558772774983821301381085220145341830775421354793722298373542456645121138227222101927117013561207512156718135148101968352481166415726297214076525137190680447617873617083063658261085951794265113525150224321032074117013111701325710518377473132517915171665166321513276747132556518277475751068653903219064492531117035176813564254736116632151329864724175328932966102551989187582013138189311322320137921692101616381193819517971108126511103654220753692873231932243250913078218756621016831427083233027825906770837174690132170837743111943456413516176619314623186213315123156412264783176622241882766468071444376619363128105713071951101933289256754010261414237623077075331617628318827664636211816151105519084071356553357782120501902396816151540186304411404663251392240435837136288276646105676620502103215371115620841455302687662668251288134227796160386819051135088276646742143270251117875104141197301901463721031710930411974125695668901070379703119419291744170265057232766222413704747613037194111882766464527221062253156706469414170754015167576637127504788276646127504754013422423156706746305119381170349071131110100901443071882766461568102057154014296190631515989511079518377181118487385111030775010159651043765165728932966102249707705296732180702409068193110411358827664630318123949734514490193781523391111719235730748522421337552882766463471069181421526523563129875140708308577181905684355188276646694355667785121311628152293720505715775398315256711027846718115110151191105184120527372115026431664422992120695457415601395725390731522665147310551828775050066232266515404255829943625110321537146337401962663126311096530413731171201116696715576198475184713688590681551064641561607153168859051794101160103577182962324122871601935109613131013324611979773515656702730911551111626516023397171611540611708508518329014522150424721288590268517691600174513156460117883567200772190717065119346049838213013810852552712315651307754213547937222983739293732790740561382272221019271355114289456718135148101962645516767664157262972140765251336471985144761787361708306365826108441130103207411701311170132571051113965937915171665166321513276747504372079687231827747575106865390321906441168993228932966102188213517687226931789624175372446573555198942416532056381893774321311608939216921296605195179711311232075369260510550913078211188683142708724371037962363159067708729022290219013217086139515631329108471038539202434564110013732935751903255631171143245156562318644207411701311170139877502315641226476044705001133215220544412811160563137741062528827664613015661281057136079889256754071509376230770163675882766462427581055190840713206835612050190239321878186304419576613839224043597630088276646325903405320250210321537185510127170345530866225702450138682512881342277961602421515172882766463044578211787510414119711652242235372103171093041197252354420761701689010703797031101956406417084417026505743751415035210370474761390222414688276646263472872253156706176802151675766371502075408827664614558813422423156706142262522111703490711318483710166138688276646920120307750905114296190631515914241731305492771811181531263505965104376516578158107613162497077052197507610388827664632357968043391111719235726873882766462589051235631298751407082638641478288276646140411931330561628152293220120926152893296610210199012256711096557071051841208815921311206954574152120221712071816819048266518815891312665154030762167120177511032153719279045113041373502222411984791790990451924641561608157385325497027256116941011604521324122871601521951310133246119471352444716265160961685930750851832901451521904246011788350435531193460473213047552712315651150349048929373279074056920171355114289444512553126455167676132557513364719851925311170441130305178901139659325940150437207968723134527116899324072611882130641193530722693178967353201190724465735389735144904241653205627513354077432131160893388447540129660515563117025401311232464191071516051051254119312701118893821455272437103796236314011032551540729022290211196584613951563132910847103853920290912910013732935751903255631171143245156566874804420741170131117013987750103312960447050011332152205444128111605631377410625210117289329661022589051213015667274147823607986169028129056715092452163675735122427581075351766135251803206835638576620321878100783495766138120711676626976300705711325903405320231933645678551012717036264317028662257024501386751307082421515172670677083044578250960270811652242235908351708252354420761701663242708101956406417084162277084375141503521050010270813902224146930752132634728795020970817680272914270815020754073092708145588518897081422625221114094119054084837101661386743201111920120307750905116124159142417313054922607021071531263505907021378158107613162702961665619750761038120601710124111710323579680410154012026873151161472589051213321420614026386414782912104311011471404119313305625337013811472201209261511631411019901222619203211519655707620511503111208815921312322026632151327674752120221712071816819048740142702881589131155180708307621671201776832427089279045113011723397085022224112075444119054091790990451923012241220411931711815738532549702725611620416775074128932966102242311413011190452132971178325115219511079170574713524447483262961685930763641206152190421701204355150435531611203155747321304795561921503490481075126454792017955641226474451255319556412264154013255751657662783212201904903156925311170329463051789061214211045970279125940192611471027083452767496679603240726110208630641193530232232142156567353201190123120315423515138973514490123412264727513354038642338844754088276646556311702540955878879124641910715155151450327732471254119312701282811314631158407029382145521487841183110251325140110325515401457662471209651119658492157965409091291178751074170614154068748017012043542351511033129166412264710117386423258905124293247274147821701204355161690281290561216263110245220110556590750735121086318902261075351766135251807187117509612010463857662056090621007834429851213112071167662689498791907825179151705711151447247708319336456716519081411907082893296610291752511382527086264317021049155298476751307088943329098791167670677081216263110509602708246784133250835908351708851142702663242708514238115741622770844410327085001027081436964153793075213514238115795020970826633222413371193171172914270811742841790122730927082817281226518897085074141198140941190540111021742841790487432011117099022616124134114626070210750741907156590702137224805195056270296166563037712075142120601710124111710513201111101540120166471071511614756170237713321420614011112011270291210431101147162317512125337013811471333138215531070811631417883077913226192032115114243141726205115031112081775627232202663215132767471861210204755611539879132289329661022421101148740142702157931551807083613166832427086461025301172339708147110128212075444119054018011645701301224122041193171131522924641110512041677507419312568113513213519747242311413011190319320501107210385399035741971178325134977381987731554257054057422753779151107917057263124750288814906134547556115398791514832623482223115163641206100261156170120435515113171761120315578860170695561922247118110751264547945224223595564122647556406955641226415401132903077913265766278321220190490315667262907228932966102573511132329461034449061214211045970279134714892611471027083414122647674966796032634124102086989116711905051232232142156567308019312701231203154235151185519073012341226476501536290813386423335278110568827664650244256955878879134137111903512155151450327732473041101148128281131463115840702195110110381487841183110251325120016656145766247120965175114792157965403510096117875107417061415403541170120435423515122112139215516641226471422221017038642315673074142932499304747170120435513518047471216263110251511188201105565907505201114401086318902267004723915056663114132718711750961201046340346560906296160051100042985121319209099089498791907825179151442477151447247708263282140741165190814119070838379645631540917525113825270843790119104104915529847210207101926894332909879116796551162321216263110119810843246784133250835782091207065128932966102122259178851142702134752242235514238115797676620444103270814814614369641537642525305142381157661309057026633222413371193171110809032120751001174284179012279901070371603128172812261667662050741411981016176111021742841790481165890709902261046965703134114621913096507419071564014609622480519505692736303771207514230139751320111110532261664710711301106441121611256170237775011014247111120112702542110674716231751214771101032471333138215531070896045192100078830779132351155490142431417230644690328177562725480466867186121020475561153987913259925128932966102116161515402421101148320157935707736131664348764610253027070210714711012822117402007509035180116457017722218011060071315229246411105114611012419312568113513213519747689057674070441319320501107210385399035741449211379155634977381987731554257054057422753779151443710412263124750288814906134547556115398791516890101679134822231151176968081002611567737522215517251131717398222518860170631121222617134620743941702193122224711811072122263121153844394170248945224223549171631325155640621112011012653711329030779132715211325136726290724411102472573511132252510324247025110344490171171127222202893296610296135671931330766100766293471484595445001114634141226471377878231846634124136126163798911671190505118522141711730801931270105510162224128418551907308790725650153629081346365133527811056677082013150244256677083845734137111903512140474730411011482690193781134195110110381311531480518120016656377245614675114713215705181351009619035153713541846148221121392155148812893296610220854911114222210170208412264715673074130710099304747110771056901217351804747347701461251511188647701181752011144032651032551098791907154070047239150566631141321761026734034641710245465307797961600511000145251155920909908214374424774377023772632821407414070229338379645631540131770210743790119104594714821020710192624471038965511623273471961198108435192951627820912070651349011910412225917871906031102893296610210245501122134752242235408623701976766201836615666296752111481461537992471551684628136425253017969137661309057013207021071080903212075100443702293799010703716031598951730471667662074020051101617651790901221165890161200104696570313404652191309615276329048401460961617289273640046530139761470276125107047105322679161511130110644112161128486681577501101424713402521491542110674744232137314771101032474527227419604519210005421373511554904477642674130644690324201659012943472548046686714220714141432599251102018211616151540855289329661027370210732014047222100415707778905081087264348714902221191822707021079746137712117402007509035998323977222180110600711141112391461101241705111491122689057674070441655111132484492113791556592222167484437104123145055871689010167912331409331769680811259517417737522215517294050407398222512713611101313112122261713462074394170219312227136111051107212226312115384439417024822316807824917163132511283222472111201101265375104977152113251318022144111024721326771225251032424702515561199019378113417117112722220231171264540961356719313307661007662918612102041555611539879132459544500111469776752121137787823184616071661011361261637730741222103302185221417112009019373010551016222412842922283028790725203140741463651150704119314028932966102105919351516770820131152120651677083845731422241514047477574161226901937811341307027713115314805181501107151612377245614654924171321570518145272251612190351537122066531507184614818929146570905114881625728156208549111701942084122647106184307100709744843151110771056901217335759014452347701461335754122647647701181750511190810335753265103255109879190715402415090247753962511374871761026731414941815131417102454653077979885641825065745436903077918070145251155259179446669029628932966102155422968214379845941769032454414791780474377023771866475664429157173149953582066123322484740702293248500456796695982519065745436903077915113177021072488104567561153987915159471482079101207501251013165661010896695288814906131244542471246224471038811032474702734719663810321210519295162364119313734901191048109127667190603110362522253102455011221872471103142304766408623701215811905671150170183661566629675211215501905671150961537992471551684628138115231796913711376828932966102101176213207021072217831443702293114720559895173047110237193517402005134975011062517909012234884140621612003399041772702150112340465331904113415276329048842766472475116172840740046540741614702761251070474074122647791615110796321428656848668157507176674821340252149111910309012244232137311016385909145272274111910809048542137271264477642674120412264742016590129434764251142207141414321152971020182374647418289329661025961465185559614651540737021072011405963651140472221004192686789050810872201130692540149022211918220112076657154097461377139799832398601201935111411123932551014151056115398791327051114911228257804665511113248897211374159222216748640765180289329661029390842513145055871934122647233140933186662511125951741131110509441940504071451555727136111013193114902713611105115110422218011060071223168078212709079113711283222474622015529728932966102103902196955104979726022818022161015213267712217742243167556119901937811344437062022032311712645406869014279901657411861210204155561153987913297732741612977675212149184741830160716610121112011081837289329661022801267307412221033021225661204579120090193730277457912922283021982322031407417571615215070411931402652522001059193515163411381511521206513881711130314222415153241773175741612774113349137130702775164177523750110715161277411334913754924176446124904527225161252566340147022206653150719266649070014261718929146570905141071561752222541506257281564083713158027019482477612510614110618437110125220070974484315150846532893296610210490402390335759014452136611130335754122647165665051119081033575507644702415090247753962511374871310735807631414941815131241204777130289329661027304150090988564182506574543690307791807010870211615009625917944666902962059010635009615542296727027350096984594176903245441479178047142204777130186647566442915717314995358206612332248471429024850045679669598251906574543690307791511423624881045675611539879151742164500902079101207501251013165661010896695288814906131244542471246214230090142741289329661021488990811032474702289329661026381032121023220265833641193137289329810912766955691362522253640381263218724711031423047666813316121581190567115017092237155187912101555617913002155019056711509671289329661026601995212314547508115232964038715722210451627911137682224584515290884761884316279710117622454573247901911067221783116231139570411397155773077915111472051020773811312339116215116183110661040110237193511984547832956892146901429634975011062636472363274047987976674134884140627887843817738110416613710401839033990417727021501122241089213810329055131751407083319041134636311062714596328427664724751206311061874596321879161147138142916198751407082893296610257810892170521384254163770892138987911377084071811115901054749266407415097847104961012152897908791674074122647358311371906713036670749411212151252571741590615107963214286563393112512062130507176674823946772477908298907979020916930828013719514290122711910309012231432050110665134521773766311421481559717089534775812913396993333510163859091956190192907977907412628414217111191080904859649761655101119030811729078845114290946314858210329010374127126255510516660903808857590273488127110138812129051057204122647421475254142122441282588587865877013164251691965125918968174974141329035874170613830874590963149128881490613454755156115398791508289329661023323278404773173573178405717086620674228230779148247901395628698791122192121883415711012514983166511152979484567103290216136517662414125165676906679101679137464741872946540985405205401604495166875611059614651150320521750813220214241477540124103290419073074111596146515405963141141611315022074120114861769615490965041387251032901046116622213170720114059636512555105152114129211137110111554056143451469268610918145171591413281140311411382011306925409165104746241147103853910121416190131711311599915115910845111312011207665715403929077689131033215475751661817072893296610210629055753971070337751518120596578942451131451118739768415178001032909680902932241879572819301264011648601201935128944011561154834912079045620325510141510561153987913213145371556861112047217019100531122124962418128932966102691964528210267465735307797825780463442814187911001705614415709283126211897211374163728171591424130737730137483371707123548843104640765180596497139873751394993793908425138211030464414157164934122647656112454886497251572235142698186662511062110322676316332560413111050944133046102247177961016791145155572321101370671705614415709283126211931149040645371049613163745696142373211901201904203157514289329661021020262904379096181550124776804762324063190174707151104222180110600711606497406311358255241624317071270907911371102749781901342141540753331161327074622015529797619075076901802075401039021969586519046845411646270797260228289440115617048327312490810790251618273414951341764251141011114611181116131707289329661021606497297184121366260418501468011611570707610152976190506769068354021774224316710362367810610274741841422905714312117014511121701017443706202203249137681901330221496836648120575051896137346710642181707686901427990165741306784314290211977791110219751407411210137977791116289329661022441032909773766307905165758711250140104131575952958142421831003261181116631707977327416125408416743750139121215360266414366789875066901804262127661551408531419013133124810117436511741953131134146138623138901032852818181322281155191201103428011611570707491847418301314537155686372471242491551301468329368919020038817797987915121112011081837956190954193411352241130724624640771113527072801269529054065917066910147750769088654012256612045791731309837526149390150482791580140277457916601027716473062711022401982321309077516877713119215213830711175131166511811161317072893296610270241268750621272223710813130757146561311541817222281751387571615212426609225138130757146561319241817222281751382652522005356631151581617083335115418172222817513863411381512463247802141413821389631531175739570371032111076631307571465613128932966102916510418437296727191970707388171113065619041728648766387708801014261532417731596111111366476691590267196578295893510719657288956937124890571713057268957507690198560540774113349137206512114176903595406691236135390711109011351656516417752376561122621247118170664884310141388724191763170892138987911377087741133491372164732641150665120638644612490101632455710232454206311071412893296610214881755270822817512617159179476612490706202540724544888201265256634014702596314166110592418466720160806612421411301295332282551801449266649070014261769196452821021471034742585829042410715617522225415069196458910267561153987972893296610211664971501713288654064414157164119171149218498343716121140663253231312626511352707408371315802765497941540275902511259371156163171113527078247761251061415961111113664780430541270187629655906173215075019090211218747624548746338501702881753627247757168574155156226090150391126525198652491540371101252200406453780416577011183996559087916750846539863971162471112325142131432967417219521677494290531504683238190247454116462140104904023901624125134766195321110189144289329661023921106623573073574159151307791110101413290841557123466124904235977136611130105773427180211018041008290321901109159066975110136688433175123679081131656619651051132906674986150130155712351391722243372161884314613866884398751407085076447010274978190134214154049611674140131073580761965105116273111131303471341839051622722113818411352241130724624640771113527072893296610225551051477577142609072666124837236904715113024120477713010641507270544438511867304150090206433027232051804907711471151113203658205287919624110142299538108702116150096256518252962712356675315211092136275817190130205901063500964218066131107251301512658171907270273500963283283104746341261139140289329661021623176632135390757808798142204777130206311161156217664234544147919039075215571234661249029659771429020678362367507411087319083790354190712014714025537105541612667533213907106345472728162744641136686700111535108921474181390201476536123718111088472991422063074111061913004719190110411836414861423620678368106612490583514989642742164500908177342718412021493225433198791171114230090142741105194170672321906551100722629081090170975165137454369030779120411488990”

4.2.1.2 Letters paired with digit sum at verse level

Key coding pattern: The two codings we will observe in this sub-section shares the same coding pattern of this simple coding that is considered as a Key coding pattern: If we take the digit sum the number of all the letters (which is 332837) of 6348 verses we get 26. Similarly, if we take the digit sum the number of all the letters (which is 330709) of the 6236 numbered verses we get 22. Then if we pair them we get 2622, which is multiple of 19. Basically what we observed is that the pairing coding pattern with digit sum at the top data level has that 19 based coding. Considering this as key coding pattern, and testing over the full text of Quran, the same coding pattern exist at the verse level data too as I present in the below codes. As an additional fact, the resulting big coding number is multiple of 19 itself but the reverse of it also multiple of 19 as will be presented below.

The evidence code I will present has the same pairing approach as we observed in Code 4.2.1. But now, we will see that if we pair digit sum of the number of letters for each verse instead of pairing them directly, we have another big representation number and it is also multiple of 19. Even more interestingly, this big number is multiple of 19 considering both sides. Namely, if we concatenate the paired numbers in natural order just as we did in Code 4.2.1 or if we concatenate the paired numbers in the reverse order from right to left, then in both cases the resulting big numbers are multiple of 19 as shown below. However, the second code that is the reverse version in pairing codes is against the rules of this book and I just present as an interesting fact but nor as an evidence.

Let me also illustrate this pairing coding pattern used in this evidence as follows. As mentioned before, it closely resembles to the double helix of the DNA structure, where one strand is the digit sum of the number of letters of each of the 6236 numbered verses and the corresponding strand is the digit sum of the number of letters of each of all the 6348 verses as illustrated in the following:

DS[ Number of Letters of Verse 1 (of 6236 verses) ] DS[ Number of Letters of Verse 1 (of the 6348 numbered verses) ] DS[ Number of Letters of Verse 2 (of 6236 verses) ] DS[ Number of Letters of Verse 2 (of the 6348 numbered verses) ] . . . . . . DS[ Number of Letters of Verse 6236 (of the 6236 numbered verses)] DS[ Number of Letters of Verse 6236 (of 6348 verses) ] [ Number of Letters of Verse 1 (of the 6236 numbered verses) ] [ Number of Letters of Verse 1 (of the 6348 verses) ] . . . . . . DS[ Number of Letters of Verse 112 (of 6236 numbered verses) ] DS[ Number of Letters of Verse 6348 (of the 6348 verses) ]

DS stands for digit sum operation. All the rectangular bracket are concatenated. The number of all verses is 6348 and it is 112 more than the 6236 numbered verses text type. Therefore, while pairing both vectors one-to-one, naturally, the shorter one starts over from the beginning part of itself and keeps pairing. As this is the most natural operation approach, it is also the default way of processing in the R programming language while pairing two unequal vectors to each other. Therefore, it does not require additional coding in R.

If we use the real numbers in the above coding pattern, it would be like this:

DS[ [19] [19] ] DS[ [18] [18] ] . . . . . . DS[ [13] [20] ] DS[ [19] [18] ] . . . . . . DS[[98] [13] ]

[ [10] [10] ] [ [9] [9] ] . . . . . . [ [4] [2] ][ [10] [9] ] . . . . . . [[17] [4]]

[1010] [99] . . . [42] [109] . . . [174]

And, the final number after all the concatenation would look like this:

101099 . . .42109 . . . 174

Below is the code to verify the coding pattern.

tmp1 <- unQuran$vletters
tmp2 <- nQuran$vletters
tmp <- paste0( sapply(tmp2, digitsum),  sapply(tmp1, digitsum))
head(tmp)
## [1] "1010" "99"   "33"   "33"   "1010" "1010"
tail(tmp)
## [1] "85"  "178" "118" "138" "112" "174"
tmp[6235:6238]
## [1] "210" "42"  "109" "97"
tmpr <- rev(tmp)
head(tmpr)
## [1] "174" "112" "138" "118" "178" "85"
tail(tmpr)
## [1] "1010" "1010" "33"   "33"   "99"   "1010"
tmpr <- paste0(tmpr, collapse = '')
tmp <- paste0(tmp, collapse = '')

#code test for mod 19
as.bigz(tmp) %% 19  #0
## Big Integer ('bigz') :
## [1] 0
#reverse code test for mod 19
as.bigz(tmpr) %% 19  #0
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 17580

We could have tested 2 in verse level but this 2 in chapter level data, thus we have 1 success and 4 trials to add to the global counters, which I add below:

global_tested_nums <- global_tested_nums + 4
global_success_nums <- global_success_nums + 1 

Here is the 17580 digits length big number of the evidence code:

“101099333310101010883109311971167116811118131161376117141110147101279121091410314831881518121510121110101161076377312721292891487141476141561615616561051110111113111513121551285381034106436931491414101414109147997999911981188881689161296121462149299391039107967866896129101291089118611561358133893109810881781117131111131711717147101461013691313961356751171111411104410741371313111371157115131191311961176679699991691016910109910179161711164111049101291212121215125158558125912691761017121010121010810168616126151214155141751217812128512751371413101412101412914109710671461414161415163151434146411681112811124112413216131216812481141411714137131313139131191211712107510125131291369106111051195129111291111915111315613561251812518253253851188117847741171511101512106126614651455105151018153181031610151613151613111681112861213681314811141211171241784168151691515991599799711912114121041610316610831161085111710951117129141171281487885898958959168559161158911111485111614155816111512891112121091212710111297811691089610106916108616168871614810731461063146561114756119710612971012127712129712127916127771697978939381331131113811911781191171011711810107118181081111186818115614181551114915131179111397711139875131288514121284141412174814101716813101216111361215111467159147789971181098115107895117596116566668618616815185161015851210138712121317713128171013481210144812514881051187101111971511119151514111015914151089111511851114111053141010183910181814911181214111912141139171411133171311431213841012710138161015710137168159101072081691010820716910781371191379131311141312971361471218786117918168121111914161512131114141015713714710107871574101589154413157910481311714101831161481113106118611141081196314118109133911121012131391712612813101713628111091315214111297151614111215791610117158910101071181010410511151011475131513113791310131635910109169516109913971699101387591410981251014991612910397161294313781210441315810108411158101081311138910111312138913111127815139197415491195412461110510125613101210757135128718795158121859101511121658101711111031611814179111134118149961111411889136811811118713128181511778121811015117118718910511711147169135107131481611135101413158511951214121510599512812810149145128108914141421214109913141128145913131211118175151313121511417171513139158461715137911817691513741115177971310411159787510161114911810591610141117101391101416711131811414106711141812141610779149121116376915913117366810121512138786118512112108118111195111510111114119912117551171411914126712513731161412691261353136101289861051213910168689101112109716461196118109784111114614859148811121410149561458312410119136751137413115139715111178131151297151311187118121171413911279831131411915128915314316111415118815714141681481188479146818148846912691121448861412159112154108214515517151110821151058791112811111510981491112101171579141411115106777914101195146127129810799141212141210812712951251414104125121257510149109495111212710101295939711912121091275638749912129771161281341591512107311212111311151315131083825116117136132812815586971461521412915118109814111561499131151012881114689121313512123851488812121361253155108128612968510159109124612988111012915984612148101114121015138461114810161431051384711118916638558377117910648451035777710842431014557471281213316141151341112819137166111313181198491371061213111817994913171011121011101715914991781112106106155142912810121069616552812141010107916165510891410106711166551015941046911461654159454891041016641191051881210111076511810518412171157155128175104717115111561221061771013718114111363296971413818164913931291391414138141679129101211131514913714127131217109111415129107612141316171697141312131056111413161016117141310131158117131010811814510811138107710881581251081313910117128131514125101013991711712111361414511101291417167121114691431111121814216812814491638111518112485864816381015611134125768853710146813512771487587141410895117111412711814149109981181110121011614109109108108131061016615108106108108131067161015138116128481010774108131111101210413101178448911141061016131411158845911141861116111413151389591114182117111213101312916971472107101251019121416371571010910115161961493415181059911216868931011412181455915268128113911612814145121513651218119996108171410129136512181299916106171110129969126121199166615119121393996811129767151291313439988101213767912313114699871015138614910361115612915711151281414810126101561213157111212814118512610106101377101213881135661310610876101013981311610131361589691089171101113101013101512911101191281417121010138101110111211151111251491213107881141151951111156914131171287413510910116111361214101114121271113131091096121391271010147121111101311999712591473101171311710111110957859141431211121367121141095128109714312101212641224119612101011715310101612114102141110641081110156109161311810121421094108121012614991378101212214911102128126147915751091210144114210896977153512914101410747491011913927831012141461412777109131117131429871061410651212714105131117714495710610101457126145551115712485121011102141179675659158121289128111121111891276616938212891189118111287129661612392581311998871267139116912291251213129108117116913911129821012161261212108119111393914121386101616136612782931343914111313631691341066147821031741191011131373992496314138111013177111110713137109132891732131111101357131114781310109139813171221411910125513131488410151015979513712814991112951213168114141510151371255738891411897127161011131461071391212512368914108107676105135647996127123612941091010676125115104695681012793101234119710776129111110667568101299910439114712726696118697106210109592439248124236864899101010281055112538268114237811459810410485591155786610115237611105681047435391056715610109593363102610105793103710106615410691499333424101451298101178108613411013641499123745451410121384111581481713101813941391012107751055101013104815101415177107899131310104101371310556101210781110715127771091113131015481391395761512117911127111211717108116134151088912914711152111191212611911101778146449101785121414111112210111312465951013711141541297171358141111912111061384851251213131121512128771388611139121110688685121412121342612138127281368136127108814645101014148128476913512929136886971285141041210141478988711912512969136148891212351510131210141376998101111281286101314147812121131115513131010135615981091108128151091477121291110111256136106510151189912108124159957312139810101296861161310611119612881149915513341378101099788113139691166158411991315101384976107937128123159129810106101511411971371078139106979312121212121561278510510511511127107978133101691291012312131276975535145115612910119118103121671213101331313137796510331461196791111911111010121171013413121313136746131011376991071011591118105111106415121313146841313121197119111071013512168125711461115513101488713712399117117791310127671287714611610355101181276712311987137594101177713811796768385111112121067128115851345104911871013611109579811812115126107712875651041010697811104611107599111171295116871712871261010410466761154711976910112759811786171188125107494106265567491068103211568147106101158851271099101210522556441010986311176114910810153831221059212105221254441049106318791159888111333821151225101027126464541410331386912151381083111431087111312756101071361561051014123111386212613910631214121087141310710691081381581051012128114832969911651261228111481011108968881189561213844337911951175116102111158131188136128141189166513446397811135871411610911105813118121361210148861685121084967948101388111411614961088121112121164101389610831278991175410101081011111111147610861210129117441349101083107795118551012101010911611778106611106912711412411106871077959811561251015976471184671111612126113121311561071276989811116115121512774511746751151211673413145810812106108789117118122121275597136115359111575106471417811891013106713910718929127517913131111173899151351369791761179161366913410515979117171710131411517148891113613691099627716136119546595107511417910514951914583113626310693210771361111510649510954459115119419121035935332103126831010776610113105465109645510114111247129313912510311106123812107766121010310596710563591064131211799101351231061196631212107661112910810891273511349461113111149610351234689865122108691199888831211371134114101171110446437127498687572486999118685310111377391110105710101143414711799761171174413611961141014611513101813137159710125810111110371451110915713111811941113811568471411117131218101313151179121383111110127851210151541391899311148851081171211117612710111361189121310361111125841214151541191591336141110781210811131210111265713111561081212610136151110564151481514111015101312641113710121087138106121051113101561081276913715121056715981114210111013129415138106109710886810911310106989779117121211537597112281151369515281165971010858394102351039129107101151261183858772786546556271185127410852334152957381271010106566285858571172612475566711831210458102238151094710857810106769245855541162812107259691143101035710102381010104510258811103799645885448688610721097994710431079101133106106552884113359268568741858969741087397774510894113326968588249345112484627513599695488435757853824939259481183249245118444112356311946851081045511538237249498584511736411245988410112356911749841010107510111038227647488788557364113411968710112957910711911410101178109109813215614778137788593114631411810961071111697751051181171012111586911910131015111414771327138796116614144879810101112611713512548137512171576101115101210811814117425133756116414104117387101012911111371264121365101712781041571298786113410511313514111041110911133137101010911111371361012969101112138648799577612102314101011101310141106111291213101315109107116138131210129799111413146781391151177121021114111051016101011061212121241012151096786681312101213715915148144771310116113715107111111551316121012101412612943124101167896613710913715315108144771510461131015771111955131412612131496891510123449117713996573911712314101514771615746119101774111797514148610131091181115111244109147713891055312111112101491510711161173699417104617678141788106105118117118471013141071286104511121311101013911104111611510631191249108676788171289615513813712811712136101112156741011813510101310119410161456613115121293810777118612991315121381361291171296131141510715109895310151012910103141164131555121610133141011751116394131212118965997796131046101215129109123111510124101431411134615145716913151412113581810737481210119985896717613109613126126101012121181014411143141113136121497119141571216310815810109757118710119168128761217813791113861161110612138414151111313111513121299911914137181615107157108911561110710111016812471412118127131114861151110612137412156118136158121591091191213818101515797781211136810810101012894314511812151071391412613511091210761213614846118141517107118121181210815991171212113148138710912139831051389157710971291311159910126313914748113141217137981311151213810911111812121091101491397891136813101113393716102749511458931233996798931312111312910131015513101011111018111249131089109389111631311119353516810102114105124108133835966499961311113128106101258101211610101154513787105359911336111291051353871061151061211104133895665410986911738826412483128641095105871071054589103368126107131036796115116811548369106359107829772811106244445310874593105810107106428410635810677610361098114111081053856410533957522722911462464105810772510325101010766927476459107726638104824710910103551145573751510210249246210651078107921210321110610565937871043910792106689410210759101010591110597574181091024102106310453741089212113111136105255318510631110891010568971021065710610492109911574108598281031053645374108624111011835106211551451266117891045885782962766341226911116751075128586311566351271310610263410104810586101195124812106117594488453839102362361211691146115373124510621146639125139642103910742105861089912582108114594988411393910936212691159641411435311431013274661391158934141069774214586108997532138746913912851013114959149869121291351361614741157111431413137761013611586391411657104121478810691471431113577691313121051413241151114781796121113131381613711118781410149131471110136105861199114571015121571281162145141011957769121341013141010122161151177141756611713108913811108881010592148111213810158711891045761517158121311102851210895756512641013610131261675147101455136677102910861068121011592488121381315177481310351761117987131110158121210812518575106710166121376576148106551316610710102212101068612129111098448713413111764101312321731179117911815912810612141817711108761614128775156118126125816101010106210121410789125912101181048794111156101011121210821231079116911814978861114141710111182641438978155115125127891051013612101014107491057121211810681091111659104114125812129106936141131487118111113144104118107294838910845105115371397510139129106106412106791298116161091111649747411511121598693814431181011711413124449867899878101094810211437138751089109126561012268910971111161198114487673115116159899582441110106710411121145956685910791059781110321497186578210101210521092108410127711111188241184673175865912995926491066710811111135105106551310119135157141173719911186147152710710132109610241112977111089101421811114147131712875712139995612976127148911103121061012511131011813151561411713716981188914915147872131010368101228119997121010951451811111014913121297107613991155121274121214591410101210613121111810128101576101113131216884109813969714138727106378212148109179712710551451711410396121591010176149511125161210410129581415101210121381110811121310910578109139125884692139647101337107969712210148107175757953143178453106715410610717414115612716910510991387151112512989108114134941045684969653826929910451023101079109812210108571051051195343118125510578426107841011967779753951397101155491197811101141241043410674963693724969110954241047510188261085910310711458421111121156512810261058610991074747103954951011594411107411211912310636101275963695774310765159442464159198768869535794783291191196512181066851161196105494101012954651011296491034421097366668124510666559731053472585241226101692987484645105291074389793985111846685117111165599910712115565105256895344710571167611864111076456911310594822832111228109682889108410434610921101488975388711847625107611251093910781195105551054810534971058111079111061511107741064111010991084210381132108109108181097810101031010561091011012810955108571088710281010610210104310109810941010581010491053691105841059710915910874103431059310104210583371071071010191077810710110958109102108211075510153103841078210110410347101196101046107881089101065763155745587596978114133345631010323510387107273102987884741109781092228101974521831314778212174438710117611101561579878101066187103105107125689596157131111112311411613101331034109871092103102148681041341110771010427210101099410278517114768610612971341788107712111015915139117141056918610121012106121561594914158135111112101191110132131510131011489777951010102141261410913611117910124571110710119101012765810971614166961661096138175812771291099121313118141451191368128121061515615510144131414810515111210169510112111561310111089101179710551092912151412913661111910128561114108741116101612668811961614167951681091012648115111297149491212313889106141111101348387107151361354147131014910615412416125511810711468104106961169510159949415910101281386511310108866145812412168165105698811116714117115788991294311611497148410126388792651191014473771073131113543108771079866424512152847845894564696354159242489910782865836108856758123128835254988711876111111575819109837644377841011016689782658911447475103361195336837107586682653110244884569458469437411582321687910792368826584547587338231326488810971085681113585611010108107645367841011217613998126128415484654310699939683710356698663331034889456841084104664478118843141637710891328421574749577831241336382819110255891041310876910410310163576983104125711369812512541538967491089594938671104310629168383236859559831094646684988834514210832758813254316787899738818433338221413295898491047139548381638710943114955186781055531103119117149389564331164111441052614841048424615655953594616989978536582789285289375833611878693328983373589274839978286911101047138578687698110447111935884751075738102117117147329106834113471124756651094349494545136351565941111395915745464847495842593798731011775653729973877589179889871027651121087284786272981091748751737854451079788327797271251058742337121726958983296935454363317669511113351151108454849434655435103191073107755555759577817485159585841027454268102146810292981997985567875564910109910888367295271756577921037121326948885246539474264367368581736161984578794376554310109110104109327357565555537715410535105105544214944691041364106959819989655107648256659410994848116112455767462779110107810321356742810594354967528466531828579656692437674447453471029510104109325327661010658553174541010391051025146139443934337486857869584645410676482363574993454811611848596541324710151028832110107537226102933441665682625218265593551056726310634649483574235510610636552362104641068453112444410599522612643742343333710878873655843434966103668239377496385887648483935513444103552986281097638236926354419108626524212983665838565173621033106291089511451023951561266611523927474465443312444104425299266827457102749383810678853759843834951036532622993764667858776108474539355147410321095691658998610883210292645547938627554101891035610848366110362810632109231069510911652269515812868112104210997373410510483310941147462112891161386775111014101077912898106148358718915412810101141056375327212923910861467714106515716668571051191151311510127510823910641061359914814101010148927292949511108783861610971256101482109591031010493710668106698126101092891136651013589369210681085178118138112174”

Also, here is the reverse version of the same 17580 digits length big number of the code, which is presented just as a follow up fact:

“174112138118178858101069236891355106611389921010126986681066710931043109109521014861012597161086838711109594927292148101014101489935614101063982510127151013111511910557681661576514107714686910231297232756310511410101281541898735148106981287910714101110756713811689112627411494310831041053437971094221081186812515692265911510693109221063810621036136481085610389101547562387954452629210831088699581669952101037414559353748461077587866643799222653365104983439875538867810839374102577482669229254441044312435446747492231156612615695235101149510829106332103617658583653698124252268691041546392368263978106298523541044513353948487688856349779323683661096343484553687781083733432374432661229559410441243145684104621036526563610510354257839464341066372565103559658221252668651644332961022377510102183285101014713254968584611811543499743536826467410454658697885867433343944396114255109101034104517538565101066275332109104510297103445474467372469569657281853668452674935941052874561332810107110792746675745112116484899410596625487651065899981596941036419104694144254105105351055471375555657535279341010109110104355764379784598616173818536674326749453465288486932217110392776575715229678388910109910645587675598971998921026814102684245274105858595148177857595755557731010719103355465349484548411011535113511697631634345356929838995261712372374585101227977732889710745547873518774918102927864728872105117610287899817897587739972535677101173983759425849474846451575913911194651535365154949434945106675247113441183106297371471121181073755104788351971144110987668788571310411106928789983749258733398283369781183683759328859278826553789998164659535965154642484104861524101144111633649538149117119103315510578865195114431098763818354139479108489953241218233338481389789876731543281582783210514348898846664943109855596823838316291064311067384959899107496381554512812691135741231098763516310410910761084139105825110192838364131283779574741542281389710371416438881147644641010884569488343103366986635710839693991064365845441128126981397612110184675364107108101061851358115610897810886413223387358474558268836921077916832821157443698445694588441023165826658107376833956113351047471148965829768161104107837447683109195857111161187711884925358831281275568861083652878910892424594135964656945884472815512246486797108731054111331310777731449105112679886310128471449611311949128978115117714116811985651081612161245861486108310511868131012910415499915510696116941081046711810511125416412615910101471341413513671571038481013111161491088313121249149971112115481269108105167914166161198866161216104118714106118510121196111361291514912925101059711791010810116131115112510169121015111051481314144510615151510681281213611914581413111213999107121275881761310916696166161497810651271010119710111057124910117611913141012621410105107977891141310151021310139111011111251181314154915915661212101210610918561410117139915101512117781017813497612610681477151781029410910107242101077111013410468148102103927109841010313313101161141231111311157969568125107105103187661010789815715611107610118743741218277141383214597101282210978109414788872931027107871033532101063453313114786959875574553176651010898107861010461011971034410110210784103831015510751108221091081095110710810779101017107107103358210104310593103441087910915710594105811069539101048101054101099810104310101021068101028710857108551092810110110956101010310107810918108109108328111034210899101041110674107151110691110781110597341054810555105958111073910925611107257684711885397881411092610341048491088829681022111322882941051136945761110641187611657710445389565251056115712910995511671151168461118853979894310729105454648872969101261224852547533109755661064581266667310942349106429101165541291010945461011911685661810512969119113278945753698876989115642444595176310745769635912761063310912211411107411941155104995103474710799610586101021286511511122118445711310910856108218510474104295110694972933696741063410412411411107811949551011975133975797796101184107268457510125118435311910510557108210812109791010235101049992263865694968454104941381191098512111271513899510910716612115414717610410715106538431731495575771781010141229796107371013479621369845891291381057910131011121088111213121015108149510121041612125511149176101015961239410171114555710712179109148212786371072138714691399841088121613131011761015128810111113121061012141059121441212751211599613107971212913101411115185141091210979981112281036101021387147915914888111691371176141515813101111131256101210103911148127761295699139712751281317147114181114291010871197111224610109132710710152147861119971731411157135119131055106105351111811710669106492951295986175734611824881111711127410108922101051012210786518971432111078599101075968565911411121046710104112458999861551131167874481111911167111098926101256126109895108771343211810941010789889679844124413711101111843814938615911121157474491169111610116989126712106461091091210137513937115105451088983947281041141013141111118873141411366991012125841241191065111110968810121171210549107101412101365109107851251251181597384142611810111417111486781491186991110712382121011121010561111948710411812105991278141010126210101010816125126118156758714126168711101771418612810912815911117793112171231013641117413713488410991112128610612102210101071665136581061457761213166710106751851251081212158111071398111717635131048177131513881248921151210686101082971067136551014147756161312610101364512565789121085102131181217156155710489711158810121381121459101088108811913108713611561417775111611122101013144101213697795101151421411612815715127104591111986105136111014791310148148711111378161313111361217978111411524141310513129137657111314314769810781214104571169146358611101376137141314371111574161413613512991286149594913115101281396974138327599108861454277691410348911513966741323101145343141164599111266293910931138498944581121058912896105821074910103429651391263462111064531237115469111166122336102393845884459117106812124951011861054810103426610131012735661156358128755106711116912234662796825788459107861112645511156251083101141162108745364533108108259108741159921049610710652107108956101089111063510185325105361111113212894103745310106102249108104157971059111051010591071029468106921073910487375956610111032121092107785101066224491021021575735511455103910710244881063267791045767492661071010251032577810105642446911222752573953410563810510841181110936610771065863410286471010105831059741085344446211102877297891035106698354811116115966710371361081236103894510510787105954108631248412268873911861095466953841311106125106117103813510512961133911595371078513541011610121181012561081031211116139949665983133108124105114102810516539311113131169138109891310491112101811111010513101510131291113131293986799333128945511492716103739111313106811389979131014911210181211111091381512131198137121731481174914313126910591119137121097791513810583139912710138148113121211799815121011881271117101415118461481366121079121101351269147131510812511314941281010810810136121178971571015818121311910915981261581361112157412131065116111481311127118141247812101610111076111158971071515101816137914911991212151313111131511414138612111011686111379813121776128168119710118579710101581081637121415119971214136111331411141448101211101261061213129613101766789859910118127473810813512111514913716145615134141114341010121115123109129121561010461379975996118121241339165111171410133161051215541311631410101291510310959815101074151311967129116128131213131599612118771073812951213116614510169410111013510813101174156111261012131171281371381559612881778768691012411963510161141111101391010131111124561012810713147108471181151161081017881467617104417993611711161079151014111212115310589713147109441112111511810910138614147517941117791061174161577151414101231173957961397791144123151089961314612141251395111177101511346151077144108315715913710613967811641031294612141212101210131655111171115103761110117134781415141591371012131268866710912154101212121210610116105101110111410271211711513978146141391179129121081361371191015101013121312961111010141013101114102312107657998764138111291096101213613711111091010137133911111010414111351131053461178987124158101271017651213647121113911101271038117104414116563751342117814811121015101011761715512137481251351171261011810794814146661179138277131471114101510131196915812117108115115107769111110796810141163114938578137781471561329891081011710101141191077995112710681193441136578578887464278210310117510104109874911562310118498451126473511848549497223381155510410885461196335112448451124493211848599293243885575743885469993551274648112459324888596263341189510747739874109796581874688526593341188526561031011391010743710947910972610888644855864993711108825510104101038102710351010439119625107812624115585459276106810571084710981523102581043121186756751242611757585828666510107108127395152342385410127857116255466578728785836115121011107129395102341039581087105911628515695138112271159371151212117799798106310911810861089761081015139413121110210111498715561210715913768126101015111310561281071310810121374111261013101514118151514641051511136610121210815613115712610111312811121078111061413315911915414154125811126111031213896111113710612117121111710885148311999184131515121085127111031113891211713151013121871311117148456811111394181113111571095117141031111810125710159137181313101151464106111191364411711776991171473411410105710109117313710115368118996948727568987471243461047111011114347111133128888999118621051286894612335610491111111346491133512789810910111266107121263966113105121013991171312649103556710961051031210667712103861211101031251399371212441110115564109655431010116677101083126103325393351210419119115594495510491061156117131073269310263631158191495514910417511107956554119136716279610969613111389148517141110131717117795951410913661613796119179713613591589173111113131797591292181071396713109101181787146451015791135115136975512721281271191178108106812810145413731165125116774511741271215115116811896912710756131131261112121167114611847761595106121159895777106811101241141276911106681077611911101012105108551179107831010494137491110126121087611141111101110810105411799783121089613841011612121211886101491161114881013487996841210856168810146121213118813105911610141187135811976344513166891411128136881311581111102116755111197933441386129511888688911108101114286125121169996324881112125108108158139101061071413871210121463910613212861113123101410515613610761075131271110814331110813812156913833141054646471210251012211582331138188159918731106494104412522105212592103123815810910114761116398101044562552121091010912785581011106147681153281010649675526106947451081211861778811592710116997711546116746410101012687171287116957121111997511104611107869101010465751287761051212111189857109611101387911104455135881171210612121111858376961171387711741059137871191236712711851035610611714877127610129137771191139712713881014513111514671125681211357101110119971211131384146131315126411051181011159101110799761131310466713131213413101311710121110911111179966113141036579137131313313107121216103118119910612115145355597761312312101212916931081397107127511511510510786121215121212129397106139787107131191141015106810129159123128377961097841013131599411158669119631381178991010784131331559911488612119611131011686961012810139312579941581212109911810156561061312510119111212779141510128108918101595610131310513111511312127814141013868121121011986913710141312151035121289148136691291251198798781414121010451412897866891392512913768481214141010451468871061281313628127138612421213141251268881061211139611887138712122151311121312585846131110912111181413571712915411141375105946131210111221111141451217891044146781017911611121211921111151471298910841561381117101171112127911117151276959138131541310111310977127715111078121061055131013741010101313997871015171014815104101351010575107101213994813101171314815841113810125145474123994141361101348681011781012914541042339314969410615106710103935710102631036939510101566710539357410468105611375210116678559115548410810591147823114688253112558101021010994886364281224392459109210106978661169261274791143910991012687566111091161277710119341012931278105669104115125761069104101293671261299475651361067107108914681231259127136101314101171671289141189385712513710151415114168121395111299814712513791591510410881314513125910141112213179891310108131471311571013111121317389132109137713111071113171110138314962499731313101111917410382147664109133161361113914433132978612136161661013814123913991181112106121612101282129911913116117108129121312529912116139677128899131158921236169671212881191111889212381696612789111111281191212881291565759611721411101210851241575115561471214510101065749714111751314101275121066147109814217131311109771276141414101283271391199107474141014101293571597961084241110149125101577961481221211101491221012789131491261210108942101214810131191661010158114101061411102114161210101531171010612119244121261012312714109128954101211671213121114391485571091111710131111731014759712991191013111171210147109121213969101310111312714121011121413661110111091357412811714136911511195514118117813109125141125111111112111081010131210141712811911101291015101313101011171899109615813610131161398101361087610131066358111381012771013106610512118814121271113156121015126810141412811151571291566111031498615137109869114313912671371012889943131312971576129811963913991215116691611961291296129111061716109912912186591310121714108969918115121361215145814612911113128681525914512181143108986216911591810415936141619115910101015737141619125101012107727141691291013121371121114189119513813151114111618611145984158141116136101410911488411713101041012111181341077101048128116138101571610681381061081015101666101310108108109109614101110128118119991014141181271114117951081414877514877512813146710538876125134611101538816645848112151881116349814812216181411123119141461211167141712911101456141113712171199101351014121315128117910131310812515888710107138811510814811101071381111510131413117101613161114561310131271416916171413612107129141591117101312127714913151411131012129791416138141413912993913164818141397963213641118111377106172106121115115717104175128155571711412518810511761110121018810511964101610489549441516546911464101595106511166710109141085516167910101410812521659610610121282951461561012108119171491591017101111121710913941791118121310613749981811131361171691381111213411516141331212847571453102484710775710345481067971137588563916118711845133101614810111446138101514121011148612841591291110881294691291010158596612128108155536121213812885143812121351213891468111285101311996141115814109118915141215214697861551282861371361151182831310131511151113212311107151215913412811677129912498763759121210912711395912910101271112959491010147512551241214105145121291271081412121291479810129127146951011914776751011111414797151011111214998151011111289118710511582111071551515214108154112159141286481214911266984148186891447888118141416714815118141516111431538915121193143119812791141311781271118131171512911581311715119751313117411375136119410312586149510141214811148591481461111849781061111946716109111291068168910121310586891012136536139121266143111371256714121197145117512119914111111510111951111118108112512118868712131215810667313111596937111691291477161012141418711106141418111136714111013971011110149161051181491611510879711151047137915174111379151761187915136178491513131715417151113121513175118121113135981411213149914102121414914108128145149810812512991051215121495511158141351011138161314107135169147711511910718118117101518181277151118128713118811811136891181146119981441111391114171183161110171181016511121015591218158951878751271375121013105610121056111245411949415979115137811213118912131113910138131110881011158410101584131048121374312971639910161299101412598141059871013997161399916109591610105916310139133713111315751141510511410101011810710108971510119161571112161471512914111529131110281361017813612171213912131210911133109118314968111410611118106113816143111814101178131047913154491515841015787107710714713101514141311151214161191211168918117861877126147131291413131191313711913778910716820101016920810791081571610131571610138710101284121343131131711131714139141912111121411181491818910183101031410514115111181115891510914101514111515119151197111171011810588514812144121048101381713121771213712138121085101551615181681868666666561159117957851081110911897897791471514615116121113121613101681017814174141241412814128512851387139711971113791311915111415514185618116811188111810118107810711101111711978911811111311313338398997977167716127912129712127712127101291069761175111456146636103141071487168816168616106910109610869811971112710121210912129111281115816155161451114811118911591655168598995985888878147121411129111795171051110811683610316161010441212111199779999151599151516168844171712121111141488131366121288111116161313151516161010331818151510105555141466661212101015151111774477881111885533225518181212556613131515111199111112129955111110106699131312125510107712121111991313131313137714141111448812121616131322441111121288111166441414331515161614141414667710109914141212101014141313775512128812121717551414151512126616168810101010121210101717669912125588551515121212121212991010441111161617179910109910101616999999667766111199131311115577111113131313774410104411111111775566131399131366101014147717171111131311111717888810109933881313556611118899101012129966886677991010339999221414661212991616888888111199999977991414101014141414993366441010338855121215151313111111111010556616161515661414771414889922121277337766101011111010121215151818883314141010991212771010141411117766131311118811116677111199331088101010103333991010”

4.2.2 Rewriting of Basmala based key coding evidence

As already mentioned in the description of the rules of the key coding patterns based evidences, the second key place to look at in Quran is the verse Basmala, which is the first verse of Quran and repeated 114 times in Quran. Like an opener, it is used in the beginning of each of the 113 chapters out of the total 114 chapters of Quran and it is also used one time in one of the chapters, which makes it repeated 114 within the Quran interestingly and thus a unique verse. There are two key coding patterns exist in this special verse Basmala.

First key coding pattern is, the concatenation of the chapter index, verse index, number of words and number of letters in it is multiple of 19 as follows:

Natural numbers of the etxt of Basmala verse: Chapter 1, verse 1, 4 words, 19 letters 1,1,4,19 11419 is the coding representation number of Basmala.

In this chapter, I will present the evidence based on this key coding pattern of Basmala. The second key coding pattern is the concatenation of chapter index, verse index, number of words, which makes 114. It was already considered in Chapter 4.1.3 with the codes where there is no letters information is included. Since, these two key coding patterns are multiple of 19, the number letters must be multiple of 19 and as a result of mathematical necessity and thus it is not considered as a key coding pattern. So, in short the only key coding pattern with letters information is the 11419 and I will present in this chapter that it also exist in the full text of Quran too.

As per the rules, when a code is tested with letters information in a single text type, I assume it is rewriting of the text because of the letters in it and I always concatenate from right to left as in Arabic. This is the only exception in this books that we concatenate from right to left as if we are rewriting the Arabic text of the Quran with its corresponding natural numbers. We do never concatenate from left to right with letters information in a single text type as it is always considered as rewriting. Rewriting can only be done in a single text type and thus the pairing coding patterns of two different text types is not considered a rewriting and thus concatenated always in a standard order. These point already mentioned in the rules section of the key coding pattern based evidences but I wanted to clarify here again to remind them to the readers. Now, let’s continue the evidence code of this chapter.

We learned the key coding pattern from Basmala, which is the concatenation of chapter, verse, words and letters information. as, per the rules we will concatenate as if we are rewriting the text and thus from right to left in the full text of Quran. Also as per the rule we have to test this key coding pattern both at verse and chapter level data. Because, we do not have clear distinction like we observed in the Al-Fatiha whether the key coding pattern is only in chapter or verse level data.

In this chapter I will present the evidence we observe in the verse level data of the full text of Quran. This code of this evidence was one of the first codings I had discovered in 2019. By then, I had not realized, it was based on a key coding pattern of Basmala. I had hypothesized that how I can rewrite the full text of Quran by its natural numbers? This was the apparent coding pattern and when I tested it was successful both in verse and chapter level data. Because, from my point of view, I wanted to rewrite Quran by its own natural and thus universal numbers and my first hypothesis was validated. Even without the key coding pattern, they were standing as strong evidence to support that the chapter, verses, words and letters information along with the test structure has a strong 19 based relation. I was amazed by this observation and had named this particular coding as “The Ultimate Evidence” at that time. Instead of rewriting the previous subchapter of it, I will present as a subchapter of this chapter and will not change much and keep that old subchapter as much as possible in the original form. So, the following subchapter presents the evidence at the verse level data based on the key coding pattern we observed in the verse Basmala.

4.2.2.1 The Ultimate Evidence: Rewriting the full text by main descriptive numbers per verse

Since the code of this chapter was based on one my first hypothesized coding pattern, which is to re-write the text of Quran with its natural text numbers, and also this code was one of my first discovery if not the first, I had considered this evidence as the ultimate evidence at the first publication of my book in 2019. I will keep the title as is for this evidence although I later discovered more powerful evidences, like the one in the Al-Fatiha based 19 system, which I considered them as the main 19 system in my book. However, after Al-Fatiha, I realized that the rewriting coding pattern of this evidence is based on the key verse Basmala and this is also key coding pattern based evidence, which also includes letters information.

The code of this chapter suggests that the full text of Quran with all of its text structure, size and order along with words and letters are under the 19 based coding system of the full text Quran and thus suggest that the text of Quran is intact and unchanged from the beginning since 632. In a sense, this code fully decodes the text of Quran by its descriptive numbers. In order to decode the full text of Quran, we need its own text numbers to decode. The way I will decode the text of Quran is simply by rewriting the text of Quran, verse by verse with its counted descriptive numbers in the exact same order of the text from right to left as in Arabic. For these kinds of rewriting evidences, we can add this rule upon general rules such that in order to rewrite the text of Quran by its descriptive numbers we should to mimic the Arabic text of Quran that is written from right to left.

The same key coding pattern was also observed in verse 83:20 and explained in detail in the first key code of Chapter 4.4.1, where it is shown that the concatenation of chapter verse, words and letters is multiple of 19 (832029). We see this key coding pattern if strongly represented in the text of Quran.

In order to rewrite the full text of Quran in the exact same order, I will utilize from this table that keeps all the descriptor numbers for each and every verse of the full text of Quran in order:

knitr::kable(head(unQuran, 9), booktabs = TRUE,
  caption = 'Head part of all 6348 verses of Quran to show how the natural numbers of it look.')
Table 4.5: Head part of all 6348 verses of Quran to show how the natural numbers of it look.
VerseI chapter verse vwords vletters text
1 1 1 4 19 بسم الله الرحمن الرحيم
2 1 2 4 18 الحمد لله رب العالمين
3 1 3 2 12 الرحمن الرحيم
4 1 4 3 12 مالك يوم الدين
5 1 5 4 19 إياك نعبد وإياك نستعين
6 1 6 3 19 اهدنا الصراط المستقيم
7 1 7 9 44 صراط الذين أنعمت عليهم غير المغضوب عليهم ولا الضالين
8 2 0 4 19 بسم الله الرحمن الرحيم
9 2 1 1 3 الم

Using all the descriptive numbers per verse, I will rewrite the full text of Quran with the numbers in each row of the table above. I will basically rewrite the full text of Quran with numbers in the same order of the words of Quran from right to left as in Arabic. As numbers, I will use the exact chapter index, verse index, number of words and also number of letters of each verse. Since, in the full text of Quran there are 112 unnumbered Basmala verses, I will also take this into account and I will not assign any verse number for the unnumbered Basmalas but still assign their chapter index and word and letter numbers for them just like they are written in the text of Quran. This literally means, rewriting the full text of Quran with the 4 main descriptor numbers of the text. There is not much versions of such an hypothesis. Because, I am trying to test the order and size of each verse at the smallest resolution that is number of letters and words per verse along with all the two other specific descriptor numbers, chapters and verses.

Considering all the 6348 verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 114 | Last Verse of Chapter 114 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [Chapter 114 | Verse 5 of Chapter 114 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [Chapter 1 | Verse 2 in Chapter 1 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [Chapter 1 | Verse 1 in Chapter 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 114 | 6 | 3 | 13] [ 114 | 5 | 5 | 20] . . . . . . [1 | 2 | 4 | 18] [1 | 1 | 4 | 19]

And, the final number after all the concatenation would look like this:

1146313 1145520 . . . . . . 12418 11419

11463131145520 . . . . . . 1241811419

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the 4 different descriptor numbers first and then test this big number.

x<- unQuran # 6348 verses
tv <-c()
 for(j in 1:nrow(x)) {
     if(x$verse[j] != 0){#for all the numbered verses
         tmp <- paste0(x$chapter[j],x$verse[j],x$vwords[j],x$vletters[j])
         }else{#For unnumbered Basmala verses
             tmp <- paste0(x$chapter[j],x$vwords[j],x$vletters[j])
             }
     tv <- c(tv,tmp)
   }
 tmp <- paste0(tv, collapse = "")  
 #I revert the order from right to left as in Arabic.
 tmpr <- rev(tv) # matches the coding from right to left as in Arabic.
 cat("Head of the per verse representation numbers : ", head(tmpr))
## Head of the per verse representation numbers :  1146313 1145520 1144417 114328 114228 1141414
 #"1146313" "1145520" "1144417" "114328"  ...
 cat("Tail of the per verse representation numbers : ", tail(tmpr))
## Tail of the per verse representation numbers :  16319 15419 14312 13212 12418 11419
 tmpr <- paste0(tmpr, collapse = "")  
 cat("The test of divisibility by 19:")
## The test of divisibility by 19:
 cat(as.numeric(as.bigz(tmpr) %% 19)) #"0"
## 0
 cat("Number of digits on this big number
     is ", nchar(tmpr))
## Number of digits on this big number
##      is  46900

First of all, before discussing on the main point, as you can see in the last result, the digit sum of the length of this big number, namely the number of digits of this big number, which is obtained by rewriting the full text of Quran, is also exactly 19.

The big number of this evidence represents all the 6348 verses of the full text of Quran with respect to the number of words and letters per verse and supports the hypothesis that there is no redundant or missing words or even letters to a degree in each and every verses and the verse orders and sizes and also contents of the full text of Quran are also correct, intact and unchanged.

For the reference, to the best of my knowledge, Evidence 4.2.2.1 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.2.1 had been available in another article, which is very unlikely, then in such a case, I surely add a citation and update the online version of this book.

Because of the reasons I explained before, I had named this evidence, Evidence 4.2.2.1, as a single code, as the ultimate evidence, when considering the letter level information. It is not necessarily be really the ultimate code considering all the codes of this book but I will honor my initial experience and feelings with this code when I first discovered it in around 2019 keep its name as is. The coding pattern of Evidence 4.2.2.1 is quite strong, because, first, we literally rewrite the full text of Quran in the exact same structure and order using the main natural descriptor numbers per verse. Secondly, the same coding pattern also exist at the chapter level data of the text too, which I present in Chapter 4.2.2.2. Third, and now by the time I discovered the key coding pattern based system, it is based on the key coding pattern of the special verse Basmala and it is the main reason is for this code being special.

We used the full text with all the 6348 verses of Quran, which means including unnumbered and numbered verses in this evidence together. In my opinion, there is not much alternative than this big number to represent Quran with numbers up to its letters and thus this is one of the few best possible rewriting representation number of the full text of Quran considering letter level resolution information. We witnessed that this number is under the 19 based coding system of the text of Quran. On the other hand, I have observed some other interesting rewriting representations as well but they might be considered underneath of this evidence as secondary evidences compare to this one. Because this coding pattern is the most natural way of representing the text of Quran for rewriting it by its natural numbers. If Evidence 4.2.2.1 was not successful, those follow up rewriting codings would not be as meaningful as now. Because, one could always argue that the most natural rewriting representation did not pass the test, which is not the case right now.

There are two more codings, which further assures that the full text of Quran can be rewritten as a 19 based code with the natural numbers of the text along with the letters information. In the code of chapter 4.2.2.1.3, I present the coding that uses the number of letters of each word to replace each word in rewriting. Basically, it also suggest that not only the number of letter per verse but also the order of each word has under 19 based coding system when we apply the similar coding pattern of Evidence 4.2.2.1. Also, in the code of chapter 4.2.3.1, we witness that if we use sum instead of concatenation to get representation number per verse similar to the Evidence 4.2.2.1, we still have 19 based representation code for rewriting the full text of Quran. See those codes for more details in the respected chapters.

Since the key coding pattern is suitable to consider the text type of the numbered 6236 verses too, we have two trials and one success in this evidence based on the key coding pattern with letters information. Let’s add them into the counters for probability calculations.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Lastly, you can access this big number from the following link:

https://github.com/quran2019/Quran19/blob/master/BigNumber_6.1.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

In the subchapters of this particular subchapter, I will provide relevant rewriting codes as facts which seem to be strognly associated with this particular rewriting evidence, “the ultimate evidence”. I will peovde them current as facts since I have not yet found clear key codings for this rewriting codes. Although, they are so strongly associated to “the ultimate evidence”, and might be conisdered as evidence in that respect, I will kep them as strong facts for now.

As per the rule, we have to test the follow even and odd coding pf the key coding evidence. Only in this key coding evidence, we do not observe the follow up even and odd coding when we consider the chapters to classify the verses as even and odd. Interestingly, if we classify with respect to the verses, there is still a follow up even and odd coding of this evidence. However, since this is against my set rules, I do not count that. So, we have 2 trials and no success for this case based on the general rules and add this to the counters.

evenodd_tested_nums <- evenodd_tested_nums + 2
evenodd_success_nums <- evenodd_success_nums + 0

Also, here is the “46900” digits length big number of Evidence 4.2.2.1:

“1146313114552011444171143281142281141414114419113551511345201133515113249113141411341911245151123412112229112141111241911155151114317111341511126191111515111419110373011027311101519110419109641410955191094517109351910924141091416109419108341510823121081316108419107721410763131075520107421110735201072417107141910741910647261063418106242310612101064191055315105441810534201052519105172510541910493101048314104741810463141045416104441710434151042416104141410441910339521032415103116103419102852110274181026211102552010244141023312102231410212131024191011128101104131019291018416101741410164171015424101452610134171012291011171014191001151910010414100972510084171007415100641810053111004311100321310022131001213100419998621997622996632995413994316993416992318991420994199882183987942986166698516789841145983311982623981125698419975518974937973620972519971521974199619520961821296172109616315961562696145179613415961231296115189610310969313968414967311966417965518964313963314962415961518964199584219574179569429554189546269533159522995121495419948312947313946413945414944312943312942313941413944199311416931041793941793831593731393641693541893452093351593231293116934199221299220521921962192184179217214921631292154179214316921341992123129211621921021392921192841692721392621192541592431192341892231492131392419911531391147399113730911231391113159110413919413918320917312916314915315914315913315912314911212914199020313901963290183179017945901641590153129014619901326901241690113149010214909212908414907515906417905620904520903311902415901415904198930210892931389285218927420892641589255208924521892394389225198921620892041789194208918523891751989161040891511498914314891351889123178911417891031589952689862389731289661889561689431289321289228891168941988264158825313882442288234138822314882141588204168819417881841788176258816212881521288142128813313881231288114158810310889211888314887618886619885413884313883210882314881417884198719315871851987173158716420871541487144128713619871241987112148710311879416878212877931876313875313874315873312872311871415874198617423861629861531486143118613310861231486113158610617869314868415867522866412865418864619863211862416861214864198522310852141285204178519519851821085174168516311851531385143158513414851241385111465851014658591040858940857627856413855314854315853211852213851316854198425941842431584234178422418842162684204148419415841831384173128416313841561884145138413518841221084113138410623849419848419847521846937845314844416843312842314841314844198336624833531683346308333420833262783316318330419832983683284198327313832663283254168324522832331683224168321213832029831941583186248317725831641783156268314830831373383127228311420831031683929838414837622836523835288345228335248326308312118341982199348218619821751882164168215315821441682134168212314821121182103158294178286178274188267288255188243158233148223178213158241981298328128518812751881262108125518812451881234198122315812131081206198119415811831381173138116211811531381144148113314811231481113148110313819310818316817314816314815314814314813314812316811312814198042419804121080404198039212803831480376248036212803529803451780333148032317803121080302108029212802821080273148026415802541680244218023515802241380213138020312801941580184118017417801628801529801421180133108012310801131280103118092780841480741480631080531180441880341680231280128804197946936794551979443137943414794252579414167940932793941779383167937397936417793552079344207933317793221379314207930417792942079283147927625792661979255267924417792329792231079212879203167919417791861679175187916625791541479143147913416791251979114167910527799212798314797213796314795213794213793213792213791213794197840166978399327838145878371047783651878356247834210783321278322127831314783052378294187828318782752178262978253147824624782331678222117821416782042178194227818626781751978162117815416781452578133167812420781131778103167893167882147872137864177853127842107834167823137812107841977504187749316774862477473167746526774531677444197743629774231577415207740316773951877385267737316773641877354147734316773331277324187731620773062177296247728316772773877262127725417772431677233187722311772141777205187719316771831777173157716314771531677145187713297712310771131377103147793147783147773157763107752137742137732137722137712137741976311042763011417629931762894776278407626729762552176249337623627762283076211359762072976199477618419761763076165237615837761463476131044761252376118367610729769104076873776773576673376583576463576373276210497611140764197540727753952675385177537618753652175354137534311753351775323127531412753041775293177528312752739752641775255177524315752331275223147521212752041775194147518420751741775166207515314751452175136267512418751138751052475931575829757312756418755523754623753524752420751417754197456114474553107454311745351974529317451310745031574495217448422744731474464177445418744441674435187442412744121074403147439314743851774377247436210743531474343137433312743229743157250743031274292107428412742741374262974255167424619742331374223974212574204117419310741831074172117416521741541274143137413210741241774114167410418749416748416747210746313745211744210743287422774131274419732078329731993173186267317835731663173151151731484073135227312419731163573107327399367386267376217368307355217346247335187324157313127341972281352722713447226727722511367224114572231664722212407221824722082672191041721883172171039721683972155277214104972131452721211397211937721013447291351728841727933726114672510377247287239337229357211349724197128157171271041712610377125125471248357123135371223157121134971204207119521711852571175237116731711583171143147113620711294471114217110627719728718416717147971652171572671418657135257127227111451714197044944704394070428427041831704073570395227038828703752170365247035417703452470334237032528703173070301042702942170285187027624702642170252147024522702352270222107021417702041570194177018297017415701621070153107014622701331670122127011940701041670931770841970721070631470531470411477034157024177014167041969524176951313695042069495216948317694762169464176945316694452369434176942624694172669404156939311693841669374186936517693552069345206933623693273169313126930296929313692841469274186926414692511446924840692321169223106921414692052069199426918626691794369165256915317691463069136236912629691173069106286996346985166971568696627695423694420693416692286911669419685251968511262685052568491040684811426847521684672768455186844104468431152684293868418386840416683912476838517683751868364146835323683462668338396832103968316236830524682962668287286827312682652368254176824626682331968227276821213682021368197276818210681710506816315681573368145156813413681241768113136810516689417688314687113968621368521368441568351868251968141668419673010406729134967281558672713526726934672573067248316723125567221247672112426720155467191562671883067171248671611406715145967147276713938671293867115316710113967918636781353677832676734675126867410426731865672115367193367419661217796611249766102712166912626684619466712516662310766517826642192663291146621149661155766419651225966511341536510177265973265814646572590656321466551454654281186532173652301326514217365419641852964171250641616796415839641419876413937641211596411165864101159649271226481051647186964616826451353644146264394964211476411759644196311114463102185639187563817906372090636187063514666342210463311446321251631178263419621121886210157262922886281879627945626187162523105624103962383762221926211252624196114361646113941611217756111157261101247619146061811546171668616321296152410161411466139326129346111143614196013208060123917360112194601056258609211016082191607156360619736051356604522216031362602136860149220604195924177859231987592213515921188459201048591910515918187259171050591617685915114759142394591312455912167359112812959102310659931134598189859737166596259059513605941251593146059241185591114359419582251221582193458208375819157258181773581715645816104358151040581419735813241155812239258113113958101782589201055883816758747163586156458518815842611558321905822310358118735841957292285572822945727391915726147457252813857241256572315585722216957212510857203918057192010557181257571713555716281185715156457142099571327132571222109571112435710371535791769578156957715745761252575837574361345739405721143571939574195696417569551656942105693310569262656915205690622568941856885195687420568652056857285684316568341956824225681422568041756794175678311567731256765205675419567441756735285672630567142156706285669733566842256673125666210566562956645255663315566263256619355660732565952556583145657421565641656553155654419565331756525175651525565052456494195648215564794756465255645521564441356433105642311564152556403135639312563821256372105636214563531656342105633417563221156312956302856292956283105627525562641756256255624418562331956222756214165620316561952156185235617420561631956153125614314561331256123125611213561021756952756852756731656631456531356441456321056231556131456419557862755774195576626557541955746225573419557241855714195570313556941955684195567419556631755654195564185563419556231455614195560523555941955583205557419555693755554195554941555341955525195551419555031655494195548210554741955465195545419554452155436265542419554164055404195539827553841955376315536419553583455344195533177855324195531418553041955291035552841955276275526412552541955246315523419552242355214195520418551931755184195517421551641955156205514524551341955124205511525551031755963455841755742355631855531755421055321055229551165541954556215454519545341754525185451626545062654495185448935544752054466295445421544452054439355442736544151954407295439315543852254379435436529543572454349385433416543272954318415430416542942254288325427735542652354259325424104154233145422729542141654206275419936541862354177295416416541562354146245413522541293854115265410521549943548835547840546828545520544728543631542731541422544195362317536121153603155359419535862053572105356520535541753543115353213535293253513125350418534941453484155347419534641353455265344415534341553424165341419534041353396215338518533731553367205335519533431553333145332311295331167353301654532911415328165153279475326186553253175324415532325995322414532141853203185319318531862153175165316518531531453143145313415531241753115165310518539518538310537315536311535313534514533414532516531312534195249525524810415247104252469335245732524493952439335242733524152152407275239520523894052377285236731523582752346295233623523283152316275230728522983152289315227628522672752255245224732522383352225285221198452207335219629521883852175205216125352156225214625521362152125185211317521031552941752841052741452621352521352421352339522210521165241951607315159943515872751579305156627515552551545195153621515213465151113951508295149729514842551475295146831514573251448375143827514293251417305140734513962551388345137736513672851356265134419513352051326265131523513083251299395128938512752251266235125938512462851239375122523512141951204205119526511831951176255116937511552051147325113519511241851115185110211519412518415517315516313515315514213513213512213511213514195045135350449365043627504273250417295040525503912495038135450371341503615545035625503452450337295032622503152550309335029831502883450271037502610415025417502462150236215022124550216235020623501993450188265017837501614575015103650149365013419501273050118375010522509104550852050711515061253505932504936503727502114450131450419491810454917197649161665491518914914271164913219349123212949114015949101053499301444987284972812749618794951248494941493177749223984911664494194829542494828146048272812048262813048254017948241977482312414822125248211452482018894819737481819864817271104816281244815311414814146148139434812208548113715148102510548984948852748784048621116485199348419944834194821561481519484194738301294737635473613654735125847341555473311554732218647318504730126647291140472810484727741472615654725166347247334723737472210454721124847202711747191473471815654717632471624104471544172471413484713145447122210847111144471016754798354786304771046476420475317474381674731881472188147183547419463527107463418794633228546321865463115604630207846291880462817734627104746263213846251460462418754623135546221254462125954620271294619943461817664617281134616188146154519346149434613135246121675461119764610249546924744682599467145946694546518644642910646315724626294611246419453784245368374535167645341461453311434532227845311259453013624529114745281454452710524526187045251668452421784523249445221356452117854520732451915644518135545172410245161374451511444514146145131660451214634511114245101972459114545814574574144561253455208945493445363145262945112454194459317445852944577254456104844555224454419445352744523114451519445061944495204448725444752444462104445418444421044433124442829444110344440523443983644387374437125044365244435832443431444337294432629443172844307334429837442842244274204426314442551844246274423524442262344215214420624441993544189314417835441662944156294414625441372844126264411520441062844951444810394478374467264456234445174438344422134411244419438962643888274387837438613524385136343841144438384243828364381831438011484379522437873443779374376629437562243746264373627437273543711569437052943695294368934436773443661040436511474364936436317794362729436110454360836435910424358144843579334356424435563643547364353114643521134435118674350730434912474348135543477314346125543451353434462643438364342734434162643401140433994043381249433773843361138433512534334530433317774332251114331104243309364329939432873243275224326940432573643241460432321834322114643218334320155343191266431893443171246431673143159374314419431320844312114943111250431011454391052438732437832436623435835434727433630432213431124341942531556425227109425122774250114742491562424827115424721684246165642452712342442072424382842421566424193542401457423962942381164423710504236177442359364234726423315554232629423114484230104142291663422813524227176842261264422512514224229142232911842222410742212284422022754219938421822964217115242161871421534149421430114421338152421213564211198942101559429166042819714272290426125342519904241038423104342213421124241941541239415319734152175141511356415032130414911434148124041472810741461146414518724144301294143175341421346414193941402610141392291413812554137198841361150413511424134177141331351413241441311670413019934129167941281461412710554126115241252599412411484123946412220844121187841201256411983441185274117147441161989411525102411423944113940411219894111166741101567419146241894041783641616744151775414733413733412419411124141940851770408412514083156740822510440816284080125940799434078321234077145840768424075114640741760407372340726234071632407094440691039406812444067301184066207640651453406421984063733406212414061208240601362405911434058136940571253405623934055125340544204053841405210464051115340501673404913534048124540471982404613614045104240441250404322864042156140411041404023884039124840389374037239440361040403523934034301054033165240327274031145540301141402927101402839146402713484026186940251987402473440236314022136340213011940201562401962840181567401713474016155940151663401483740131453401215624011136540101567409125340816764072712840610424052198404135240314564026294011240419397517773974167339732094397294539713415139709323969157439682277396717863966624396514623964734396311573962928396111503960146539591045395812423957932395615513955166439541352395321853952155939511568395011433949228339481143394725973946177639451876394411483943145439422610739411877394083239391040393836148393712413936155739351258393483339338343932155839317303930416392919813928728392711443926125939251040392413613923341323922207739213112039202080391910383918136739171260391617613915198539146213913929391252339119313910229539924105398341223973112639636138395231053941663393331263921045391629394193888417388751838861036388573138844173883420388242338814183880417387962438786233877520387610343875155438746283873422387293638719323870827386993338683133867411386673738651140386462138636303862103838611140386011453859103838584153857420385642138555193854721385352138524223851735385052238496233848838384752838465263845848384414543843104638426263841114638406223839728383842138374203836833383515493834939383363038321142383162938307333829950382813663827167038263112238259333824321373823156038222393382173038206333819520381873638171144381683238151035381472238137363812834381162438101048389731388155038710383861251385832384104438310373826223814153841937182419371813163718062337179315371784143717763037176217371753173717441437173419371723163717152937170418371694203716862237167315371663163716531537164620371635163716241737161314371604193715941737158104737157524371564143715521037154414371534203715241937151521371506293714952937148420371476263714652237145421371446223714352137142419371414193714052037139418371383173713742237136314371354183713441937133418371324193713141937130414371294193712841937127318371265243712552837124518371234193712242137121419371204173711942137118323371173233711642437115529371145213711310483711252737111419371103163710931437108419371073153710652037105731371044193710341937102281003710131637100516379962337985293797732379641937954183794316379342037924133791626379031537893113788416378741837865223785625378451637834183782315378141937804193779520377841937774203776525377552637744193773524377242037715223770418376942037685203767723376663237654213764623376342237626233761421376051937596283758313375762637565193755521375441537537343752419375172337505243749313374842037477243746316374551937443143743312374231437414163740419373962337384223737522373663337351038373442037335253732420373162537301036372952137286283727524372641737254143724317372372937227383721727372062437197283718416371721537167353715621371441937134173712313371112463710728379417378937377518376631375735374312373213372213371211374193683835368210343681146336801144367910373678114136771142367693636757303674731367362936726333671125036708333669124336687303667104936669463665115736645243663521366283636615233660145036594253658516365762336567323655728365411423653103936521353365110393650733364983536487303647249236461142364511453644622364393336426233641835364015583639737363883936379373636135636358373634104436331050363262336311145363012473629830362813473627727362683036254193624517362315583622831362172936201146361993836181255361752336166283615155536141157361383836121458361112543610836369125136810453678303667303653173643133633143622133611236419354525973544301203543261113542198335411976354033132353924100353810443537251083536187235351455353411453533135735322199353116653530837352916763528177835272294352672735251367352412483523412352216623521416352041835194213518341383517518351662335151147351418813513281153512281273511341153510241083591776358259135713623561358355156335411433532285352196835124100354193454155734531038345293634511035345016573449829344872634471752344624893445145934441147344334130344218773441135834401051343920733438945343723100343613493435839343414543433341603432156934313214334301041342973034281254342712483426114634259353424176234232285342226933421217034201045341919873418178234178353416167534152074341427109341319873412271073411125134101353349291053481666347166134616663451146344105034332123342186834117673441933731593337218923371145933709403369177133688373367846336612553365833336472933631562336212433361634336019873359229933581267335714633356146333553012633541139335370294335225853351351373350622673349231033348125833478333346629334583833448353343136533423163341835334017663339136133382275333748196333624923335302233334145633332512233322081333114643330176933291464332816793327136133261677332516743324167233231875332218853321176533202310233193515533181468331724803316155733151355331414603313261053312135833116363310167633922983388423371780336291433352812633428127333626332124333114613341932305263229114432287303227177532261869322511453224105232231459322213513221949322021953219125932188313217134632161156321515663214146432131666321216753211114232101455329146032882532710363266323251763324249232318663228313211332419313427100313331122313222923131196831301658312925973128114131272178312610403125156531247303123156431221566312121873120301113119114531181654311718693116258231152911231141776311315543112187031111454311027105319835318839317166731618723158333149473133163124193111331419306010393059832305819763057942305620863055125530542481305314553052114630519413050197130491037304828115304718873046178330451151304493930431656304214573041156730402285303922873038167230371557303615623035104330346343033187130321145303194830302292302916603028271133027187930268313025166530242185302314643022136730212083302011403019146030188393017628301611583015943301452630139433012526301183230101360309321523082298307104430611423058333041246303831302293011330419296994729681765296715732966636296516642964156529632284296214502961136429601253295952529581786295772829569402955135629546382953126529521991295115642950166229491459294813522947198929462511229452189294410452943842294212432941198829402812429391369293816772937739293617742935730293412502933239029321667293115702930627292923103292814572927188729261244292527117292420762923136029221759292183229201972291913472918135229172711829161356291564029141669291311612912188629116372910311202997432982190297127029610422951245294104329311562921040291132941928881963288716602886155928851966288418752883146728822611328811765288016702879217828782810228772610528762910928751770287484028731362287221872871197828701558286972828681458286711422866735286563328641364286318842862840286117752860156628592082285817732857259728561350285515742854126528531555285283428516292850239228491349284826106284718862846207728451881284413522843167528421048284194428401051283912522838291082837186928361773283515752834145728339332832251002831207328302082282927109282815592827291102826114828252610628241550282327108282211442821104228201976281933119281816722817936281613462815381482814104928131765281216642811103728101767289186728813632872292286125528512592841985283938282419281132841927931151279215612791176327901352278911402788187127871866278615642785833278413572783114227821670278114562780114527797282778834277742127761247277510372774831277310382772932277173027709322769940276812472767944276614442765145727641978276320822762167027612189276027104275912492758631275773927561558275511472754839275352827521144275194327507312749146827481042274713512746136127451358274428110274312432742145927411247274038136273916552738114727371360273616692735839273413612733125327321350273152327308342729933272811472727728272682727251462272417772723114227221447272194527201244271924106271820852717943271619772715156927141158271383627121972271111352710207427972827814562771665276728275104327410452739472723162716242741926227199226226521262257222622432126223423262225172622162526220417262193162621841526217420262167262621562826214319262139342621241926211522262104182620941626208727262076232620652026205419262042172620341826202522262017292620052426199625261985232619793526196417261953132619452226193416261924202619152126190829261891041261885192618793726186935261855222618452926183942261823212618162926180114026179317261784142617762026176422261755212617482926173631261723142617141826170318261695202616852126167935261661141261654232616411402616331726162414261617242616041826159521261581041261573202615673126155931261541138261535222615262726151420261503172614952626148418261473112614652126145114026144317261434142614272526141316261405212613910442613831326137518261369362613562326134210261333162613252426131317261304202612942326128521261271140261263172612541426124724261233152612252126121829261204182611962826118940261175162611693626115516261144192611372526112624261115262611031726109114026108317261074142610672426105418261045212610382926102726261013112610041426994192698419269762126964192695316269442126937282692622269131826903182689620268861926874172686624268552226846232683626268283126814182680416267941926784172677623267631926755222674628267341726725202671628267062326694192668521266782926663152665523266431626631357266262026618382660214265942326583142657420265631526553152654419265352526528352651114326507272649219626483122647420264631726458312644948264372626426252641125126407322639522263852426374162636734263583526347262633626263262426317232630519262983726289392627730262652326255202624940262352126228322621114626206252619732261810382617520261673226157332614623261383526126202611416261083226952126882926711392668382651143264114526362726241926113264192577124525765262575944257413642573104525729422571935257016692569836256822852567114725664202565114725645272563126125621350256111482560136125591772255813522557144425565242555145525541247255315642552733255172625509432549104625481355254711492546522254516572544155525439372542176825411144254016692539733253883725371369253694925359422534114825338372532156925311149253010412529114825287282527124925269442525739252473425239382522105125211985252020962519156525182187251716682516104025151350251483825139422512937251183925101762259942258176525716702561251255947254166625322922521973251944254192464228624632712024623918024617631524602310324591987245850219245711532456848245538173245423102245317762452104524511883245016672449728244811482447157024461147244531106244410442443381402442735244121832440331082439229924381458243719872436145524354820324341361243348217243217832431783502430156624291770242822872427198524261699242511492424947242313682422261212421351502420938241920852418731241793824161456241516702414156324131465241212592411281022410938249937248115024793724617812451143244199424318732422612224195124419231187292311718632311611422311584023114934231138342311272423111836231108432310914612310852223107731231068372310583423104628231031047231026302310110432310016652399830239851723977262396936239572723946262393620239263223912480239052623895222388144823875212386833238552223848292383124723828402381622238010472379730237810482377124423768442375114523748382373524237293723711675237010422369727236810422367421236694123657282364836236314472362124923617332360104523595212358523235772523567272355728235451923539392352833235112522350114823496302348424234773823467372345839234419852343727234262523418482340522233951923381241233710422336419233594223347322333251112332145523316242330725232983723281562232732138232651923251030232426104232317632322421232115662320940231913562318135623171041231652223155182314211042313622231272823116292310315239525238528237730236104223542123442023352123252123131423419227844199227712632276104122751145227493122732912222722913622711863227018602269941226872922671767226610432265271012264124522631555226217602261156022601656225973522581877225784122561259225516642254218922531674225227106225184122508412249931224811452247146022462397224514612244115122434182242936224117852240351482239104522381344223720892236271282235157622342089223311432232936223121812230241002229846222820942227145122261676222525108222493822232298222212522221415222062322191769221837144221722102221693822152285221417722213104122121448221125101221093522915612281345227124322613462257026222411442231244222228622110402241921112104321111829211108322110913502110811422110752521106623211051252211041666211031157211029382110193821100726219993521981142219720752196103721957322194124921936302192833219111572190199221891143218884021872383218663121857342184166921831041218212512181146521801045217914722178146121771261217612512175629217416752173158321728392171842217052921698332168735216793421661142216593621647372163939216273221618352160732215983421588372157735215613552155731215483121535252152114521519372150733214983721488432147208321461247214511462144188221431455214213502141135621401045213916612138730213783721361772213510492134104021331147213283921311357213018802129135121281559212762921268382125155321242282212362221221352212172721205262119135721181353211711422116735211583721146242113104821127292111104421108372198452189422171459216835215145821410442131572212114221173121419201351150201341979201331353201321259201311875201302085201299352012817672012712502012683820125828201241247201231870201226232012115652012014522011962120118722201171349201169422011511362011417652011314622011211422011193520110103820109124420108135620107620201063152010573220104124720103627201028362010173020100831209913442098123920972810420961662209551720942071209341820928282091937209017682089124420881248208715752086271052085936208493320836202082935208117652080157520795192078837207718692076124920751046207413422073146120721976207126115207083720691659206862120675192066124920651239206410422063136720625302061155920606232059833205814602057834205662820558412054939205319742052113520515212050929204951720481035204721872046727204510352044830204351920428312041213204035130203922932038620203751920366202035414203421120333122032312203131020302820295182028210202741620263102025515202451820234192022114020217322020520201941420181348201751820161037201510392014114420135232012937201151920101868209415208829207730206124420541920463120341520252320112204191998144619971045199694319955231994417199310381992624199141619909441989414198842019879371986524198562719847251983941198263319818331980522197993119787281977839197613621975259819749351973167419728361971934197082919691036196884319671038196683119651256196418611963933196211461961114619601251195911521958291291957316195683319559411954114819537291952736195110411950937194914601948145519471035194613541945124619441040194314501942165019418351940834193912461938114819371147193683519351653193493419339361932629193111491930834192910381928124019271141192618761925835192410381923145719225241921155719201138191993219188301917115119161042191593419146261913625191283419111146191013451991443198145219713451968301951352194145219351719251919115194191811024921810918681810862518107104818106942181051466181041149181035251810214651810111471810052718991148189815491897835189619771895124918942078189313511892310189162318901553188931018881350188713461886259118852918841034188393818823514818819401880105118791776187812481877241031876134618759291874166418731038187282718711565187012431869103618688241867621186611371865125118649341863208518621249186111491860134918598431858197518573011818561892185519831854145418531051185213651851135918502611118492812218481663184711521846136718452310218449371843113918422079184183018401562183919631838828183716571836125018351241183413501833115018321470183128123183012481829281291828301291827155418262381182583718241758182372518223315118213214218201356181938173181822109181734127181619801815187518141978181311481812939181173018101661189104218862718711441861146185165818462718331318215691811142184191711121721711022901710953017108835171071870171069451710594617104146117103940171021667171011978171001463179923921798147117972711417961147179514601794155817932692179212531791114517901037178914531788197617879301786135017851454178411401783125317821357178193617801456177912461778146017771142177613601775124817749371773136317721139177115701770178117692287176815571767187317661454176593517641996176310411762156417611358176025113175921921758187417571884175613521755156817541455175316711752944175125100175051917499451748942174719761746198217451258174421871743630174213481741104417401159173918671738724173713481736165717351156173417711733229017328341731135917301248172913551728125017279481726104517251253172412511723251081722936172111501720124517191252171818711717135317161468171521821714731171313591712231161711843171094217916711781149177231101761157175177617413601739311721257171219517419161288321612714511612612531612522911612417751612312491612294216121735161201143161191971161181566161175201611622941611522841611413571611394416112241071611115511611018651610972716108115616107136216106249416105115216104124816103166916102135616101176716100941169910411698840169718761696156416951557169419831693176816923213116912089169016811689241031688135916871043168619911685114516841451168373916826291681251101680251191679186816781575167719711676291091675271031674104216731562167221981671229216702074166924931668135416671565166617691665166116641463166317721662177116612396166012581659196516589371657734165612571655634165410381653124316521148165112511650732164914581648176716478311646728164516671644126316431561164252516411878164010371639115316381873163714461636281221635321181634104316332291163212641631156716302090162984416281982162721981626218616251569162494016231349162211551621732162010411619625161810391617727161642216151149161421100161313491612157116111671161013471691044168948167145916673116584016483016373616218681619421641915995221598624159772815968341595319159462715933141592319159142015904211589521158815631587736158651915851469158462415833191582630158153015805251579528157852415775191576315157552115748411573319157252415716251570523156941815686231567422156694015651462156442315637291562416156152015606291559624155862615575231556829155573215548351553728155293715514181550522154962615488301547104015463171545520154483015434201542114115415191540420153910461538418153741715366241535624153452015331139153293115317271530422152993615281245152772815268331525725152474215236291522126315211142152083415191152151872915175211516737151583615149391513726151252315118331510728159729158939157834156937155727154831153739152730151625154191452136014511036145063114496321448105014471142144612511445146414442610914439451442136014418391440939143913541438186114372611414361558143513551434156114339431432251071431218614301253142942114281250142718841426134914251255142415591423178314224418714213413814205181419145614182290141716621416725141552314141043141316781412177814112911214103314314937157148135014711481462611714521861441975143167614214541411672144191343156413421871134116681340135813398321338218213371974133625101133519891334145313333913913321355133151193133028106132983813281152132719671326167413252394132473013231572132219101132113541320734131915581318271181317421821316451881315115513142710713131986131294213113512113101454139530138155813715561362090135251121342711113324101132261151311560134191211123941211019791210929123121081767121071459121067301210511491210410361210362612102145712101211051210047169129914551298935129793912962072129562712941247129312561292114612919391290238412891039128822101128721811286134712851249128413511283187012821153128118721280371391279135012781663127724841276331231275114512746251273124812721244127152712701565126916621268301101267281111266248812652611412641766126317711262147412616291260103512591772125893912577351256177212558331254146112531554125212471251291101250229212491139124815531247145712462296124511501244841124325105124218701241208612403212712391046123826104123726112123627115123511381234104112331768123219841231321311230187312291042122813431227103612261968122523891224197612232391122294312213213812209421219177712181873121719801216420121517761214938121313541212834121112431210166812914591281557127730126251061251663124166312316641226311215221241911123167311122318111219411112017691111915611111810421111783511116261101111572911114146811113176611112124611111104311110187211109207711108187511107155711106937111051036111045201110316571110212441110124941110093611999421198946119710441196631119510371194188611932082119216651191197911909371189237811883613711872182118611421185157411842711011838311182125711813011811801130117913431178271091177134811761554117552211741148117314601172134811719481170186811691563116812441167841116618731165114711641870116323851162228311612811111601768115912501158146111572181115618651155728115416651153166111521882115114521150186311491975114819721147196311462476114515561144198411432386114220731141114811402694113910421138197311371155113617581135125211341866113310381132145911313112311301038112923921128208111272911311261140112593511241161112314671122727112194111202410011191150111823100111739146111616651115146211141664111318751112279511111048111013561191147118229311731127116166411519851148281132598112935111103611419101091145101082387101072485101061655101059381010427100101031045101021564101011460101001453109915601098219410978331096830109510441094228510932410910921461109172810902711810891151108829131108716831086526108510481084135210832285108273310811764108010391079626107816771077114810761038107514691074229310731787107216601071341361070135910699351068259610671561106625901065104210641565106342110621036106142141106019761059207310581044105715631056522105516581054218410531143105213521051113910501253104922811048730104712491046156310452087104410421043114510421147104115601040124510391981103816661037228310361760103529971034176310331039103211481031271141030166310291046102818891027271181026167210251145102443198102326113102241166102122841020166810191771101829123101714541016186510153913810141042101317871012271041011188610101466109157410863010715711061462105231011042812610329113102269910152210419912915549128146091272179912616569125125491241882912317789122221029121187791205219991199419118311279117271099116176191151861911422889113208491121610991113717491101561910927101910823869107241179106125491051685910416679103166591021774910122999100251289992711399816719971669996145999518889943013299319869922390991261039901780989135698814769871146986188298516749841871983251129828439812711898025103979209397811479771567976937975125297446190973126297224107971241329702612596932168968167996719105966166796513649641773963166496212559612611496022118959198295816629571144956104595517819542295953124795222939511456950166594915639481664947178694615719451470944147794313529422311394115719404317693916709382912293731134936361609351984934291399331460932156493123102930231079292912392828113927124092618839252396924331709232097922831921104492016809192411091823999171883916241029151145914115991320939121879911136891010399913569816779723105961874952613394229893321359214649194187522958741885873135787245209871135487025948691146868103986720788662610786527115864937863207686212538611250860331348598358581455857104385612448551038854178285318688521774851937850136784918748483614084717768461367845136184419888432088842351498413315084010468391666838165983718818362198835135883421938331252832197283117698301674829198282810488271261826199582513588242195823114982210398218368201254819249781862681721868162081815125481463081313588122310381122998101867891152887338723101861151851147841147836348217828118898419720611487205166972048417203238972027317201125072001044719973271981252719710477196939719526997194146471931256719273371917287190125571892912571882810471873715371861040718522887184114071835187182840718173171801469717930122717810427177947717630132717513647174527717315647172261047171197971701052716940172716814777167198071661141716518797164198171632711871621773716120937160432007159832715832141715743222715630129715541170715415637153145971521569715111467150391727149187471482289714713637146361537145208971441565714341165714223109714118857140940713910367138249971372913971361160713511437134239071331380713212477131229471301047712922887128167671272110071261666712552271248417123197771223127121420712031771194257118625711711417116115571151140711452271131146711241671117347110730710993271086267107624710611367105186571049347103167171029417101231027100197979910447989387979407961885795188279413597931664792135979163379012537894215978822937871983786241077853815678484078373678213547811146780135377915637786337771666776837775239677425113773351327721366771251077701771769271137687307671139766145876516577641471763135976211447611139760932759217675817727572912375615657558357543214575338146752104575119957502087749156874814727471362746188774510487442811074336150742157074110427402310473914627384016173737157736115873519747341147733291107322611173116647301678729166972822947273113872620837257347241248723125472228130721526720251057191770718125471715667167367154167145217131350712175771116737101148791156789457762776636751246741043731457721350711474196165218661642910461638326162939616116666160166461591977615837138615735144615614616155844615417756153177561523514961514218061502711861498366148371426147135161462812261453912861444016761432310661421670614131145614020836139229561382611761372096613631128613519756134727613318716132937613110386130281346129838612836151612710416126941612528110612429118612315696122241006121209661201259611930116611810406117113961161863611511486114231056113126261122395611122100611013606109219061082510361071353610613446105844610415596103943610216536101186561001568699441876981359697166969612626951769694291286934920169222102691441716901666689178168816596879566868446857346842110068314586821152681229368025926791253678186567718696761554675950674145867324106672838671391606704517566912476682310366752166693266527105664103666317736621248661177166022956593111365814596572277656217465563565427108653157165225105651176565028103649843648156464714566462390645942644207964314636421157641124664015626391771638228263719676361050635281146342290633146663213606312711163019766299396281660627176862611476253213362410416231243622125762114546201368619371376187326171756616936615929614249261393761225100611104161013566994468135367166666311386512536411426312526214496114696419512011425119241025118114751172910851164515351151770511422975113156651122286511113615110642805109155951082299510726128510652213510520865104241005103218551029345101261005100167359911455989375972711959620865955119659424104593241165921372591209259016825894520558812525871869586740585146758416635832189582261285811570580197857910425781771577249057616585752598574840573259657234139571197857019895692092568311295672594566241045651262564472185631367562136356116685602711055921775581254557241095561148555136855438158553158055228116551231045501045549331365485122854716665462611754531140544411955431568542261135416828154019715391449538136453712495362488535146853413525333414053240162531261065309385291356528166452724995261462525135252417695232110052218755211570520239251929107518301345174215751618805152492514251195133214151245207511241075107405910475827117571986566228155432015431137536127852532425124975419417650191417515734174125041732612941721887417154216417024994169114441681250416711434166136141651566416414584163251314162261364161147341601460415914574158832415734128415663141552210341541990415337162415217784151843415022100414914494148145341471148414618924145114541441885414316584142199141413616141403313741391471413862841372078413629130413538163413414624133124941321040413132129413011434129221024128291264127401784126124541251773412416664123207241222195412173241207354119211094118836411711434116206741152081411426974113331354112145441111146411013504109197941082182410714544106730410515674104229441032010641026228141012396410031122499104049812644972712849683749533172494401704931670492602354913216249036168489281284882288487176148615574852277484228748330135482135648124101480124947918734783614347748204476209847531139474219347319754721763471114947072846918924683214676274662710746519774642310546316654621673461156546030125459291324582510245720100456209545511384541880453103745211434512094450104044914544482069447291214463817744594444414644434920544214614411243440155543915684381885437157843632158435229243440192433198843227108431125643013534292499428834427136042614614255826442442185423542654221763421114942017834193515741824106417209041614704152210741413554131879412882994117127141013634915714813704719914637186451679441458432811542168241291254419320011573199301213198218531977303196729319543188319414583193209531921145319121100319011573189938318820863187219931862410831852399318412553183281203182937318122953180301223179361463178177431771253317622873175115431741564317317773172156931711147317019783169135431681674316733151316694731652073316425107316383231621353316121683160187531593012131587283157145331563715731552189315475291315325106315240166315119843150626314913643148105031471987314621883145249931442710731431251314213603141633314024105313994131386293137135431361570313523104313413713133115531325293131527313013623129166131281245312794331261768312515693124136031231047312212573121114931202188311928127311831125311723983116187731159403114158431131459311235152311111483110231133109114431081149310710433106178131051465310414703103341573102135431011774310015693992077398135039725993961042395114739411443932499392155639124913901462389114338893738794738618833851352384291263831462382729381331463801367379281203782912037727116376936375361443748343733211537217793711152370939369135436813663671461366207536516703643212936362836215543612511436072535915473587323571159356136035531132354630353946352208635183435019803494518734853534723793467333452191344208134383734213603412080340176333920923381552337351383362410933518663347273331148332114733114623302696329227932827113327218632625923251553324156532320813221150321188832026122319261073181872317654316115031524107314241253132911631294331114683101666391347381554374619736135035113734187433115332724311334192286491962285271182284281032283321382282129551228115542280145222791772227814542277198722761145227545186227417792273301342272281122271208922701557226916652268136822673012522663514822652712322643917422631144226224922261249722603914822596724922584316922572411822562410222555018922542287225352208225294122512712222501577224960240224830114224743165224654217224516692244938224328106224273122416342240271162239156522388442237351402236251112235472002234251222233642882232331472231452032230301142229461932228401772227729222613542225146522241466222316812222271222221391822220261182219261232218167222175724722162593221522104221430127221349214221220932211207422101772220912492208166722071149220612522205145922041765220325103220283522011457220024972199124921982611021973012121967329021951466219422107219315652192624219125130219013592189271202188178721876528621861777218544185218432123218315612182165521811354218016772179939217838163217751266217614582175116121742912221732593217215622171186621702289216911502168176821672396216612572165311232164431872163935216293721611364216011572159209121582489215794221561045215512662154135021531153215263221511787215031138214917662148197521477272146147321453213021443414621434519621422189214115542140301272139146321381037213719792136311352135156321341554213327114213217702131933213018742129168121281776212714652126301222125221152124198321231867212212582121157021203111221191046211824103211711472116145621151252211430113211331141211217582111187221101776210933123210818732107175921061961210525982104136521031249210274308210122892100104429910442981255297187229625102295944294176729327131292115129130119290271072892610828810462872813828613632854923128415712832915028210522811354280239127924102278114527793627623101275197727437141273115727210452712497270176226918712682380267208326694526512542641354263157026224108261602572602811825918772582095257189025673025515602542712125373725283025112532501050249188424819692471258246838245847244105524374124284224118792401469239105123817682371143236198623519802341363233231012321248231157023028111229197022813602272082226391552253414522413662232078222239922112532202510221919862186192171772216115721573421416732131977212729211114321012512910492811472712532611472583324125223847227272113241917944163191541914312132121241811419”

4.2.2.1.1 Fact: Rewriting the full text by main descriptive numbers per verse index

Evidence 4.2.2.1 is the main evidence to rewrite the full text of Quran with the 4 main descriptor numbers of a text. If Evidence 4.2.2.1 was not successful, I would not be able to confidently hypothesize the additional follow up potential evidences such as this one. Because, when we mention a specific verse in Quran we naturally refer to it by its chapter and verse index such as this “Quran 74:30”. Therefore, any natural test must consider those numbers first as I did so in Evidence 4.2.2.1 and proved that when we rewrite, or in other words decode the text of Quran with its main descriptor numbers, the resulting big number is divisible by 19, which very strongly supports that Quran is intact and has correct order and unchanged as we Muslims already presume and accept so. However, after witnessing that great test, I decided to perform a follow up test. I wanted to test if there is any similar design with respect to the general order index of each verse from 1 to 6348 (column VerseI in the table). Then, the question was at which location should I place the general order verse index for concatenation. The previous natural order was not quite suitable as it does not fit in, for instance, the natural “74:30” like expression of a verse of Quran. I decided to place the general order of verse index at the beginning just like I naturally did myself while generating the table of the text of Quran and placing the general verse indexes, VerseI, at the beginning. This make sense because we also sometimes refer to a verse like “the first verse” in Quran without referring the chapter index. In a sense, these general verse order indexes are at the outer domain of chapter indexes and when we give only this index one can find out which chapter and which verse of that chapter by following the order of the verses in Quran. Thus, I locate the general verse indexes, VerseI, at the beginning and then follow the general order of concatenations afterwards. As I show in the following, rewriting the full text of Quran as in Evidence 4.2.2.1 but this time regarding the general verse order indexes results another big number that is also divisible by 19.

Considering all the 6348 verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Last General Verse index, 6348 | Chapter 114 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [ General Verse index 6347 | Chapter 114 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [General Verse index 2 | Chapter 1 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [ General Verse index 1 | Chapter 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 6348 | 114 | 3 | 13] [ 6347 | 114 | 5 | 20] . . . . . . [ 2 | 1 | 4 | 18] [1 | 1 | 4 | 19]

And, the final number after all the concatenation would look like this:

6348114313 6347114520 . . . . . . 21418 11419

63481143136347114520 . . . . . . 2141811419

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the 4 different descriptor numbers first and then test this big number.

x<- data.table(unQuran)
tmp <- paste0(x$VerseI,x$chapter,x$vwords,x$vletters) 
head(tmp)
## [1] "11419" "21418" "31212" "41312" "51419" "61319"
#Revert the order from right to left as in Arabic.
tmpr <- rev(tmp)
head(tmpr)
## [1] "6348114313" "6347114520" "6346114417" "634511428"  "634411428" 
## [6] "6343114414"
tmpr <- paste0(tmpr, collapse = '')
cat(as.numeric(as.bigz(tmpr) %% 19))# "0"
## 0
cat("number of digits on this big number is", nchar(tmpr))
## number of digits on this big number is 58714

Since I used the number 6348 for general verse indexes of the full text, I also tested the unnumbered version for the number 6236. This fact only passes the test for the full text of Quran that is based on 6348 general verse indexes, which is more assuring in fact as we are rewriting or decoding the text of Quran.

You can access this “58714” digits length big number from the following link:

https://github.com/quran2019/Quran19/blob/master/6_1_1_rewrite.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

Also, here is the “58714” digits length big number:

“6348114313634711452063461144176345114286344114286343114414634211441963411135156340113520633911351563381134963371134146336113419633511251563341124126333112296332112411633111241963301115156329111317632811141563271116196326111515632511141963241107306323110731632211051963211104196320109414631910951963181095176317109519631610941463151094166314109419631310841563121083126311108316631010841963091072146308107313630710752063061072116305107520630410741763031074196302107419630110672663001064186299106423629810621062971064196296105315629510541862941054206293105519629210572562911054196290104310628910431462881044186287104314628610441662851044176284104415628310441662821044146281104419628010395262791034156278103166277103419627610252162751024186274102211627310252062721024146271102312627010231462691022136268102419626710128626610141362651012962641014166263101414626210141762611014246260101526625910141762581012962571011762561014196255100519625410041462531007256252100417625110041562501004186249100311624810031162471002136246100213624510021362441004196243996216242996226241996326240994136239993166238994166237993186236994206235994196234982183623398942623298166662319816786230981145622998311622898623622798125662269841962259751862249793762239762062229751962219752162209741962199652062189621262179621062169631562159662662149651762139641562129631262119651862109631062099631362089641462079631162069641762059651862049631362039631462029641562019651862009641961999542161989541761979594261969541861959562661949531561939529619295214619195419619094312618994313618894413618794414618694312618594312618494313618394413618294419618193416618093417617993417617893315617793313617693416617593418617493520617393515617293312617193166170934196169922961689252161679262161669241761659221461649231261639241761629231661619241961609231261599262161589221361579221161569241661559221361549221161539241561529231161519241861509231461499231361489241961479131361469173961459173061449131361439131561429141361419141361409132061399131261389131461379131561369131561359131561349131461339121261329141961319031361309063261299031761289094561279041561269031261259061961249026612390416612290314612190214612090212611990414611890515611790417611690620611590520611490311611390415611290415611190419611089210610989313610889521610789420610689415610589520610489521610389943610289519610189620610089417609989420609889523609789519609689104060958911496094893146093895186092893176091894176090893156089895266088896236087893126086896186085896166084893126083892126082892860818916608089419607988415607888313607788422607688413607588314607488415607388416607288417607188417607088625606988212606888212606788212606688313606588312606488415606388310606288211606188314606088618605988619605888413605788313605688210605588314605488417605388419605287315605187519605087315604987420604887414604787412604687619604587419604487214604387311604287416604187212604087931603987313603887313603787315603687312603587311603487415603387419603286423603186296030863146029863116028863106027863146026863156025866176024863146023864156022865226021864126020864186019866196018862116017864166016862146015864196014853106013854126012854176011855196010852106009854166008853116007853136006853156005854146004854136003851465600285146560018510406000859405999856275998854135997853145996853155995852115994852135993853165992854195991849415990843155989844175988844185987846265986844145985844155984843135983843125982843135981846185980845135979845185978842105977843135976846235975844195974844195973845215972849375971843145970844165969843125968843145967843145966844195965836245964833165963836305962834205961836275960836315959834195958838365957834195956833135955836325954834165953835225952833165951834165950832135949832959488341559478362459468372559458341759448362659438383059428373359418372259408342059398331659388329593783414593683622593583523593483285933835225932835245931836305930832115929834195928829345927826195926825185925824165924823155923824165922824165921823145920822115919823155918824175917826175916824185915827285914825185913823155912823145911823175910823155909824195908818325907815185906815185905812105904815185903815185902814195901813155900813105899816195898814155897813135896813135895812115894813135893814145892813145891813145890813145889813135888813105887813165886813145885813145884813145883813145882813145881813165880813125879814195878804195877802105876804195875802125874803145873806245872802125871802958708051758698031458688031758678021058668021058658021258648021058638031458628041558618041658608042158598051558588041358578031358568031258558041558548041158538041758528028585180295850802115849803105848803105847803125846803115845802758448041458438041458428031058418031158408041858398041658388031258378028583680419583579936583479519583379313583279414583179525583079416582979932582879417582779316582679395825794175824795205823794205822793175821792135820794205819794175818794205817793145816796255815796195814795265813794175812792958117931058107928580979316580879417580779616580679518580579625580479414580379314580279416580179519580079416579979527579879212579779314579679213579579314579479213579379213579279213579179213579079213578979419578878166957877893257867814585785781047578478518578378624578278210578178212578078212577978314577878523577778418577678318577578521577478295773783145772786245771783165770782115769784165768784215767784225766786265765785195764782115763784165762785255761783165760784205759783175758783165757783165756782145755782135754784175753783125752782105751784165750783135749782105748784195747774185746773165745776245744773165743775265742773165741774195740776295739773155738775205737773165736775185735775265734773165733774185732774145731773165730773125729774185728776205727776215726776245725773165724777385723772125722774175721773165720773185719773115718774175717775185716773165715773175714773155713773145712773165711775185710772957097731057087731357077731457067731457057731457047731557037731057027721357017721357007721356997721356987721356977741956967610425695761141569476931569376947569276840569176729569076521568976933568876627568776830568676135956857672956847694756837641956827663056817652356807683756797663456787610445677765235676768365675767295674761040567376737567276735567176733567076835566976635566876732566776104956667611405665764195664757275663755265662755175661756185660755215659754135658753115657755175656753125655754125654754175653753175652753125651753956507541756497551756487531556477531256467531456457521256447541756437541456427542056417541756407562056397531456387552156377562656367541856357538563475524563375315563275295631753125630754185629755235628756235627755245626754205625754175624754195623741144562274310562174311562074519561974931561874310561774315561674521561574422561474314561374417561274418561174416561074518560974412560874210560774314560674314560574517560474724560374210560274314560174313560074312559974295598745725055977431255967421055957441255947441355937429559274516559174619559074313558974395588742555877441155867431055857431055847421155837452155827441255817431355807421055797441755787441655777441855767441655757441655747421055737431355727421155717421055707428556974275568743125567744195566737832955657393155647362655637383555627363155617311515560738405559735225558734195557736355556737325555739365554736265553736215552738305551735215550736245549735185548734155547733125546734195545721352554472134455437272755427211365541721145554072166455397212405538728245537728265536721041553572831553472103955337283955327252755317210495530721452552972113955287293755277213445526721351552572841552472933552372114655227210375521727285520729335519729355518721349551772419551671157155157110415514711037551371125455127183555117113535510713155509711349550871420550771521550671525550571523550471731550371831550271314550171620550071944549971421549871627549771728549671416549571147954947152154937172654927118655491715255490717225489711451548871419548770944548670940548570842548470831548370735548270522548170828548070521547970524547870417547770524547670423547570528547470730547370104254727042154717051854707062454697042154687021454677052254667052254657021054647041754637041554627041754617029546070415545970210545870310545770622545670316545570212545470940545370416545270317545170419545070210544970314544870314544770114754467041554457041754447041654437041954426941754416931354406942054396952154386931754376962154366941754356931654346952354336941754326962454316972654306941554296931154286941654276941854266951754256952054246952054236962354226973154216931254206929541969313541869414541769418541669414541569114454146984054136921154126931054116941454106952054096994254086962654076994354066952554056931754046963054036962354026962954016973054006962853996963453986951653976915685396696275395694235394694205393694165392692853916916539069419538968519538868126253876852553866810405385681142538468521538368727538268518538168104453806811525379689385378688385377684165376681247537568517537468518537368414537268323537168626537068839536968103953686862353676852453666862653656872853646831253636852353626841753616862653606831953596872753586821353576821353566872753556821053546810505353683155352687335351685155350684135349684175348683135347685165346684175345683145344681139534368213534268213534168415534068518533968519533868416533768419533667104053356713495334671558533367135253326793453316773053306783153296712555328671247532767124253266715545325671562532467830532367124853226711405321671459532067727531967938531867938531767531531667113953156718635314671353531367832531267734531167126853106710425309671865530867115353076793353066741953056617795304662497530366271215302661262530166461945300661251529966231075298661782529766219252966629114529566114952946615575293664195292652596529165341535290651772528965732528865146452876525905286653214652856514545284652811852836521735282653013252816542173528065419527964529527864125052776416795276648395275641987527464937527364115952726416585271641159527064271225269641051526864186952676416825266641353526564146252646494952636411475262641759526164419526063114452596321855258631875525763179052566320905255631870525463146652536322104525263114452516312515250631782524963419524862218852476215725246622288524562187952446294552436218715242622310552416210395240628375239622192523862125252376241952366136164523561941523461177552336115725232611247523161146052306111545229611668522861321295227612410152266111465225619325224619345223611143522261419522160208052206039173521960219452186056258521760211015216602191521560156352146019735213601356521260522215211601362521060136852096049220520860419520759177852065919875205591351520459188452035910485202591051520159187252005910505199591768519859114751975923945196591245519559167351945928129519359231065192593113451915918985190593716651895925905188591360518759125151865914605185594118551845911435183594195182585122151815893451805883751795815725178581773517758156451765810435175581040517458197351735824115517258239251715831139517058178251695820105516858381675167584716351665815645165581881516458261155163582190516258231035161581873516058419515957228551585722945157573919151565714745155572813851545712565153571558515257216951515725108515057391805149572010551485712575147571355514657281185145571564514457209951435727132514257221095141571243514057371535139571769513857156951375715745136571252513557837513457361345133579405132571143513157939513057419512956417512856516512756210512656310512556626512456520512356622512256418512156519512056420511956520511856728511756316511656419511556422511456422511356417511256417511156311511056312510956520510856419510756417510656528510556630510456421510356628510256733510156422510056312509956210509856629509756525509656315509556632509456935509356732509256525509156314509056421508956416508856315508756419508656317508556517508456525508356524508256419508156215508056947507956525507856521507756413507656310507556311507456525507356313507256312507156212507056210506956214506856316506756210506656417506556211506456295063562850625629506156310506056525505956417505856625505756418505656319505556275054564165053563165052565215051565235050564205049563195048563125047563145046563125045563125044562135043562175042565275041565275040563165039563145038563135037564145036562105035563155034563145033564195032556275031554195030556265029554195028556225027554195026554185025554195024553135023554195022554195021554195020553175019554195018551850175541950165531450155541950145552350135541950125532050115541950105593750095541950085594150075541950065551950055541950045531650035541950025521050015541950005551949995541949985552149975562649965541949955564049945541949935582749925541949915563149905541949895583449885541949875517784986554194985554184984554194983551035498255419498155627498055412497955419497855631497755419497655423497555419497455418497355317497255419497155421497055419496955620496855524496755419496655420496555525496455317496355634496255417496155423496055318495955317495855210495755210495655294955551649545541949535462149525451949515441749505451849495462649485462649475451849465493549455452049445462949435442149425452049415493549405473649395451949385472949375431549365452249355494349345452949335472449325493849315441649305472949295484149285441649275442249265483249255473549245452349235493249225410414921543144920547294919544164918546274917549364916546234915547294914544164913546234912546244911545224910549384909545264908545214907549434906548354905548404904548284903545204902547284901546314900547314899544224898544194897533174896532114895533154894534194893536204892532104891535204890534174889533114888532134887539324886533124885534184884534144883534154882534194881534134880535264879534154878534154877534164876534194875534134874536214873535184872533154871537204870535194869533154868533144867533112948665316734865531654486453114148635316514862539474861531865486053317485953415485853259948575341448565341848555331848545331848535362148525351648515351848505331448495331448485341548475341748465351648455351848445351848435331048425331548415331148405331348395351448385341448375351648365331248355341948345252548335210414832521042483152933483052732482952939482852933482752733482652521482552727482452520482352940482252728482152731482052827481952629481852623481752831481652627481552728481452831481352931481252628481152727481052524480952732480852833480752528480652198448055273348045262948035283848025252048015212534800526224799526254798526214797525184796523174795523154794524174793524104792524144791522134790522134789522134788523947875221047865216478552419478451731478351943478251727478151930478051627477951525477851519477751621477651134647755111394774518294773517294772514254771515294770518314769517324768518374767518274766519324765517304764517344763516254762518344761517364760517284759516264758514194757515204756516264755515234754518324753519394752519384751515224750516234749519384748516284747519374746515234745514194744514204743515264742513194741516254740519374739515204738517324737515194736514184735515184734512114733514124732514154731513154730513134729513154728512134727512134726512134725512134724514194723501353472250936472150627472050732471950729471850525471750124947165013544715501341471450155447135062547125052447115072947105062247095052547085093347075083147065083447055010374704501041470350417470250621470150621470050124546995062346985062346975093446965082646955083746945014574693501036469250936469150419469050730468950837468850522468750104546865052046855011514684501253468350932468250936468150727468050114446795031446785041946774910454676491976467549166546744918914673492711646724921934671493212946704940159466949105346684930144466749728466649281274665491879466449124846634994146624917774661492398466049166446594941946584854249465748146046564828120465548281304654484017946534819774652481241465148125246504814524649481889464848737464748198646464827110464548281244644483114146434814614642489434641482085464048371514639482510546384884946374852746364884046354821116463448199346334819944632484194631481561463048519462948419462847301294627476354626471365462547125846244715554623471155462247218646214785046204712664619471140461847104846174774146164715654615471663461447733461347737461247104546114712484610472711746094714734608471565460747632460647241044605474417246044713484603471454460247221084601471144460047167545994783545984763045974710464596474204595473174594473816745934718814592471881459147835459047419458946271074588461879458746228545864618654585461560458446207845834618804582461773458146104745804632138457946146045784618754577461355457646125445754625954574462712945734694345724617664571462811345704618814569464519345684694345674613524566461675456546197645644624954563462474456246259945614614594560469454559461864455846291064557461572455646629455546124554464194553458424552458374551451676455045146145494511434548452278454745125945464513624545451147454445145445434510524542451870454145166845404521784539452494453845135645374517854536457324535451564453445135545334524102453245137445314511444530451461452945166045284514634527451142452645197245254511454524451457452345414452245125345214520894520459344519456314518456294517451245164541945154431745144452945134472545124410484511445224510444194509445274508443114507445194506446194505445204504447254503445244502442104501444184500442104499443124498448294497441034449644523449544836449444737449344125044924452444914483244904431444894472944884462944874472844864473344854483744844442244834442044824431444814451844804462744794452444784462344774452144764462444754493544744493144734483544724462944714462944704462544694472844684462644674452044664462844654451444644410394463448374462447264461446234460445174459448344458442134457441244564441944554362644544382744534383744524313524451431363445043114444494384244484383644474383144464311484445435224444437344443439374442436294441436224440436264439436274438437354437431569443643529443543529443443934443343734443243104044314311474430439364429431779442843729442743104544264383644254310424424431448442343933442243424442143636442043736441943114644184311344417431867441643730441543124744144313554413437314412431255441143135344104362644094383644084373444074362644064311404405439404404431249440343738440243113844014312534400435304399431777439843251114397431042439643936439543939439443732439343522439243940439143736439043146043894321834388431146438743833438643155343854312664384439344383431246438243731438143937438043419437943208443784311494377431250437643114543754310524374437324373438324372436234371438354370437274369436304368432134367431243664341943654215564364422710943634222774362421147436142156243604227115435942216843584216564357422712343564220724355428284354421566435342935435242145743514262943504211644349421050434842177443474293643464272643454215554344426294343421448434242104143414216634340421352433942176843384212644337421251433642229143354229118433442241074333422284433242227543314293843304222964329421152432842187143274234149432642301144325423815243244213564323421989432242155943214216604320421971431942229043184212534317421990431642103843154210434314421343134212431242419431141123943104119734309411751430841135643074132130430641114343054112404304412810743034111464302411872430141301294300411753429941134642984193942974126101429641229142954112554294411988429341115042924111424291411771429041135142894141442884116704287411993428641167942854114614284411055428341115242824125994281411148428041946427941208442784118784277411256427641834427541527427441147442734119894272412510242714123944270419404269411989426841166742674115674266411462426541940426441836426341167442624117754261417334260417334259414194258411242574141942564017704255401251425440156742534025104425240628425140125942504094342494032123424840145842474084242464011464245401760424440723424340623424240632424140944424040103942394012444238403011842374020764236401453423540219842344073342334012414232402082423140136242304011434229401369422840125342274023934226401253422540420422440841422340104642224011534221401673422040135342194012454218401982421740136142164010424215401250421440228642134015614212401041421140238842104012484209409374208402394420740104042064023934205403010542044016524203407274202401455420140114142004027101419940391464198401348419740186941964019874195407344194406314193401363419240301194191401562419040628418940156741884013474187401559418640166341854083741844014534183401562418240136541814015674180401253417940167641784027128417740104241764021984175401352417440145641734062941724012417140419417039177741693916734168392094416739945416639341514165399324164391574416339227741623917864161396244160391462415939734415839115741573992841563911504155391465415439104541533912424152399324151391551415039166441493913524148392185414739155941463915684145391143414439228341433911434142392597414139177641403918764139391148413839145441373926107413639187741353983241343910404133393614841323912414131391557413039125841293983341283983441273915584126397304125394164124391981412339728412239114441213912594120391040411939136141183934132411739207741163931120411539208041143910384113391367411239126041113917614110391985410939621410839929410739523410639931410539229541043924105410339341224102393112641013936138410039231054099391663409839331264097391045409639629409539419409438417409338518409238103640913873140903841740893842040883842340873841840863841740853862440843862340833852040823810344081381554408038628407938422407838936407738932407638827407538933407438313407338411407238737407138114040703862140693863040683810384067381140406638114540653810384064384154063384204062384214061385194060387214059385214058384224057387354056385224055386234054388384053385284052385264051388484050381454404938104640483862640473811464046386224045387284044384214043384204042388334041381549404038939403938630403838114240373862940363873340353895040343813664033381670403238311224031389334030383213740293815604028382393402738730402638633402538520402438736402338114440223883240213810354020387224019387364018388344017386244016381048401538731401438155040133810384012381251401138832401038104440093810374008386224007384154006384194005374194004373164003376234002373154001374144000376303999372173998373173997374143996374193995373163994375293993374183992374203991376223990373153989373163988373153987376203986375163985374173984373143983374193982374173981371047398037524397937414397837210397737414397637420397537419397437521397337629397237529397137420397037626396937522396837421396737622396637521396537419396437419396337520396237418396137317396037422395937314395837418395737419395637418395537419395437419395337414395237419395137419395037318394937524394837528394737518394637419394537421394437419394337417394237421394137323394037323393937424393837529393737521393637104839353752739343741939333731639323731439313741939303731539293752039283773139273741939263741939253728100392437316392337516392237623392137529392037732391937419391837418391737316391637420391537413391437626391337315391237311391137416391037418390937522390837625390737516390637418390537315390437419390337419390237520390137419390037420389937525389837526389737419389637524389537420389437522389337418389237420389137520389037723388937632388837421388737623388637422388537623388437421388337519388237628388137313388037626387937519387837521387737415387637734387537419387437723387337524387237313387137420387037724386937316386837519386737314386637312386537314386437416386337419386237623386137422386037522385937633385837103838573742038563752538553742038543762538533710363852375213851376283850375243849374173848374143847373173846377293845377383844377273843376243842377283841374163840372153839377353838376213837374193836374173835373133834371246383337728383237417383137937383037518382937631382837735382737312382637213382537213382437211382337419382236835382136103438203614633819361144381836103738173611413816361142381536936381436730381336731381236629381136633381036125038093683338083612433807367303806361049380536946380436115738033652438023652138013683638003652337993614503798364253797365163796366233795367323794367283793361142379236103937913613533790361039378936733378836835378736730378636249237853611423784361145378336622378236933378136623378036835377936155837783673737773683937763693737753613563774368373773361044377236105037713662337703611453769361247376836830376736134737663672737653683037643641937633651737623615583761368313760367293759361146375836938375736125537563652337553662837543615553753361157375236838375136145837503612543749368363748361251374736104537463683037453673037443631737433631337423631437413621337403612373936419373835259737373530120373635261113735351983373435197637333533132373235241003731351044373035251083729351872372835145537273511453726351357372535219937243516653723358373722351676372135177837203522943719357273718351367371735124837163541237153516623714354163713354183712354213711353413837103551837093562337083511473707351881370635281153705352812737043534115370335241083702351776370135259137003513623699351358369835156336973511433696352285369535196836943524100369335419369234155736913410383690349363689341035368834165736873482936863472636853417523684342489368334145936823411473681343413036803418773679341358367834105136773420733676349453675342310036743413493673348393672341454367134341603670341569366934321433668341041366734730366634125436653412483664341146366334935366234176236613422853660342693365934217036583410453657341987365634178236553483536543416753653342074365234271093651341987365034271073649341251364834135336473429105364634166636453416613644341666364334114636423410503641343212336403418683639341767363834419363733159336363318923635331459363433940363333177136323383736313384636303312553629338333628337293627331562362633124336253363436243319873623332299362233126736213314633620331463361933301263618331139361733702943616332585361533351373614336226736133323103361233125836113383336103362936093383836083383536073313653606333163605338353604331766360333136136023322753601334819636003324923599333022335983314563597332512235963320813595331464359433176935933314643592331679359133136135903316773589331674358833167235873318753586331885358533176535843323102358333351553582331468358133248035803315573579331355357833146035773326105357633135835753363635743316763573332298357233842357133178035703329143356933281263568332812735673362635663312433565331461356433419356332526356232114435613273035603217753559321869355832114535573210523556321459355532135135543294935533221953552321259355132831355032134635493211563548321566354732146435463216663545321675354432114235433214553542321460354132825354032103635393263235383217633537322492353632186635353283135343213353332419353231271003531313112235303122923529311968352831165835273125973526311141352531217835243110403523311565352231730352131156435203115663519312187351831301113517311145351631165435153118693514312582351331291123512311776351131155435103118703509311454350831271053507318353506318393505311667350431187235033183335023194735013131635003141934993113349831419349730103934963083234953019763494309423493302086349230125534913024813490301455348930114634883094134873019713486301037348530281153484301887348330178334823011513481309393480301656347930145734783015673477302285347630228734753016723474301557347330156234723010433471306343470301871346930114534683094834673022923466301660346530271133464301879346330831346230166534613021853460301464345930136734583020833457301140345630146034553083934543062834533011583452309433451305263450309433449305263448308323447301360344630321523445302298344430104434433011423442308333441301246344030831343930293438301334373041934362994734352917653434291573343329636343229166434312915653430292284342929145034282913643427291253342629525342529178634242972834232994034222913563421296383420291265341929199134182915643417291662341629145934152913523414291989341329251123412292189341129104534102984234092912433408291988340729281243406291369340529167734042973934032917743402297303401291250340029239033992916673398291570339729627339629231033395291457339429188733932912443392292711733912920763390291360338929175933882983233872919723386291347338529135233842927118338329135633822964033812916693380291161337929188633782963733772931120337629743337529219033742912703373291042337229124533712910433370291156336929104033682913336729419336628196333652816603364281559336328196633622818753361281467336028261133359281765335828167033572821783356282810233552826105335428291093353281770335228840335128136233502821873349281978334828155833472872833462814583345281142334428735334328633334228136433412818843340288403339281775333828156633372820823336281773333528259733342813503333281574333228126533312815553330288343329286293328282392332728134933262826106332528188633242820773323281881332228135233212816753320281048331928944331828105133172812523316282910833152818693314281773331328157533122814573311289333310282510033092820733308282082330728271093306281559330528291103304281148330328261063302281550330128271083300281144329928104232982819763297283311932962816723295289363294281346329328381483292281049329128176532902816643289281037328828176732872818673286281363328528229232842812553283281259328228198532812893832802841932792813327828419327727115132762715613275271763327427135232732711403272271871327127186632702715643269278333268271357326727114232662716703265271456326427114532632772832622783432612742132602712473259271037325827831325727103832562793232552773032542793232532794032522712473251279443250271444324927145732482719783247272082324627167032452721893244272710432432712493242276313241277393240271558323927114732382783932372752832362711443235279433234277313233271468323227104232312713513230271361322927135832282728110322727124332262714593225271247322427381363223271655322227114732212713603220271669321927839321827136132172712533216271350321527523321427834321327933321227114732112772832102782732092714623208271777320727114232062714473205279453204271244320327241063202272085320127943320027197731992715693198271158319727836319627197231952711353194272074319327728319227145631912716653190277283189271043318827104531872794731862731631852762431842741931832619923182265213181267223180263213179264233178265173177266253176264173175263163174264153173264203172267263171266283170263193169269343168264193167265223166264183165264163164267273163266233162265203161264193160262173159264183158265223157267293156265243155266253154265233153269353152264173151263133150265223149264163148264203147265213146268293145261041314426519314326937314226935314126522314026529313926942313826321313726629313626114031352631731342641431332662031322642231312652131302682931292663131282631431272641831262631831252652031242652131232693531222611413121264233120261140311926317311826414311726724311626418311526521311426104131132632031122673131112693131102611383109265223108266273107264203106263173105265263104264183103263113102265213101261140310026317309926414309826725309726316309626521309526104430942631330932651830922693630912662330902621030892631630882652430872631730862642030852642330842652130832611403082263173081264143080267243079263153078265213077268293076264183075266283074269403073265163072269363071265163070264193069267253068266243067265263066263173065261140306426317306326414306226724306126418306026521305926829305826726305726311305626414305526419305426419305326621305226419305126316305026421304926728304826622304726318304626318304526620304426619304326417304226624304126522304026623303926626303826831303726418303626416303526419303426417303326623303226319303126522303026628302926417302826520302726628302626623302526419302426521302326829302226315302126523302026316301926135730182662030172683830162621430152642330142631430132642030122631530112631530102641930092652530082683530072611433006267273005262196300426312300326420300226317300126831300026948299926726299826625299726125129962673229952652229942652429932641629922673429912683529902672629892662629882662429872672329862651929852683729842693929832673029822652329812652029802694029792652129782683229772611462976266252975267322974261038297326520297226732297126733297026623296926835296826620296726416296626832296526521296426829296326113929622683829612611432960261145295926627295826419295726132956264192955251245295425526295325944295225136429512510452950259422949259352948251669294725836294625228529452511472944254202943251147294225527294125126129402513502939251148293825136129372517722936251352293525144429342552429332514552932251247293125156429302573329292572629282594329272510462926251355292525114929242552229232516572922251555292125937292025176829192511442918251669291725733291625837291525136929142594929132594229122511482911258372910251569290925114929082510412907251148290625728290525124929042594429032573929022573429012593829002510512899251985289825209628972515652896252187289525166828942510402893251350289225838289125942289025937288925839288825176228872594228862517652885251670288425125128832594728822516662881252292288025197328792594428782541928772422862876242712028752439180287424763152873242310328722419872871245021928702411532869248482868243817328672423102286624177628652410452864241883286324166728622472828612411482860241570285924114728582431106285724104428562438140285524735285424218328532433108285224229928512414582850241987284924145528482448203284724136128462448217284524178328442478350284324156628422417702841242287284024198528392416992838241149283724947283624136828352426121283424351502833249382832242085283124731283024938282924145628282416702827241563282624146528252412592824242810228232493828222493728212411502820249372819241781281824114328172419942816241873281524261222814249512813244192812237292811231863281023114228092384028082393428072383428062372428052383628042384328032314612802235222801237312800238372799238342798236282797231047279623630279523104327942316652793238302792235172791237262790239362789237272788236262787236202786236322785232480278423526278323522278223144827812352127802383327792352227782382927772312472776238402775236222774231047277323730277223104827712312442770238442769231145276823838276723524276623937276523167527642310422763237272762231042276123421276023941275923728275823836275723144727562312492755237332754231045275323521275223523275123725275023727274923728274823519274723939274623833274523125227442311482743236302742234242741237382740237372739238392738231985273723727273623625273523848273423522273323519273223124127312310422730234192729239422728237322727232511127262314552725236242724237252723238372722231562272123321382720235192719231030271823261042717231763271623421271523156627142394027132313562712231356271123104127102352227092351827082321104270723622270623728270523629270423315270323525270223528270123730270023104226992342126982342026972352126962352126952331426942341926932244199269222126326912210412690221145268922931268822291222687222913626862218632685221860268422941268322729268222176726812210432680222710126792212452678221555267722176026762215602675221656267422735267322187726722284126712212592670221664266922218926682216742667222710626662284126652284126642293126632211452662221460266122239726602214612659221151265822418265722936265622178526552235148265422104526532213442652222089265122271282650221576264922208926482211432647229362646222181264522241002644228462643222094264222145126412216762640222510826392293826382222982637221252263622415263522623263422176926332237144263222221022631229382630222285262922177226282210412627221448262622251012625229352624221561262322134526222212432621221346262022702622619221144261822124426172222862616221040261522419261421104326132182926122183226112113502610211142260921525260821623260721125226062116662605211157260421938260321938260221726260121935260021114225992120752598211037259721732259621124925952163025942183325932111572592211992259121114325902184025892123832588216312587217342586211669258521104125842112512583211465258221104525812114722580211461257921126125782112512577216292576211675257521158325742183925732184225722152925712183325702173525692193425682111422567219362566217372565219392564217322563218352562217322561218342560218372559217352558211355255721731255621831255521525255421114525532193725522173325512183725502184325492120832548211247254721114625462118822545211455254421135025432113562542211045254121166125402173025392183725382117722537211049253621104025352111472534218392533211357253221188025312113512530211559252921629252821838252721155325262122822525216222524211352252321727252221526252121135725202113532519211142251821735251721837251621624251521104825142172925132110442512218372511218452510219422509211459250821835250721145825062110442505211572250421114225032173125022141925012011502500201979249920135324982012592497201875249620208524952093524942017672493201250249220838249120828249020124724892018702488206232487201565248620145224852062124842072224832013492482209422481201136248020176524792014622478201142247720935247620103824752012442474201356247320620247220315247120732247020124724692062724682083624672073024662083124652013442464201239246320281042462201662246120517246020207124592041824582082824572093724562017682455201244245420124824532015752452202710524512093624502093324492062024482093524472017652446201575244520519244420837244320186924422012492441201046244020134224392014612438201976243720261152436208372435201659243420621243320519243220124924312012392430201042242920136724282053024272015592426206232425208332424201460242320834242220628242120841242020939241920197424182011352417205212416209292415205172414201035241320218724122072724112010352410208302409205192408208312407202132406203513024052022932404206202403205192402206202401204142400202112399203122398203122397203102396202823952051823942021023932041623922031023912051523902051823892041923882011402387207322386205202385204142384201348238320518238220103723812010392380201144237920523237820937237720519237620186823752041523742082923732073023722012442371204192370206312369204152368205232367201223662041923651914462364191045236319943236219523236119417236019103823591962423581941623571994423561941423551942023541993723531952423521962723511972523501994123491963323481983323471952223461993123451972823441983923431913622342192598234119935234019167423391983623381993423371982923361910362335198432334191038233319831233219125623311918612330199332329191146232819114623271912512326191152232519291292324193162323198332322199412321191148232019729231919736231819104123171993723161914602315191455231419103523131913542312191246231119104023101914502309191650230819835230719834230619124623051911482304191147230319835230219165323011993423001993622991962922981911492297198342296191038229519124022941911412293191876229219835229119103822901914572289195242288191557228719113822861993222851983022841911512283191042228219934228119626228019625227919834227819114622771913452276191443227519145222741913452273198302272191352227119145222701951722691951922681915226719419226618249222651818682264186252263181048226218942226118146622601811492259185252258181465225718114722561852722551811482254181549225318835225218197722511812492250182078224918135122481831022471862322461815532245183102244181350224318134622421825912241182922401810342239189382238183514822371894022361810512235181776223418124822331824103223218134622311892922301816642229181038222818827222718156522261812432225181036222418824222318621222218113722211812512220189342219182085221818124922171811492216181349221518843221418197522131830118221218189222111819832210181454220918105122081813652207181359220618261112205182812222041816632203181152220218136722011823102220018937219918113921981820792197188302196181562219518196321941882821931816572192181250219118124121901813502189181150218818147021871828123218618124821851828129218418301292183181554218218238121811883721801817582179187252178183315121771832142217618135621751838173217418221092173183412721721819802171181875217018197821691811482168189392167187302166181661216518104221641862721631811442162181146216118165821601862721591831321581815692157181142215618419215517217221541722902153175302152178352151171870215017945214917946214817146121471794021461716672145171978214417146321431723922142171471214117271142140171147213917146021381715582137172692213617125321351711452134171037213317145321321719762131179302130171350212917145421281711402127171253212617135721251793621241714562123171246212217146021211711422120171360211917124821181793721171713632116171139211517157021141717812113172287211217155721111718732110171454210917935210817199621071710412106171564210517135821041725113210317219221021718742101171884210017135220991715682098171455209717167120961794420951725100209417519209317945209217942209117197620901719822089171258208817218720871763020861713482085171044208417115920831718672082177242081171348208017165720791711562078171771207717229020761783420751713592074171248207317135520721712502071179482070171045206917125320681712512067172510820661793620651711502064171245206317125220621718712061171353206017146820591721822058177312057171359205617231162055178432054179422053171671205217114920511723110205017115720491717762048171360204717931204617125720451721952044174192043168322042161451204116125320401622912039161775203816124920371694220361673520351611432034161971203316156620321652020311622942030162284202916135720281694420271624107202616155120251618652024167272023161156202216136220211624942020161152201916124820181616692017161356201616176720151694120141610412013168402012161876201116156420101615572009161983200816176820071632131200616208920051616812004162410320031613592002161043200116199120001611451999161451199816739199716629199616251101995162511919941618681993161575199216197119911629109199016271031989161042198816156219871621981986162292198516207419841624931983161354198216156519811617691980161661197916146319781617721977161771197616239619751612581974161965197316937197216734197116125719701663419691610381968161243196716114819661612511965167321964161458196316176719621683119611672819601616671959161263195816156119571652519561618781955161037195416115319531618731952161446195116281221950163211819491610431948162291194716126419461615671945162090194416844194316198219421621981941162186194016156919391694019381613491937161155193616732193516104119341662519331610391932167271931164221930161149192916211001928161349192716157119261616711925161347192416104419231694819221614591921167311920168401919168301918167361917161868191616942191516419191415522191315624191215728191115834191015319190915627190815314190715319190615420190515421190415521190315156319021573619011551919001514691899156241898153191897156301896155301895155251894155281893155241892155191891153151890155211889158411888153191887155241886156251885155231884154181883156231882154221881159401880151462187915423187815729187715416187615520187515629187415624187315626187215523187115829187015732186915835186815728186715937186615418186515522186415626186315830186215104018611531718601552018591583018581542018571511411856155191855154201854151046185315418185215417185115624185015624184915520184815113918471593118461572718451542218441593618431512451842157281841158331840157251839157421838156291837151263183615114218351583418341511521833157291832155211831157371830158361829159391828157261827155231826158331825157281824157291823159391822158341821159371820157271819158311818157391817157301816156251815154191814141360181314103618121463118111463218101410501809141142180814125118071414641806142610918051494518041413601803148391802149391801141354180014186117991426114179814155817971413551796141561179514943179414251071793142186179214125317911442117901412501789141884178814134917871412551786141559178514178317841444187178314341381782145181781141456178014229017791416621778147251777145231776141043177514167817741417781773142911217721433143177114371571770141350176914114817681426117176714218617661419751765141676176414145417631416721762144191761131564176013187117591316681758131358175713832175613218217551319741754132510117531319891752131453175113391391750131355174913511931748132810617471383817461311521745131967174413167417431323941742137301741131572174013191011739131354173813734173713155817361327118173513421821734134518817331311551732132710717311319861730139421729133512117281314541727135301726131558172513155617241320901723132511217221327111172113241011720132611517191315601718134191717122394171612197917151229123171412176717131214591712127301711121149171012103617091262617081214571707122110517061247169170512145517041293517031293917021220721701126271700121247169912125616981211461697129391696122384169512103916941222101169312218116921213471691121249169012135116891218701688121153168712187216861237139168512135016841216631683122484168212331231681121145168012625167912124816781212441677125271676121565167512166216741230110167312281111672122488167112261141670121766166912177116681214741667126291666121035166512177216641293916631273516621217721661128331660121461165912155416581212471657122911016561222921655121139165412155316531214571652122296165112115016501284116491225105164812187016471220861646123212716451210461644122610416431226112164212271151641121138164012104116391217681638121984163712321311636121873163512104216341213431633121036163212196816311223891630121976162912239116281294316271232138162612942162512177716241218731623121980162212420162112177616201293816191213541618128341617121243161612166816151214591614121557161312730161212251061611121663161012166316091216641608126311607125221606124191605111673160411318160311941160211176916011115611600111042159911835159811261101597117291596111468159511176615941112461593111043159211187215911120771590111875158911155715881193715871110361586115201585111657158411124415831124941582119361581119421580119461579111044157811631157711103715761118861575112082157411166515731119791572119371571112378157011361371569112182156811114215671115741566112711015651183115641112571563113011815621111301561111343156011271091559111348155811155415571152215561111481555111460155411134815531194815521118681551111563155011124415491184115481118731547111147154611187015451123851544112283154311281111542111768154111125015401114611539112181153811186515371172815361116651535111661153411188215331114521532111863153111197515301119721529111963152811247615271115561526111984152511238615241120731523111148152211269415211110421520111973151911115515181117581517111252151611186615151110381514111459151311311231512111038151111239215101120811509112911315081111401507119351506111161150511146715041172715031194115021124100150111115015001123100149911391461498111665149711146214961116641495111875149411279514931110481492111356149111114714901122931489113112714881116641487111985148611828148511259814841193514831110361482114191481101145148010238714791024851478101655147710938147610271001475101045147410156414731014601472101453147110156014701021941469108331468108301467101044146610228514651024109146410146114631072814621027118146110115114601029131145910168314581052614571010481456101352145510228514541073314531017641452101039145110626145010167714491011481448101038144710146914461022931445101787144410166014431034136144210135914411093514401025961439101561143810259014371010421436101565143510421143410103614331042141143210197614311020731430101044142910156314281052214271016581426102184142510114314241013521423101139142210125314211022811420107301419101249141810156314171020871416101042141510114514141011471413101560141210124514111019811410101666140910228314081017601407102997140610176314051010391404101148140310271141402101663140110104614001018891399102711813981016721397101145139610431981395102611313941041166139310228413921016681391101771139010291231389101454138810186513871039138138610104213851017871384102710413831018861382101466138110157413801063013791015711378101462137710231011376102812613751029113137410269913731052213721041913719155413709146013699217913689165613679125413669188213659177813649221021363918771362952199136199411360931127135992710913589176113579186113569228813559208413549161091353937174135291561135192710113509238613499241171348912541347916851346916671345916651344917741343922991342925128134192711313409167113399166913389145913379188813369301321335919861334923901333926103133291780133191356133091476132991146132891882132791674132691871132592511213249843132392711813229251031321920931320911471319915671318993713179125213169461901315912621314924107131392413213129261251311932168131091679130991910513089166713079136413069177313059166413049125513039261141302922118130191982130091662129991144129891045129791781129692295129591247129492293129391456129291665129191563129091664128991786128891571128791470128691477128591352128492311312839157112829431761281916701280929122127993113412789361601277919841276929139127591460127491564127392310212729231071271929123127092811312699124012689188312679239612669331701265920971264983112639104412629168012619241101260923991259918831258924102125791145125691159125592093125491879125391368125291039125191356125091677124992310512489187412479261331246922981245932135124491464124399411242822951241818851240813571239845209123881354123782594123681146123581039123482078123382610712328271151231893712308207612298125312288125012278331341226883512258145512248104312238124412228103812218178212208186812198177412188937121781367121681874121583614012148177612138136712128136112118198812108208812098351491208833150120781046120681666120581659120481881120382198120281358120182193120081252119981972119881769119781674119681982119581048119481261119381995119281358119182195119081149118981039118888361187812541186824971185862611848218611838208111828125411818630118081358117982310311788229911778186711768115211758733117482310111738115111728114711718114711708634116981782116881889116784191166711481165716691164784111637238911627731116171250116071044115977321158712521157710471156793911557269911547146411537125611527733115177281150712551149729125114872810411477371531146710401145722881144711401143751811427840114177311140714691139730122113871042113779471136730132113571364113475271133715641132726104113171979113071052112974017211287147711277198011267114111257187911247198111237271181122717731121720931120743200111978321118732141111774322211167301291115741170111471563111371459111271569111171146111073917211097187411087228911077136311067361531105720891104715651103741165110272310911017188511007940109971036109872499109772913910967116010957114310947239010937138010927124710917229410907104710897228810887167610877211001086716661085752210847841108371977108273121081742010807317107974251078762510777114110767115510757114010747522107371146107274161071773410707730106979321068762610677624106671136106571865106479341063716711062794110617231021060719791059710441058793810577940105671885105571882105471359105371664105271359105176331050712531049742159104872293104771983104672410710457381561044784010437736104271354104171146104071353103971563103876331037716661036783710357239610347251131033735132103271366103172510710307177110297271131028773010277113910267145810257165710247147110237135910227114410217113910207932101972176101871772101772912310167156510157835101473214510137381461012710451011719951010720871009715681008714721007713621006718871005710481004728110100373615010027157010017104210007231049997146299874016199773715799671158995719749947114799372911099272611199171664990716789897166998872294987731138986720839857734984712489837125498272813098175269807251059797177097871254977715669767736975741697475219737135097271757971716739707114896971156968794596776279667636965712469647104396371457962713509617149607419959621869586291049576832956693995561666954616649536197795263713895163514495061461949684494861775947617759466351499456421809446271189436836942637142941613519406281229396391289386401679376231069366167093563114593462083933622959326261179316209693063112892961975928672792761871926693792561038924628134923683892263615192161041920694191962811091862911891761569916624100915620969146125991363011691261040911611399106186390961148908623105907612629066239590562210090461360903621909026251039016135390061344899684489861559897694389661653895618658946156889364418789261359891616698906126288961769888629128887649201886622102885644171884616668836178188261659881695688068448796734878621100877614588766115287562293874625928736125387261865871618698706155486969508686145886762410686668388656391608646451758636124786262310386165218606932859627105858610368576177385661248855617718546229585363111385261459851622778506217484966358486271088476157184662510584561765844628103843684384261564841614568406239083969428386207983761463836611578356124683461562833617718326228283161967830610508296281148286229082761466826613608256271118246197682369398226166082161768820611478196321338186104181761243816612578156145481461368813637137812673281161756810693680969298086249280769378066251008056104180461356803694480261353801616668006311387996125379861142797612527966144979561469794641979351142792524102791511477905291087895451537885177078752297786515667855228678451361783564280782515597815229978052612877955221377852086777524100776521857755934774526100773516737725114577159377705271197695208676855119676752410476652411676551372764520927635168276254520576151252760518697595740758514677575166375652189755526128754515707535197875251042751517717505249074951658748525987475840746525967455341397445197874351989742520927415311297405259473952410473851262737547218736513677355136373451668733527110732521777315125473052410972951148728513687275381587265158072552811672452310472351045722533136721551228720516667195261177185311407175411957165156871552611371456828171351971712514497115136471051249709524887085146870751352706534140705540162704526106703593870251356701516647005249969951462698513526975176969652110069551875694515706935239269252910769153013469054215768951880688524926875251196865321416855452076845241076835740682510476815271176805198667956228167854320167753113767656127867555324267452497673541967245019167141573670412506694261296684188766745421666642499665411446644125066341143662413616614156666041458659425131658426136657414736564146065541457654483265343412865246316514221036504199064943716264841778647484364642210064541449644414536434114864241892641411456404188563941658638419916374361616364331376354147163446286334207863242913063143816363041462629412496284104062743212962641143625422102624429126623440178622412456214177362041666619420726184219561747326164735615421109614483661341143612420676114208161042697609433135608414546074114660641350605419796044218260341454602473060141567600422945994201065984622815974239659643112259541040594412645934271285924837591433172590440170589416705884602355874321625864361685854281285844228858341761582415575814227758042287579430135578413565774241015764124957541873574436143573448204572420985714311395704219356941975568417635674114956647285654189256443215634627562427107561419775604231055594166555841673557415655564301255554291325544251025534201005524209555141138550418805494103754841143547420945464104054541454544420695434291215424381775414944540414645394492055384146153741243536415555354156853441885533415785324321585314229253044019252941988528427108527412565264135352542499524483452341360522414615214582645204421855194542655184176351741149516417835154351575144241065134209051241470511422107510413555094187950848829950747127150641363505415715044137050341991502437186501416795004145849942811549841682497429125496441949531157494330121493321854923730491372949034318848931458488320954873114548632110048531157484393848332086482321994813241084803239947931255478328120477393747632295475330122474336146473317744723125347132287470311544693156446831777467315694663114746531978464313544633167446233315146139474603207345932510745838324573135345632168455318754543301214533728452314534513371574503218944937529144832510644734016644631984445362644431364443310504423198744132188440324994393271074383125143731360436363343532410543439414333629432313544313157043032310442931371428311554273529426352742531362424316614233124542239434213176842031569419313604183104741731257416311494153218841432812741333112541232398411318774103940409315844083145940733515240631148405323113404311444033114940231043401317814003146539931470398334157397313543963177439531569394320773933135039232599391310423903114738931144388324993873155638632491385314623843114338339373823947381318833803135237932912637831462377372937633314637531367374328120373329120372327116371393637033614436938343683321153673177936631152365393936431354363313663623146136132075360316703593321293583628357315543563251143553725354315473533732352311593513136035033113234936303483946347320863463834345319803443451873433535342323793413733340321913393208133838373373136033632080335317633343209233331552332335138331324109330318663293727328311483273114732631462325326963243227932332711332232186321325923203155331931565318320813173115031631888315326122314326107313318723123654311311503103241073093241253083291163073943306314683053166630431347303315543023461973013135030031137299318742983115329737242963132953419294249196293227118292228103291232138290212955128921554288214522872177228621454285219872842114528324518628221779281230134280228112279220892782155727721665276213682752301252742351482732271232722391742712114427022492269224972682391482672672492662431692652241182642241022632501892622228726125220826029412592271222582157725726024025623011425524316525425421725321669252293825122810625027312492634248227116247215652462844245235140244225111243247200242225122241264288240233147239245203238230114237246193236240177235272923421354233214652322146623121681230227122229239182228226118227226123226216722252572472242259322322210422223012722124921422022093219220742182177221721249216216672152114921421252213214592122176521122510321028352092145720822497207212492062261102052301212042732902032146620222210720121565200262419922513019821359197227120196217871952652861942177719324418519223212319121561190216551892135418821677187293918623816318525126618421458183211611822291221812259318021562179218661782228917721150176217681752239617421257173231123172243187171293517029371692136416821157167220911662248916529421642104516321266162213501612115316026321592178715823113815721766156219751552727154214731532321301522341461512451961502218914921554148230127147214631462103714521979144231135143215631422155414122711414021770139293313821874137216811362177613521465134230122133222115132219831312186713021258129215701282311121272104612622410312521147124214561232125212223011312123114112021758119218721182177611723312311621873115217591142196111322598112213651112124911027430810922289108210441072104410621255105218721042251021032944102217671012271311002115199230119982271079722610896210469522813894213639324923192215719122915090210528921354882239187224102862114585293684223101832197782237141812115780210457922497782176277218717622380752208374294573212547221354712157070224108692602576822811867218776622095652189064273063215606222712161273760283059212535821050572188456219695521258542838532847522105551274150284249218794821469472105146217684521143442198643219804221363412231014021248392157038228111372197036213603522082342391553323414532213663122078302239929212532822510227219862626192521772242115723273422216732121977202729192114318212511721049162114715212531421147132833122125211284710272792138241971944613195141941312312122141811419”

4.2.2.1.2 Fact: Rewrite the full text by word and letter numbers per verse regarding verse indexes

Although I designated the coding of this section as a fact, in my opinion it might also be designated as a weak evidence as it is very meaningful coding example. In Evidence 4.2.2.1, I had used the 4 main descriptors numbers to rewrite the full text of Quran. It was the natural way of rewriting the full text by the 4 main descriptive numbers. However, we can also refer to each verse by their general verse index that we assign from 1 to 6348 to the full text. Since we refer to the total verse number 6348, we also consider the unnumbered version 6236 as well for testing. If we use only these general verse indexes and refer to each verse, we can similarly rewrite the full text of Quran by the number of words and letters per verse in order. Because as mentioned before, these general verse indexes also incorporates the chapter information inside implicitly and enough to represent the full text of Quran precisely. As you will see in the following, I will rewrite, first, the full text of Quran regarding the total number of verses 6348.

As we know, Quran is written from right to left and I again follow this same pattern while rewriting the text by the descriptive numbers. This represents the whole text of Quran with respect to number of words and letters per general verse index and supports the hypothesis that there is no redundant or missing words or letters in each verse and their orders are also correct.

Considering all the 6348 verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Last General Verse index, 6348 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [ General Verse index 6347 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [General Verse index 2 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [ General Verse index 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 6348 | 3 | 13] [ 6347 | 5 | 20] . . . . . . [ 2 | 4 | 18] [1 | 4 | 19]

And, the final number after all the concatenation would look like this:

6348313 6347520 . . . . . . 2418 1419

63483136347520 . . . . . . 24181419

In the following proof, I demonstrate that this hypothesis for the case of 6348, which represents the total general verse indexes of the full text of Quran.

#Verse index (VerseI)  as descriptor
x<- data.table(unQuran)
tmp <- paste0(x$VerseI,x$vwords,x$vletters) 
head(tmp)
## [1] "1419" "2418" "3212" "4312" "5419" "6319"
tmpr <- rev(tmp) ## matches the coding from right to left as in Arabic.
head(tmpr)
## [1] "6348313" "6347520" "6346417" "634528"  "634428"  "6343414"
tmpr <- paste0(tmpr, collapse = '')
cat(as.numeric(as.bigz(tmpr) %% 19))
## 0
cat("number of digits on this big number is", nchar(tmpr))
## number of digits on this big number is 47284

One more fact based on this code is that, if we look at even and odd pattern of this coding, it is also multiple of 19.

Also, here is the “47284” digits length big number:

“6348313634752063464176345286344286343414634241963415156340520633951563384963374146336419633551563344126333296332411633141963305156329317632841563276196326515632541963247306323731632251963214196320414631951963185176317519631641463154166314419631341563123126311316631041963092146308313630752063062116305520630441763034196302419630172663004186299423629821062974196296315629541862944206293519629272562914196290310628931462884186287314628641662854176284415628341662824146281419628095262794156278166277419627652162754186274211627352062724146271312627031462692136268419626728626641362652962644166263414626241762614246260526625941762582962571762564196255519625441462537256252417625141562504186249311624831162472136246213624521362444196243621624262262416326240413623931662384166237318623642062354196234218362339426232166662311678623011456229311622862362271256622641962255186224937622362062225196221521622041962195206218212621721062163156215626621451762134156212312621151862103106209313620841462073116206417620551862043136203314620241562015186200419619942161984176197942619641861956266194315619329619221461914196190312618931361884136187414618631261853126184313618341361824196181416618041761794176178315617731361764166175418617452061735156172312617116617041961692961685216167621616641761652146164312616341761623166161419616031261596216158213615721161564166155213615421161534156152311615141861503146149313614841961473136146739614573061443136143315614241361414136140320613931261383146137315613631561353156134314613321261324196131313613063261293176128945612741561263126125619612426612341661223146121214612021261194146118515611741761166206115520611431161134156112415611141961102106109313610852161074206106415610552061045216103943610251961016206100417609942060985236097519609610406095114960943146093518609231760914176090315608952660886236087312608661860856166084312608321260822860811660804196079415607831360774226076413607531460744156073416607241760714176070625606921260682126067212606631360653126064415606331060622116061314606061860596196058413605731360562106055314605441760534196052315605151960503156049420604841460474126046619604541960442146043311604241660412126040931603931360383136037315603631260353116034415603341960324236031296030314602931160283106027314602631560256176024314602341560225226021412602041860196196018211601741660162146015419601431060134126012417601151960102106009416600831160073136006315600541460044136003146560021465600110406000940599962759984135997314599631559952115994213599331659924195991941599031559894175988418598762659864145985415598431359833125982313598161859805135979518597821059773135976623597541959744195973521597293759713145970416596931259683145967314596641959656245964316596363059624205961627596063159594195958836595741959563135955632595441659535225952316595141659502135949295948415594762459467255945417594462659438305942733594172259404205939316593829593741459366225935523593428593352259325245931630593021159294195928934592761959265185925416592431559234165922416592131459202115919315591841759176175916418591572859145185913315591231459113175910315590941959088325907518590651859052105904518590351859024195901315590031058996195898415589731358963135895211589431358934145892314589131458903145889313588831058873165886314588531458843145883314588231458813165880312587941958784195877210587641958752125874314587362458722125871295870517586931458683175867210586621058652125864210586331458624155861416586042158595155858413585731358563125855415585441158534175852285851295850211584931058483105847312584631158452758444145843414584231058413115840418583941658383125837285836419583593658345195833313583241458315255830416582993258284175827316582639582541758245205823420582231758212135820420581941758184205817314581662558156195814526581341758122958113105810285809316580841758076165806518580562558044145803314580241658015195800416579952757982125797314579621357953145794213579321357922135791213579021357894195788166957879325786145857851047578451857836245782210578121257802125779314577852357774185776318577552157742957733145772624577131657702115769416576842157674225766626576551957642115763416576252557613165760420575931757583165757316575621457552135754417575331257522105751416575031357492105748419574741857463165745624574431657435265742316574141957406295739315573852057373165736518573552657343165733418573241457313165730312572941857286205727621572662457253165724738572321257224175721316572031857193115718417571751857163165715317571431557133145712316571151857102957093105708313570731457063145705314570431557033105702213570121357002135699213569821356974195696104256951141569493156939475692840569172956905215689933568862756878305686135956857295684947568341956826305681523568083756796345678104456775235676836567572956741040567373756727355671733567083556696355668732566710495666114056654195664727566352656625175661618566052156594135658311565751756563125655412565441756533175652312565139565041756495175648315564731256463145645212564441756434145642420564141756406205639314563852156376265636418563538563452456333155632295631312563041856295235628623562752456264205625417562441956231144562231056213115620519561993156183105617315561652156154225614314561341756124185611416561051856094125608210560731456063145605517560472456032105602314560131356003125599295598572505597312559621055954125594413559329559251655916195590313558939558825558741155863105585310558421155835215582412558131355802105579417557841655774185576416557541655742105573313557221155712105570285569275568312556741955667832955659315564626556383555626315561115155608405559522555841955576355556732555593655546265553621555283055515215550624554951855484155547312554641955451352554413445543727554211365541114555401664553912405538824553782655361041553583155341039553383955325275531104955301452552911395528937552713445526135155258415524933552311465522103755217285520933551993555181349551741955161571551510415514103755131254551283555111353551031555091349550842055075215506525550552355047315503831550231455016205500944549942154986275497728549641654951479549452154937265492186554915255490722548914515488419548794454869405485842548483154837355482522548182854805215479524547841754775245476423547552854747305473104254724215471518547062454694215468214546752254665225465210546441754634155462417546129546041554592105458310545762254563165455212545494054534165452317545141954502105449314544831454471147544641554454175444416544341954424175441313544042054395215438317543762154364175435316543452354334175432624543172654304155429311542841654274185426517542552054245205423623542273154213125420295419313541841454174185416414541511445414840541321154123105411414541052054099425408626540794354065255405317540463054036235402629540173054006285399634539851653971568539662753954235394420539341653922853911653904195389519538812625387525538610405385114253845215383727538251853811044538011525379938537883853774165376124753755175374518537341453723235371626537083953691039536862353675245366626536572853643125363523536241753616265360319535972753582135357213535672753552105354105053533155352733535151553504135349417534831353475165346417534531453441139534321353422135341415534051853395195338416533741953361040533513495334155853331352533293453317305330831532912555328124753271242532615545325156253248305323124853221140532114595320727531993853189385317531531611395315186353141353531383253127345311126853101042530918655308115353079335306419530517795304249753032712153021262530146194530012515299231075298178252972192529629114529511495294155752934195292259652913415352901772528973252881464528725905286321465285145452842811852832173528230132528142173528041952795295278125052771679527683952751987527493752731159527216585271115952702712252691051526818695267168252661353526514625264949526311475262175952614195260114452592185525818755257179052562090525518705254146652532210452521144525112515250178252494195248218852471572524622885245187952449455243187152422310552411039524083752392192523812525237419523636164523594152341775523315725232124752311460523011545229166852283212952272410152261146522593252249345223114352224195221208052203917352192194521856258521721101521621915215156352141973521313565212522215211136252101368520949220520841952071778520619875205135152041884520310485202105152011872520010505199176851981147519723945196124551951673519428129519323106519231134519118985190371665189259051881360518712515186146051854118551841143518341951825122151819345180837517915725178177351771564517610435175104051741973517324115517223925171311395170178251692010551683816751674716351661564516518815164261155163219051622310351611873516041951592285515822945157391915156147451552813851541256515315585152216951512510851503918051492010551481257514713555146281185145156451442099514327132514222109514112435140371535139176951381569513715745136125251358375134361345133940513211435131939513041951294175128516512721051263105125626512452051236225122418512151951204205119520511872851173165116419511542251144225113417511241751113115110312510952051084195107417510652851056305104421510362851027335101422510031250992105098629509752550963155095632509493550937325092525509131450904215089416508831550874195086317508551750845255083524508241950812155080947507952550785215077413507631050753115074525507331350723125071212507021050692145068316506721050664175065211506429506328506229506131050605255059417505862550574185056319505527505441650533165052521505152350504205049319504831250473145046312504531250442135043217504252750415275040316503931450383135037414503621050353155034314503341950326275031419503062650294195028622502741950264185025419502431350234195022419502141950203175019419501818501741950163145015419501452350134195012320501141950109375009419500894150074195006519500541950043165003419500221050014195000519499941949985214997626499641949956404994419499382749924194991631499041949898344988419498717784986419498541849844194983103549824194981627498041249794194978631497741949764234975419497441849733174972419497142149704194969620496852449674194966420496552549643174963634496241749614234960318495931749582104957210495629495516495441949536214952519495141749505184949626494862649475184946935494552049446294943421494252049419354940736493951949387294937315493652249359434934529493372449329384931416493072949298414928416492742249268324925735492452349239324922104149213144920729491941649186274917936491662349157294914416491362349126244911522491093849095264908521490794349068354905840490482849035204902728490163149007314899422489841948973174896211489531548944194893620489221048915204890417488931148882134887932488631248854184884414488341548824194881413488052648794154878415487741648764194875413487462148735184872315487172048705194869315486831448673112948661673486516544864114148631651486294748611865486031748594154858259948574144856418485531848543184853621485251648515184850314484931448484154847417484651648455184844518484331048423154841311484031348395144838414483751648363124835419483452548331041483210424831933483073248299394828933482773348265214825727482452048239404822728482173148208274819629481862348178314816627481572848148314813931481262848117274810524480973248088334807528480619844805733480462948038384802520480112534800622479962547986214797518479631747953154794417479341047924144791213479021347892134788394787210478616478541947847314783943478272747819304780627477952547785194777621477613464775113947748294773729477242547715294770831476973247688374767827476693247657304764734476362547628344761736476072847596264758419475752047566264755523475483247539394752938475152247506234749938474862847479374746523474541947444204743526474231947416254740937473952047387324737519473641847355184734211473341247324154731315473031347293154728213472721347262134725213472441947231353472293647216274720732471972947185254717124947161354471513414714155447136254712524471172947106224709525470893347078314706834470510374704104147034174702621470162147001245469962346986234697934469682646958374694145746931036469293646914194690730468983746885224687104546865204685115146841253468393246829364681727468011444679314467841946771045467619764675166546741891467327116467221934671321294670401594669105346683014446677284666281274665187946641248466394146621777466123984660166446594194658542494657146046562812046552813046544017946531977465212414651125246501452464918894648737464719864646271104645281244644311414643146146429434641208546403715146392510546388494637527463684046352111646341993463319944632419463115614630519462941946283012946276354626136546251258462415554623115546222186462185046201266461911404618104846177414616156546151663461473346137374612104546111248461027117460914734608156546076324606241044605441724604134846031454460222108460111444600167545998354598630459710464596420459531745943816745931881459218814591835459041945892710745881879458722854586186545851560458420784583188045821773458110474580321384579146045781875457713554576125445752595457427129457394345721766457128113457018814569451934568943456713524566167545651976456424954563247445622599456114594560945455918644558291064557157245566294555124554419455384245528374551167645501461454911434548227845471259454613624545114745441454454310524542187045411668454021784539249445381356453717854536732453515644534135545332410245321374453111444530146145291660452814634527114245261972452511454524145745234144522125345212089452093445196314518629451712451641945153174514529451372545121048451152245104194509527450831145075194506619450552045047254503524450221045014184500210449931244988294497103444965234495836449473744931250449252444918324490314448972944886294487728448673344858374484422448342044823144481518448062744795244478623447752144766244475935447493144738354472629447162944706254469728446862644675204466628446551444641039446383744627264461623446051744598344458213445712445641944556264454827445383744521352445113634450114444498424448836444783144461148444552244447344443937444262944416224440626443962744387354437156944365294435529443493444337344432104044311147443093644291779442872944271045442683644251042442414484423933442242444216364420736441911464418113444171867441673044151247441413554413731441212554411135344106264409836440873444076264406114044059404404124944037384402113844011253440053043991777439825111439710424396936439593943947324393522439294043917364390146043892183438811464387833438615534385126643849344383124643827314381937438041943792084437811494377125043761145437510524374732437383243726234371835437072743696304368213436712436641943651556436427109436322774362114743611562436027115435921684358165643572712343562072435582843541566435393543521457435162943501164434910504348177443479364346726434515554344629434314484342104143411663434013524339176843381264433712514336229143352911843342410743332284433222754331938433022964329115243281871432734149432630114432538152432413564323198943221559432116604320197143192290431812534317199043161038431510434314134313124312419431112394310197343091751430813564307321304306114343051240430428107430311464302187243013012943001753429913464298939429726101429622914295125542941988429311504292114242911771429013514289414428816704287199342861679428514614284105542831152428225994281114842809464279208442781878427712564276834427552742741474427319894272251024271239442709404269198942681667426715674266146242659404264836426316744262177542617334260733425941942581242574194256177042551251425415674253251044252628425112594250943424932123424814584247842424611464245176042447234243623424263242419444240103942391244423830118423720764236145342352198423473342331241423220824231136242301143422913694228125342272393422612534225420422484142231046422211534221167342201353421912454218198242171361421610424215125042142286421315614212104142112388421012484209937420823944207104042062393420530105420416524203727420214554201114142002710141993914641981348419718694196198741957344194631419313634192301194191156241906284189156741881347418715594186166341858374184145341831562418213654181156741801253417916764178271284177104241762198417513524174145641736294172124171419417017774169167341682094416794541663415141659324164157441632277416217864161624416014624159734415811574157928415611504155146541541045415312424152932415115514150166441491352414821854147155941461568414511434144228341431143414225974141177641401876413911484138145441372610741361877413583241341040413336148413212414131155741301258412983341288344127155841267304125416412419814123728412211444121125941201040411913614118341324117207741163112041152080411410384113136741121260411117614110198541096214108929410752341069314105229541042410541033412241023112641013613841002310540991663409833126409710454096629409541940944174093518409210364091731409041740894204088423408741840864174085624408462340835204082103440811554408062840794224078936407793240768274075933407431340734114072737407111404070621406963040681038406711404066114540651038406441540634204062421406151940607214059521405842240577354056522405562340548384053528405252640518484050145440491046404862640471146404662240457284044421404342040428334041154940409394039630403811424037629403673340359504034136640331670403231122403193340303213740291560402823934027730402663340255204024736402311444022832402110354020722401973640188344017624401610484015731401415504013103840121251401183240101044400910374008622400741540064194005419400431640036234002315400141440006303999217399831739974143996419399531639945293993418399242039916223990315398931639883153987620398651639854173984314398341939824173981104739805243979414397821039774143976420397541939745213973629397252939714203970626396952239684213967622396652139654193964419396352039624183961317396042239593143958418395741939564183955419395441939534143952419395141939503183949524394852839475183946419394542139444193943417394242139413233940323393942439385293937521393610483935527393441939333163932314393141939303153929520392873139274193926419392528100392431639235163922623392152939207323919419391841839173163916420391541339146263913315391231139114163910418390952239086253907516390641839053153904419390341939025203901419390042038995253898526389741938965243895420389452238934183892420389152038907233889632388842138876233886422388562338844213883519388262838813133880626387951938785213877415387673438754193874723387352438723133871420387072438693163868519386731438663123865314386441638634193862623386142238605223859633385810383857420385652538554203854625385310363852521385162838505243849417384841438473173846729384573838447273843624384272838414163840215383973538386213837419383641738353133834124638337283832417383193738305183829631382873538273123826213382521338242113823419382283538211034382014633819114438181037381711413816114238159363814730381373138126293811633381012503809833380812433807730380610493805946380411573803524380252138018363800523379914503798425379751637966233795732379472837931142379210393791135337901039378973337888353787730378624923785114237841145378362237829333781623378083537791558377873737778393776937377513563774837377310443772105037716233770114537691247376883037671347376672737658303764419376351737621558376183137607293759114637589383757125537565233755628375415553753115737528383751145837501254374983637481251374710453746830374573037443173743313374231437412133740123739419373825973737301203736261113735198337341976373333132373224100373110443730251083729187237281455372711453726135737252199372416653723837372216763721177837202294371972737181367371712483716412371516623714416371341837124213711341383710518370962337081147370718813706281153705281273704341153703241083702177637012591370013623699135836981563369711433696228536951968369424100369341936921557369110383690936368910353688165736878293686726368517523684248936831459368211473681341303680187736791358367810513677207336769453675231003674134936738393672145436713416036701569366932143366810413667730366612543665124836641146366393536621762366122853660269336592170365810453657198736561782365583536541675365320743652271093651198736502710736491251364813533647291053646166636451661364416663643114636421050364132123364018683639176736384193637159336361892363514593634940363317713632837363184636301255362983336287293627156236261243362563436241987362322993622126736211463362014633619301263618113936177029436162585361535137361462267361323103361212583611833361062936098383608835360713653606316360583536041766360313613602227536014819636002492359930223359814563597251223596208135951464359417693593146435921679359113613590167735891674358816723587187535861885358517653584231023583351553582146835812480358015573579135535781460357726105357613583575636357416763573229835728423571178035702914335692812635682812735676263566124335651461356441935635263562114435617303560177535591869355811453557105235561459355513513554949355321953552125935518313550134635491156354815663547146435461666354516753544114235431455354214603541825354010363539632353817633537249235361866353583135341335334193532271003531311223530229235291968352816583527259735261141352521783524104035231565352273035211564352015663519218735183011135171145351616543515186935142582351329112351217763511155435101870350914543508271053507835350683935051667350418723503833350294735013163500419349913349841934971039349683234951976349494234932086349212553491248134901455348911463488941348719713486103734852811534841887348317833482115134819393480165634791457347815673477228534762287347516723474155734731562347210433471634347018713469114534689483467229234661660346527113346418793463831346216653461218534601464345913673458208334571140345614603455839345462834531158345294334515263450943344952634488323447136034463215234452298344410443443114234428333441124634408313439293438133437419343694734351765343415733433636343216643431156534302284342914503428136434271253342652534251786342472834239403422135634216383420126534191991341815643417166234161459341513523414198934132511234122189341110453410842340912433408198834072812434061369340516773404739340317743402730340112503400239033991667339815703397627339623103339514573394188733931244339227117339120763390136033891759338883233871972338613473385135233842711833831356338264033811669338011613379188633786373377311203376743337521903374127033731042337212453371104333701156336910403368133367419336619633365166033641559336319663362187533611467336026113335917653358167033572178335628102335526105335429109335317703352840335113623350218733491978334815583347728334614583345114233447353343633334213643341188433408403339177533381566333720823336177333352597333413503333157433321265333115553330834332962933282392332713493326261063325188633242077332318813322135233211675332010483319944331810513317125233162910833151869331417733313157533121457331193333102510033092073330820823307271093306155933052911033041148330326106330215503301271083300114432991042329819763297331193296167232959363294134632933814832921049329117653290166432891037328817673287186732861363328522923284125532831259328219853281938328041932791332784193277115132761561327517633274135232731140327218713271186632701564326983332681357326711423266167032651456326411453263728326283432614213260124732591037325883132571038325693232557303254932325394032521247325194432501444324914573248197832472082324616703245218932442710432431249324263132417393240155832391147323883932375283236114432359433234731323314683232104232311351323013613229135832282811032271243322614593225124732243813632231655322211473221136032201669321983932181361321712533216135032155233214834321393332121147321172832108273209146232081777320711423206144732059453204124432032410632022085320194332001977319915693198115831978363196197231951135319420743193728319214563191166531907283189104331881045318794731863163185624318441931831992318252131817223180321317942331785173177625317641731753163174415317342031727263171628317031931699343168419316752231664183165416316472731636233162520316141931602173159418315852231577293156524315562531545233153935315241731513133150522314941631484203147521314682931451041314451931439373142935314152231405293139942313832131376293136114031353173134414313362031324223131521313082931296313128314312741831263183125520312452131239353122114131214233120114031193173118414311772431164183115521311410413113320311273131119313110113831095223108627310742031063173105526310441831033113102521310111403100317309941430987253097316309652130951044309431330935183092936309162330902103089316308852430873173086420308542330845213083114030823173081414308072430793153078521307782930764183075628307494030735163072936307151630704193069725306862430675263066317306511403064317306341430627243061418306052130598293058726305731130564143055419305441930536213052419305131630504213049728304862230473183046318304562030446193043417304262430415223040623303962630388313037418303641630354193034417303362330323193031522303062830294173028520302762830266233025419302452130238293022315302152330203163019135730186203017838301621430154233014314301342030123153011315301041930095253008835300711433006727300521963004312300342030023173001831300094829997262998625299712512996732299552229945242993416299273429918352990726298962629886242987723298651929858372984939298373029825232981520298094029795212978832297711462976625297573229741038297352029727322971733297062329698352968620296741629668322965521296482929631139296283829611143296011452959627295841929571329564192955124529545262953944295213642951104529509422949935294816692947836294622852945114729444202943114729425272941126129401350293911482938136129371772293613522935144429345242933145529321247293115642930733292972629289432927104629261355292511492924522292316572922155529219372920176829191144291816692917733291683729151369291494929139422912114829118372910156929091149290810412907114829067282905124929049442903739290273429019382900105128991985289820962897156528962187289516682894104028931350289283828919422890937288983928881762288794228861765288516702884125128839472882166628812292288019732879944287841928772286287627120287539180287476315287323103287219872871502192870115328698482868381732867231022866177628651045286418832863166728627282861114828601570285911472858311062857104428563814028557352854218328533310828522299285114582850198728491455284848203284713612846482172845178328447835028431566284217702841228728401985283916992838114928379472836136828352612128343515028339382832208528317312830938282914562828167028271563282614652825125928242810228239382822937282111502820937281917812818114328171994281618732815261222814951281341928127292811186328101142280984028089342807834280672428058362804843280314612802522280173128008372799834279862827971047279663027951043279416652793830279251727917262790936278972727886262787620278663227852480278452627835222782144827815212780833277952227788292777124727768402775622277410472773730277210482771124427708442769114527688382767524276693727651675276410422763727276210422761421276094127597282758836275714472756124927557332754104527535212752523275172527507272749728274851927479392746833274512522744114827436302742424274173827407372739839273819852737727273662527358482734522273351927321241273110422730419272994227287322727251112726145527256242724725272383727221562272132138272051927191030271826104271717632716421271515662714940271313562712135627111041271052227095182708211042707622270672827056292704315270352527025282701730270010422699421269842026975212696521269531426944192693441992692126326911041269011452689931268829122268729136268618632685186026849412683729268217672681104326802710126791245267815552677176026761560267516562674735267318772672841267112592670166426692189266816742667271062666841266584126649312663114526621460266123972660146126591151265841826579362656178526553514826541045265313442652208926512712826501576264920892648114326479362646218126452410026448462643209426421451264116762640251082639938263822982637125226364152635623263417692633371442632221022631938263022852629177226281041262714482626251012625935262415612623134526221243262113462620702622619114426181244261722862616104026154192614104326138292612832261113502610114226095252608623260712522606166626051157260493826039382602726260193526001142259920752598103725977322596124925956302594833259311572592199225911143259084025892383258863125877342586166925851041258412512583146525821045258114722580146125791261257812512577629257616752575158325748392573842257252925718332570735256993425681142256793625667372565939256473225638352562732256183425608372559735255813552557731255683125555252554114525539372552733255183725508432549208325481247254711462546188225451455254413502543135625421045254116612540730253983725381772253710492536104025351147253483925331357253218802531135125301559252962925288382527155325262282252562225241352252372725225262521135725201353251911422518735251783725166242515104825147292513104425128372511845251094225091459250883525071458250610442505157225041142250373125024192501115025001979249913532498125924971875249620852495935249417672493125024928382491828249012472489187024886232487156524861452248562124847222483134924829422481113624801765247914622478114224779352476103824751244247413562473620247231524717322470124724696272468836246773024668312465134424641239246328104246216622461517246020712459418245882824579372456176824551244245412482453157524522710524519362450933244962024489352447176524461575244551924448372443186924421249244110462440134224391461243819762437261152436837243516592434621243351924321249243112392430104224291367242853024271559242662324258332424146024238342422628242184124209392419197424181135241752124169292415517241410352413218724127272411103524108302409519240883124072132406351302405229324046202403519240262024014142400211239931223983122397310239628239551823942102393416239231023915152390518238941923881140238773223865202385414238413482383518238210372381103923801144237952323789372377519237618682375415237482923737302372124423714192370631236941523685232367122366419236514462364104523639432362523236141723601038235962423584162357944235641423554202354937235352423526272351725235094123496332348833234752223469312345728234483923431362234225982341935234016742339836233893423378292336103623358432334103823338312332125623311861233093323291146232811462327125123261152232529129232431623238332322941232111482320729231973623181041231793723161460231514552314103523131354231212462311104023101450230916502308835230783423061246230511482304114723038352302165323019342300936229962922981149229783422961038229512402294114122931876229283522911038229014572289524228815572287113822869322285830228411512283104222829342281626228062522798342278114622771345227614432275145222741345227383022721352227114522270517226951922681522674192266249222651868226462522631048226294222611466226011492259525225814652257114722565272255114822541549225383522521977225112492250207822491351224831022476232246155322453102244135022431346224225912241292240103422399382238351482237940223610512235177622341248223324103223213462231929223016642229103822288272227156522261243222510362224824222362122221137222112512220934221920852218124922171149221613492215843221419752213301182212189222111983221014542209105122081365220713592206261112205281222204166322031152220213672201231022200937219911392198207921978302196156221951963219482821931657219212502191124121901350218911502188147021872812321861248218528129218430129218315542182238121818372180175821797252178331512177321422176135621753817321742210921733412721721980217118752170197821691148216893921677302166166121651042216462721631144216211462161165821606272159313215815692157114221564192155217221542290215353021528352151187021509452149946214814612147940214616672145197821441463214323922142147121412711421401147213914602138155821372692213612532135114521341037213314532132197621319302130135021291454212811402127125321261357212593621241456212312462122146021211142212013602119124821189372117136321161139211515702114178121132287211215572111187321101454210993521081996210710412106156421051358210425113210321922102187421011884210013522099156820981455209716712096944209525100209451920939452092942209119762090198220891258208821872087630208613482085104420841159208318672082724208113482080165720791156207817712077229020768342075135920741248207313552072125020719482070104520691253206812512067251082066936206511502064124520631252206218712061135320601468205921822058731205713592056231162055843205494220531671205211492051231102050115720491776204813602047931204612572045219520444192043832204214512041125320402291203917752038124920379422036735203511432034197120331566203252020312294203022842029135720289442027241072026155120251865202472720231156202213622021249420201152201912482018166920171356201617672015941201410412013840201218762011156420101557200919832008176820073213120062089200516812004241032003135920021043200119912000114519991451199873919976291996251101995251191994186819931575199219711991291091990271031989104219881562198721981986229219852074198424931983135419821565198117691980166119791463197817721977177119762396197512581974196519739371972734197112571970634196910381968124319671148196612511965732196414581963176719628311961728196016671959126319581561195752519561878195510371954115319531873195214461951281221950321181949104319482291194712641946156719452090194484419431982194221981941218619401569193994019381349193711551936732193510411934625193310391932727193142219301149192921100192813491927157119261671192513471924104419239481922145919217311920840191983019187361917186819169421915419191452219136241912728191183419103191909627190831419073191906420190542119045211903156319027361901519190014691899624189831918976301896530189552518945281893524189251918913151890521188984118883191887524188662518855231884418188362318824221881940188014621879423187872918774161876520187562918746241873626187252318718291870732186983518687281867937186641818655221864626186383018621040186131718605201859830185842018571141185651918554201854104618534181852417185162418506241849520184811391847931184672718454221844936184312451842728184183318407251839742183862918371263183611421835834183411521833729183252118317371830836182993918287261827523182683318257281824729182393918228341821937182072718198311818739181773018166251815419181413601813103618126311811632181010501809114218081251180714641806261091805945180413601803839180293918011354180018611799261141798155817971355179615611795943179425107179321861792125317914211790125017891884178813491787125517861559178517831784441871783341381782518178114561780229017791662177872517775231776104317751678177417781773291121772331431771371571770135017691148176826117176721861766197517651676176414541763167217624191761156417601871175916681758135817578321756218217551974175425101175319891752145317513913917501355174951193174828106174783817461152174519671744167417432394174273017411572174019101173913541738734173715581736271181735421821734451881733115517322710717311986173094217293512117281454172753017261558172515561724209017232511217222711117212410117202611517191560171841917172394171619791715291231714176717131459171273017111149171010361709626170814571707211051706471691705145517049351703939170220721701627170012471699125616981146169793916962384169510391694221011693218116921347169112491690135116891870168811531687187216863713916851350168416631683248416823312316811145168062516791248167812441677527167615651675166216743011016732811116722488167126114167017661669177116681474166762916661035166517721664939166373516621772166183316601461165915541658124716572911016562292165511391654155316531457165222961651115016508411649251051648187016472086164632127164510461644261041643261121642271151641113816401041163917681638198416373213116361873163510421634134316331036163219681631238916301976162923911628943162732138162694216251777162418731623198016224201621177616209381619135416188341617124316161668161514591614155716137301612251061611166316101663160916641608631160752216064191605167316043181603941160217691601156116001042159983515982611015977291596146815951766159412461593104315921872159120771590187515891557158893715871036158652015851657158412441583249415829361581942158094615791044157863115771037157618861575208215741665157319791572937157123781570361371569218215681142156715741566271101565831156412571563301181562113015611343156027109155913481558155415575221556114815551460155413481553948155218681551156315501244154984115481873154711471546187015452385154422831543281111542176815411250154014611539218115381865153772815361665153516611534188215331452153218631531197515301972152919631528247615271556152619841525238615242073152311481522269415211042152019731519115515181758151712521516186615151038151414591513311231512103815112392151020811509291131508114015079351506116115051467150472715039411502241001501115015002310014993914614981665149714621496166414951875149427951493104814921356149111471490229314893112714881664148719851486828148525981484935148310361482419148111451480238714792485147816551477938147627100147510451474156414731460147214531471156014702194146983314688301467104414662285146524109146414611463728146227118146111511460291311459168314585261457104814561352145522851454733145317641452103914516261450167714491148144810381447146914462293144517871444166014433413614421359144193514402596143915611438259014371042143615651435421143410361433421411432197614312073143010441429156314285221427165814262184142511431424135214231139142212531421228114207301419124914181563141720871416104214151145141411471413156014121245141119811410166614092283140817601407299714061763140510391404114814032711414021663140110461400188913992711813981672139711451396431981395261131394411661393228413921668139117711390291231389145413881865138739138138610421385178713842710413831886138214661381157413806301379157113781462137723101137628126137529113137426991373522137241913711554137014601369217913681656136712541366188213651778136422102136318771362521991361941136031127135927109135817611357186113562288135520841354161091353371741352156113512710113502386134924117134812541347168513461667134516651344177413432299134225128134127113134016711339166913381459133718881336301321335198613342390133326103133217801331135613301476132911461328188213271674132618711325251121324843132327118132225103132120931320114713191567131893713171252131646190131512621314241071313241321312261251311321681310167913091910513081667130713641306177313051664130412551303261141302221181301198213001662129911441298104512971781129622951295124712942293129314561292166512911563129016641289178612881571128714701286147712851352128423113128315711282431761281167012802912212793113412783616012771984127629139127514601274156412732310212722310712712912312702811312691240126818831267239612663317012652097126483112631044126216801261241101260239912591883125824102125711451256115912552093125418791253136812521039125113561250167712492310512481874124726133124622981245321351244146412439411242229512411885124013571239452091238135412372594123611461235103912342078123326107123227115123193712302076122912531228125012273313412268351225145512241043122312441222103812211782122018681219177412189371217136712161874121536140121417761213136712121361121119881210208812093514912083315012071046120616661205165912041881120321981202135812012193120012521199197211981769119716741196198211951048119412611193199511921358119121951190114911891039118883611871254118624971185626118421861183208111821254118163011801358117923103117822991177186711761152117573311742310111731151117211471171114711706341169178211681889116741911661148116516691164841116323891162731116112501160104411597321158125211571047115693911552699115414641153125611527331151728115012551149291251148281041147371531146104011452288114411401143518114284011417311140146911393012211381042113794711363013211351364113452711331564113226104113119791130105211294017211281477112719801126114111251879112419811123271181122177311212093112043200111983211183214111174322211163012911154117011141563111314591112156911111146111039172110918741108228911071363110636153110520891104156511034116511022310911011885110094010991036109824991097291391096116010951143109423901093138010921247109122941090104710892288108816761087211001086166610855221084841108319771082312108142010803171079425107862510771141107611551075114010745221073114610724161071734107073010699321068626106762410661136106518651064934106316711062941106123102106019791059104410589381057940105618851055188210541359105316641052135910516331050125310494215910482293104719831046241071045381561044840104373610421354104111461040135310391563103863310371666103683710352396103425113103335132103213661031251071030177110292711310287301027113910261458102516571024147110231359102211441021113910209321019217610181772101729123101615651015835101432145101338146101210451011199510102087100915681008147210071362100618871005104810042811010033615010021570100110421000231049991462998401619973715799611589951974994114799329110992261119911664990167898916699882294987311389862083985734984124898312549822813098152698025105979177097812549771566976736975416974521973135097217579711673970114896911569689459676279666369651246964104396314579621350961149604199592186958291049578329569399551666954166495319779523713895135144950146194984494817759471775946351499454218094427118943836942371429411351940281229393912893840167937231069361670935311459342083933229593226117931209693031128929197592872792718719269379251038924281349238389223615192110419209419192811091829118917156991624100915209691412599133011691210409111139910186390911489082310590712629062395905221009041360903219090225103901135390013448998448981559897943896165389518658941568893441878921359891166989012628891769888291288874920188622102885441718841666883178188216598819568808448797348782110087714588761152875229387425928731253872186587118698701554869950868145886724106866838865391608644517586312478622310386152186093285927105858103685717738561248855177185422958533111385214598512277850217484963584827108847157184625105845176584428103843843842156484114568402390839942838207983714638361157835124683415628331771832228283119678301050829281148282290827146682613608252711182419768239398221660821176882011478193213381810418171243816125781514548141368813371378127328111756810936809929808249280793780625100805104180413568039448021353801166680031138799125379811427971252796144979514697944197931142792241027911147790291087894515378817707872297786156678522867841361783642807821559781229978026128779522137782086777241007762185775934774261007731673772114577193777027119769208676851196767241047662411676513727642092763168276245205761125276018697597407581467757166375621897552612875415707531978752104275117717502490749165874825987478407462596745341397441978743198974220927413112974025947392410473812627374721873613677351363734166873327110732217773112547302410972911487281368727381587261580725281167242310472310457223313672151228720166671926117718311407174119571615687152611371468281713197171214497111364710124970924887081468707135270634140705401627042610670393870213567011664700249969914626981352697176969621100695187569415706932392692291076913013469042157689188068824926872511968632141685452076842410768374068210476812711768019866796228167843201677311376766127867553242674249767341967250191671157367012506692612966818876675421666624996651144664125066311436621361661156666014586592513165826136657147365614606551457654832653341286526316512210365019906493716264817786478436462210064514496441453643114864218926411145640188563916586381991637361616363313763514716346286332078632291306313816363014626291249628104062732129626114362522102624291266234017862212456211773620166661920726182195617732616735615211096148366131143612206761120816102697609331356081454607114660613506051979604218260314546027306011567600229459920106598622815972396596311225951040594126459327128592837591331725904017058916705886023558732162586361685852812858422885831761582155758122775802287579301355781356577241015761249575187357436143573482045722098571311395702193569197556817635671149566728565189256432156362756227107561197756023105559166555816735571565556301255552913255425102553201005522095551113855018805491037548114354720945461040545145454420695432912154238177541944540146453949205538146153712435361555535156853418855331578532321585312292530401925291988528271085271256526135352524995248345231360522146152158264520421855195426551817635171149516178351535157514241065132090512147051122107510135550918795088829950771271506136350515715041370503199150237186501167950014584992811549816824972912549641949511574943012149321854927304917294904318848914584882095487114548621100485115748493848320864822199481241084802399479125547828120477937476229547530122474361464731774472125347122874701154469156446817774671569466114746519784641354463167446233151461947460207345925107458832457135345621684551875454301214537284521453451371574502189449752914482510644740166446198444562644413644431050442198744121884402499439271074381251437136043663343524105434941433629432135443115704302310442913714281155427529426527425136242416614231245422943421176842015694191360418104741712574161149415218841428127413311254122398411187741094040915844081459407351524061148405231134041144403114940210434011781400146539914703983415739713543961774395156939420773931350392259939110423901147389114438824993871556386249138514623841143383937382947381188338013523792912637814623777293763314637513673742812037329120372271163719363703614436983436832115367177936611523659393641354363136636214613612075360167035932129358628357155435625114355725354154735373235211593511360350311323496303489463472086346834345198034445187343535342237934173334021913392081338837337136033620803351763334209233315523323513833124109330186632972732811483271147326146232526963242279323271133222186321259232015533191565318208131711503161888315261223142610731318723126543111150310241073092412530829116307943306146830516663041347303155430246197301135030011372991874298115329772429613295419294491962932711829228103291321382901295512891554288145228717722861454285198728411452834518628217792813013428028112279208927815572771665276136827530125274351482732712327239174271114427024922692497268391482676724926643169265241182642410226350189262228726152208260941259271222581577257602402563011425543165254542172531669252938251281062507312496342482711624715652468442453514024425111243472002422512224164288240331472394520323830114237461932364017723572923413542331465232146623116812302712222939182228261182272612322616722255724722425932232210422230127221492142202093219207421817722171249216166721511492141252213145921217652112510321083520914572082497207124920626110205301212047329020314662022210720115652006241992513019813591972712019617871956528619417771934418519232123191156119016551891354188167718793918638163185512661841458183116118229122181259318015621791866178228917711501761768175239617412571733112317243187171935170937169136416811571672091166248916594216410451631266162135016111531606321591787158311381571766156197515572715414731533213015234146151451961502189149155414830127147146314610371451979144311351431563142155414127114140177013993313818741371681136177613514651343012213322115132198313118671301258129157012831112127104612624103125114712414561231252122301131213114112017581191872118177611733123116187311517591141961113259811213651111249110743081092289108104410710441061255105187210425102103944102176710127131100115199301199827107972610896104695281389413639349231921571912915090105289135488239187241028611458593684231018319778237141811157801045792497781762771871762380752083749457312547213547115707024108696025768281186718776620956518906473063156062271216173760830591253581050571884561969551258548385384752105551741508424918794814694710514617684511434419864319804213634123101401248391570382811137197036136035208234391553334145321366312078302399291253282510227198626619251772241157237342216732119772072919114318125117104916114715125314114713833121252118471072791384197944631954194312321224181419”

4.2.2.1.3 Fact: Rewriting the full text of Quran at verse level by replacing the number of letters of the word with the words

In code 4.2.2.1, we had witnessed that we could rewrite Quran by concatenating the 6348 representation numbers of each verse at the verse level. In this fact, Fact 4.2.2.1.3, we will observe a similar rewriting coding, but with more deep resolution of the text. This time instead of using the number letters per verse, I will literally replace each word with the number of letters of each word and rewrite the text of Quran. This further reassures the rewriting of code 4.2.2.1 and shows that not only the total number of letters per verse but also the order of each word in a verse pattern has 19 the similar 19 based design. This fact answers any potential objections such that “why is there no coding that shows the order of the word are also under 19 based design?”. This fact, Fact 4.2.2.1.3, answer that question by proving that there is also a coding at the number of letters per word resolution and we can rewrite Quran also with the same pattern of code 4.2.2.1 but now with the information of the order of words per verse. Also, this fact is based the second type of the text with 6236 numbered verses. Therefore, considering code 4.2.2.1 and Fact 4.2.2.1.3 together, they support each other assures that the text of Quran is under 19 based design up to its letters and thus intact and unchanged. Moreover, there is also further fact, Fact 4.2.3.1, that further shows that the pattern of code 4.2.2.1 works again if we use sum instead of concatenation operation while coding per verse. Considering all those three similar coding patterns, we witness a very strong 19 based design that shows that there is 19 based design in the full text of Quran up to its last letter with the current order of chapters, words.

Considering the 6236 numbered verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 114 | Last Verse of Chapter 114 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [Chapter 114 | Verse 5 of Chapter 114 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [Chapter 1 | Verse 2 in Chapter 1 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [Chapter 1 | Verse 1 in Chapter 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 114 | 6 | 3 | 6 5 2] [ 114 | 5 | 5 | 5 4 2 5 4] . . . . . . [1 | 2 | 4 | 8 2 3 5] [1 | 1 | 4 | 6 6 4 3]

And, the final number after all the concatenation would look like this:

11463652 1145554254 . . . . . . 1248235 1146643

114636521145554254 . . . . . . 12482351146643

Here is the proof of this fact:

x <- nQuran
tmpwr <- c()
for(i in 1:nrow(x)){
  word<-unlist(str_split(x$text[i]," "))
  tmpwr <- c(tmpwr,paste0( rev(sapply(word, nchar) ), collapse = "") )
}

cat("Tail of the representation numbers of each verse with number of letters per its words: ", tail(tmpwr))
## Tail of the representation numbers of each verse with number of letters per its words:  5342 53 53 6722 54254 652
cat("Head of the representation numbers of each verse with number of letters per its words: ", head(tmpwr))
## Head of the representation numbers of each verse with number of letters per its words:  6643 8235 66 534 6544 865
tmp <- paste0(x$chapter,x$verse, x$vwords, tmpwr)
cat("Tail of this big number at verse level: ", tail(tmp))
## Tail of this big number at verse level:  114145342 1142253 1143253 114446722 1145554254 11463652
cat("Head of this big number at verse level: ", head(tmp))
## Head of this big number at verse level:  1146643 1248235 13266 143534 1546544 163865
tmpr <- paste0(rev(tmp), collapse = '')
as.bigz(tmpr) %% 19
## Big Integer ('bigz') :
## [1] 0
cat("The number of digits on this big number is", nchar(tmpr))
## The number of digits on this big number is 111098

As we see the remainder of mod 19 is 0 and thus it has 19 based coding relation. It has a similar approach to code 4.2.2.1 but using the second type of the text, the 6236 numbered verses. It also goes further in the letters resolution of the text by using the number of letters per word resolution. This is the maximum resolution we could look at in a text with the natural numbers of a text. The reason I designated this strong coding as a fact is because code 4.2.2.1 coding pattern has an exact matching code at the chapter level, which is code 4.2.2.2 and they together shows there is the same rewriting coding pattern both at chapter and verse levels of the full text of Quran. However, it is not so obvious how to get chapter level matching coding of Fact 4.2.2.1.3. My first attempt by replacing the number of letters per chapter in code 4.2.2.2 with rewriting of each word did not seem to worked. However, I am not sure if that was a suitable approach to match of Fact 4.2.2.1.3 at the chapter level anyways. It may be the case that, there is no direct matching of the coding pattern of Fact 4.2.2.1.3 in the chapter level. Because it literally replace each word by the number of its letters and this happens at verse level text. Concatenating the chapter indexes with this verse level representations may not be direct match of the coding to Fact 4.2.2.1.3. In that case, I might consider Fact 4.2.2.1.3 as code 4.2.2.1.3. However, I want to calculate a more conservative global probability of the overall 19 system I present in this book and I thus would like to designate each coding as conservative as possible to make sure there are less objections that might be caused by such codings.

For the reference, to the best of my knowledge, Fact 4.2.2.1.3 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

Also, here is the “111098” digits length big number:

“114636521145554254114446722114325311422531141453421135533423113455282311335334231132432221131453421124534233112344332112225411214342211155323521114355711134334511126334342111153333311037533834411027643265511015643331096433531095542643109455243310935426431092462421091484221083462521082354310813673107727710763625107555622510742741073574333107246344107146445106473263264106345328106246647106124610553546105444266105346455105255254310517563332310493532104835541047473441046374310454625310444626310434542410424543410414443310339675786553103243372103116102856256210274637210262651025563623102446332102336331022374310212761011125310110432531019254101847324101745423101647424101547665101457754310134725310122721011171001155534210010462241009762243441008455341007453341006454721005342510043425100324910022491001249998633354399763435439966756545995434339943745993432749923756991475539882133333544344675243443698796325865529861662254643296325529851663466675526473539841166232365543983343498265444249811266369632553297555432497493224446849736332354972554253971554273961956542396182849617255961635559615686423396145343439613453259612373296115533259610333496934459684633296736329664572396554227396436349633644962432739615343449584854495746353956953348655395546462954654275395336549522549512869483534947354494644522945445239443426943344494234369414424393114435493104436493944364938355593734459364454393545355934562237933533342932333693116922124592205633639219644244392184544492172689216353492154636292143448921347633921235529211643434392102679292749284732492726792627492545424924345292347533922343792134369115364391147664557691137744443491123652911137449110452339194524291837679173534916353691535379143636913353791235369112669020353590196752756901837559017987675523290164526290153525901465232529013242901246253901136539010277909266908452439075332259064445490563442259045327539033335902454249014544289302468929352689285553358927485528926435438925535426892456452489239624755554892253363489216335333892043356891943467891857436389175662238916105354446234891511535563623748914393289135433538912364789114624589103726899565555898662542489736338966433323895633332289433368932668922358911688264652288253652882446646882344423882236538821443448820443548819443648818443648817643536488162668815266881426688133634881235348811454428810353288925688835548876324342886642343388544324884354488325588235548814744287193573871856533287173537871646662871544334871444242871364344228712465448711268871034258794642487826687794354343238763436875344587436458733435872343487146333861745684861624586153464861436238613334386123536861135378610643322386937438684543386758532486644323865432768646453322863265862462538612778522353285214442285204462585195525528518255851746442851634348515365285143663851345423851245332851114653752443865528510146444446229855285910432356832485896656234538576496233856445228553635854375385326585227685136378425953338655384243456842345345842246552842166265348420462338419432468418343684173336841636438415652332384145422238413564233841225584113544841064454248494643684845554847565424846974334374284534558444542584333548423455841356383366652632833536738334666255683334656383326652554833165753748330483448329865525652832848344832735268326610833358325454258324564624832336738322443728321285832025483194525383186537423831776244342831646542831568542438314865263323831377636443831274423243831145465831038538392548384425383764364238365835438352448345745338335662648326753735831283821993564434238218653252282175532538216474238215353782144436382134437282123626821126582103753829466238286432422827455448267643274282555423482435648233464822367482136638129882442363812856243381275833228126264812554542381245553238123466348122366381213424812064523328119444438118343681173436811625681153643811445234811335548112346481113464811034548193433818348481734648163464815346481434648133464812366481134538042466258041246804044555803927580383554803765354438036257803525480345425338033364480323935803124680302468029257802825580273347802643552802543553802445376802354233380224533280213652802034628019454428018443228017452738016244801524580142568013353280123433801135438010343480924380844424807443438063424805362380446642803444538023642801253794695243626357945562434794437337943462337942564627794146253794095254343247939462637938366479373324793643365793553275379344664479333935793226779314754479304533679294555579283653792765624357926643532279255764457924464347923254792234427921244792036557919453367918642322379175335347916636635279154444279143824791345425791255333579114453479105728467992577983554797276796374379524979424979324979224979124978401653526544254355837839943343345378381454623237239543783710536266368278365543247835653446278342557833266783227578313572783055363678294573378283576782755525478262547825365378246534462782336467822247782146442782045565781946565781866652437817563532781626578154632578145538277813355678124545678113566781035567893556788268787267786455437853732784273783473247823652781282775046444774938537748662633477473853774656457477453853774448443774366435747742363677415542727740385377395633337738587533773738537736483437735462337734385377333354773246444773165243427730634223777296624237772838537727753965467726275772545543772438537723384677223533772144427772054326377193853771839447717376277163743771538537714553253771325477123433771134547710346477934647783464777356477634247752497742497732497722497712497631105533952424763011553424423637629953343353276289675445673762785466755276267545255376255643357624952443334576236664533762286544333276211355463255734467620755542447619965663655576184744476176763446761656632676158746325557614666565676131073444273467612563536761186465324676107754424376910534442446476876663367767773347657667684434476586633267276466758637637545366376210557654275376111643252373327540764235347539575734753854443275376432423753653427575354524275343524753355433275323534753143333753046533752936567528363375273324752647433752555342375243555752335437522355475212667520475237519455227518455647517464527516625524275153743751455437275136433574751247533751133237510553574759365475825475735347564734475555574275465423637535543757524764375147442745611746324423637455343374543533745356622374529544244242745135237450373574495672337448485637447365374464544474454824474444742374435722257442432527441282744038427439365374385543327437752524337436255743535547434343674333426743226374315754323233443425424344444493625696555365566557554355363555374303345742925574284334274274325374262367425553332742464333247423374274223432742123274204333274193334741834337417256741655733374154424274143625741325574124642574114543474104438374944354748472347472557463643745256744246743244742252741364273207844424945424353276344476567342744276432652664452362427545223754535265554244343273199533433532731866432567317847445254731665476547315115536355556373148556575437313556326731246652731165664957310754762357399562332762738664533573765462227368454325527355544537346664422733553424732453527313642722813432553546622572271344343244425237226744343547225114324262542272241144542862433722316446432364338425372221264233342623272218433342327220842433442721910446554333472188442533737217104553324337721684397382372155456847214104564384834721314434434432455347212114535244224472119453334834721013443425234342472913452345355443472885544865472794442253457261147425652434725104435542244724744364347239435424254722945432553472113455364235334271281553833995434724271271055353555237126105825332234712512643235347683712485383355371231355435334364267122354671211353544227542337120454477119555335711856746271175552657116755444547115856343343711436537113653523271129635435567711146564711065334847197636353271845632717148966862753564471655355371576444323714186424233432433762347135764627127443332371114446232442434637044965453367570439633557263704286456376570418833444237040773873437039563733703884342442570375463627036564554703546425703457632670334692670325569267031772634537030106357422733702946726702855344270276644226702645466702528670245527267023566325702227370214553470204543370194537270182547017454247016255701533437014652552370133547701225770119554252638701045443709366570846643707255706355470535457041133563324684703472427024423870144543695246344695136346950483546949564254694837646947663324369464636269453736694458354369434822569426625443694176254423694044443693936236938463436937483526936552343693554552469345743336933665423369327755552269313462693025469293733692845342692747452692646233692511632525654246924876263574692325669223532692145423692056434369199664565424691865442656917965533573669165553666915374669146535755691365452346912653653769117727533369106546445699681043546985523336971553554454547435569665447346954874469448444693462536922626911668525833236851126375538855436850582537684910537432462468481153425533345684756355268467642346268455442356844106232964435684311636355336756842983636324368418652875326840444446839126332733555326838563332683756343268364633268353986683466443726833865246664683210643344624368316533525683058335568296633455682876433363682737326826563554682546335682465557226823383868227642535268212676820276681976332454681827368171068625553736816373568157763644368145532326813443336812444546811354468105442336894742468838336871194