1 00:00:24,800 --> 00:00:26,470 welcome back i hope you had a good thanksgiving and uh are all refreshed and ready uh to uh uh think about some theory of computation um we're in the home stretch now this is uh we have this lecture and two more to go and um so today i have for you um [Music] a completion of the theorem we started before the break um where we had a uh we where we introduced probabilistic computation and we uh talked about the class bpp as i hope you remember and we looked in particular at these um these problems involving branching programs where we started the proof that the problem of equivalence of two read once branching programs can be solved in this class bpp so what i'm going to do is spend the first 15 minutes or so just reviewing where we were because we started this um it feels like a long time ago now and i just want to make sure that you're all uh um uh on the same page and we're all uh um remembering what we were doing and then i will finish off the proof and along with doing that we're going to introduce an important method um well we started that we we looked at the method of arithmetization last time so we will review that we're going to use that again in the uh the work that we're going to start on thursday on interactive proof systems so this is a kind of in some ways both a an interesting theorem in its own right and a warm up for what we're going to be doing um on um in the last topic of the of the semester um okay um so um uh let's just remember what we were doing so we introduced probabilistic turing machines um so those are these machines that have they're a kind of non-deterministic machine but there's a different rule for acceptance and these are also non-deterministic machines which can either make one choice just to have a deterministic uh move at a step or they can make two choices um and when the machine makes two choices we actually think of there being a probability there um where the machine is tossing a coin to decide which branch to go on um so with that there is a uh tree of possible branches and the probability of some particular branch is going to be one over two to the number of coin tosses on that branch um and so [Music] we then use that to define the probability that the machine accepts um which is the sum over all of the probabilities of the accepting branches and the probability that it rejects is one minus the probability that it accepts um so you know thinking about it um uh you know this captures the idea that if you just run the machine on a random set of inputs um from the coin tosses what the probability that you're going to end up with the machine accepting that's the probability of acceptance um defined in that way now if we're thinking about the machine deciding some particular language it's supposed to accept the strings in the language and reject the strings which are not in the language but because of the probabilistic nature of the machine it might get the wrong answer on some branches and so we say that a machine decides a language with a certain error probability means that the probability of getting the wrong answer is going to be at most that error probability epsilon over all of the possible inputs to the machine so if we say that the machine is error probability one-third that means that it gets the right answer for every every string with probability at least two-thirds um [Music] okay so that led us to the definition of this complexity class bpp which i don't remember if i told you what it stands for it's bounded probabilistic polynomial time that's what bpp stands for and it is the bounded means is bounded away from one half because we don't want to allow the machine to have probability one-half um because then um bad things happen uh the machine can just toss a coin when it decides to make um uh an answer and not really give us any information um [Music] then we also uh went over the amplification level we did not give the proof but we went over the statement of the theorem the proof is really just a calculation that you can drive down that error probability to something extremely tiny um just by basically rep repeating the machine and taking the majority vote of what it does on several different runs if you run the machine 100 times and you see if it's mostly accepting then you're going to accept and the chances that the machine was really uh biased toward rejecting even though your in your samples see mostly acceptance is extremely small and you can calculate that but you can make that very tiny so small that for all practical purposes it's really giving you the right answer um but you know it's not deterministic so it's not quite 100 guaranteed um [Music] and the way i like to think about um bpp in a uh in terms of the computation tree of the machine um so that when it's accepting most of the branches are accepting you know weighted by their probability of course but most of the branches so the there are many accepting branches when you're accepting and many rejecting branches when you're rejecting so just another way of saying the same thing um now we're gonna start right jump right in with a check-in um and this is a little bit more not exactly the material of the course but um a little bit more on the philosophical side but let's just see how you do with it um when you're actually running a probabilistic machine you imagine the machine as we're as we're kind of informally describing it it's called tossing coins um every time it has a non-deterministic uh every time it has a a choice so a choice tosses a coin to decide which way to go of course you know a real computer does not have a coin to toss presumably well maybe you might actually build some hardware into the machine that lets it access randomness in some sense you know maybe it uses um some quantum mechanical effect you know to get some random value or maybe it uses the timer i you know i'm not exactly sure you know you can imagine having a bunch of ways of implementing that a typical way that people implement randomness randomness in an algorithm is to use a pseudo-random number generator which is a procedure that might give you some kind of a value that looks random but may not actually be random it's for example giving you the digits of pi if you express if you want binary expressing pi as a binary as a binary number then you might calculate the different successive digits of pi and use that as for your random number generator um of course that's a deterministic procedure so it's not really random um and but you know often people do use those kinds of things when they're simulating random machines so what do you think about doing that could we use a random uh pseudorandom generator as the source of randomness for a randomized algorithm um what yes or no or what do you think um so let's launch a poll on that and see what your opinion about using pseudorandom number generators instead of truly random true randomness for our algorithms i'll give you a few seconds a minute to weigh in on that okay we're gonna close this down everybody's participated who wants to uh one two three um [Music] okay yeah i think probably the the best answer is a um let's take a look at some there are a couple of answers here that really that don't make um that aren't as good i would say uh b well you know usually people think of random pseudorandom generators as pretty fast procedures um they're not not that interesting otherwise so um i wouldn't say that b is a good choice because you know they're they're usually pretty quick to implement um [Music] c is a worse choice even because uh turing machines can do anything that any other algorithm can do so certainly if there is such a thing as a pseudorandom number generator and there is then you could uh implement it on a touring machine um d is kind of an interesting answer uh because you're saying well that would imply that p equals bpp if you could actually simulate uh randomness with a deterministic procedure um but in fact the reason i i would not choose d is because it's perfectly conceivable that p does equal bpp we don't know that p is different from bpp so it's conceivable that they're equal and in fact i think if you if you polled most complexity theorists they would most most people in my field would would believe that p does equal bpp just for this very reason that if you had sufficiently good pseudo-random number generators you could actually eliminate the probabilism in these probabilistic computations you could just run them on the pseudorandom number generator and in fact there is some theory around that um that has been developed um but at the present time we do not know how to prove that there are pseudorandom gen number generators and it has some actually there's actually in some line of this research has some connection with the p versus np problem but we don't know how to prove that there are sufficiently good pseudo-random number generators that would would allow you to run them on a probabilistic algorithm and have a guaranteed behavior which is as good as running truly random numbers into the um probabilistic algorithm and so the the answer that i would pick would be a that you could use it sure you might get the right answer but it's not guaranteed we just don't know how to do the analysis for the pseudorandom number generators and you know if you had such you had ones that were good enough they would show p is equal to vpp but that might be in fact the correct um that might actually be true okay so let's continue on um and uh remember now branching programs you know we had these uh kind of networks um of nodes and edges um and there was a procedure you know we'll see a couple of examples again some of the ones that we had from before uh where you um you know you have branching programs look like this and you know you you have a bunch of query nodes you look at the settings of the variables to decide whether to go down a zero edge or a one edge and eventually you're going to end up at an output node and that's going to be the output of the branching program and in such a way these branching programs define boolean functions from the settings of the input variables to a 001 output now you might have two branching programs and wonder whether they're computing the same boolean function or not and testing that is a co np complete problem as you are asked to show on your homework um uh now if the branching program however has a restriction namely that it's not allowed to ask to query the same variable more than once on a path then with that restriction you can we call it a read once branching program and then the situation for testing equivalence seems to be different um in fact we can give a bpp algorithm for testing the equivalence of read once branching programs even though such a thing is unlikely to be the case for general branching programs because of the co-np completeness okay so i hope you're comfortable and with me on all that reasoning um okay um [Music] let's uh so um [Music] all right so the idea for proving this is what we're going to do is we're going to take the two branching programs and run them on a randomly selected input but as we observed last time if you just run them on a randomly randomly selected boolean input where we assign the variables zeros and ones then that doesn't give you the right answer with high probability because the two branching programs might be different computing different boolean functions but they differ only on a single input setting and then just picking them at random you're not going to have a very high probability of finding that one place of difference so instead what we're going to do is define a way to run these branching programs on non-boolean inputs where the variables are set to values other than 0 and 1. 2 3 7 22 and make sense of that and then argue that by running the two branching programs on a randomly selected non-boolean input that that's very high probability of giving you the right answer um so somehow by expanding the domain of possibilities you're going to uh better your chance of getting the right answer very significantly okay so even though these two branching programs might agree on all of the on almost all of the boolean inputs we're going to show that by doing this arithmetization so this is the method um uh they're going to if they're really not equivalent they're going to differ almost all of the time on the expanded domain okay now we have to prove so that there is uh um you know that's where today's work is going to be okay so um why don't we just stop and make sure we're all together on this i can take any questions um i'll also review how the arithmetization goes but that i'll do that next so are we all okay on this um good so let's move on so in order to move toward understanding what it means to run the branching programs on these non-boolean values we're going to have to uh uh get a somewhat different perspective on the computation of a branching program so the standard com perspective is that you know you um you take your setting your assignment to the input which is 0 1 1 for x1 x2 and x3 and use that to follow an execution path through the machine so you know x1 is 0 x2 is 1 x3 is one the output is one okay as i've indicated in yellow um this other perspective says well let's let's we're gonna by operate by labeling the nodes and edges of the machine and that's going to have a very direct correspondence with the execution path perspective so we're going to label all the nodes and edges on the path with a 1 as indicated in yellow and all the nodes and edges that are not on the path all the other nodes and edges are going to be labeled zero okay so by following the ones it's like the breadcrumbs you know and hansel and gretel these are the this is the path you need to follow to get uh through uh the machine the zeros are the places where you don't go um okay so the output label here the the output is going to be the label of the one output node whatever you're labeling that because if it's a one that means the path went to the one and if it's a zero that means the path didn't go to the one who went to the zero okay so just by looking at this value you can see what the output of the machine is all right so um let's describe a different way of defining this labeling without just looking at the path but it's going to capture exactly the same thing um so we're going to say whenever you have you know if if you've already labeled a node i'll tell you how to label the two edges that emanate from that node um [Music] i'm going to label the one edge a and the query variable why is that well a is going to be either a zero or a one and it's going to tell us whether or not the path entered that node so if it's a 1 it entered that node at 0 it didn't enter that node the only way it's going to go down that this branch here is if it did enter the x i node if it didn't enter the x i know there's no way it can go down this this branch so we're going to and that value so it's so the only way you can go down this branch is if it went through that node so that's the a the value of a and the x i is a one that's why we say a and x i so you really have to understand this little expression here in order you don't understand that you're toast okay so you better understand this so we can move forward i'm happy to take a question these are the simplest questions or sometimes the most valuable if you understand why i'm labeling it this way shoot me a chat um okay now the other brand uh other branch i'm going to say well i'm only going to go down this edge if well a is true so i did go through that node and x i is false so this is going to be a and the complement of x i all right so that's how i'm going to label these this is another way giving these expressions for labeling these edges based on the label of that node and similarly in order to complete the picture i've got to tell you how to label the nodes based on the edges that are coming into it so if i know that i have a1 a2 and a3 which tell me the status in terms of the path of whether the path went through any of these edges well i know that it's going to go to that node if it went it's the or of these values if the path went through here or it went through there or went through there then it's going to go through that note that's why the or is the right thing to say so this gives me another way of constructing the labeling over here without even talking about paths but i'm just as i describe it i argue that it's going to get the same result all right so there's a question can we quickly say again why we can't do that on boolean i'm not sure i understand the question so please send it to me again but this is right now everything is boolean we haven't done arithmetically anything yet um and the reason why we can't just live in the boolean world is that you know just by taking boolean values of boolean assignments here we don't have a high enough probability of catching a difference between the two machines all right so let's continue um all right so now i'm going to talk about how to we're going to extend this to the non-boolean case okay using the arithmetic arithmetization method so first of all arithmetization is a simulation of and and or with plus and times such that if i think about um [Music] true as a one and false as a zero this is going to give me a faithful simulation it's going to do the right thing um it's going to compute exactly the same values that we expect so like a and b well um times works just like and um and um right you know it does for for one and zero as true and false times exactly works like and um and negation is one minus and or is going to be the sum minus the product and then these just give you the right values um a a or b if you just calculate it out by plugging in ones or zeros you get the right answer just by using using this arithmetic um so now what we're going to do instead of using the boolean labeling we'll just use the arithmetical labeling but it's going to compute exactly the same thing because the arithmetic simulates the boolean um so uh we always go through the start nodes so there's no question about labeling the very start node with a one but now i'm going to give expressions just like the boolean expressions but now they're going to use plus and times instead of ands and ors um so let's just see remember what we defined before we had a and x i for this edge i'm going to replace that what is and we just look up here in our table in our in our translation table and becomes times so we're going to replace that with a times x i and it's going to work exactly the same but you know the difference is that this makes sense even when we have non-boolean values times and plus are defined for non-boolean values um where zans and or not so what what goes down on this edge um well this was a and the complement of x i as you remember uh so we're going to that's going to become a times 1 minus x i and then similarly we had or over here and here's a little bit of a trick but that's going to be important for the for the for the analysis that we're going to do instead of using the recipe for um or in terms of plus and times we're going to have something a little simpler it's just going to be the song and the reason why that works it's good to understand is that because of the acyclic nature of the branching programs at most one of these edges can have a path through it so this is a kind of very special ore um sometimes called a disjoint or you're not allowed to have more than one of the values be one because that never happens in when you have an acyclical graph you can never have the path coming down this way and then again coming down that way then it would be entering that node twice had to be a cycle so it's going to be good enough for us and it necessary for us to represent uh this or as as a sum okay so i think that's all i wanted to say on this slide um so somebody's asking is a possible sum of for some of these values to be negative yes the values that's a as it stands right now some of these values can be negative i haven't put any restriction on what the values are are going to be um so the input could be a negative number and then you're going to just get negative stuff happening uh in fact there's negative there's subtractions going on here so even with positive numbers i think we did an example last time i think we're gonna i'm gonna do that example again uh of exclusive or um where you're going to you get negative numbers coming up that doesn't matter but actually what we're going to end up doing is operate doing these calculations modulo some prime number q okay um so i'm going to pick some prime like 17 and do all the calculations mod 17. um and the reason for doing it that way is really because we're going to be picking random assignments to the um variables as our input and it and you need to it makes it makes the most sense to do that when you have a finite set of possibilities to pick them up um so we're not going to pick like a random integer there's infinitely many possibilities and you could yeah you could set up a distribution there but that's very complicated that actually might work i'm not sure i i haven't actually gone through that analysis but the typical way people do this is by looking at what's called a finite field so i'll talk about that in a second um why is there at most one one among a1 a2 and a3 so um the ones i'll say one once again but the ones correspond to the path so this is a one if the path went this way just think about it the path cannot go through a1 and can at the same time go through a2 because that means the path went through this node then how is it going to get over to a2 it's going to go through that node twice in an acyclic graph you cannot have a path going through it's the same node more than once so you have you're going to have to think about that um okay let's move on so now we're going to talk about the same um uh we're going to we're going to look at that non-boolean labeling applied to an example so here is a very simple branching program that actually computes the exclusive or function in the boolean world um so this is the labeling that we just i just developed for you the the uh arithmetical labeling um and we always label the start node with one because the path always goes through there um and now let's look at this before we jump ahead let's look at this edge here remember what it is we have to apply this rule here this is the one edge coming out of a node that already is labeled so it's that that label on that node times the x i because that if you're thinking about that's the and captures the end so it's just a times x i so xor it's x1 in this case so it's going to be x1 is a 2 in our input so it's going to be 1 which is the a times the x one which is two so that's just this this edge gets labeled two now this well okay let's look at this edge now i think that's next this is the one minus x i it's one minus x one so it's one minus two so we're going to end up with a minus one one minus times minus one times one minus two which is minus one so it's a minus one now we're going to label these two nodes using the other rule um so this gets a 2 because that's the sum of the incoming edges this gets a minus 1 because that's the sum of its incoming edges and now we're going to look at um uh which order did i do this in okay it's going to do this uh this edge now um zero edge which is going to be 2 times 1 minus its variable so it's 1 minus x2 x2 is a 3 so it's 1 minus 3 it's a minus 2 so 2 times minus 2 is minus 4. okay i don't want to rush through there's no point in just blabbering on i'm just trying to do work this example so you get the idea okay so could you fill this out this next one out yourself so this is the one outgoing edge from this x2 node um so x2 is a x2 is labeled uh with two here so there's a is two this is the one edge going out so it's the one on this side here so it's two times the x2 x2 is a three so it's two times three so this should be six oops right here six i'm gonna do the same thing so x2 is labeled minus one um so minus one times one minus so you got a two here you get a minus three here just following again the same um process and now let's let's say what is the label on the zero node here so you again you take the sum of its incoming labels so there was a two and a six so that's an eight and this is a uh a minus three and a minus four coming in so it's a minus seven what's the output the output is minus seven because that's the label on the one node okay output is minus seven okay so this is going to be our way of defining the output of a branching program when it has a non-boolean setting on its inputs if you had the boolean setting on its inputs and you followed this procedure what would you get out you would get the same answer that you would get by following the path because the arithmetical simulation is a faithful simulation of the ands and ors and the ends and auras capture exactly when the what the path does so this is a strict extension of the operation of the branching program into a new realm these non-boolean values on the old realm it behaves just as it would or did originally and that's critical to understand that um yeah somebody's asking would the final value of the zero state also be the same sure in the ba in the in the boolean case if we follow this in the boolean cases all of the labels would be exactly what they were in the bool you know you know they would just be the zeros and ones that we had from before so does this exactly mimic xor if you take this all mod 2 hmm i don't know i'd have to think about that i don't think that that's essential um in this case it might behave correctly if you take the answer mod 2 for xor but the xor is going to be very special i'm not sure that might happen to be true i'd have to think about it for a second but um i'm not sure that's in relevant um okay this is a good question if i picked a different branching program that also implements xor um so it would be an equivalent branching program would it behave the same way on the non-boolean values and the answer to that is yes and no you understand the question it's a very good question and it's actually we're going to prove this you know in the analysis it's going to be easy to prove because i gave you both possibilities yes and no but let me tell you what i mean by that so um so you understand the question suppose i had a different branching program i'm not sure you can come up with a different branching program but let's make let's let's let's say you could you have a different branching program yeah sure you can come you can do the variables in a different order for example so you suppose you come up with a different branching program that gives you xor and now you plugged in two and three would i always get the same value out yes if that other branching program was read once no not necessarily if it's not read once and that's why read once is critical as we will prove for two read once branching programs if they behave the same way on the boolean values they behave the same way even on the non-boolean values that's not necessarily true if the branching programs are not read once okay so let's we will see that we will prove that and use that that's going to be important okay so here is the algorithm sketch which is kind of a little bit even sort of suggested by that uh that that that very good question um uh so what we're going to do is we want to take the um the two branching programs for with that we're trying to test if they're equivalent we're going to pick a random non-boolean input assignment so set the values here chosen from the field but we'll get there you know a random value for x1 a random value for x2 and so on these could be numbers like 17 and 25 and 23 and so on and then run using this process run the branching programs to evaluate them on that non-boolean assignment if they disagree then we're going to know that the two branching programs were not equivalent even on the non-boolean case even on the bullying case did i say that wrong so if they disagree even on the non-bullying case they have to be an equivalent even in the boolean case not obvious but if they agree and if they agree then it's not a guarantee that they're equivalent but it's going to be very strong evidence that they're that they're equivalent okay so that's where the probabilistic nature is going to come in okay so we're going to prove that so first we have to develop an algebraic fact um and that involves polynomials this is this is a simple thing that i think many of you have run into already perhaps even you know in high school um uh i'm not going to prove the algebraic facts but i'm going to state them and actually the proofs are not hard they're in the textbook um okay so let's suppose we have a polynomial of degree d here it happens to have b so you know some kind there's a bunch of constants these a's are constants x is the variable of the polynomial and uni i presume you've seen polynomials written out like this and so if you have if you assign x to some value some constant value z um and the polynomial value evaluates to zero we often call that a root of the polynomial um so the polynomial these are the places where the polynomial evaluates to zero and i've kind of shown over here those are the roots it's not hard to show that a low degree polynomial cannot have lots of roots basically if the polynomial has degree at most d it can have at most d roots as long as the polynomial itself is not the everywhere zero polynomial because obviously then everything is a root oops typo thank you should be d minus two over there uh pretend that's a two uh all right so um all right so if we have a low degree polynomial let's not get ahead of ourselves below degree polynomial uh degree did you do the polynomial of degree of most d it has the most d roots and that's a simple proof um the basic idea is every time you have a if you have a root of the polynomial you know so if um uh if setting x equal to five gives you a root of the polynomial um you know it's a zero of the polynomial then x you can easily see that x minus five is a factor of the polynomial you can divide out x minus you can divide out by x you can divide by x minus five and you get a new polynomial of degree one less and you can just uh which is going by by induction has a one fewer uh root um so you can just divide out by the roots basically it's very straightforward uh um uh okay so now um other very important thing uh if i have two polynomials that are both low degree they cannot agree on very many places that follows right from the from what i just proved above because what i'll do is i take those two polynomials and i look at the difference which is also a low degree polynomial every time there's an agreement between those two original polynomials there's a zero of the difference polynomial and because that difference polynomial cannot have too many zeros the two original polynomials cannot have too many agreements okay so the corollary is that if x and y are both polynomials of degree of most d and they're not the same polynomial because then the difference would be the zero polynomial then the number of places where they equal is the most d okay so the proof is just letting p be the difference of p one and p two very standard kind of a trick okay now the the above is going to hold for any field so we're gonna be a field is just a set with plus and times with the familiar um properties the distributive law and so on and identities and all the stuff that you would expect plus some time to have in in the normal world um and so we're going to talk about finite field that has only q elements um that has exactly two elements where q is a prime number so it turns out and i'm not going to prove all this but it's pretty simple stuff that if you just take the numbers from one to q minus one from zero to q minus one um they uh and use plus and times mod q that that does has all the right properties to be a field okay so we just think of it it's just modular arithmetic mod some prime q okay and then it's we can in a natural way pick a random assignment to a variable from the field because it's just choosing from among queue possibilities so uh uh yeah so the yeah so getting a question here the the the the coefficients of the polynomial and the assignment to the variables they're all going to come from this field so everything's going to be we're all going everything is going to be operating uh in this field don't get don't let that throw you off or you're just your ordinary intuition about the way arithmetic works is going to be just fine um okay now if we have ah but this is important here from the perspective of thinking about this probabilistically so i'm going to rethink about this polynomial lemma which says there are not too many roots um in terms of the probability of picking an element of the field what are the changes that it happens to be a root so if you have a low degree polynomial and you pick a random value in the field what's the probability that you got a root well it's just the number of roots divided by the size of the field so if you have this really big field and you have this low degree polynomial it's going to be pretty unlikely that that you're going to end up picking one of the zeros one of the roots uh just at random that's all that's this is saying so there's the most d roots out of the q possibilities and the last thing i'm going to introduce here is the multivariable version of this um which is called perhaps somewhat unfairly but uh it's called the schwarz zipple lemma though in various forms it had been um known prior to their work um in some cases you know the literature actually goes back a long ways but anyway the this is called the short zipline it doesn't really matter um uh except to the people whose um uh credit is being denied but that's not one of us uh so anyway the schwarzepilema says that if you have now a polynomial in several variables which is not the zero polynomial where each variable has low degree so if i say if has degree at most d in each x i so each variable is going to have at most an exponent of d appearing in that polynomial and now if we pick random values to assign to all of those m variables from the field the proper probability that we ended up with a root and we ended up with a zero is something you can bound so it's m times d so the number of variables times this maximum degree divided by the size of the field and this is going to come up later for us and this is another fairly simple proof a little bit more sophisticated than the one that we had above and in fact she uses that one as a um as a lemma to prove this theorem okay so we're going to uh not going to prove any of that but i refer you to the book if you're curious um uh so um yeah so like a couple of good questions here what happens if these values are bigger than q for example then then then it's not telling you anything if d is bigger than q m is bigger than q or the product is bigger than q then then you learn nothing uh from this lemma from this theorem so typically what the in applications you're going to pick a larger you're going to have the flexibility you get to choose q to be in something that you want so we're going to pick the field to be big enough so that the m and the so the m and d are going to be relatively small um in fact d is going to end up being one as we will see um and m is the number of variables so we're going to pick q which is going to be substantially larger than the number of variables and how is the degree defined in multi-variable polynomials you know the m if the polynomial has you know x y squared plus 3 x to the fifth y squared z you just you just pull out each variable separately and you look at the maximum degree of that variable so the x in that case had had a degree five appearance the y had a degree two appearance so you take the maximum over all of the variables of the degree of that variable and that's going to be the bound on the degree of the polynomial polynomial so in fact in our case d is going to be 1. so all of the variable there's not going to be any exponents on anything everything's going to be exponent one um so q is is q related to the number we choose for the mod yeah q is the number we're choosing for the mod we're doing everything mod q so all of the arithmet all the arithmetic is going to operate mod q and that's the size of the field that we're going to pick okay so i think we're here at the break um happy to take some more questions um but why don't we just start that off uh and uh i will see you in five minutes but in the meantime happy to shoot me questions okay so what happens if we use boolean assignments in the xor example um so the x you know would that work um to be able to check uh uh agreement um it would it was so it's hard to it's hard to make an argument based on just a single example i think the better thing would be to look at you know two um um branching programs that just differ in a single place so i can even suggest to you can make a branching program that always outputs um true it doesn't even read its variables or if it reads them and they always go to the same place and then ends up always at the one output so imagine a branching program that always outputs one no matter what the assignments to the variables are and you can you can easily make such a thing and then you make another branching program that computes the or function so it reads every variable and it's going to be 1 if any one of those variables is set to 1. okay so the only time the or function is 0 is if everything is set to zero but now if you're trying to randomly check whether the always one function is equal to the or function of course without knowing in advance what they are because that's cheating you're just given these two functions and you want to know these two branching programs and you want to know are they computing the same thing or not and by this procedure of randomly sampling there you're always going to get these branching programs both to say one unless you just happen to pick the random assignment of everything set to zero and that's very unlikely that you're gonna pick that you know if you imagine you have your branching program has a hundred variables in it it's only two to the minus 100 chance that you're going to set them all to zero randomly and so you're almost you go you're extremely unlikely to find the one place of difference if there's only a single place if there's lots of places of difference then you you know it's not not so bad but if the number the fraction of differences is low you're going to have to do a lot of samples in order to find that it won't be in you know possibly exponentially many samples and then you won't run a polynomial time okay so let me just see if there's other questions here um why can we accept going back to the boolean labeling side why can we accept that b1 equals b2 if b1 and b2 agree on only on just one input assignment no we didn't say that um all right i'll go back there boolean assignment is this i'm not sure which one you mean is this one what do you mean i don't know boolean labeling site must be it why do we non-boolean labeling okay so what no i see what you're saying you're saying about this here we're just going to pick one random assignment and if they agree on that one random case then we will say um accept because you might think well we should take to a whole bunch of samples that's a good question um but in fact we're going to arrange the probability such that if the two things are not equivalent then you're it's going to be uh diff the value the values will be different almost everywhere a large number of places so just picking one and having them agree is going to be strong enough evidence that you're still going to accept and you'll have a still a low probability of getting an error you'd have to see the analysis um are we assuming the roots of the polynomials are integers no don't forget when operating over a field here so it's not even talking about integers doesn't totally make sense but it doesn't really matter um we're not assuming that the bound still uh the bounds still oh i should have taken this away um the bound still works um uh the bound still works even even if we have non-integers okay i'm not sure if i'm being helpful here why don't we just move on um but we're not assuming that these are integers because the bound doesn't doesn't matter if it says there's at most five roots including the reals there's still going to be five roots including the integers all right so let's continue um [Music] good all right so now everybody's back i hope let's talk about moving forward here um we want to basically what where we're going with this is we want to analyze the algorithm which picks a random non-boolean input and evaluates the two branching programs and in order to do that we're going to look a little bit more carefully at the what happens uh when we arithmetize the branching program and um we run it on these non-boolean values and so what i'm going to do is take these take this branching program let's say this is the same xor exclusive or branching program but instead of labeling it as we did before by setting x1 to 2 and x2 to 3 i'm going to leave x1 and x2 variables and just do a symbolic execution so i'm going to label these things just leaving x1 and x2 as variables okay so let's just see what we get if we do that so remember we assigned this to be one now this edge here is you know here's the rule it's a which is 1 times x1 so this should be without knowing what the value of x1 is leaving it as a variable we're just going to put down x1 over here over here what goes over there well it's 1 times 1 minus x1 just 1 minus x1 now we're going to add things up as we did before and now what happens for example i think i have this edge coming next let's look at this edge the one edge coming out so that's the label now is x1 on this node and the out this is the edge this is the one edge coming out so you multiply by the um by the value of x2 that we're leaving it as a variable so you're just going to multiply it by x2 and so we're just going to get x1 times x2 x1 x2 on this edge now what happens on this edge so this x1 times think with me um times 1 minus x2 and similarly over here we have 1 minus x1 on this node so i think on this on the one edge coming out it's 1 minus x1 now times x2 because that's this rule again 1 minus x1 times x2 and this is going to be 1 minus x1 times 1 minus x2 now we're going to add this up for the zero node so we have this this value 1 minus x1 1 minus x2 plus x1 x2 and on this node here we're going to um add these two values up so 1 minus x1 times x2 plus x1 times 1 minus x2 and that's the output now expressed symbolically now you could plug things in and you're going to get the same value out as you did before um but let's leave it as a polynomial for now uh because that's going to um [Music] help us and analyze this so now notice the form of this polynomial is something special um what happens is it's gonna look like a bunch of products of x i's and one minus x i's added up so it's a sum of products of that form so each row here is a product of x i's and one minus x i's and then those rows are all added together i claim that's going to be the form of this polynomial you see this already has that form um and the reason for that is every time you go to a node you're just adding things up so that's just going to be like adding adding up more rows and every time you go down to through an edge you're multiplying what you have so far either by an x i or a one minus x i so you're just accumulating products of x i's and one minus x i's and you're just adding them up so this is what that polynomial is going to look like okay now let's look a little bit more carefully at the form of this so for one thing could we have um higher powers here like a x2 cubed could that happen so because you know when i say it's products of x i's and one minus x i's maybe there's going to be some x xi's that appear several times in the product well that cannot happen why read one sprint it's a read once branching program so every time you multiply by an x i or one minus x i you're never going to do that again because doing that would imply you're querying that variable more than once so this can't happen okay so i crossed that and this is sort of appeared off to the side here but yeah i'm crossing that out that does not happen another thing that is part of that's worthy that's going to be helpful to to notice about this this polynomial and by the way maybe i'm i'm being confusing here this is i'm supposed to be representing sort of as a generic form of the polynomial this is not some particularly i shouldn't have said this at the beginning this is not some particular polynomial that came from anything i'm just trying to describe what the general form of the polynomial looks like just as an illustration so you know it's so this polynomial is 1 minus x1 times x2 times 1 minus x3 times x4 and so on and and adding up a bunch of rows like this i'm just saying this is what the polynomial will look like for maybe some branching program so every branching programs that are going to have some polynomial that looks sort of like this um and what i'm also going to say what for convenience now i want to say that each row is going to have every single variable up here either as an x i or as a 1 minus x i so in order to get that i need to make a further minor assumption about the branching program that it's a read exactly once currently when i say read once it can it can avoid reading some variables on some branches because i could read it most once but now i want to say that every variable gets read exactly one time on every branch and what that's going to mean is that every row is going to contain every variable either as an x i or as a 1 minus x i we can eliminate that extra assumption easily and i'm going to leave that as an exercise to you it's not very hard to do um so i think if you follow me you can see and you play with it for a minute or two you'll see that it doesn't really matter uh you can either you but i think just for the for the first time through this let's assume that every row has every variable okay so important to understand um okay so so the this is the output polynomial of this branching program so let's look further more at this polynomial and understand the rows let's take one one row out of this polynomial and to understand its um uh um understand what it represents so one row here it's a product of a bunch of things part of a bunch of variables either variables or one minus the variables now notice let's think about this in the boolean setting first of all so in the boolean setting each of these variables are going to be zeros and ones and the one minus the variables are also going to be zeros and ones so it's going to be a product of zeros and ones if there's a zero that appears in that product that product is going to be a zero because zero times anything is a zero so the only way that product cannot be um zero is if all of those uh values are once in the boolean case so uh that means that x1 well let's let's let let's look at the second row so x1 had to be a one x2 had to be a one x3 had to be a one x4 had to be a zero um in order to continue the product of ones and so on so in fact there's only a single boolean assignment to these variables which make that row one every other assignment to those variables makes that row zero saying that another way these row each of these rows corresponds to one of the rows of the truth table for the boolean function where where the truth table is true gives a true value gives a one value for the function on that row okay so i i hope you've all familiar with the notion of a truth table of a boolean function you just write down the boolean function every possible assignment to the boolean function and you write down one or zero or true or false for what the value of that function is so just a tabular representation of the boolean function it's called the truth table this thing here gives you all of the ones all of the rows that are one in that boolean function that's what this polynomial gives you okay so i think we're at a pause point for um this slide and i um it's deathly silent on the chat so i was feeling that that was a that went down that went down rough uh for for you um it's it's we're gonna it's important to understand the form of this polynomial uh here um you know that it's corresponds to the truth table of the boolean function so each one of these rows is only going to be on again thinking boolean now each one of these rows is only going to be one on that on an assignment which makes the function one um one of the one of the assignments that makes the function one okay and somebody says and similarly for the expression for the zero node yeah the zero node which i'm not focusing on but yeah the zero node would be all of the false rows of the truth table but the one node the polynomial for the one node are all of the true rows correspond to all of the true rows in the in the in the um in the um uh in the in the function of the branching the function that branching program computes now the reason why this is let me just tell you where we're going is it possible to have two rows that are the same if you think about how the rows are being produced no you can't have two rows of that are going to be the same um uh because for one thing you have to think about what what this looks like when the boolean case if you have two rows of the same that means this thing is going to have an output which is non-boolean um because you're going to end up with a 2 coming out that way by adding those rows together they can never happen and if you just look at the way it's constructed you're never going to because every time you have a branching you know one way is a an x one an x i the other one is one minus x side so every time you're branching there every not every time there's a node they're different um so you're never going to have two rows that are going to be the same but let me tell you the importance of connecting up the this polynomial with the truth table um because that tells us that if the two functions of the two branching programs that we started off with agree in their boolean values then the two polynomials are going to be the same um [Music] you know because if the two branching programs uh have the same boolean function so they're equivalent then the um truth tables will be the same and therefore these polynomials will be the same so that and therefore they will behave the same way on all non-boolean values because they're the same polynomial so i'm sort of getting ahead of myself but that's where that's what we're going to argue that's why it's important to understand the connection with the truth table because it sort of builds on the um under you know understanding something about how this thing behaves in the boolean case is going to give us information about how it behaves in the non-boolean case okay let's continue here then um okay so this is i think is this my um yeah this is essentially the last slide okay um we're going to spend some time on this one so here's the algorithm we are going to take our two branching programs the variables are x1 to xm first of all we're going to find a prime which is at least three times m the number of variables m is not a very big number um it's just a number of variables so finding a prime that's bigger than that is straightforward we're not talking about huge primes here we're talking very modest size primes so you can just you know just try them even trial and error is going to be good enough um now that's going to be the the size of the field it's going to be field of size q um and now we're going to pick a non-boolean assignment to the variables and okay we're going to pick a non-boolean assignment to the variables and [Music] evaluate the two branching programs on that non-boolean assignment using the arithmetization if they agree then we'll accept if they don't agree then we're going to reject okay now we have to argue that this works so we're going to first of all arithmetize these two branching programs i'm going to get the two polynomials they each have the form that as i described um so a bunch of rows that correspond to the truth tables of those two respective branching programs okay first claim that if the branching programs were equivalent so they compute the same boolean function then the two polynomials agree everywhere um so then the two branching programs are going to get the same value um on every non-boolean case as well as on the boolean cases so they agree on the boolean that means they always agree even on the non-bully and i kind of argue that already but okay the other point is that if the two branching programs are not equivalent so they differ at some boolean value now picking a random value to eval for the polynomial evaluation you're going to have only a one-third chance that they're going to agree so a small chance all right so now um let's prove these two facts the first one i already kind of argued if the two branching programs agree on all the boolean values um then their functions have the same truth table so then the polynomials are identical because the polynomials correspond to the truth table and so therefore they always agree even on the non-boolean values okay so that means that the probability that if you evaluate the two polynomials on a random place the it's good whether you'll be equal that's a certainty because in fact in this case p1 and p2 are the same polynomial now for two if the branching programs differ somewhere even in one place well you know the polynomials could not be the same they have to be different polynomials because the polynomials include the behavior of the in the boolean case as well as all the breadth of the field um so the polynomials have to be the same and now we're going to apply the short zipple lemma we have two different polynomials they can only agree in a relatively small number of places so that says that from the short simple theorem then um the probability that p1 and p2 agree at this random location is at most this value that we had from before the degree times the number of variables divided by the size of the field the degree is one and the field is at least three times uh the number of variables in size so that means um you get this inequality here and so therefore the probability is it is a third and most a third and that's good enough um this is the probability that you get the wrong answer it's going to be at most one-third so you're going to get the right answer with at least two-thirds probability so even just doing a single sample point is going to be enough to to give a bpp algorithm all right so that's um what i have is are a couple of check-ins here uh now for you um [Music] whoops somehow this better take me out of here um uh all right so this is this is a little hard but let's see how you do on it suppose the branching program is uh well maybe i sort of a little bit discussed this already that's okay the branching problems will not read once the polynomials might have exponents bigger than one so where would the proof fail um would they fail the point where b1 and b equivalent to b2 implies that they agree on all boolean inputs so that's sort of this um the first step here or um is it that agreeing on all boolean inputs implies that the polynomials are the same or would it be that having the two polynomials being equal implies that they always agree so those are the three sort of steps in the part one of the the proof of part one so let's see uh what do you think there in a couple questions about picking the prime number um the this uh the prime number here is uh it's this is a very small prime number um you could even represent that prime prime number in unary within the amount of time we have because don't forget this is a prime number whose magnitude it is at most the number of variables so you can write that prime number in unary and um uh finding the prime and testing primality of testing whether the number is prime is something that you can do even with this brute force algorithm and it would be good enough um so there's not there's no you don't have to do anything fancy about testing primality um in this case okay so why does it have to be prime you need it to be prime in order for the for the um for it to be a field so this is just the algebra part um if you did not have a prime number then then some of the field properties don't work and you may no longer get the um the fact that the polynomial has a small number of roots um so that that's all i can say about that is the polynomial like a hash function for the branching program are the equal if they are the same but sometimes the values also equal if the programs are different that's an interesting idea so is that is a polynomial acting like a hash function i think it's there is something to what you're saying but i think it's actually in the other direction um uh it's it's actually more it's related to a hash function but it's actually acting more like an error correcting code let's let's save that for later it's a very good point it's a very good question maybe we can talk about it after if you remind me um okay let's let's end this poll here um should c be if having these two agree implies well i mean the question is should should we change p1 and p2 always agree to b1 and b2 always agree well b1 and b2 are behaving exactly the way b p1 and p2 behave so i'm not sure it matter really matters um uh too much time on this chat on this poll here let's end this poll oh sharing results um yes so the correct answer is b um that agreeing on all boolean inputs implies that they're equal um the other two are follow kind of immediately they're still true but if it's not read once even though they agree and all the boolean inputs they won't necessarily agree as polynomials um for one thing like if you just take the two polynomials x1 squared and x1 they agree on all the boolean inputs but they're not the same um they agree in the boolean world because zero squared is zero and one squared is one but they they're not the same polynomial okay uh let's move on actually i have another uh check in on the same slide here um and this is actually answering a question that we i got in the chat if p102 where x you know how big how big are these polynomials are they these look like they could be big if they're exponentially large would that be a problem for the time complexity so pick a or b here we're running out of time here so why don't i uh not say too much and just let you go with it okay i'm gonna close this down all in well my god by one point this is a this is uh this is like georgia here um but do a recount um in fact b was is correct uh by it by by a hair here um they are not polynomial in size the truth tables can be very large but we don't have to as we did with the um branching program for um the exclusive or case you don't actually write down the polynomials to evaluate them you can evaluate them as you're going along the polynomials are huge but you don't have to write down the polynomials to evaluate them that's only part of the proof you don't have to re either the the algorithm doesn't have to deal with the polynomials itself so maybe a good uh good to think about this that somebody says did i invent this proof no i did not invent this proof it's a wonderful proof but it's not mine i would love to have been get take the credit for it okay so um why don't we uh wrap this up so you know can we just is there some way to simplify the polynomials as we're going along so that we we don't end up with them being too big um and so that we can then just look at the polynomials not that i know of um uh i i i think the polynomials are really going to be big and so there's not going to be any way to um uh to to view it just as pawn if you could it would be fantastic because that would give you a deterministic algorithm um i think the only way that people know how to do this is terms of you know random inputs the polynomial to a polynomial which is too big to write down if you could write it down and just analyze the polynomials you'd have a huge huge result there um okay i'm glad people like this proof that's good um how many actual quantities are there in the formula i'm not sure what that means what formula um i mean the polynomial is huge uh the number of different polynomials well i i guess i don't understand the question what motivates the idea of arithmetization what would make somebody think of this i'm not sure actually um but we're going to use it even in a more remarkable way uh in the in the last two lectures of the course so stay tuned i mean this is sort of a clever but seems very specialized but the um the next part where we're going to next application we're going to use this to analyze satisfiability which is much more general kind of a situation and that's that that i think is especially remarkable um um for the polynomials p1 and p2 uh it's only a polynomial number quantum i don't think so because well it depends on the size of the field the size of the no it's going to be something like m to the n m power right um so those are the number of possible inputs so it's in each each each field element is is has 3m possibilities roughly and there are m field elements so it's m to the 3m different possible inputs that you're picking at random so anyway i'm going to shut this down and move over to the to the others the office hours zoom feel free to join me there otherwise i will see you all on thursday take care you 2 00:00:26,470 --> 00:00:28,710 welcome back i hope you had a good thanksgiving and uh are all refreshed and ready uh to uh uh think about some theory of computation um we're in the home stretch now this is uh we have this lecture and two more to go and um so today i have for you um [Music] a completion of the theorem we started before the break um where we had a uh we where we introduced probabilistic computation and we uh talked about the class bpp as i hope you remember and we looked in particular at these um these problems involving branching programs where we started the proof that the problem of equivalence of two read once branching programs can be solved in this class bpp so what i'm going to do is spend the first 15 minutes or so just reviewing where we were because we started this um it feels like a long time ago now and i just want to make sure that you're all uh um uh on the same page and we're all uh um remembering what we were doing and then i will finish off the proof and along with doing that we're going to introduce an important method um well we started that we we looked at the method of arithmetization last time so we will review that we're going to use that again in the uh the work that we're going to start on thursday on interactive proof systems so this is a kind of in some ways both a an interesting theorem in its own right and a warm up for what we're going to be doing um on um in the last topic of the of the semester um okay um so um uh let's just remember what we were doing so we introduced probabilistic turing machines um so those are these machines that have they're a kind of non-deterministic machine but there's a different rule for acceptance and these are also non-deterministic machines which can either make one choice just to have a deterministic uh move at a step or they can make two choices um and when the machine makes two choices we actually think of there being a probability there um where the machine is tossing a coin to decide which branch to go on um so with that there is a uh tree of possible branches and the probability of some particular branch is going to be one over two to the number of coin tosses on that branch um and so [Music] we then use that to define the probability that the machine accepts um which is the sum over all of the probabilities of the accepting branches and the probability that it rejects is one minus the probability that it accepts um so you know thinking about it um uh you know this captures the idea that if you just run the machine on a random set of inputs um from the coin tosses what the probability that you're going to end up with the machine accepting that's the probability of acceptance um defined in that way now if we're thinking about the machine deciding some particular language it's supposed to accept the strings in the language and reject the strings which are not in the language but because of the probabilistic nature of the machine it might get the wrong answer on some branches and so we say that a machine decides a language with a certain error probability means that the probability of getting the wrong answer is going to be at most that error probability epsilon over all of the possible inputs to the machine so if we say that the machine is error probability one-third that means that it gets the right answer for every every string with probability at least two-thirds um [Music] okay so that led us to the definition of this complexity class bpp which i don't remember if i told you what it stands for it's bounded probabilistic polynomial time that's what bpp stands for and it is the bounded means is bounded away from one half because we don't want to allow the machine to have probability one-half um because then um bad things happen uh the machine can just toss a coin when it decides to make um uh an answer and not really give us any information um [Music] then we also uh went over the amplification level we did not give the proof but we went over the statement of the theorem the proof is really just a calculation that you can drive down that error probability to something extremely tiny um just by basically rep repeating the machine and taking the majority vote of what it does on several different runs if you run the machine 100 times and you see if it's mostly accepting then you're going to accept and the chances that the machine was really uh biased toward rejecting even though your in your samples see mostly acceptance is extremely small and you can calculate that but you can make that very tiny so small that for all practical purposes it's really giving you the right answer um but you know it's not deterministic so it's not quite 100 guaranteed um [Music] and the way i like to think about um bpp in a uh in terms of the computation tree of the machine um so that when it's accepting most of the branches are accepting you know weighted by their probability of course but most of the branches so the there are many accepting branches when you're accepting and many rejecting branches when you're rejecting so just another way of saying the same thing um now we're gonna start right jump right in with a check-in um and this is a little bit more not exactly the material of the course but um a little bit more on the philosophical side but let's just see how you do with it um when you're actually running a probabilistic machine you imagine the machine as we're as we're kind of informally describing it it's called tossing coins um every time it has a non-deterministic uh every time it has a a choice so a choice tosses a coin to decide which way to go of course you know a real computer does not have a coin to toss presumably well maybe you might actually build some hardware into the machine that lets it access randomness in some sense you know maybe it uses um some quantum mechanical effect you know to get some random value or maybe it uses the timer i you know i'm not exactly sure you know you can imagine having a bunch of ways of implementing that a typical way that people implement randomness randomness in an algorithm is to use a pseudo-random number generator which is a procedure that might give you some kind of a value that looks random but may not actually be random it's for example giving you the digits of pi if you express if you want binary expressing pi as a binary as a binary number then you might calculate the different successive digits of pi and use that as for your random number generator um of course that's a deterministic procedure so it's not really random um and but you know often people do use those kinds of things when they're simulating random machines so what do you think about doing that could we use a random uh pseudorandom generator as the source of randomness for a randomized algorithm um what yes or no or what do you think um so let's launch a poll on that and see what your opinion about using pseudorandom number generators instead of truly random true randomness for our algorithms i'll give you a few seconds a minute to weigh in on that okay we're gonna close this down everybody's participated who wants to uh one two three um [Music] okay yeah i think probably the the best answer is a um let's take a look at some there are a couple of answers here that really that don't make um that aren't as good i would say uh b well you know usually people think of random pseudorandom generators as pretty fast procedures um they're not not that interesting otherwise so um i wouldn't say that b is a good choice because you know they're they're usually pretty quick to implement um [Music] c is a worse choice even because uh turing machines can do anything that any other algorithm can do so certainly if there is such a thing as a pseudorandom number generator and there is then you could uh implement it on a touring machine um d is kind of an interesting answer uh because you're saying well that would imply that p equals bpp if you could actually simulate uh randomness with a deterministic procedure um but in fact the reason i i would not choose d is because it's perfectly conceivable that p does equal bpp we don't know that p is different from bpp so it's conceivable that they're equal and in fact i think if you if you polled most complexity theorists they would most most people in my field would would believe that p does equal bpp just for this very reason that if you had sufficiently good pseudo-random number generators you could actually eliminate the probabilism in these probabilistic computations you could just run them on the pseudorandom number generator and in fact there is some theory around that um that has been developed um but at the present time we do not know how to prove that there are pseudorandom gen number generators and it has some actually there's actually in some line of this research has some connection with the p versus np problem but we don't know how to prove that there are sufficiently good pseudo-random number generators that would would allow you to run them on a probabilistic algorithm and have a guaranteed behavior which is as good as running truly random numbers into the um probabilistic algorithm and so the the answer that i would pick would be a that you could use it sure you might get the right answer but it's not guaranteed we just don't know how to do the analysis for the pseudorandom number generators and you know if you had such you had ones that were good enough they would show p is equal to vpp but that might be in fact the correct um that might actually be true okay so let's continue on um and uh remember now branching programs you know we had these uh kind of networks um of nodes and edges um and there was a procedure you know we'll see a couple of examples again some of the ones that we had from before uh where you um you know you have branching programs look like this and you know you you have a bunch of query nodes you look at the settings of the variables to decide whether to go down a zero edge or a one edge and eventually you're going to end up at an output node and that's going to be the output of the branching program and in such a way these branching programs define boolean functions from the settings of the input variables to a 001 output now you might have two branching programs and wonder whether they're computing the same boolean function or not and testing that is a co np complete problem as you are asked to show on your homework um uh now if the branching program however has a restriction namely that it's not allowed to ask to query the same variable more than once on a path then with that restriction you can we call it a read once branching program and then the situation for testing equivalence seems to be different um in fact we can give a bpp algorithm for testing the equivalence of read once branching programs even though such a thing is unlikely to be the case for general branching programs because of the co-np completeness okay so i hope you're comfortable and with me on all that reasoning um okay um [Music] let's uh so um [Music] all right so the idea for proving this is what we're going to do is we're going to take the two branching programs and run them on a randomly selected input but as we observed last time if you just run them on a randomly randomly selected boolean input where we assign the variables zeros and ones then that doesn't give you the right answer with high probability because the two branching programs might be different computing different boolean functions but they differ only on a single input setting and then just picking them at random you're not going to have a very high probability of finding that one place of difference so instead what we're going to do is define a way to run these branching programs on non-boolean inputs where the variables are set to values other than 0 and 1. 2 3 7 22 and make sense of that and then argue that by running the two branching programs on a randomly selected non-boolean input that that's very high probability of giving you the right answer um so somehow by expanding the domain of possibilities you're going to uh better your chance of getting the right answer very significantly okay so even though these two branching programs might agree on all of the on almost all of the boolean inputs we're going to show that by doing this arithmetization so this is the method um uh they're going to if they're really not equivalent they're going to differ almost all of the time on the expanded domain okay now we have to prove so that there is uh um you know that's where today's work is going to be okay so um why don't we just stop and make sure we're all together on this i can take any questions um i'll also review how the arithmetization goes but that i'll do that next so are we all okay on this um good so let's move on so in order to move toward understanding what it means to run the branching programs on these non-boolean values we're going to have to uh uh get a somewhat different perspective on the computation of a branching program so the standard com perspective is that you know you um you take your setting your assignment to the input which is 0 1 1 for x1 x2 and x3 and use that to follow an execution path through the machine so you know x1 is 0 x2 is 1 x3 is one the output is one okay as i've indicated in yellow um this other perspective says well let's let's we're gonna by operate by labeling the nodes and edges of the machine and that's going to have a very direct correspondence with the execution path perspective so we're going to label all the nodes and edges on the path with a 1 as indicated in yellow and all the nodes and edges that are not on the path all the other nodes and edges are going to be labeled zero okay so by following the ones it's like the breadcrumbs you know and hansel and gretel these are the this is the path you need to follow to get uh through uh the machine the zeros are the places where you don't go um okay so the output label here the the output is going to be the label of the one output node whatever you're labeling that because if it's a one that means the path went to the one and if it's a zero that means the path didn't go to the one who went to the zero okay so just by looking at this value you can see what the output of the machine is all right so um let's describe a different way of defining this labeling without just looking at the path but it's going to capture exactly the same thing um so we're going to say whenever you have you know if if you've already labeled a node i'll tell you how to label the two edges that emanate from that node um [Music] i'm going to label the one edge a and the query variable why is that well a is going to be either a zero or a one and it's going to tell us whether or not the path entered that node so if it's a 1 it entered that node at 0 it didn't enter that node the only way it's going to go down that this branch here is if it did enter the x i node if it didn't enter the x i know there's no way it can go down this this branch so we're going to and that value so it's so the only way you can go down this branch is if it went through that node so that's the a the value of a and the x i is a one that's why we say a and x i so you really have to understand this little expression here in order you don't understand that you're toast okay so you better understand this so we can move forward i'm happy to take a question these are the simplest questions or sometimes the most valuable if you understand why i'm labeling it this way shoot me a chat um okay now the other brand uh other branch i'm going to say well i'm only going to go down this edge if well a is true so i did go through that node and x i is false so this is going to be a and the complement of x i all right so that's how i'm going to label these this is another way giving these expressions for labeling these edges based on the label of that node and similarly in order to complete the picture i've got to tell you how to label the nodes based on the edges that are coming into it so if i know that i have a1 a2 and a3 which tell me the status in terms of the path of whether the path went through any of these edges well i know that it's going to go to that node if it went it's the or of these values if the path went through here or it went through there or went through there then it's going to go through that note that's why the or is the right thing to say so this gives me another way of constructing the labeling over here without even talking about paths but i'm just as i describe it i argue that it's going to get the same result all right so there's a question can we quickly say again why we can't do that on boolean i'm not sure i understand the question so please send it to me again but this is right now everything is boolean we haven't done arithmetically anything yet um and the reason why we can't just live in the boolean world is that you know just by taking boolean values of boolean assignments here we don't have a high enough probability of catching a difference between the two machines all right so let's continue um all right so now i'm going to talk about how to we're going to extend this to the non-boolean case okay using the arithmetic arithmetization method so first of all arithmetization is a simulation of and and or with plus and times such that if i think about um [Music] true as a one and false as a zero this is going to give me a faithful simulation it's going to do the right thing um it's going to compute exactly the same values that we expect so like a and b well um times works just like and um and um right you know it does for for one and zero as true and false times exactly works like and um and negation is one minus and or is going to be the sum minus the product and then these just give you the right values um a a or b if you just calculate it out by plugging in ones or zeros you get the right answer just by using using this arithmetic um so now what we're going to do instead of using the boolean labeling we'll just use the arithmetical labeling but it's going to compute exactly the same thing because the arithmetic simulates the boolean um so uh we always go through the start nodes so there's no question about labeling the very start node with a one but now i'm going to give expressions just like the boolean expressions but now they're going to use plus and times instead of ands and ors um so let's just see remember what we defined before we had a and x i for this edge i'm going to replace that what is and we just look up here in our table in our in our translation table and becomes times so we're going to replace that with a times x i and it's going to work exactly the same but you know the difference is that this makes sense even when we have non-boolean values times and plus are defined for non-boolean values um where zans and or not so what what goes down on this edge um well this was a and the complement of x i as you remember uh so we're going to that's going to become a times 1 minus x i and then similarly we had or over here and here's a little bit of a trick but that's going to be important for the for the for the analysis that we're going to do instead of using the recipe for um or in terms of plus and times we're going to have something a little simpler it's just going to be the song and the reason why that works it's good to understand is that because of the acyclic nature of the branching programs at most one of these edges can have a path through it so this is a kind of very special ore um sometimes called a disjoint or you're not allowed to have more than one of the values be one because that never happens in when you have an acyclical graph you can never have the path coming down this way and then again coming down that way then it would be entering that node twice had to be a cycle so it's going to be good enough for us and it necessary for us to represent uh this or as as a sum okay so i think that's all i wanted to say on this slide um so somebody's asking is a possible sum of for some of these values to be negative yes the values that's a as it stands right now some of these values can be negative i haven't put any restriction on what the values are are going to be um so the input could be a negative number and then you're going to just get negative stuff happening uh in fact there's negative there's subtractions going on here so even with positive numbers i think we did an example last time i think we're gonna i'm gonna do that example again uh of exclusive or um where you're going to you get negative numbers coming up that doesn't matter but actually what we're going to end up doing is operate doing these calculations modulo some prime number q okay um so i'm going to pick some prime like 17 and do all the calculations mod 17. um and the reason for doing it that way is really because we're going to be picking random assignments to the um variables as our input and it and you need to it makes it makes the most sense to do that when you have a finite set of possibilities to pick them up um so we're not going to pick like a random integer there's infinitely many possibilities and you could yeah you could set up a distribution there but that's very complicated that actually might work i'm not sure i i haven't actually gone through that analysis but the typical way people do this is by looking at what's called a finite field so i'll talk about that in a second um why is there at most one one among a1 a2 and a3 so um the ones i'll say one once again but the ones correspond to the path so this is a one if the path went this way just think about it the path cannot go through a1 and can at the same time go through a2 because that means the path went through this node then how is it going to get over to a2 it's going to go through that node twice in an acyclic graph you cannot have a path going through it's the same node more than once so you have you're going to have to think about that um okay let's move on so now we're going to talk about the same um uh we're going to we're going to look at that non-boolean labeling applied to an example so here is a very simple branching program that actually computes the exclusive or function in the boolean world um so this is the labeling that we just i just developed for you the the uh arithmetical labeling um and we always label the start node with one because the path always goes through there um and now let's look at this before we jump ahead let's look at this edge here remember what it is we have to apply this rule here this is the one edge coming out of a node that already is labeled so it's that that label on that node times the x i because that if you're thinking about that's the and captures the end so it's just a times x i so xor it's x1 in this case so it's going to be x1 is a 2 in our input so it's going to be 1 which is the a times the x one which is two so that's just this this edge gets labeled two now this well okay let's look at this edge now i think that's next this is the one minus x i it's one minus x one so it's one minus two so we're going to end up with a minus one one minus times minus one times one minus two which is minus one so it's a minus one now we're going to label these two nodes using the other rule um so this gets a 2 because that's the sum of the incoming edges this gets a minus 1 because that's the sum of its incoming edges and now we're going to look at um uh which order did i do this in okay it's going to do this uh this edge now um zero edge which is going to be 2 times 1 minus its variable so it's 1 minus x2 x2 is a 3 so it's 1 minus 3 it's a minus 2 so 2 times minus 2 is minus 4. okay i don't want to rush through there's no point in just blabbering on i'm just trying to do work this example so you get the idea okay so could you fill this out this next one out yourself so this is the one outgoing edge from this x2 node um so x2 is a x2 is labeled uh with two here so there's a is two this is the one edge going out so it's the one on this side here so it's two times the x2 x2 is a three so it's two times three so this should be six oops right here six i'm gonna do the same thing so x2 is labeled minus one um so minus one times one minus so you got a two here you get a minus three here just following again the same um process and now let's let's say what is the label on the zero node here so you again you take the sum of its incoming labels so there was a two and a six so that's an eight and this is a uh a minus three and a minus four coming in so it's a minus seven what's the output the output is minus seven because that's the label on the one node okay output is minus seven okay so this is going to be our way of defining the output of a branching program when it has a non-boolean setting on its inputs if you had the boolean setting on its inputs and you followed this procedure what would you get out you would get the same answer that you would get by following the path because the arithmetical simulation is a faithful simulation of the ands and ors and the ends and auras capture exactly when the what the path does so this is a strict extension of the operation of the branching program into a new realm these non-boolean values on the old realm it behaves just as it would or did originally and that's critical to understand that um yeah somebody's asking would the final value of the zero state also be the same sure in the ba in the in the boolean case if we follow this in the boolean cases all of the labels would be exactly what they were in the bool you know you know they would just be the zeros and ones that we had from before so does this exactly mimic xor if you take this all mod 2 hmm i don't know i'd have to think about that i don't think that that's essential um in this case it might behave correctly if you take the answer mod 2 for xor but the xor is going to be very special i'm not sure that might happen to be true i'd have to think about it for a second but um i'm not sure that's in relevant um okay this is a good question if i picked a different branching program that also implements xor um so it would be an equivalent branching program would it behave the same way on the non-boolean values and the answer to that is yes and no you understand the question it's a very good question and it's actually we're going to prove this you know in the analysis it's going to be easy to prove because i gave you both possibilities yes and no but let me tell you what i mean by that so um so you understand the question suppose i had a different branching program i'm not sure you can come up with a different branching program but let's make let's let's let's say you could you have a different branching program yeah sure you can come you can do the variables in a different order for example so you suppose you come up with a different branching program that gives you xor and now you plugged in two and three would i always get the same value out yes if that other branching program was read once no not necessarily if it's not read once and that's why read once is critical as we will prove for two read once branching programs if they behave the same way on the boolean values they behave the same way even on the non-boolean values that's not necessarily true if the branching programs are not read once okay so let's we will see that we will prove that and use that that's going to be important okay so here is the algorithm sketch which is kind of a little bit even sort of suggested by that uh that that that very good question um uh so what we're going to do is we want to take the um the two branching programs for with that we're trying to test if they're equivalent we're going to pick a random non-boolean input assignment so set the values here chosen from the field but we'll get there you know a random value for x1 a random value for x2 and so on these could be numbers like 17 and 25 and 23 and so on and then run using this process run the branching programs to evaluate them on that non-boolean assignment if they disagree then we're going to know that the two branching programs were not equivalent even on the non-boolean case even on the bullying case did i say that wrong so if they disagree even on the non-bullying case they have to be an equivalent even in the boolean case not obvious but if they agree and if they agree then it's not a guarantee that they're equivalent but it's going to be very strong evidence that they're that they're equivalent okay so that's where the probabilistic nature is going to come in okay so we're going to prove that so first we have to develop an algebraic fact um and that involves polynomials this is this is a simple thing that i think many of you have run into already perhaps even you know in high school um uh i'm not going to prove the algebraic facts but i'm going to state them and actually the proofs are not hard they're in the textbook um okay so let's suppose we have a polynomial of degree d here it happens to have b so you know some kind there's a bunch of constants these a's are constants x is the variable of the polynomial and uni i presume you've seen polynomials written out like this and so if you have if you assign x to some value some constant value z um and the polynomial value evaluates to zero we often call that a root of the polynomial um so the polynomial these are the places where the polynomial evaluates to zero and i've kind of shown over here those are the roots it's not hard to show that a low degree polynomial cannot have lots of roots basically if the polynomial has degree at most d it can have at most d roots as long as the polynomial itself is not the everywhere zero polynomial because obviously then everything is a root oops typo thank you should be d minus two over there uh pretend that's a two uh all right so um all right so if we have a low degree polynomial let's not get ahead of ourselves below degree polynomial uh degree did you do the polynomial of degree of most d it has the most d roots and that's a simple proof um the basic idea is every time you have a if you have a root of the polynomial you know so if um uh if setting x equal to five gives you a root of the polynomial um you know it's a zero of the polynomial then x you can easily see that x minus five is a factor of the polynomial you can divide out x minus you can divide out by x you can divide by x minus five and you get a new polynomial of degree one less and you can just uh which is going by by induction has a one fewer uh root um so you can just divide out by the roots basically it's very straightforward uh um uh okay so now um other very important thing uh if i have two polynomials that are both low degree they cannot agree on very many places that follows right from the from what i just proved above because what i'll do is i take those two polynomials and i look at the difference which is also a low degree polynomial every time there's an agreement between those two original polynomials there's a zero of the difference polynomial and because that difference polynomial cannot have too many zeros the two original polynomials cannot have too many agreements okay so the corollary is that if x and y are both polynomials of degree of most d and they're not the same polynomial because then the difference would be the zero polynomial then the number of places where they equal is the most d okay so the proof is just letting p be the difference of p one and p two very standard kind of a trick okay now the the above is going to hold for any field so we're gonna be a field is just a set with plus and times with the familiar um properties the distributive law and so on and identities and all the stuff that you would expect plus some time to have in in the normal world um and so we're going to talk about finite field that has only q elements um that has exactly two elements where q is a prime number so it turns out and i'm not going to prove all this but it's pretty simple stuff that if you just take the numbers from one to q minus one from zero to q minus one um they uh and use plus and times mod q that that does has all the right properties to be a field okay so we just think of it it's just modular arithmetic mod some prime q okay and then it's we can in a natural way pick a random assignment to a variable from the field because it's just choosing from among queue possibilities so uh uh yeah so the yeah so getting a question here the the the the coefficients of the polynomial and the assignment to the variables they're all going to come from this field so everything's going to be we're all going everything is going to be operating uh in this field don't get don't let that throw you off or you're just your ordinary intuition about the way arithmetic works is going to be just fine um okay now if we have ah but this is important here from the perspective of thinking about this probabilistically so i'm going to rethink about this polynomial lemma which says there are not too many roots um in terms of the probability of picking an element of the field what are the changes that it happens to be a root so if you have a low degree polynomial and you pick a random value in the field what's the probability that you got a root well it's just the number of roots divided by the size of the field so if you have this really big field and you have this low degree polynomial it's going to be pretty unlikely that that you're going to end up picking one of the zeros one of the roots uh just at random that's all that's this is saying so there's the most d roots out of the q possibilities and the last thing i'm going to introduce here is the multivariable version of this um which is called perhaps somewhat unfairly but uh it's called the schwarz zipple lemma though in various forms it had been um known prior to their work um in some cases you know the literature actually goes back a long ways but anyway the this is called the short zipline it doesn't really matter um uh except to the people whose um uh credit is being denied but that's not one of us uh so anyway the schwarzepilema says that if you have now a polynomial in several variables which is not the zero polynomial where each variable has low degree so if i say if has degree at most d in each x i so each variable is going to have at most an exponent of d appearing in that polynomial and now if we pick random values to assign to all of those m variables from the field the proper probability that we ended up with a root and we ended up with a zero is something you can bound so it's m times d so the number of variables times this maximum degree divided by the size of the field and this is going to come up later for us and this is another fairly simple proof a little bit more sophisticated than the one that we had above and in fact she uses that one as a um as a lemma to prove this theorem okay so we're going to uh not going to prove any of that but i refer you to the book if you're curious um uh so um yeah so like a couple of good questions here what happens if these values are bigger than q for example then then then it's not telling you anything if d is bigger than q m is bigger than q or the product is bigger than q then then you learn nothing uh from this lemma from this theorem so typically what the in applications you're going to pick a larger you're going to have the flexibility you get to choose q to be in something that you want so we're going to pick the field to be big enough so that the m and the so the m and d are going to be relatively small um in fact d is going to end up being one as we will see um and m is the number of variables so we're going to pick q which is going to be substantially larger than the number of variables and how is the degree defined in multi-variable polynomials you know the m if the polynomial has you know x y squared plus 3 x to the fifth y squared z you just you just pull out each variable separately and you look at the maximum degree of that variable so the x in that case had had a degree five appearance the y had a degree two appearance so you take the maximum over all of the variables of the degree of that variable and that's going to be the bound on the degree of the polynomial polynomial so in fact in our case d is going to be 1. so all of the variable there's not going to be any exponents on anything everything's going to be exponent one um so q is is q related to the number we choose for the mod yeah q is the number we're choosing for the mod we're doing everything mod q so all of the arithmet all the arithmetic is going to operate mod q and that's the size of the field that we're going to pick okay so i think we're here at the break um happy to take some more questions um but why don't we just start that off uh and uh i will see you in five minutes but in the meantime happy to shoot me questions okay so what happens if we use boolean assignments in the xor example um so the x you know would that work um to be able to check uh uh agreement um it would it was so it's hard to it's hard to make an argument based on just a single example i think the better thing would be to look at you know two um um branching programs that just differ in a single place so i can even suggest to you can make a branching program that always outputs um true it doesn't even read its variables or if it reads them and they always go to the same place and then ends up always at the one output so imagine a branching program that always outputs one no matter what the assignments to the variables are and you can you can easily make such a thing and then you make another branching program that computes the or function so it reads every variable and it's going to be 1 if any one of those variables is set to 1. okay so the only time the or function is 0 is if everything is set to zero but now if you're trying to randomly check whether the always one function is equal to the or function of course without knowing in advance what they are because that's cheating you're just given these two functions and you want to know these two branching programs and you want to know are they computing the same thing or not and by this procedure of randomly sampling there you're always going to get these branching programs both to say one unless you just happen to pick the random assignment of everything set to zero and that's very unlikely that you're gonna pick that you know if you imagine you have your branching program has a hundred variables in it it's only two to the minus 100 chance that you're going to set them all to zero randomly and so you're almost you go you're extremely unlikely to find the one place of difference if there's only a single place if there's lots of places of difference then you you know it's not not so bad but if the number the fraction of differences is low you're going to have to do a lot of samples in order to find that it won't be in you know possibly exponentially many samples and then you won't run a polynomial time okay so let me just see if there's other questions here um why can we accept going back to the boolean labeling side why can we accept that b1 equals b2 if b1 and b2 agree on only on just one input assignment no we didn't say that um all right i'll go back there boolean assignment is this i'm not sure which one you mean is this one what do you mean i don't know boolean labeling site must be it why do we non-boolean labeling okay so what no i see what you're saying you're saying about this here we're just going to pick one random assignment and if they agree on that one random case then we will say um accept because you might think well we should take to a whole bunch of samples that's a good question um but in fact we're going to arrange the probability such that if the two things are not equivalent then you're it's going to be uh diff the value the values will be different almost everywhere a large number of places so just picking one and having them agree is going to be strong enough evidence that you're still going to accept and you'll have a still a low probability of getting an error you'd have to see the analysis um are we assuming the roots of the polynomials are integers no don't forget when operating over a field here so it's not even talking about integers doesn't totally make sense but it doesn't really matter um we're not assuming that the bound still uh the bounds still oh i should have taken this away um the bound still works um uh the bound still works even even if we have non-integers okay i'm not sure if i'm being helpful here why don't we just move on um but we're not assuming that these are integers because the bound doesn't doesn't matter if it says there's at most five roots including the reals there's still going to be five roots including the integers all right so let's continue um [Music] good all right so now everybody's back i hope let's talk about moving forward here um we want to basically what where we're going with this is we want to analyze the algorithm which picks a random non-boolean input and evaluates the two branching programs and in order to do that we're going to look a little bit more carefully at the what happens uh when we arithmetize the branching program and um we run it on these non-boolean values and so what i'm going to do is take these take this branching program let's say this is the same xor exclusive or branching program but instead of labeling it as we did before by setting x1 to 2 and x2 to 3 i'm going to leave x1 and x2 variables and just do a symbolic execution so i'm going to label these things just leaving x1 and x2 as variables okay so let's just see what we get if we do that so remember we assigned this to be one now this edge here is you know here's the rule it's a which is 1 times x1 so this should be without knowing what the value of x1 is leaving it as a variable we're just going to put down x1 over here over here what goes over there well it's 1 times 1 minus x1 just 1 minus x1 now we're going to add things up as we did before and now what happens for example i think i have this edge coming next let's look at this edge the one edge coming out so that's the label now is x1 on this node and the out this is the edge this is the one edge coming out so you multiply by the um by the value of x2 that we're leaving it as a variable so you're just going to multiply it by x2 and so we're just going to get x1 times x2 x1 x2 on this edge now what happens on this edge so this x1 times think with me um times 1 minus x2 and similarly over here we have 1 minus x1 on this node so i think on this on the one edge coming out it's 1 minus x1 now times x2 because that's this rule again 1 minus x1 times x2 and this is going to be 1 minus x1 times 1 minus x2 now we're going to add this up for the zero node so we have this this value 1 minus x1 1 minus x2 plus x1 x2 and on this node here we're going to um add these two values up so 1 minus x1 times x2 plus x1 times 1 minus x2 and that's the output now expressed symbolically now you could plug things in and you're going to get the same value out as you did before um but let's leave it as a polynomial for now uh because that's going to um [Music] help us and analyze this so now notice the form of this polynomial is something special um what happens is it's gonna look like a bunch of products of x i's and one minus x i's added up so it's a sum of products of that form so each row here is a product of x i's and one minus x i's and then those rows are all added together i claim that's going to be the form of this polynomial you see this already has that form um and the reason for that is every time you go to a node you're just adding things up so that's just going to be like adding adding up more rows and every time you go down to through an edge you're multiplying what you have so far either by an x i or a one minus x i so you're just accumulating products of x i's and one minus x i's and you're just adding them up so this is what that polynomial is going to look like okay now let's look a little bit more carefully at the form of this so for one thing could we have um higher powers here like a x2 cubed could that happen so because you know when i say it's products of x i's and one minus x i's maybe there's going to be some x xi's that appear several times in the product well that cannot happen why read one sprint it's a read once branching program so every time you multiply by an x i or one minus x i you're never going to do that again because doing that would imply you're querying that variable more than once so this can't happen okay so i crossed that and this is sort of appeared off to the side here but yeah i'm crossing that out that does not happen another thing that is part of that's worthy that's going to be helpful to to notice about this this polynomial and by the way maybe i'm i'm being confusing here this is i'm supposed to be representing sort of as a generic form of the polynomial this is not some particularly i shouldn't have said this at the beginning this is not some particular polynomial that came from anything i'm just trying to describe what the general form of the polynomial looks like just as an illustration so you know it's so this polynomial is 1 minus x1 times x2 times 1 minus x3 times x4 and so on and and adding up a bunch of rows like this i'm just saying this is what the polynomial will look like for maybe some branching program so every branching programs that are going to have some polynomial that looks sort of like this um and what i'm also going to say what for convenience now i want to say that each row is going to have every single variable up here either as an x i or as a 1 minus x i so in order to get that i need to make a further minor assumption about the branching program that it's a read exactly once currently when i say read once it can it can avoid reading some variables on some branches because i could read it most once but now i want to say that every variable gets read exactly one time on every branch and what that's going to mean is that every row is going to contain every variable either as an x i or as a 1 minus x i we can eliminate that extra assumption easily and i'm going to leave that as an exercise to you it's not very hard to do um so i think if you follow me you can see and you play with it for a minute or two you'll see that it doesn't really matter uh you can either you but i think just for the for the first time through this let's assume that every row has every variable okay so important to understand um okay so so the this is the output polynomial of this branching program so let's look further more at this polynomial and understand the rows let's take one one row out of this polynomial and to understand its um uh um understand what it represents so one row here it's a product of a bunch of things part of a bunch of variables either variables or one minus the variables now notice let's think about this in the boolean setting first of all so in the boolean setting each of these variables are going to be zeros and ones and the one minus the variables are also going to be zeros and ones so it's going to be a product of zeros and ones if there's a zero that appears in that product that product is going to be a zero because zero times anything is a zero so the only way that product cannot be um zero is if all of those uh values are once in the boolean case so uh that means that x1 well let's let's let let's look at the second row so x1 had to be a one x2 had to be a one x3 had to be a one x4 had to be a zero um in order to continue the product of ones and so on so in fact there's only a single boolean assignment to these variables which make that row one every other assignment to those variables makes that row zero saying that another way these row each of these rows corresponds to one of the rows of the truth table for the boolean function where where the truth table is true gives a true value gives a one value for the function on that row okay so i i hope you've all familiar with the notion of a truth table of a boolean function you just write down the boolean function every possible assignment to the boolean function and you write down one or zero or true or false for what the value of that function is so just a tabular representation of the boolean function it's called the truth table this thing here gives you all of the ones all of the rows that are one in that boolean function that's what this polynomial gives you okay so i think we're at a pause point for um this slide and i um it's deathly silent on the chat so i was feeling that that was a that went down that went down rough uh for for you um it's it's we're gonna it's important to understand the form of this polynomial uh here um you know that it's corresponds to the truth table of the boolean function so each one of these rows is only going to be on again thinking boolean now each one of these rows is only going to be one on that on an assignment which makes the function one um one of the one of the assignments that makes the function one okay and somebody says and similarly for the expression for the zero node yeah the zero node which i'm not focusing on but yeah the zero node would be all of the false rows of the truth table but the one node the polynomial for the one node are all of the true rows correspond to all of the true rows in the in the in the um in the um uh in the in the function of the branching the function that branching program computes now the reason why this is let me just tell you where we're going is it possible to have two rows that are the same if you think about how the rows are being produced no you can't have two rows of that are going to be the same um uh because for one thing you have to think about what what this looks like when the boolean case if you have two rows of the same that means this thing is going to have an output which is non-boolean um because you're going to end up with a 2 coming out that way by adding those rows together they can never happen and if you just look at the way it's constructed you're never going to because every time you have a branching you know one way is a an x one an x i the other one is one minus x side so every time you're branching there every not every time there's a node they're different um so you're never going to have two rows that are going to be the same but let me tell you the importance of connecting up the this polynomial with the truth table um because that tells us that if the two functions of the two branching programs that we started off with agree in their boolean values then the two polynomials are going to be the same um [Music] you know because if the two branching programs uh have the same boolean function so they're equivalent then the um truth tables will be the same and therefore these polynomials will be the same so that and therefore they will behave the same way on all non-boolean values because they're the same polynomial so i'm sort of getting ahead of myself but that's where that's what we're going to argue that's why it's important to understand the connection with the truth table because it sort of builds on the um under you know understanding something about how this thing behaves in the boolean case is going to give us information about how it behaves in the non-boolean case okay let's continue here then um okay so this is i think is this my um yeah this is essentially the last slide okay um we're going to spend some time on this one so here's the algorithm we are going to take our two branching programs the variables are x1 to xm first of all we're going to find a prime which is at least three times m the number of variables m is not a very big number um it's just a number of variables so finding a prime that's bigger than that is straightforward we're not talking about huge primes here we're talking very modest size primes so you can just you know just try them even trial and error is going to be good enough um now that's going to be the the size of the field it's going to be field of size q um and now we're going to pick a non-boolean assignment to the variables and okay we're going to pick a non-boolean assignment to the variables and [Music] evaluate the two branching programs on that non-boolean assignment using the arithmetization if they agree then we'll accept if they don't agree then we're going to reject okay now we have to argue that this works so we're going to first of all arithmetize these two branching programs i'm going to get the two polynomials they each have the form that as i described um so a bunch of rows that correspond to the truth tables of those two respective branching programs okay first claim that if the branching programs were equivalent so they compute the same boolean function then the two polynomials agree everywhere um so then the two branching programs are going to get the same value um on every non-boolean case as well as on the boolean cases so they agree on the boolean that means they always agree even on the non-bully and i kind of argue that already but okay the other point is that if the two branching programs are not equivalent so they differ at some boolean value now picking a random value to eval for the polynomial evaluation you're going to have only a one-third chance that they're going to agree so a small chance all right so now um let's prove these two facts the first one i already kind of argued if the two branching programs agree on all the boolean values um then their functions have the same truth table so then the polynomials are identical because the polynomials correspond to the truth table and so therefore they always agree even on the non-boolean values okay so that means that the probability that if you evaluate the two polynomials on a random place the it's good whether you'll be equal that's a certainty because in fact in this case p1 and p2 are the same polynomial now for two if the branching programs differ somewhere even in one place well you know the polynomials could not be the same they have to be different polynomials because the polynomials include the behavior of the in the boolean case as well as all the breadth of the field um so the polynomials have to be the same and now we're going to apply the short zipple lemma we have two different polynomials they can only agree in a relatively small number of places so that says that from the short simple theorem then um the probability that p1 and p2 agree at this random location is at most this value that we had from before the degree times the number of variables divided by the size of the field the degree is one and the field is at least three times uh the number of variables in size so that means um you get this inequality here and so therefore the probability is it is a third and most a third and that's good enough um this is the probability that you get the wrong answer it's going to be at most one-third so you're going to get the right answer with at least two-thirds probability so even just doing a single sample point is going to be enough to to give a bpp algorithm all right so that's um what i have is are a couple of check-ins here uh now for you um [Music] whoops somehow this better take me out of here um uh all right so this is this is a little hard but let's see how you do on it suppose the branching program is uh well maybe i sort of a little bit discussed this already that's okay the branching problems will not read once the polynomials might have exponents bigger than one so where would the proof fail um would they fail the point where b1 and b equivalent to b2 implies that they agree on all boolean inputs so that's sort of this um the first step here or um is it that agreeing on all boolean inputs implies that the polynomials are the same or would it be that having the two polynomials being equal implies that they always agree so those are the three sort of steps in the part one of the the proof of part one so let's see uh what do you think there in a couple questions about picking the prime number um the this uh the prime number here is uh it's this is a very small prime number um you could even represent that prime prime number in unary within the amount of time we have because don't forget this is a prime number whose magnitude it is at most the number of variables so you can write that prime number in unary and um uh finding the prime and testing primality of testing whether the number is prime is something that you can do even with this brute force algorithm and it would be good enough um so there's not there's no you don't have to do anything fancy about testing primality um in this case okay so why does it have to be prime you need it to be prime in order for the for the um for it to be a field so this is just the algebra part um if you did not have a prime number then then some of the field properties don't work and you may no longer get the um the fact that the polynomial has a small number of roots um so that that's all i can say about that is the polynomial like a hash function for the branching program are the equal if they are the same but sometimes the values also equal if the programs are different that's an interesting idea so is that is a polynomial acting like a hash function i think it's there is something to what you're saying but i think it's actually in the other direction um uh it's it's actually more it's related to a hash function but it's actually acting more like an error correcting code let's let's save that for later it's a very good point it's a very good question maybe we can talk about it after if you remind me um okay let's let's end this poll here um should c be if having these two agree implies well i mean the question is should should we change p1 and p2 always agree to b1 and b2 always agree well b1 and b2 are behaving exactly the way b p1 and p2 behave so i'm not sure it matter really matters um uh too much time on this chat on this poll here let's end this poll oh sharing results um yes so the correct answer is b um that agreeing on all boolean inputs implies that they're equal um the other two are follow kind of immediately they're still true but if it's not read once even though they agree and all the boolean inputs they won't necessarily agree as polynomials um for one thing like if you just take the two polynomials x1 squared and x1 they agree on all the boolean inputs but they're not the same um they agree in the boolean world because zero squared is zero and one squared is one but they they're not the same polynomial okay uh let's move on actually i have another uh check in on the same slide here um and this is actually answering a question that we i got in the chat if p102 where x you know how big how big are these polynomials are they these look like they could be big if they're exponentially large would that be a problem for the time complexity so pick a or b here we're running out of time here so why don't i uh not say too much and just let you go with it okay i'm gonna close this down all in well my god by one point this is a this is uh this is like georgia here um but do a recount um in fact b was is correct uh by it by by a hair here um they are not polynomial in size the truth tables can be very large but we don't have to as we did with the um branching program for um the exclusive or case you don't actually write down the polynomials to evaluate them you can evaluate them as you're going along the polynomials are huge but you don't have to write down the polynomials to evaluate them that's only part of the proof you don't have to re either the the algorithm doesn't have to deal with the polynomials itself so maybe a good uh good to think about this that somebody says did i invent this proof no i did not invent this proof it's a wonderful proof but it's not mine i would love to have been get take the credit for it okay so um why don't we uh wrap this up so you know can we just is there some way to simplify the polynomials as we're going along so that we we don't end up with them being too big um and so that we can then just look at the polynomials not that i know of um uh i i i think the polynomials are really going to be big and so there's not going to be any way to um uh to to view it just as pawn if you could it would be fantastic because that would give you a deterministic algorithm um i think the only way that people know how to do this is terms of you know random inputs the polynomial to a polynomial which is too big to write down if you could write it down and just analyze the polynomials you'd have a huge huge result there um okay i'm glad people like this proof that's good um how many actual quantities are there in the formula i'm not sure what that means what formula um i mean the polynomial is huge uh the number of different polynomials well i i guess i don't understand the question what motivates the idea of arithmetization what would make somebody think of this i'm not sure actually um but we're going to use it even in a more remarkable way uh in the in the last two lectures of the course so stay tuned i mean this is sort of a clever but seems very specialized but the um the next part where we're going to next application we're going to use this to analyze satisfiability which is much more general kind of a situation and that's that that i think is especially remarkable um um for the polynomials p1 and p2 uh it's only a polynomial number quantum i don't think so because well it depends on the size of the field the size of the no it's going to be something like m to the n m power right um so those are the number of possible inputs so it's in each each each field element is is has 3m possibilities roughly and there are m field elements so it's m to the 3m different possible inputs that you're picking at random so anyway i'm going to shut this down and move over to the to the others the office hours zoom feel free to join me there otherwise i will see you all on thursday take care you 3 00:00:28,710 --> 00:00:31,830 4 00:00:31,830 --> 00:00:34,069 5 00:00:34,069 --> 00:00:34,079 6 00:00:34,079 --> 00:00:35,510 7 00:00:35,510 --> 00:00:37,030 8 00:00:37,030 --> 00:00:40,229 9 00:00:40,229 --> 00:00:42,950 10 00:00:42,950 --> 00:00:46,310 11 00:00:46,310 --> 00:00:48,710 12 00:00:48,710 --> 00:00:48,720 13 00:00:48,720 --> 00:00:49,910 14 00:00:49,910 --> 00:00:49,920 15 00:00:49,920 --> 00:00:50,630 16 00:00:50,630 --> 00:00:53,189 17 00:00:53,189 --> 00:00:56,790 18 00:00:56,790 --> 00:00:56,800 19 00:00:56,800 --> 00:00:57,750 20 00:00:57,750 --> 00:01:00,470 21 00:01:00,470 --> 00:01:02,950 22 00:01:02,950 --> 00:01:02,960 23 00:01:02,960 --> 00:01:04,710 24 00:01:04,710 --> 00:01:07,830 25 00:01:07,830 --> 00:01:11,350 26 00:01:11,350 --> 00:01:14,870 27 00:01:14,870 --> 00:01:16,870 28 00:01:16,870 --> 00:01:16,880 29 00:01:16,880 --> 00:01:19,990 30 00:01:19,990 --> 00:01:21,749 31 00:01:21,749 --> 00:01:24,230 32 00:01:24,230 --> 00:01:28,310 33 00:01:28,310 --> 00:01:30,870 34 00:01:30,870 --> 00:01:33,030 35 00:01:33,030 --> 00:01:35,270 36 00:01:35,270 --> 00:01:37,670 37 00:01:37,670 --> 00:01:37,680 38 00:01:37,680 --> 00:01:39,350 39 00:01:39,350 --> 00:01:41,749 40 00:01:41,749 --> 00:01:43,270 41 00:01:43,270 --> 00:01:44,789 42 00:01:44,789 --> 00:01:46,310 43 00:01:46,310 --> 00:01:46,320 44 00:01:46,320 --> 00:01:47,429 45 00:01:47,429 --> 00:01:50,230 46 00:01:50,230 --> 00:01:52,230 47 00:01:52,230 --> 00:01:55,190 48 00:01:55,190 --> 00:01:55,200 49 00:01:55,200 --> 00:01:55,910 50 00:01:55,910 --> 00:01:55,920 51 00:01:55,920 --> 00:01:56,789 52 00:01:56,789 --> 00:01:58,550 53 00:01:58,550 --> 00:02:01,190 54 00:02:01,190 --> 00:02:03,030 55 00:02:03,030 --> 00:02:05,590 56 00:02:05,590 --> 00:02:07,670 57 00:02:07,670 --> 00:02:11,510 58 00:02:11,510 --> 00:02:11,520 59 00:02:11,520 --> 00:02:13,510 60 00:02:13,510 --> 00:02:15,030 61 00:02:15,030 --> 00:02:17,750 62 00:02:17,750 --> 00:02:20,630 63 00:02:20,630 --> 00:02:22,630 64 00:02:22,630 --> 00:02:24,550 65 00:02:24,550 --> 00:02:28,070 66 00:02:28,070 --> 00:02:30,470 67 00:02:30,470 --> 00:02:32,229 68 00:02:32,229 --> 00:02:32,239 69 00:02:32,239 --> 00:02:33,830 70 00:02:33,830 --> 00:02:36,550 71 00:02:36,550 --> 00:02:39,110 72 00:02:39,110 --> 00:02:41,350 73 00:02:41,350 --> 00:02:43,830 74 00:02:43,830 --> 00:02:46,869 75 00:02:46,869 --> 00:02:46,879 76 00:02:46,879 --> 00:02:47,750 77 00:02:47,750 --> 00:02:50,710 78 00:02:50,710 --> 00:02:52,550 79 00:02:52,550 --> 00:02:54,229 80 00:02:54,229 --> 00:02:54,239 81 00:02:54,239 --> 00:02:56,229 82 00:02:56,229 --> 00:02:56,239 83 00:02:56,239 --> 00:02:57,509 84 00:02:57,509 --> 00:02:59,190 85 00:02:59,190 --> 00:03:01,350 86 00:03:01,350 --> 00:03:02,550 87 00:03:02,550 --> 00:03:04,790 88 00:03:04,790 --> 00:03:07,110 89 00:03:07,110 --> 00:03:08,790 90 00:03:08,790 --> 00:03:10,630 91 00:03:10,630 --> 00:03:12,790 92 00:03:12,790 --> 00:03:15,110 93 00:03:15,110 --> 00:03:16,309 94 00:03:16,309 --> 00:03:16,319 95 00:03:16,319 --> 00:03:17,750 96 00:03:17,750 --> 00:03:19,990 97 00:03:19,990 --> 00:03:22,630 98 00:03:22,630 --> 00:03:24,470 99 00:03:24,470 --> 00:03:27,030 100 00:03:27,030 --> 00:03:29,990 101 00:03:29,990 --> 00:03:30,000 102 00:03:30,000 --> 00:03:31,030 103 00:03:31,030 --> 00:03:31,840 104 00:03:31,840 --> 00:03:31,850 105 00:03:31,850 --> 00:03:33,110 106 00:03:33,110 --> 00:03:34,869 107 00:03:34,869 --> 00:03:37,509 108 00:03:37,509 --> 00:03:39,190 109 00:03:39,190 --> 00:03:41,910 110 00:03:41,910 --> 00:03:43,830 111 00:03:43,830 --> 00:03:45,509 112 00:03:45,509 --> 00:03:45,519 113 00:03:45,519 --> 00:03:47,430 114 00:03:47,430 --> 00:03:47,440 115 00:03:47,440 --> 00:03:49,030 116 00:03:49,030 --> 00:03:51,910 117 00:03:51,910 --> 00:03:53,509 118 00:03:53,509 --> 00:03:53,519 119 00:03:53,519 --> 00:03:54,789 120 00:03:54,789 --> 00:03:57,670 121 00:03:57,670 --> 00:03:58,949 122 00:03:58,949 --> 00:04:01,910 123 00:04:01,910 --> 00:04:04,390 124 00:04:04,390 --> 00:04:04,400 125 00:04:04,400 --> 00:04:05,270 126 00:04:05,270 --> 00:04:06,949 127 00:04:06,949 --> 00:04:08,470 128 00:04:08,470 --> 00:04:10,789 129 00:04:10,789 --> 00:04:13,830 130 00:04:13,830 --> 00:04:16,789 131 00:04:16,789 --> 00:04:18,310 132 00:04:18,310 --> 00:04:21,189 133 00:04:21,189 --> 00:04:22,870 134 00:04:22,870 --> 00:04:24,469 135 00:04:24,469 --> 00:04:26,070 136 00:04:26,070 --> 00:04:27,670 137 00:04:27,670 --> 00:04:29,189 138 00:04:29,189 --> 00:04:31,270 139 00:04:31,270 --> 00:04:32,230 140 00:04:32,230 --> 00:04:34,150 141 00:04:34,150 --> 00:04:36,550 142 00:04:36,550 --> 00:04:38,070 143 00:04:38,070 --> 00:04:40,710 144 00:04:40,710 --> 00:04:43,110 145 00:04:43,110 --> 00:04:45,510 146 00:04:45,510 --> 00:04:46,950 147 00:04:46,950 --> 00:04:49,430 148 00:04:49,430 --> 00:04:52,230 149 00:04:52,230 --> 00:04:54,310 150 00:04:54,310 --> 00:04:54,320 151 00:04:54,320 --> 00:04:56,310 152 00:04:56,310 --> 00:04:56,320 153 00:04:56,320 --> 00:04:56,610 154 00:04:56,610 --> 00:04:56,620 155 00:04:56,620 --> 00:04:58,870 156 00:04:58,870 --> 00:05:00,310 157 00:05:00,310 --> 00:05:02,870 158 00:05:02,870 --> 00:05:05,110 159 00:05:05,110 --> 00:05:06,550 160 00:05:06,550 --> 00:05:08,629 161 00:05:08,629 --> 00:05:11,270 162 00:05:11,270 --> 00:05:13,670 163 00:05:13,670 --> 00:05:15,909 164 00:05:15,909 --> 00:05:17,670 165 00:05:17,670 --> 00:05:18,710 166 00:05:18,710 --> 00:05:19,990 167 00:05:19,990 --> 00:05:22,629 168 00:05:22,629 --> 00:05:24,629 169 00:05:24,629 --> 00:05:26,550 170 00:05:26,550 --> 00:05:28,870 171 00:05:28,870 --> 00:05:28,880 172 00:05:28,880 --> 00:05:29,749 173 00:05:29,749 --> 00:05:32,310 174 00:05:32,310 --> 00:05:32,320 175 00:05:32,320 --> 00:05:34,070 176 00:05:34,070 --> 00:05:34,080 177 00:05:34,080 --> 00:05:34,410 178 00:05:34,410 --> 00:05:34,420 179 00:05:34,420 --> 00:05:35,830 180 00:05:35,830 --> 00:05:35,840 181 00:05:35,840 --> 00:05:36,790 182 00:05:36,790 --> 00:05:39,909 183 00:05:39,909 --> 00:05:41,830 184 00:05:41,830 --> 00:05:43,430 185 00:05:43,430 --> 00:05:44,870 186 00:05:44,870 --> 00:05:46,550 187 00:05:46,550 --> 00:05:47,830 188 00:05:47,830 --> 00:05:49,830 189 00:05:49,830 --> 00:05:52,629 190 00:05:52,629 --> 00:05:54,790 191 00:05:54,790 --> 00:05:57,670 192 00:05:57,670 --> 00:06:00,390 193 00:06:00,390 --> 00:06:02,629 194 00:06:02,629 --> 00:06:04,469 195 00:06:04,469 --> 00:06:06,469 196 00:06:06,469 --> 00:06:09,029 197 00:06:09,029 --> 00:06:11,270 198 00:06:11,270 --> 00:06:13,110 199 00:06:13,110 --> 00:06:15,189 200 00:06:15,189 --> 00:06:16,870 201 00:06:16,870 --> 00:06:19,029 202 00:06:19,029 --> 00:06:20,790 203 00:06:20,790 --> 00:06:23,110 204 00:06:23,110 --> 00:06:25,270 205 00:06:25,270 --> 00:06:25,280 206 00:06:25,280 --> 00:06:26,230 207 00:06:26,230 --> 00:06:26,240 208 00:06:26,240 --> 00:06:28,550 209 00:06:28,550 --> 00:06:28,560 210 00:06:28,560 --> 00:06:28,910 211 00:06:28,910 --> 00:06:28,920 212 00:06:28,920 --> 00:06:29,990 213 00:06:29,990 --> 00:06:32,870 214 00:06:32,870 --> 00:06:32,880 215 00:06:32,880 --> 00:06:34,390 216 00:06:34,390 --> 00:06:37,430 217 00:06:37,430 --> 00:06:39,350 218 00:06:39,350 --> 00:06:41,909 219 00:06:41,909 --> 00:06:44,309 220 00:06:44,309 --> 00:06:45,990 221 00:06:45,990 --> 00:06:48,790 222 00:06:48,790 --> 00:06:50,710 223 00:06:50,710 --> 00:06:53,110 224 00:06:53,110 --> 00:06:55,270 225 00:06:55,270 --> 00:06:57,430 226 00:06:57,430 --> 00:06:57,440 227 00:06:57,440 --> 00:06:58,870 228 00:06:58,870 --> 00:07:00,629 229 00:07:00,629 --> 00:07:02,150 230 00:07:02,150 --> 00:07:04,710 231 00:07:04,710 --> 00:07:06,230 232 00:07:06,230 --> 00:07:08,150 233 00:07:08,150 --> 00:07:09,990 234 00:07:09,990 --> 00:07:11,909 235 00:07:11,909 --> 00:07:15,189 236 00:07:15,189 --> 00:07:17,589 237 00:07:17,589 --> 00:07:19,909 238 00:07:19,909 --> 00:07:21,749 239 00:07:21,749 --> 00:07:23,909 240 00:07:23,909 --> 00:07:26,309 241 00:07:26,309 --> 00:07:26,319 242 00:07:26,319 --> 00:07:27,189 243 00:07:27,189 --> 00:07:29,830 244 00:07:29,830 --> 00:07:31,430 245 00:07:31,430 --> 00:07:32,629 246 00:07:32,629 --> 00:07:34,390 247 00:07:34,390 --> 00:07:36,230 248 00:07:36,230 --> 00:07:39,270 249 00:07:39,270 --> 00:07:41,350 250 00:07:41,350 --> 00:07:42,950 251 00:07:42,950 --> 00:07:45,350 252 00:07:45,350 --> 00:07:47,430 253 00:07:47,430 --> 00:07:49,749 254 00:07:49,749 --> 00:07:51,990 255 00:07:51,990 --> 00:07:54,469 256 00:07:54,469 --> 00:07:56,950 257 00:07:56,950 --> 00:07:59,110 258 00:07:59,110 --> 00:08:02,150 259 00:08:02,150 --> 00:08:04,550 260 00:08:04,550 --> 00:08:06,390 261 00:08:06,390 --> 00:08:08,869 262 00:08:08,869 --> 00:08:11,589 263 00:08:11,589 --> 00:08:14,070 264 00:08:14,070 --> 00:08:17,270 265 00:08:17,270 --> 00:08:17,280 266 00:08:17,280 --> 00:08:18,150 267 00:08:18,150 --> 00:08:20,790 268 00:08:20,790 --> 00:08:23,110 269 00:08:23,110 --> 00:08:24,710 270 00:08:24,710 --> 00:08:26,950 271 00:08:26,950 --> 00:08:32,389 272 00:08:32,389 --> 00:08:34,310 273 00:08:34,310 --> 00:08:36,709 274 00:08:36,709 --> 00:08:38,469 275 00:08:38,469 --> 00:08:42,070 276 00:08:42,070 --> 00:08:43,909 277 00:08:43,909 --> 00:08:46,550 278 00:08:46,550 --> 00:08:49,430 279 00:08:49,430 --> 00:08:50,550 280 00:08:50,550 --> 00:08:50,560 281 00:08:50,560 --> 00:08:51,670 282 00:08:51,670 --> 00:08:52,949 283 00:08:52,949 --> 00:08:54,870 284 00:08:54,870 --> 00:08:57,910 285 00:08:57,910 --> 00:08:57,920 286 00:08:57,920 --> 00:08:59,350 287 00:08:59,350 --> 00:09:01,030 288 00:09:01,030 --> 00:09:04,230 289 00:09:04,230 --> 00:09:04,240 290 00:09:04,240 --> 00:09:06,070 291 00:09:06,070 --> 00:09:08,470 292 00:09:08,470 --> 00:09:08,480 293 00:09:08,480 --> 00:09:09,829 294 00:09:09,829 --> 00:09:12,310 295 00:09:12,310 --> 00:09:13,829 296 00:09:13,829 --> 00:09:16,150 297 00:09:16,150 --> 00:09:18,630 298 00:09:18,630 --> 00:09:22,949 299 00:09:22,949 --> 00:09:25,030 300 00:09:25,030 --> 00:09:27,269 301 00:09:27,269 --> 00:09:31,190 302 00:09:31,190 --> 00:09:31,200 303 00:09:31,200 --> 00:09:32,550 304 00:09:32,550 --> 00:09:35,670 305 00:09:35,670 --> 00:09:38,070 306 00:09:38,070 --> 00:09:38,080 307 00:09:38,080 --> 00:09:39,430 308 00:09:39,430 --> 00:09:39,440 309 00:09:39,440 --> 00:09:39,920 310 00:09:39,920 --> 00:09:39,930 311 00:09:39,930 --> 00:09:41,350 312 00:09:41,350 --> 00:09:41,360 313 00:09:41,360 --> 00:09:43,509 314 00:09:43,509 --> 00:09:46,070 315 00:09:46,070 --> 00:09:47,910 316 00:09:47,910 --> 00:09:49,590 317 00:09:49,590 --> 00:09:51,670 318 00:09:51,670 --> 00:09:53,829 319 00:09:53,829 --> 00:09:56,150 320 00:09:56,150 --> 00:09:57,910 321 00:09:57,910 --> 00:09:59,990 322 00:09:59,990 --> 00:10:02,710 323 00:10:02,710 --> 00:10:04,389 324 00:10:04,389 --> 00:10:05,990 325 00:10:05,990 --> 00:10:07,350 326 00:10:07,350 --> 00:10:09,350 327 00:10:09,350 --> 00:10:10,870 328 00:10:10,870 --> 00:10:10,880 329 00:10:10,880 --> 00:10:11,260 330 00:10:11,260 --> 00:10:11,270 331 00:10:11,270 --> 00:10:12,949 332 00:10:12,949 --> 00:10:14,310 333 00:10:14,310 --> 00:10:16,389 334 00:10:16,389 --> 00:10:18,550 335 00:10:18,550 --> 00:10:20,470 336 00:10:20,470 --> 00:10:23,110 337 00:10:23,110 --> 00:10:24,630 338 00:10:24,630 --> 00:10:26,710 339 00:10:26,710 --> 00:10:29,829 340 00:10:29,829 --> 00:10:31,829 341 00:10:31,829 --> 00:10:33,670 342 00:10:33,670 --> 00:10:36,069 343 00:10:36,069 --> 00:10:37,829 344 00:10:37,829 --> 00:10:40,150 345 00:10:40,150 --> 00:10:40,160 346 00:10:40,160 --> 00:10:41,350 347 00:10:41,350 --> 00:10:41,360 348 00:10:41,360 --> 00:10:42,230 349 00:10:42,230 --> 00:10:45,190 350 00:10:45,190 --> 00:10:47,750 351 00:10:47,750 --> 00:10:49,670 352 00:10:49,670 --> 00:10:52,550 353 00:10:52,550 --> 00:10:54,870 354 00:10:54,870 --> 00:10:56,069 355 00:10:56,069 --> 00:10:59,190 356 00:10:59,190 --> 00:11:02,310 357 00:11:02,310 --> 00:11:04,310 358 00:11:04,310 --> 00:11:06,790 359 00:11:06,790 --> 00:11:09,829 360 00:11:09,829 --> 00:11:11,829 361 00:11:11,829 --> 00:11:14,230 362 00:11:14,230 --> 00:11:16,310 363 00:11:16,310 --> 00:11:18,310 364 00:11:18,310 --> 00:11:20,310 365 00:11:20,310 --> 00:11:22,230 366 00:11:22,230 --> 00:11:23,910 367 00:11:23,910 --> 00:11:27,190 368 00:11:27,190 --> 00:11:29,590 369 00:11:29,590 --> 00:11:31,990 370 00:11:31,990 --> 00:11:34,310 371 00:11:34,310 --> 00:11:36,150 372 00:11:36,150 --> 00:11:38,150 373 00:11:38,150 --> 00:11:39,509 374 00:11:39,509 --> 00:11:41,350 375 00:11:41,350 --> 00:11:43,269 376 00:11:43,269 --> 00:11:44,949 377 00:11:44,949 --> 00:11:47,670 378 00:11:47,670 --> 00:11:50,790 379 00:11:50,790 --> 00:11:52,949 380 00:11:52,949 --> 00:11:54,949 381 00:11:54,949 --> 00:11:57,269 382 00:11:57,269 --> 00:11:57,279 383 00:11:57,279 --> 00:11:58,870 384 00:11:58,870 --> 00:12:00,949 385 00:12:00,949 --> 00:12:02,470 386 00:12:02,470 --> 00:12:04,949 387 00:12:04,949 --> 00:12:06,389 388 00:12:06,389 --> 00:12:07,910 389 00:12:07,910 --> 00:12:10,389 390 00:12:10,389 --> 00:12:12,470 391 00:12:12,470 --> 00:12:14,389 392 00:12:14,389 --> 00:12:17,110 393 00:12:17,110 --> 00:12:20,150 394 00:12:20,150 --> 00:12:22,949 395 00:12:22,949 --> 00:12:22,959 396 00:12:22,959 --> 00:12:24,550 397 00:12:24,550 --> 00:12:26,710 398 00:12:26,710 --> 00:12:29,190 399 00:12:29,190 --> 00:12:31,509 400 00:12:31,509 --> 00:12:34,870 401 00:12:34,870 --> 00:12:36,550 402 00:12:36,550 --> 00:12:38,949 403 00:12:38,949 --> 00:12:40,470 404 00:12:40,470 --> 00:12:42,310 405 00:12:42,310 --> 00:12:44,230 406 00:12:44,230 --> 00:12:45,590 407 00:12:45,590 --> 00:12:47,670 408 00:12:47,670 --> 00:12:49,350 409 00:12:49,350 --> 00:12:51,590 410 00:12:51,590 --> 00:12:54,069 411 00:12:54,069 --> 00:12:56,230 412 00:12:56,230 --> 00:12:57,670 413 00:12:57,670 --> 00:13:00,150 414 00:13:00,150 --> 00:13:02,069 415 00:13:02,069 --> 00:13:03,670 416 00:13:03,670 --> 00:13:05,509 417 00:13:05,509 --> 00:13:07,750 418 00:13:07,750 --> 00:13:10,710 419 00:13:10,710 --> 00:13:12,550 420 00:13:12,550 --> 00:13:14,150 421 00:13:14,150 --> 00:13:15,910 422 00:13:15,910 --> 00:13:19,509 423 00:13:19,509 --> 00:13:21,670 424 00:13:21,670 --> 00:13:24,870 425 00:13:24,870 --> 00:13:24,880 426 00:13:24,880 --> 00:13:25,910 427 00:13:25,910 --> 00:13:25,920 428 00:13:25,920 --> 00:13:26,870 429 00:13:26,870 --> 00:13:29,190 430 00:13:29,190 --> 00:13:32,069 431 00:13:32,069 --> 00:13:35,269 432 00:13:35,269 --> 00:13:38,470 433 00:13:38,470 --> 00:13:38,480 434 00:13:38,480 --> 00:13:39,990 435 00:13:39,990 --> 00:13:43,030 436 00:13:43,030 --> 00:13:46,949 437 00:13:46,949 --> 00:13:49,430 438 00:13:49,430 --> 00:13:52,310 439 00:13:52,310 --> 00:13:55,030 440 00:13:55,030 --> 00:13:57,110 441 00:13:57,110 --> 00:13:59,110 442 00:13:59,110 --> 00:14:01,350 443 00:14:01,350 --> 00:14:03,030 444 00:14:03,030 --> 00:14:05,829 445 00:14:05,829 --> 00:14:07,910 446 00:14:07,910 --> 00:14:10,629 447 00:14:10,629 --> 00:14:10,639 448 00:14:10,639 --> 00:14:15,990 449 00:14:15,990 --> 00:14:16,000 450 00:14:16,000 --> 00:14:17,030 451 00:14:17,030 --> 00:14:17,040 452 00:14:17,040 --> 00:14:17,490 453 00:14:17,490 --> 00:14:17,500 454 00:14:17,500 --> 00:14:19,990 455 00:14:19,990 --> 00:14:23,110 456 00:14:23,110 --> 00:14:23,120 457 00:14:23,120 --> 00:14:24,150 458 00:14:24,150 --> 00:14:24,160 459 00:14:24,160 --> 00:14:24,530 460 00:14:24,530 --> 00:14:24,540 461 00:14:24,540 --> 00:14:27,509 462 00:14:27,509 --> 00:14:30,470 463 00:14:30,470 --> 00:14:31,750 464 00:14:31,750 --> 00:14:33,829 465 00:14:33,829 --> 00:14:36,230 466 00:14:36,230 --> 00:14:38,949 467 00:14:38,949 --> 00:14:41,110 468 00:14:41,110 --> 00:14:42,790 469 00:14:42,790 --> 00:14:44,710 470 00:14:44,710 --> 00:14:47,110 471 00:14:47,110 --> 00:14:49,030 472 00:14:49,030 --> 00:14:51,189 473 00:14:51,189 --> 00:14:52,389 474 00:14:52,389 --> 00:14:53,990 475 00:14:53,990 --> 00:14:55,829 476 00:14:55,829 --> 00:14:57,750 477 00:14:57,750 --> 00:14:59,030 478 00:14:59,030 --> 00:15:01,189 479 00:15:01,189 --> 00:15:03,269 480 00:15:03,269 --> 00:15:06,629 481 00:15:06,629 --> 00:15:08,550 482 00:15:08,550 --> 00:15:10,710 483 00:15:10,710 --> 00:15:13,990 484 00:15:13,990 --> 00:15:16,389 485 00:15:16,389 --> 00:15:17,590 486 00:15:17,590 --> 00:15:20,389 487 00:15:20,389 --> 00:15:22,069 488 00:15:22,069 --> 00:15:25,590 489 00:15:25,590 --> 00:15:27,750 490 00:15:27,750 --> 00:15:30,790 491 00:15:30,790 --> 00:15:33,509 492 00:15:33,509 --> 00:15:35,509 493 00:15:35,509 --> 00:15:35,519 494 00:15:35,519 --> 00:15:36,629 495 00:15:36,629 --> 00:15:38,870 496 00:15:38,870 --> 00:15:42,310 497 00:15:42,310 --> 00:15:44,790 498 00:15:44,790 --> 00:15:47,509 499 00:15:47,509 --> 00:15:49,430 500 00:15:49,430 --> 00:15:52,230 501 00:15:52,230 --> 00:15:54,550 502 00:15:54,550 --> 00:15:54,560 503 00:15:54,560 --> 00:15:55,829 504 00:15:55,829 --> 00:15:58,470 505 00:15:58,470 --> 00:16:00,870 506 00:16:00,870 --> 00:16:04,389 507 00:16:04,389 --> 00:16:04,399 508 00:16:04,399 --> 00:16:05,189 509 00:16:05,189 --> 00:16:07,030 510 00:16:07,030 --> 00:16:09,590 511 00:16:09,590 --> 00:16:11,910 512 00:16:11,910 --> 00:16:11,920 513 00:16:11,920 --> 00:16:13,189 514 00:16:13,189 --> 00:16:15,030 515 00:16:15,030 --> 00:16:18,629 516 00:16:18,629 --> 00:16:20,710 517 00:16:20,710 --> 00:16:23,030 518 00:16:23,030 --> 00:16:23,040 519 00:16:23,040 --> 00:16:24,230 520 00:16:24,230 --> 00:16:25,910 521 00:16:25,910 --> 00:16:27,829 522 00:16:27,829 --> 00:16:27,839 523 00:16:27,839 --> 00:16:28,870 524 00:16:28,870 --> 00:16:30,550 525 00:16:30,550 --> 00:16:32,870 526 00:16:32,870 --> 00:16:36,230 527 00:16:36,230 --> 00:16:38,629 528 00:16:38,629 --> 00:16:38,639 529 00:16:38,639 --> 00:16:39,590 530 00:16:39,590 --> 00:16:42,150 531 00:16:42,150 --> 00:16:45,350 532 00:16:45,350 --> 00:16:46,389 533 00:16:46,389 --> 00:16:46,399 534 00:16:46,399 --> 00:16:48,150 535 00:16:48,150 --> 00:16:51,670 536 00:16:51,670 --> 00:16:55,030 537 00:16:55,030 --> 00:16:57,030 538 00:16:57,030 --> 00:17:00,629 539 00:17:00,629 --> 00:17:03,509 540 00:17:03,509 --> 00:17:05,829 541 00:17:05,829 --> 00:17:08,309 542 00:17:08,309 --> 00:17:08,319 543 00:17:08,319 --> 00:17:09,350 544 00:17:09,350 --> 00:17:13,270 545 00:17:13,270 --> 00:17:15,189 546 00:17:15,189 --> 00:17:17,350 547 00:17:17,350 --> 00:17:19,909 548 00:17:19,909 --> 00:17:24,230 549 00:17:24,230 --> 00:17:26,949 550 00:17:26,949 --> 00:17:28,470 551 00:17:28,470 --> 00:17:32,230 552 00:17:32,230 --> 00:17:33,990 553 00:17:33,990 --> 00:17:37,029 554 00:17:37,029 --> 00:17:37,039 555 00:17:37,039 --> 00:17:38,630 556 00:17:38,630 --> 00:17:40,789 557 00:17:40,789 --> 00:17:44,310 558 00:17:44,310 --> 00:17:46,470 559 00:17:46,470 --> 00:17:46,480 560 00:17:46,480 --> 00:17:49,110 561 00:17:49,110 --> 00:17:50,789 562 00:17:50,789 --> 00:17:53,750 563 00:17:53,750 --> 00:17:55,830 564 00:17:55,830 --> 00:17:59,270 565 00:17:59,270 --> 00:18:01,270 566 00:18:01,270 --> 00:18:03,590 567 00:18:03,590 --> 00:18:05,029 568 00:18:05,029 --> 00:18:08,549 569 00:18:08,549 --> 00:18:08,559 570 00:18:08,559 --> 00:18:10,710 571 00:18:10,710 --> 00:18:12,950 572 00:18:12,950 --> 00:18:14,870 573 00:18:14,870 --> 00:18:16,390 574 00:18:16,390 --> 00:18:18,310 575 00:18:18,310 --> 00:18:22,150 576 00:18:22,150 --> 00:18:23,750 577 00:18:23,750 --> 00:18:23,760 578 00:18:23,760 --> 00:18:24,870 579 00:18:24,870 --> 00:18:24,880 580 00:18:24,880 --> 00:18:27,190 581 00:18:27,190 --> 00:18:29,830 582 00:18:29,830 --> 00:18:31,669 583 00:18:31,669 --> 00:18:32,950 584 00:18:32,950 --> 00:18:34,390 585 00:18:34,390 --> 00:18:35,830 586 00:18:35,830 --> 00:18:38,230 587 00:18:38,230 --> 00:18:40,070 588 00:18:40,070 --> 00:18:41,350 589 00:18:41,350 --> 00:18:43,270 590 00:18:43,270 --> 00:18:45,590 591 00:18:45,590 --> 00:18:46,789 592 00:18:46,789 --> 00:18:49,830 593 00:18:49,830 --> 00:18:51,510 594 00:18:51,510 --> 00:18:51,520 595 00:18:51,520 --> 00:18:52,390 596 00:18:52,390 --> 00:18:52,400 597 00:18:52,400 --> 00:18:53,909 598 00:18:53,909 --> 00:18:57,510 599 00:18:57,510 --> 00:18:59,909 600 00:18:59,909 --> 00:19:01,669 601 00:19:01,669 --> 00:19:03,190 602 00:19:03,190 --> 00:19:05,029 603 00:19:05,029 --> 00:19:05,039 604 00:19:05,039 --> 00:19:07,270 605 00:19:07,270 --> 00:19:08,710 606 00:19:08,710 --> 00:19:11,510 607 00:19:11,510 --> 00:19:14,310 608 00:19:14,310 --> 00:19:14,320 609 00:19:14,320 --> 00:19:16,070 610 00:19:16,070 --> 00:19:17,990 611 00:19:17,990 --> 00:19:20,950 612 00:19:20,950 --> 00:19:20,960 613 00:19:20,960 --> 00:19:21,320 614 00:19:21,320 --> 00:19:21,330 615 00:19:21,330 --> 00:19:23,590 616 00:19:23,590 --> 00:19:25,590 617 00:19:25,590 --> 00:19:27,270 618 00:19:27,270 --> 00:19:29,350 619 00:19:29,350 --> 00:19:30,710 620 00:19:30,710 --> 00:19:30,720 621 00:19:30,720 --> 00:19:31,990 622 00:19:31,990 --> 00:19:35,590 623 00:19:35,590 --> 00:19:37,110 624 00:19:37,110 --> 00:19:38,549 625 00:19:38,549 --> 00:19:40,390 626 00:19:40,390 --> 00:19:42,789 627 00:19:42,789 --> 00:19:44,950 628 00:19:44,950 --> 00:19:46,870 629 00:19:46,870 --> 00:19:46,880 630 00:19:46,880 --> 00:19:48,789 631 00:19:48,789 --> 00:19:51,270 632 00:19:51,270 --> 00:19:53,270 633 00:19:53,270 --> 00:19:54,870 634 00:19:54,870 --> 00:19:57,510 635 00:19:57,510 --> 00:19:57,520 636 00:19:57,520 --> 00:19:59,190 637 00:19:59,190 --> 00:20:01,830 638 00:20:01,830 --> 00:20:04,470 639 00:20:04,470 --> 00:20:07,590 640 00:20:07,590 --> 00:20:07,600 641 00:20:07,600 --> 00:20:08,470 642 00:20:08,470 --> 00:20:11,830 643 00:20:11,830 --> 00:20:13,510 644 00:20:13,510 --> 00:20:15,270 645 00:20:15,270 --> 00:20:16,789 646 00:20:16,789 --> 00:20:18,470 647 00:20:18,470 --> 00:20:20,390 648 00:20:20,390 --> 00:20:21,750 649 00:20:21,750 --> 00:20:23,110 650 00:20:23,110 --> 00:20:25,510 651 00:20:25,510 --> 00:20:27,110 652 00:20:27,110 --> 00:20:29,909 653 00:20:29,909 --> 00:20:29,919 654 00:20:29,919 --> 00:20:32,070 655 00:20:32,070 --> 00:20:34,710 656 00:20:34,710 --> 00:20:36,310 657 00:20:36,310 --> 00:20:38,710 658 00:20:38,710 --> 00:20:41,270 659 00:20:41,270 --> 00:20:42,390 660 00:20:42,390 --> 00:20:42,400 661 00:20:42,400 --> 00:20:43,590 662 00:20:43,590 --> 00:20:46,149 663 00:20:46,149 --> 00:20:49,190 664 00:20:49,190 --> 00:20:50,630 665 00:20:50,630 --> 00:20:53,830 666 00:20:53,830 --> 00:20:55,990 667 00:20:55,990 --> 00:20:57,350 668 00:20:57,350 --> 00:20:59,190 669 00:20:59,190 --> 00:21:01,190 670 00:21:01,190 --> 00:21:02,630 671 00:21:02,630 --> 00:21:04,630 672 00:21:04,630 --> 00:21:05,990 673 00:21:05,990 --> 00:21:08,310 674 00:21:08,310 --> 00:21:09,909 675 00:21:09,909 --> 00:21:13,190 676 00:21:13,190 --> 00:21:15,029 677 00:21:15,029 --> 00:21:17,430 678 00:21:17,430 --> 00:21:18,789 679 00:21:18,789 --> 00:21:21,510 680 00:21:21,510 --> 00:21:24,630 681 00:21:24,630 --> 00:21:26,149 682 00:21:26,149 --> 00:21:28,149 683 00:21:28,149 --> 00:21:29,909 684 00:21:29,909 --> 00:21:31,350 685 00:21:31,350 --> 00:21:31,360 686 00:21:31,360 --> 00:21:32,230 687 00:21:32,230 --> 00:21:34,230 688 00:21:34,230 --> 00:21:37,669 689 00:21:37,669 --> 00:21:39,909 690 00:21:39,909 --> 00:21:42,230 691 00:21:42,230 --> 00:21:45,590 692 00:21:45,590 --> 00:21:50,149 693 00:21:50,149 --> 00:21:51,830 694 00:21:51,830 --> 00:21:53,750 695 00:21:53,750 --> 00:21:55,190 696 00:21:55,190 --> 00:21:56,710 697 00:21:56,710 --> 00:21:58,789 698 00:21:58,789 --> 00:22:01,990 699 00:22:01,990 --> 00:22:02,000 700 00:22:02,000 --> 00:22:02,870 701 00:22:02,870 --> 00:22:04,470 702 00:22:04,470 --> 00:22:06,310 703 00:22:06,310 --> 00:22:08,710 704 00:22:08,710 --> 00:22:11,830 705 00:22:11,830 --> 00:22:13,190 706 00:22:13,190 --> 00:22:15,430 707 00:22:15,430 --> 00:22:15,440 708 00:22:15,440 --> 00:22:20,630 709 00:22:20,630 --> 00:22:24,630 710 00:22:24,630 --> 00:22:27,350 711 00:22:27,350 --> 00:22:29,350 712 00:22:29,350 --> 00:22:32,710 713 00:22:32,710 --> 00:22:34,149 714 00:22:34,149 --> 00:22:35,830 715 00:22:35,830 --> 00:22:38,390 716 00:22:38,390 --> 00:22:41,029 717 00:22:41,029 --> 00:22:43,909 718 00:22:43,909 --> 00:22:43,919 719 00:22:43,919 --> 00:22:44,340 720 00:22:44,340 --> 00:22:44,350 721 00:22:44,350 --> 00:22:46,390 722 00:22:46,390 --> 00:22:50,230 723 00:22:50,230 --> 00:22:51,830 724 00:22:51,830 --> 00:22:53,350 725 00:22:53,350 --> 00:22:55,830 726 00:22:55,830 --> 00:22:57,909 727 00:22:57,909 --> 00:23:00,149 728 00:23:00,149 --> 00:23:00,159 729 00:23:00,159 --> 00:23:01,110 730 00:23:01,110 --> 00:23:01,120 731 00:23:01,120 --> 00:23:02,070 732 00:23:02,070 --> 00:23:04,870 733 00:23:04,870 --> 00:23:04,880 734 00:23:04,880 --> 00:23:07,190 735 00:23:07,190 --> 00:23:10,549 736 00:23:10,549 --> 00:23:11,909 737 00:23:11,909 --> 00:23:13,990 738 00:23:13,990 --> 00:23:15,029 739 00:23:15,029 --> 00:23:15,039 740 00:23:15,039 --> 00:23:16,470 741 00:23:16,470 --> 00:23:16,480 742 00:23:16,480 --> 00:23:17,590 743 00:23:17,590 --> 00:23:21,029 744 00:23:21,029 --> 00:23:24,070 745 00:23:24,070 --> 00:23:26,070 746 00:23:26,070 --> 00:23:27,270 747 00:23:27,270 --> 00:23:27,280 748 00:23:27,280 --> 00:23:28,310 749 00:23:28,310 --> 00:23:30,950 750 00:23:30,950 --> 00:23:32,789 751 00:23:32,789 --> 00:23:34,549 752 00:23:34,549 --> 00:23:36,230 753 00:23:36,230 --> 00:23:36,240 754 00:23:36,240 --> 00:23:37,909 755 00:23:37,909 --> 00:23:37,919 756 00:23:37,919 --> 00:23:39,669 757 00:23:39,669 --> 00:23:39,679 758 00:23:39,679 --> 00:23:40,710 759 00:23:40,710 --> 00:23:42,310 760 00:23:42,310 --> 00:23:43,990 761 00:23:43,990 --> 00:23:45,750 762 00:23:45,750 --> 00:23:47,590 763 00:23:47,590 --> 00:23:50,310 764 00:23:50,310 --> 00:23:52,149 765 00:23:52,149 --> 00:23:52,159 766 00:23:52,159 --> 00:23:53,750 767 00:23:53,750 --> 00:23:56,310 768 00:23:56,310 --> 00:23:58,710 769 00:23:58,710 --> 00:24:01,510 770 00:24:01,510 --> 00:24:03,510 771 00:24:03,510 --> 00:24:05,350 772 00:24:05,350 --> 00:24:06,789 773 00:24:06,789 --> 00:24:09,430 774 00:24:09,430 --> 00:24:11,510 775 00:24:11,510 --> 00:24:13,750 776 00:24:13,750 --> 00:24:15,830 777 00:24:15,830 --> 00:24:18,070 778 00:24:18,070 --> 00:24:20,710 779 00:24:20,710 --> 00:24:22,310 780 00:24:22,310 --> 00:24:23,990 781 00:24:23,990 --> 00:24:25,750 782 00:24:25,750 --> 00:24:28,950 783 00:24:28,950 --> 00:24:31,269 784 00:24:31,269 --> 00:24:33,750 785 00:24:33,750 --> 00:24:35,510 786 00:24:35,510 --> 00:24:39,269 787 00:24:39,269 --> 00:24:41,830 788 00:24:41,830 --> 00:24:43,830 789 00:24:43,830 --> 00:24:43,840 790 00:24:43,840 --> 00:24:45,269 791 00:24:45,269 --> 00:24:48,070 792 00:24:48,070 --> 00:24:50,950 793 00:24:50,950 --> 00:24:52,470 794 00:24:52,470 --> 00:24:54,070 795 00:24:54,070 --> 00:24:54,080 796 00:24:54,080 --> 00:24:55,350 797 00:24:55,350 --> 00:24:57,029 798 00:24:57,029 --> 00:25:00,549 799 00:25:00,549 --> 00:25:03,430 800 00:25:03,430 --> 00:25:05,430 801 00:25:05,430 --> 00:25:06,710 802 00:25:06,710 --> 00:25:08,789 803 00:25:08,789 --> 00:25:10,630 804 00:25:10,630 --> 00:25:15,750 805 00:25:15,750 --> 00:25:17,590 806 00:25:17,590 --> 00:25:19,669 807 00:25:19,669 --> 00:25:21,430 808 00:25:21,430 --> 00:25:23,669 809 00:25:23,669 --> 00:25:25,029 810 00:25:25,029 --> 00:25:26,470 811 00:25:26,470 --> 00:25:28,950 812 00:25:28,950 --> 00:25:31,750 813 00:25:31,750 --> 00:25:34,149 814 00:25:34,149 --> 00:25:37,269 815 00:25:37,269 --> 00:25:37,279 816 00:25:37,279 --> 00:25:38,310 817 00:25:38,310 --> 00:25:40,390 818 00:25:40,390 --> 00:25:42,950 819 00:25:42,950 --> 00:25:45,269 820 00:25:45,269 --> 00:25:47,269 821 00:25:47,269 --> 00:25:49,110 822 00:25:49,110 --> 00:25:51,110 823 00:25:51,110 --> 00:25:52,470 824 00:25:52,470 --> 00:25:55,510 825 00:25:55,510 --> 00:25:57,269 826 00:25:57,269 --> 00:26:00,230 827 00:26:00,230 --> 00:26:04,230 828 00:26:04,230 --> 00:26:04,240 829 00:26:04,240 --> 00:26:06,149 830 00:26:06,149 --> 00:26:07,990 831 00:26:07,990 --> 00:26:11,350 832 00:26:11,350 --> 00:26:13,029 833 00:26:13,029 --> 00:26:14,230 834 00:26:14,230 --> 00:26:16,470 835 00:26:16,470 --> 00:26:17,830 836 00:26:17,830 --> 00:26:19,430 837 00:26:19,430 --> 00:26:21,909 838 00:26:21,909 --> 00:26:23,830 839 00:26:23,830 --> 00:26:25,909 840 00:26:25,909 --> 00:26:27,830 841 00:26:27,830 --> 00:26:29,990 842 00:26:29,990 --> 00:26:31,510 843 00:26:31,510 --> 00:26:33,190 844 00:26:33,190 --> 00:26:34,310 845 00:26:34,310 --> 00:26:37,909 846 00:26:37,909 --> 00:26:39,990 847 00:26:39,990 --> 00:26:41,350 848 00:26:41,350 --> 00:26:42,789 849 00:26:42,789 --> 00:26:42,799 850 00:26:42,799 --> 00:26:43,909 851 00:26:43,909 --> 00:26:46,549 852 00:26:46,549 --> 00:26:46,559 853 00:26:46,559 --> 00:26:48,149 854 00:26:48,149 --> 00:26:51,669 855 00:26:51,669 --> 00:26:53,590 856 00:26:53,590 --> 00:26:53,600 857 00:26:53,600 --> 00:26:54,549 858 00:26:54,549 --> 00:26:57,990 859 00:26:57,990 --> 00:27:00,230 860 00:27:00,230 --> 00:27:01,510 861 00:27:01,510 --> 00:27:04,549 862 00:27:04,549 --> 00:27:07,029 863 00:27:07,029 --> 00:27:09,590 864 00:27:09,590 --> 00:27:11,029 865 00:27:11,029 --> 00:27:13,029 866 00:27:13,029 --> 00:27:15,029 867 00:27:15,029 --> 00:27:17,110 868 00:27:17,110 --> 00:27:19,190 869 00:27:19,190 --> 00:27:20,710 870 00:27:20,710 --> 00:27:22,149 871 00:27:22,149 --> 00:27:24,149 872 00:27:24,149 --> 00:27:25,990 873 00:27:25,990 --> 00:27:27,590 874 00:27:27,590 --> 00:27:29,269 875 00:27:29,269 --> 00:27:31,430 876 00:27:31,430 --> 00:27:35,110 877 00:27:35,110 --> 00:27:37,669 878 00:27:37,669 --> 00:27:41,830 879 00:27:41,830 --> 00:27:44,470 880 00:27:44,470 --> 00:27:47,430 881 00:27:47,430 --> 00:27:49,990 882 00:27:49,990 --> 00:27:52,389 883 00:27:52,389 --> 00:27:54,710 884 00:27:54,710 --> 00:27:57,590 885 00:27:57,590 --> 00:27:59,269 886 00:27:59,269 --> 00:28:00,389 887 00:28:00,389 --> 00:28:00,399 888 00:28:00,399 --> 00:28:01,430 889 00:28:01,430 --> 00:28:03,029 890 00:28:03,029 --> 00:28:05,269 891 00:28:05,269 --> 00:28:07,990 892 00:28:07,990 --> 00:28:09,510 893 00:28:09,510 --> 00:28:11,590 894 00:28:11,590 --> 00:28:12,950 895 00:28:12,950 --> 00:28:14,389 896 00:28:14,389 --> 00:28:14,399 897 00:28:14,399 --> 00:28:16,149 898 00:28:16,149 --> 00:28:19,430 899 00:28:19,430 --> 00:28:20,789 900 00:28:20,789 --> 00:28:22,870 901 00:28:22,870 --> 00:28:22,880 902 00:28:22,880 --> 00:28:24,149 903 00:28:24,149 --> 00:28:25,110 904 00:28:25,110 --> 00:28:26,870 905 00:28:26,870 --> 00:28:28,630 906 00:28:28,630 --> 00:28:31,190 907 00:28:31,190 --> 00:28:32,710 908 00:28:32,710 --> 00:28:34,310 909 00:28:34,310 --> 00:28:36,470 910 00:28:36,470 --> 00:28:36,480 911 00:28:36,480 --> 00:28:38,549 912 00:28:38,549 --> 00:28:40,630 913 00:28:40,630 --> 00:28:44,870 914 00:28:44,870 --> 00:28:47,830 915 00:28:47,830 --> 00:28:49,269 916 00:28:49,269 --> 00:28:51,909 917 00:28:51,909 --> 00:28:53,750 918 00:28:53,750 --> 00:28:57,750 919 00:28:57,750 --> 00:28:59,510 920 00:28:59,510 --> 00:29:01,269 921 00:29:01,269 --> 00:29:02,870 922 00:29:02,870 --> 00:29:02,880 923 00:29:02,880 --> 00:29:04,389 924 00:29:04,389 --> 00:29:06,950 925 00:29:06,950 --> 00:29:09,990 926 00:29:09,990 --> 00:29:11,430 927 00:29:11,430 --> 00:29:12,630 928 00:29:12,630 --> 00:29:16,870 929 00:29:16,870 --> 00:29:19,350 930 00:29:19,350 --> 00:29:19,360 931 00:29:19,360 --> 00:29:20,630 932 00:29:20,630 --> 00:29:22,549 933 00:29:22,549 --> 00:29:24,950 934 00:29:24,950 --> 00:29:26,870 935 00:29:26,870 --> 00:29:31,430 936 00:29:31,430 --> 00:29:33,110 937 00:29:33,110 --> 00:29:35,590 938 00:29:35,590 --> 00:29:38,149 939 00:29:38,149 --> 00:29:39,750 940 00:29:39,750 --> 00:29:41,190 941 00:29:41,190 --> 00:29:43,190 942 00:29:43,190 --> 00:29:45,909 943 00:29:45,909 --> 00:29:49,430 944 00:29:49,430 --> 00:29:50,950 945 00:29:50,950 --> 00:29:52,549 946 00:29:52,549 --> 00:29:52,559 947 00:29:52,559 --> 00:29:53,430 948 00:29:53,430 --> 00:29:55,190 949 00:29:55,190 --> 00:29:57,110 950 00:29:57,110 --> 00:29:58,710 951 00:29:58,710 --> 00:29:58,720 952 00:29:58,720 --> 00:30:00,149 953 00:30:00,149 --> 00:30:04,389 954 00:30:04,389 --> 00:30:04,399 955 00:30:04,399 --> 00:30:06,710 956 00:30:06,710 --> 00:30:08,870 957 00:30:08,870 --> 00:30:10,870 958 00:30:10,870 --> 00:30:12,950 959 00:30:12,950 --> 00:30:16,950 960 00:30:16,950 --> 00:30:19,269 961 00:30:19,269 --> 00:30:22,870 962 00:30:22,870 --> 00:30:22,880 963 00:30:22,880 --> 00:30:24,630 964 00:30:24,630 --> 00:30:27,029 965 00:30:27,029 --> 00:30:29,190 966 00:30:29,190 --> 00:30:31,510 967 00:30:31,510 --> 00:30:32,630 968 00:30:32,630 --> 00:30:34,870 969 00:30:34,870 --> 00:30:36,710 970 00:30:36,710 --> 00:30:39,750 971 00:30:39,750 --> 00:30:41,190 972 00:30:41,190 --> 00:30:43,110 973 00:30:43,110 --> 00:30:45,669 974 00:30:45,669 --> 00:30:47,590 975 00:30:47,590 --> 00:30:52,070 976 00:30:52,070 --> 00:30:52,080 977 00:30:52,080 --> 00:30:53,110 978 00:30:53,110 --> 00:30:56,549 979 00:30:56,549 --> 00:30:58,389 980 00:30:58,389 --> 00:31:01,029 981 00:31:01,029 --> 00:31:03,029 982 00:31:03,029 --> 00:31:06,549 983 00:31:06,549 --> 00:31:09,669 984 00:31:09,669 --> 00:31:13,269 985 00:31:13,269 --> 00:31:15,590 986 00:31:15,590 --> 00:31:18,789 987 00:31:18,789 --> 00:31:18,799 988 00:31:18,799 --> 00:31:21,990 989 00:31:21,990 --> 00:31:23,830 990 00:31:23,830 --> 00:31:25,110 991 00:31:25,110 --> 00:31:27,430 992 00:31:27,430 --> 00:31:30,789 993 00:31:30,789 --> 00:31:32,389 994 00:31:32,389 --> 00:31:35,350 995 00:31:35,350 --> 00:31:38,549 996 00:31:38,549 --> 00:31:40,549 997 00:31:40,549 --> 00:31:42,230 998 00:31:42,230 --> 00:31:44,149 999 00:31:44,149 --> 00:31:46,870 1000 00:31:46,870 --> 00:31:46,880 1001 00:31:46,880 --> 00:31:47,909 1002 00:31:47,909 --> 00:31:50,070 1003 00:31:50,070 --> 00:31:53,110 1004 00:31:53,110 --> 00:31:55,110 1005 00:31:55,110 --> 00:31:57,509 1006 00:31:57,509 --> 00:31:59,590 1007 00:31:59,590 --> 00:31:59,600 1008 00:31:59,600 --> 00:32:01,269 1009 00:32:01,269 --> 00:32:04,070 1010 00:32:04,070 --> 00:32:05,269 1011 00:32:05,269 --> 00:32:05,279 1012 00:32:05,279 --> 00:32:07,029 1013 00:32:07,029 --> 00:32:07,039 1014 00:32:07,039 --> 00:32:08,549 1015 00:32:08,549 --> 00:32:08,559 1016 00:32:08,559 --> 00:32:09,669 1017 00:32:09,669 --> 00:32:11,990 1018 00:32:11,990 --> 00:32:15,669 1019 00:32:15,669 --> 00:32:17,430 1020 00:32:17,430 --> 00:32:17,440 1021 00:32:17,440 --> 00:32:18,630 1022 00:32:18,630 --> 00:32:20,630 1023 00:32:20,630 --> 00:32:25,430 1024 00:32:25,430 --> 00:32:27,190 1025 00:32:27,190 --> 00:32:30,070 1026 00:32:30,070 --> 00:32:32,070 1027 00:32:32,070 --> 00:32:35,190 1028 00:32:35,190 --> 00:32:37,029 1029 00:32:37,029 --> 00:32:38,870 1030 00:32:38,870 --> 00:32:42,230 1031 00:32:42,230 --> 00:32:45,830 1032 00:32:45,830 --> 00:32:47,350 1033 00:32:47,350 --> 00:32:49,750 1034 00:32:49,750 --> 00:32:52,070 1035 00:32:52,070 --> 00:32:53,909 1036 00:32:53,909 --> 00:32:56,549 1037 00:32:56,549 --> 00:33:00,549 1038 00:33:00,549 --> 00:33:00,559 1039 00:33:00,559 --> 00:33:03,669 1040 00:33:03,669 --> 00:33:05,190 1041 00:33:05,190 --> 00:33:06,870 1042 00:33:06,870 --> 00:33:06,880 1043 00:33:06,880 --> 00:33:07,990 1044 00:33:07,990 --> 00:33:11,269 1045 00:33:11,269 --> 00:33:13,110 1046 00:33:13,110 --> 00:33:15,190 1047 00:33:15,190 --> 00:33:16,470 1048 00:33:16,470 --> 00:33:18,789 1049 00:33:18,789 --> 00:33:20,470 1050 00:33:20,470 --> 00:33:28,630 1051 00:33:28,630 --> 00:33:30,870 1052 00:33:30,870 --> 00:33:34,149 1053 00:33:34,149 --> 00:33:34,159 1054 00:33:34,159 --> 00:33:36,830 1055 00:33:36,830 --> 00:33:36,840 1056 00:33:36,840 --> 00:33:38,710 1057 00:33:38,710 --> 00:33:40,070 1058 00:33:40,070 --> 00:33:42,549 1059 00:33:42,549 --> 00:33:44,789 1060 00:33:44,789 --> 00:33:47,190 1061 00:33:47,190 --> 00:33:49,509 1062 00:33:49,509 --> 00:33:52,070 1063 00:33:52,070 --> 00:33:53,909 1064 00:33:53,909 --> 00:33:56,630 1065 00:33:56,630 --> 00:33:58,310 1066 00:33:58,310 --> 00:33:58,320 1067 00:33:58,320 --> 00:33:59,350 1068 00:33:59,350 --> 00:33:59,360 1069 00:33:59,360 --> 00:34:03,990 1070 00:34:03,990 --> 00:34:05,590 1071 00:34:05,590 --> 00:34:08,710 1072 00:34:08,710 --> 00:34:11,829 1073 00:34:11,829 --> 00:34:13,270 1074 00:34:13,270 --> 00:34:14,869 1075 00:34:14,869 --> 00:34:17,750 1076 00:34:17,750 --> 00:34:21,750 1077 00:34:21,750 --> 00:34:23,510 1078 00:34:23,510 --> 00:34:26,310 1079 00:34:26,310 --> 00:34:27,589 1080 00:34:27,589 --> 00:34:29,030 1081 00:34:29,030 --> 00:34:31,030 1082 00:34:31,030 --> 00:34:31,909 1083 00:34:31,909 --> 00:34:34,950 1084 00:34:34,950 --> 00:34:36,310 1085 00:34:36,310 --> 00:34:38,470 1086 00:34:38,470 --> 00:34:40,790 1087 00:34:40,790 --> 00:34:42,710 1088 00:34:42,710 --> 00:34:44,230 1089 00:34:44,230 --> 00:34:45,430 1090 00:34:45,430 --> 00:34:46,550 1091 00:34:46,550 --> 00:34:48,230 1092 00:34:48,230 --> 00:34:49,829 1093 00:34:49,829 --> 00:34:51,669 1094 00:34:51,669 --> 00:34:53,190 1095 00:34:53,190 --> 00:34:54,790 1096 00:34:54,790 --> 00:34:57,349 1097 00:34:57,349 --> 00:34:58,550 1098 00:34:58,550 --> 00:34:58,560 1099 00:34:58,560 --> 00:34:59,990 1100 00:34:59,990 --> 00:35:01,589 1101 00:35:01,589 --> 00:35:03,270 1102 00:35:03,270 --> 00:35:07,510 1103 00:35:07,510 --> 00:35:07,520 1104 00:35:07,520 --> 00:35:08,550 1105 00:35:08,550 --> 00:35:10,390 1106 00:35:10,390 --> 00:35:10,400 1107 00:35:10,400 --> 00:35:13,109 1108 00:35:13,109 --> 00:35:13,119 1109 00:35:13,119 --> 00:35:14,390 1110 00:35:14,390 --> 00:35:19,990 1111 00:35:19,990 --> 00:35:24,310 1112 00:35:24,310 --> 00:35:26,870 1113 00:35:26,870 --> 00:35:29,270 1114 00:35:29,270 --> 00:35:31,589 1115 00:35:31,589 --> 00:35:33,589 1116 00:35:33,589 --> 00:35:35,670 1117 00:35:35,670 --> 00:35:39,910 1118 00:35:39,910 --> 00:35:41,990 1119 00:35:41,990 --> 00:35:49,510 1120 00:35:49,510 --> 00:35:51,750 1121 00:35:51,750 --> 00:35:55,349 1122 00:35:55,349 --> 00:35:56,710 1123 00:35:56,710 --> 00:35:56,720 1124 00:35:56,720 --> 00:35:58,710 1125 00:35:58,710 --> 00:36:00,470 1126 00:36:00,470 --> 00:36:02,230 1127 00:36:02,230 --> 00:36:05,190 1128 00:36:05,190 --> 00:36:09,510 1129 00:36:09,510 --> 00:36:09,520 1130 00:36:09,520 --> 00:36:10,470 1131 00:36:10,470 --> 00:36:11,670 1132 00:36:11,670 --> 00:36:15,349 1133 00:36:15,349 --> 00:36:17,430 1134 00:36:17,430 --> 00:36:18,790 1135 00:36:18,790 --> 00:36:20,790 1136 00:36:20,790 --> 00:36:22,230 1137 00:36:22,230 --> 00:36:24,150 1138 00:36:24,150 --> 00:36:26,230 1139 00:36:26,230 --> 00:36:26,240 1140 00:36:26,240 --> 00:36:27,109 1141 00:36:27,109 --> 00:36:28,470 1142 00:36:28,470 --> 00:36:30,950 1143 00:36:30,950 --> 00:36:33,510 1144 00:36:33,510 --> 00:36:37,109 1145 00:36:37,109 --> 00:36:38,710 1146 00:36:38,710 --> 00:36:40,550 1147 00:36:40,550 --> 00:36:40,560 1148 00:36:40,560 --> 00:36:41,589 1149 00:36:41,589 --> 00:36:43,910 1150 00:36:43,910 --> 00:36:43,920 1151 00:36:43,920 --> 00:36:45,430 1152 00:36:45,430 --> 00:36:46,390 1153 00:36:46,390 --> 00:36:48,470 1154 00:36:48,470 --> 00:36:50,310 1155 00:36:50,310 --> 00:36:54,870 1156 00:36:54,870 --> 00:36:56,550 1157 00:36:56,550 --> 00:36:58,550 1158 00:36:58,550 --> 00:37:00,550 1159 00:37:00,550 --> 00:37:03,030 1160 00:37:03,030 --> 00:37:05,750 1161 00:37:05,750 --> 00:37:07,430 1162 00:37:07,430 --> 00:37:09,510 1163 00:37:09,510 --> 00:37:11,270 1164 00:37:11,270 --> 00:37:13,190 1165 00:37:13,190 --> 00:37:14,550 1166 00:37:14,550 --> 00:37:16,630 1167 00:37:16,630 --> 00:37:18,150 1168 00:37:18,150 --> 00:37:20,950 1169 00:37:20,950 --> 00:37:23,349 1170 00:37:23,349 --> 00:37:25,510 1171 00:37:25,510 --> 00:37:25,520 1172 00:37:25,520 --> 00:37:26,790 1173 00:37:26,790 --> 00:37:26,800 1174 00:37:26,800 --> 00:37:27,750 1175 00:37:27,750 --> 00:37:30,069 1176 00:37:30,069 --> 00:37:31,670 1177 00:37:31,670 --> 00:37:33,910 1178 00:37:33,910 --> 00:37:36,870 1179 00:37:36,870 --> 00:37:39,030 1180 00:37:39,030 --> 00:37:40,470 1181 00:37:40,470 --> 00:37:41,750 1182 00:37:41,750 --> 00:37:44,710 1183 00:37:44,710 --> 00:37:46,150 1184 00:37:46,150 --> 00:37:46,160 1185 00:37:46,160 --> 00:37:48,230 1186 00:37:48,230 --> 00:37:51,829 1187 00:37:51,829 --> 00:37:53,510 1188 00:37:53,510 --> 00:37:55,829 1189 00:37:55,829 --> 00:37:58,390 1190 00:37:58,390 --> 00:38:00,230 1191 00:38:00,230 --> 00:38:02,710 1192 00:38:02,710 --> 00:38:05,510 1193 00:38:05,510 --> 00:38:09,589 1194 00:38:09,589 --> 00:38:09,599 1195 00:38:09,599 --> 00:38:10,790 1196 00:38:10,790 --> 00:38:13,349 1197 00:38:13,349 --> 00:38:13,359 1198 00:38:13,359 --> 00:38:14,390 1199 00:38:14,390 --> 00:38:16,310 1200 00:38:16,310 --> 00:38:16,320 1201 00:38:16,320 --> 00:38:19,910 1202 00:38:19,910 --> 00:38:21,670 1203 00:38:21,670 --> 00:38:23,670 1204 00:38:23,670 --> 00:38:25,030 1205 00:38:25,030 --> 00:38:29,750 1206 00:38:29,750 --> 00:38:31,670 1207 00:38:31,670 --> 00:38:33,910 1208 00:38:33,910 --> 00:38:36,310 1209 00:38:36,310 --> 00:38:38,310 1210 00:38:38,310 --> 00:38:41,190 1211 00:38:41,190 --> 00:38:43,510 1212 00:38:43,510 --> 00:38:44,829 1213 00:38:44,829 --> 00:38:46,870 1214 00:38:46,870 --> 00:38:50,870 1215 00:38:50,870 --> 00:38:54,069 1216 00:38:54,069 --> 00:38:55,430 1217 00:38:55,430 --> 00:38:55,440 1218 00:38:55,440 --> 00:38:58,950 1219 00:38:58,950 --> 00:39:00,870 1220 00:39:00,870 --> 00:39:00,880 1221 00:39:00,880 --> 00:39:02,870 1222 00:39:02,870 --> 00:39:07,430 1223 00:39:07,430 --> 00:39:08,870 1224 00:39:08,870 --> 00:39:10,150 1225 00:39:10,150 --> 00:39:12,550 1226 00:39:12,550 --> 00:39:14,710 1227 00:39:14,710 --> 00:39:17,270 1228 00:39:17,270 --> 00:39:19,829 1229 00:39:19,829 --> 00:39:22,470 1230 00:39:22,470 --> 00:39:24,470 1231 00:39:24,470 --> 00:39:26,230 1232 00:39:26,230 --> 00:39:26,240 1233 00:39:26,240 --> 00:39:29,030 1234 00:39:29,030 --> 00:39:31,430 1235 00:39:31,430 --> 00:39:34,870 1236 00:39:34,870 --> 00:39:36,950 1237 00:39:36,950 --> 00:39:39,349 1238 00:39:39,349 --> 00:39:41,270 1239 00:39:41,270 --> 00:39:43,670 1240 00:39:43,670 --> 00:39:43,680 1241 00:39:43,680 --> 00:39:44,870 1242 00:39:44,870 --> 00:39:47,589 1243 00:39:47,589 --> 00:39:49,190 1244 00:39:49,190 --> 00:39:49,200 1245 00:39:49,200 --> 00:39:50,069 1246 00:39:50,069 --> 00:39:53,190 1247 00:39:53,190 --> 00:39:57,190 1248 00:39:57,190 --> 00:39:58,870 1249 00:39:58,870 --> 00:40:01,270 1250 00:40:01,270 --> 00:40:01,280 1251 00:40:01,280 --> 00:40:04,150 1252 00:40:04,150 --> 00:40:04,160 1253 00:40:04,160 --> 00:40:06,870 1254 00:40:06,870 --> 00:40:06,880 1255 00:40:06,880 --> 00:40:07,750 1256 00:40:07,750 --> 00:40:11,270 1257 00:40:11,270 --> 00:40:11,280 1258 00:40:11,280 --> 00:40:13,270 1259 00:40:13,270 --> 00:40:13,280 1260 00:40:13,280 --> 00:40:14,069 1261 00:40:14,069 --> 00:40:16,710 1262 00:40:16,710 --> 00:40:19,589 1263 00:40:19,589 --> 00:40:19,599 1264 00:40:19,599 --> 00:40:20,550 1265 00:40:20,550 --> 00:40:24,710 1266 00:40:24,710 --> 00:40:26,630 1267 00:40:26,630 --> 00:40:29,109 1268 00:40:29,109 --> 00:40:31,270 1269 00:40:31,270 --> 00:40:33,670 1270 00:40:33,670 --> 00:40:36,390 1271 00:40:36,390 --> 00:40:38,390 1272 00:40:38,390 --> 00:40:40,550 1273 00:40:40,550 --> 00:40:43,430 1274 00:40:43,430 --> 00:40:45,190 1275 00:40:45,190 --> 00:40:47,190 1276 00:40:47,190 --> 00:40:48,870 1277 00:40:48,870 --> 00:40:52,309 1278 00:40:52,309 --> 00:40:52,319 1279 00:40:52,319 --> 00:40:53,270 1280 00:40:53,270 --> 00:40:55,510 1281 00:40:55,510 --> 00:40:57,990 1282 00:40:57,990 --> 00:41:00,230 1283 00:41:00,230 --> 00:41:01,510 1284 00:41:01,510 --> 00:41:03,670 1285 00:41:03,670 --> 00:41:05,190 1286 00:41:05,190 --> 00:41:07,349 1287 00:41:07,349 --> 00:41:09,270 1288 00:41:09,270 --> 00:41:12,710 1289 00:41:12,710 --> 00:41:15,109 1290 00:41:15,109 --> 00:41:17,270 1291 00:41:17,270 --> 00:41:19,430 1292 00:41:19,430 --> 00:41:22,230 1293 00:41:22,230 --> 00:41:23,670 1294 00:41:23,670 --> 00:41:25,349 1295 00:41:25,349 --> 00:41:27,910 1296 00:41:27,910 --> 00:41:29,829 1297 00:41:29,829 --> 00:41:31,829 1298 00:41:31,829 --> 00:41:33,349 1299 00:41:33,349 --> 00:41:35,829 1300 00:41:35,829 --> 00:41:38,069 1301 00:41:38,069 --> 00:41:40,150 1302 00:41:40,150 --> 00:41:40,160 1303 00:41:40,160 --> 00:41:41,589 1304 00:41:41,589 --> 00:41:43,990 1305 00:41:43,990 --> 00:41:46,069 1306 00:41:46,069 --> 00:41:47,510 1307 00:41:47,510 --> 00:41:49,510 1308 00:41:49,510 --> 00:41:52,230 1309 00:41:52,230 --> 00:41:54,470 1310 00:41:54,470 --> 00:41:58,230 1311 00:41:58,230 --> 00:42:01,190 1312 00:42:01,190 --> 00:42:03,349 1313 00:42:03,349 --> 00:42:05,510 1314 00:42:05,510 --> 00:42:08,230 1315 00:42:08,230 --> 00:42:10,390 1316 00:42:10,390 --> 00:42:12,150 1317 00:42:12,150 --> 00:42:14,790 1318 00:42:14,790 --> 00:42:17,270 1319 00:42:17,270 --> 00:42:18,710 1320 00:42:18,710 --> 00:42:18,720 1321 00:42:18,720 --> 00:42:20,069 1322 00:42:20,069 --> 00:42:20,079 1323 00:42:20,079 --> 00:42:21,030 1324 00:42:21,030 --> 00:42:23,270 1325 00:42:23,270 --> 00:42:24,630 1326 00:42:24,630 --> 00:42:24,640 1327 00:42:24,640 --> 00:42:29,670 1328 00:42:29,670 --> 00:42:34,069 1329 00:42:34,069 --> 00:42:34,079 1330 00:42:34,079 --> 00:42:34,870 1331 00:42:34,870 --> 00:42:37,349 1332 00:42:37,349 --> 00:42:39,270 1333 00:42:39,270 --> 00:42:42,150 1334 00:42:42,150 --> 00:42:43,589 1335 00:42:43,589 --> 00:42:44,630 1336 00:42:44,630 --> 00:42:44,640 1337 00:42:44,640 --> 00:42:46,069 1338 00:42:46,069 --> 00:42:47,430 1339 00:42:47,430 --> 00:42:49,030 1340 00:42:49,030 --> 00:42:51,589 1341 00:42:51,589 --> 00:42:54,630 1342 00:42:54,630 --> 00:42:56,550 1343 00:42:56,550 --> 00:42:58,550 1344 00:42:58,550 --> 00:43:00,069 1345 00:43:00,069 --> 00:43:00,079 1346 00:43:00,079 --> 00:43:01,829 1347 00:43:01,829 --> 00:43:01,839 1348 00:43:01,839 --> 00:43:05,109 1349 00:43:05,109 --> 00:43:05,119 1350 00:43:05,119 --> 00:43:06,230 1351 00:43:06,230 --> 00:43:06,240 1352 00:43:06,240 --> 00:43:07,829 1353 00:43:07,829 --> 00:43:11,030 1354 00:43:11,030 --> 00:43:13,030 1355 00:43:13,030 --> 00:43:14,550 1356 00:43:14,550 --> 00:43:16,069 1357 00:43:16,069 --> 00:43:17,910 1358 00:43:17,910 --> 00:43:19,670 1359 00:43:19,670 --> 00:43:19,680 1360 00:43:19,680 --> 00:43:20,950 1361 00:43:20,950 --> 00:43:23,270 1362 00:43:23,270 --> 00:43:25,430 1363 00:43:25,430 --> 00:43:28,950 1364 00:43:28,950 --> 00:43:32,390 1365 00:43:32,390 --> 00:43:35,829 1366 00:43:35,829 --> 00:43:37,349 1367 00:43:37,349 --> 00:43:37,359 1368 00:43:37,359 --> 00:43:39,430 1369 00:43:39,430 --> 00:43:40,870 1370 00:43:40,870 --> 00:43:43,750 1371 00:43:43,750 --> 00:43:45,349 1372 00:43:45,349 --> 00:43:47,109 1373 00:43:47,109 --> 00:43:50,069 1374 00:43:50,069 --> 00:43:51,750 1375 00:43:51,750 --> 00:43:53,430 1376 00:43:53,430 --> 00:43:54,950 1377 00:43:54,950 --> 00:43:56,870 1378 00:43:56,870 --> 00:44:00,309 1379 00:44:00,309 --> 00:44:01,910 1380 00:44:01,910 --> 00:44:01,920 1381 00:44:01,920 --> 00:44:03,910 1382 00:44:03,910 --> 00:44:05,349 1383 00:44:05,349 --> 00:44:07,910 1384 00:44:07,910 --> 00:44:10,230 1385 00:44:10,230 --> 00:44:12,870 1386 00:44:12,870 --> 00:44:15,510 1387 00:44:15,510 --> 00:44:18,309 1388 00:44:18,309 --> 00:44:22,550 1389 00:44:22,550 --> 00:44:22,560 1390 00:44:22,560 --> 00:44:23,430 1391 00:44:23,430 --> 00:44:25,990 1392 00:44:25,990 --> 00:44:27,670 1393 00:44:27,670 --> 00:44:29,190 1394 00:44:29,190 --> 00:44:29,200 1395 00:44:29,200 --> 00:44:30,069 1396 00:44:30,069 --> 00:44:32,230 1397 00:44:32,230 --> 00:44:33,829 1398 00:44:33,829 --> 00:44:37,430 1399 00:44:37,430 --> 00:44:39,510 1400 00:44:39,510 --> 00:44:39,520 1401 00:44:39,520 --> 00:44:40,630 1402 00:44:40,630 --> 00:44:40,640 1403 00:44:40,640 --> 00:44:41,430 1404 00:44:41,430 --> 00:44:43,990 1405 00:44:43,990 --> 00:44:46,470 1406 00:44:46,470 --> 00:44:46,480 1407 00:44:46,480 --> 00:44:47,990 1408 00:44:47,990 --> 00:44:50,550 1409 00:44:50,550 --> 00:44:52,470 1410 00:44:52,470 --> 00:44:54,230 1411 00:44:54,230 --> 00:44:56,710 1412 00:44:56,710 --> 00:44:59,510 1413 00:44:59,510 --> 00:44:59,520 1414 00:44:59,520 --> 00:45:00,790 1415 00:45:00,790 --> 00:45:02,630 1416 00:45:02,630 --> 00:45:04,790 1417 00:45:04,790 --> 00:45:04,800 1418 00:45:04,800 --> 00:45:07,270 1419 00:45:07,270 --> 00:45:09,030 1420 00:45:09,030 --> 00:45:10,710 1421 00:45:10,710 --> 00:45:13,430 1422 00:45:13,430 --> 00:45:15,190 1423 00:45:15,190 --> 00:45:17,750 1424 00:45:17,750 --> 00:45:18,950 1425 00:45:18,950 --> 00:45:22,150 1426 00:45:22,150 --> 00:45:24,470 1427 00:45:24,470 --> 00:45:26,950 1428 00:45:26,950 --> 00:45:29,990 1429 00:45:29,990 --> 00:45:32,790 1430 00:45:32,790 --> 00:45:34,309 1431 00:45:34,309 --> 00:45:34,319 1432 00:45:34,319 --> 00:45:36,309 1433 00:45:36,309 --> 00:45:39,510 1434 00:45:39,510 --> 00:45:41,270 1435 00:45:41,270 --> 00:45:42,950 1436 00:45:42,950 --> 00:45:44,390 1437 00:45:44,390 --> 00:45:48,150 1438 00:45:48,150 --> 00:45:52,150 1439 00:45:52,150 --> 00:45:54,550 1440 00:45:54,550 --> 00:45:56,150 1441 00:45:56,150 --> 00:45:59,430 1442 00:45:59,430 --> 00:45:59,440 1443 00:45:59,440 --> 00:46:02,710 1444 00:46:02,710 --> 00:46:02,720 1445 00:46:02,720 --> 00:46:05,750 1446 00:46:05,750 --> 00:46:05,760 1447 00:46:05,760 --> 00:46:06,550 1448 00:46:06,550 --> 00:46:06,560 1449 00:46:06,560 --> 00:46:08,150 1450 00:46:08,150 --> 00:46:10,150 1451 00:46:10,150 --> 00:46:10,160 1452 00:46:10,160 --> 00:46:11,190 1453 00:46:11,190 --> 00:46:13,349 1454 00:46:13,349 --> 00:46:15,829 1455 00:46:15,829 --> 00:46:17,750 1456 00:46:17,750 --> 00:46:19,670 1457 00:46:19,670 --> 00:46:20,950 1458 00:46:20,950 --> 00:46:20,960 1459 00:46:20,960 --> 00:46:21,750 1460 00:46:21,750 --> 00:46:23,510 1461 00:46:23,510 --> 00:46:26,710 1462 00:46:26,710 --> 00:46:26,720 1463 00:46:26,720 --> 00:46:27,750 1464 00:46:27,750 --> 00:46:30,150 1465 00:46:30,150 --> 00:46:31,510 1466 00:46:31,510 --> 00:46:33,589 1467 00:46:33,589 --> 00:46:35,270 1468 00:46:35,270 --> 00:46:37,589 1469 00:46:37,589 --> 00:46:39,670 1470 00:46:39,670 --> 00:46:42,390 1471 00:46:42,390 --> 00:46:45,030 1472 00:46:45,030 --> 00:46:46,710 1473 00:46:46,710 --> 00:46:49,030 1474 00:46:49,030 --> 00:46:51,109 1475 00:46:51,109 --> 00:46:52,790 1476 00:46:52,790 --> 00:46:54,790 1477 00:46:54,790 --> 00:46:57,430 1478 00:46:57,430 --> 00:46:58,950 1479 00:46:58,950 --> 00:47:01,109 1480 00:47:01,109 --> 00:47:03,349 1481 00:47:03,349 --> 00:47:04,390 1482 00:47:04,390 --> 00:47:06,870 1483 00:47:06,870 --> 00:47:10,390 1484 00:47:10,390 --> 00:47:11,589 1485 00:47:11,589 --> 00:47:11,599 1486 00:47:11,599 --> 00:47:12,790 1487 00:47:12,790 --> 00:47:14,630 1488 00:47:14,630 --> 00:47:16,950 1489 00:47:16,950 --> 00:47:19,430 1490 00:47:19,430 --> 00:47:21,910 1491 00:47:21,910 --> 00:47:24,230 1492 00:47:24,230 --> 00:47:25,670 1493 00:47:25,670 --> 00:47:27,430 1494 00:47:27,430 --> 00:47:29,030 1495 00:47:29,030 --> 00:47:29,040 1496 00:47:29,040 --> 00:47:30,309 1497 00:47:30,309 --> 00:47:32,710 1498 00:47:32,710 --> 00:47:32,720 1499 00:47:32,720 --> 00:47:33,829 1500 00:47:33,829 --> 00:47:35,270 1501 00:47:35,270 --> 00:47:37,510 1502 00:47:37,510 --> 00:47:40,390 1503 00:47:40,390 --> 00:47:40,400 1504 00:47:40,400 --> 00:47:42,950 1505 00:47:42,950 --> 00:47:44,630 1506 00:47:44,630 --> 00:47:46,710 1507 00:47:46,710 --> 00:47:48,390 1508 00:47:48,390 --> 00:47:50,069 1509 00:47:50,069 --> 00:47:55,349 1510 00:47:55,349 --> 00:47:57,030 1511 00:47:57,030 --> 00:47:59,750 1512 00:47:59,750 --> 00:48:03,109 1513 00:48:03,109 --> 00:48:06,309 1514 00:48:06,309 --> 00:48:08,630 1515 00:48:08,630 --> 00:48:12,069 1516 00:48:12,069 --> 00:48:14,309 1517 00:48:14,309 --> 00:48:14,319 1518 00:48:14,319 --> 00:48:18,309 1519 00:48:18,309 --> 00:48:21,030 1520 00:48:21,030 --> 00:48:22,470 1521 00:48:22,470 --> 00:48:25,750 1522 00:48:25,750 --> 00:48:27,510 1523 00:48:27,510 --> 00:48:29,829 1524 00:48:29,829 --> 00:48:29,839 1525 00:48:29,839 --> 00:48:31,910 1526 00:48:31,910 --> 00:48:35,270 1527 00:48:35,270 --> 00:48:37,190 1528 00:48:37,190 --> 00:48:39,430 1529 00:48:39,430 --> 00:48:39,440 1530 00:48:39,440 --> 00:48:44,069 1531 00:48:44,069 --> 00:48:45,829 1532 00:48:45,829 --> 00:48:48,630 1533 00:48:48,630 --> 00:48:50,630 1534 00:48:50,630 --> 00:48:50,640 1535 00:48:50,640 --> 00:48:52,150 1536 00:48:52,150 --> 00:48:56,069 1537 00:48:56,069 --> 00:49:01,109 1538 00:49:01,109 --> 00:49:03,430 1539 00:49:03,430 --> 00:49:03,440 1540 00:49:03,440 --> 00:49:04,470 1541 00:49:04,470 --> 00:49:06,230 1542 00:49:06,230 --> 00:49:09,990 1543 00:49:09,990 --> 00:49:12,150 1544 00:49:12,150 --> 00:49:14,390 1545 00:49:14,390 --> 00:49:14,400 1546 00:49:14,400 --> 00:49:16,470 1547 00:49:16,470 --> 00:49:18,549 1548 00:49:18,549 --> 00:49:19,750 1549 00:49:19,750 --> 00:49:21,670 1550 00:49:21,670 --> 00:49:24,309 1551 00:49:24,309 --> 00:49:25,910 1552 00:49:25,910 --> 00:49:27,030 1553 00:49:27,030 --> 00:49:29,030 1554 00:49:29,030 --> 00:49:30,549 1555 00:49:30,549 --> 00:49:31,829 1556 00:49:31,829 --> 00:49:35,430 1557 00:49:35,430 --> 00:49:37,349 1558 00:49:37,349 --> 00:49:37,359 1559 00:49:37,359 --> 00:49:38,950 1560 00:49:38,950 --> 00:49:40,470 1561 00:49:40,470 --> 00:49:42,870 1562 00:49:42,870 --> 00:49:45,750 1563 00:49:45,750 --> 00:49:47,430 1564 00:49:47,430 --> 00:49:50,950 1565 00:49:50,950 --> 00:49:55,190 1566 00:49:55,190 --> 00:49:55,200 1567 00:49:55,200 --> 00:49:57,109 1568 00:49:57,109 --> 00:50:00,230 1569 00:50:00,230 --> 00:50:02,470 1570 00:50:02,470 --> 00:50:05,349 1571 00:50:05,349 --> 00:50:06,870 1572 00:50:06,870 --> 00:50:08,390 1573 00:50:08,390 --> 00:50:10,390 1574 00:50:10,390 --> 00:50:11,910 1575 00:50:11,910 --> 00:50:11,920 1576 00:50:11,920 --> 00:50:12,950 1577 00:50:12,950 --> 00:50:14,549 1578 00:50:14,549 --> 00:50:17,109 1579 00:50:17,109 --> 00:50:18,950 1580 00:50:18,950 --> 00:50:18,960 1581 00:50:18,960 --> 00:50:20,390 1582 00:50:20,390 --> 00:50:21,910 1583 00:50:21,910 --> 00:50:23,910 1584 00:50:23,910 --> 00:50:26,549 1585 00:50:26,549 --> 00:50:28,950 1586 00:50:28,950 --> 00:50:28,960 1587 00:50:28,960 --> 00:50:30,470 1588 00:50:30,470 --> 00:50:32,230 1589 00:50:32,230 --> 00:50:33,670 1590 00:50:33,670 --> 00:50:35,990 1591 00:50:35,990 --> 00:50:38,230 1592 00:50:38,230 --> 00:50:40,470 1593 00:50:40,470 --> 00:50:42,309 1594 00:50:42,309 --> 00:50:42,319 1595 00:50:42,319 --> 00:50:43,510 1596 00:50:43,510 --> 00:50:45,750 1597 00:50:45,750 --> 00:50:48,309 1598 00:50:48,309 --> 00:50:50,470 1599 00:50:50,470 --> 00:50:52,309 1600 00:50:52,309 --> 00:50:53,670 1601 00:50:53,670 --> 00:50:56,230 1602 00:50:56,230 --> 00:50:58,150 1603 00:50:58,150 --> 00:50:58,160 1604 00:50:58,160 --> 00:50:58,950 1605 00:50:58,950 --> 00:50:59,829 1606 00:50:59,829 --> 00:51:01,270 1607 00:51:01,270 --> 00:51:03,670 1608 00:51:03,670 --> 00:51:04,870 1609 00:51:04,870 --> 00:51:06,870 1610 00:51:06,870 --> 00:51:11,270 1611 00:51:11,270 --> 00:51:13,349 1612 00:51:13,349 --> 00:51:15,190 1613 00:51:15,190 --> 00:51:17,990 1614 00:51:17,990 --> 00:51:20,549 1615 00:51:20,549 --> 00:51:22,950 1616 00:51:22,950 --> 00:51:24,230 1617 00:51:24,230 --> 00:51:26,710 1618 00:51:26,710 --> 00:51:26,720 1619 00:51:26,720 --> 00:51:29,589 1620 00:51:29,589 --> 00:51:31,589 1621 00:51:31,589 --> 00:51:33,670 1622 00:51:33,670 --> 00:51:34,790 1623 00:51:34,790 --> 00:51:37,109 1624 00:51:37,109 --> 00:51:39,670 1625 00:51:39,670 --> 00:51:50,549 1626 00:51:50,549 --> 00:51:53,030 1627 00:51:53,030 --> 00:51:53,040 1628 00:51:53,040 --> 00:51:53,829 1629 00:51:53,829 --> 00:51:55,349 1630 00:51:55,349 --> 00:51:57,430 1631 00:51:57,430 --> 00:52:00,150 1632 00:52:00,150 --> 00:52:01,829 1633 00:52:01,829 --> 00:52:01,839 1634 00:52:01,839 --> 00:52:03,829 1635 00:52:03,829 --> 00:52:06,950 1636 00:52:06,950 --> 00:52:07,990 1637 00:52:07,990 --> 00:52:09,670 1638 00:52:09,670 --> 00:52:10,870 1639 00:52:10,870 --> 00:52:12,710 1640 00:52:12,710 --> 00:52:15,270 1641 00:52:15,270 --> 00:52:17,190 1642 00:52:17,190 --> 00:52:18,470 1643 00:52:18,470 --> 00:52:21,349 1644 00:52:21,349 --> 00:52:22,630 1645 00:52:22,630 --> 00:52:25,430 1646 00:52:25,430 --> 00:52:27,829 1647 00:52:27,829 --> 00:52:29,270 1648 00:52:29,270 --> 00:52:30,549 1649 00:52:30,549 --> 00:52:32,309 1650 00:52:32,309 --> 00:52:33,910 1651 00:52:33,910 --> 00:52:36,309 1652 00:52:36,309 --> 00:52:36,319 1653 00:52:36,319 --> 00:52:37,670 1654 00:52:37,670 --> 00:52:38,710 1655 00:52:38,710 --> 00:52:40,950 1656 00:52:40,950 --> 00:52:42,630 1657 00:52:42,630 --> 00:52:44,630 1658 00:52:44,630 --> 00:52:46,230 1659 00:52:46,230 --> 00:52:48,549 1660 00:52:48,549 --> 00:52:51,270 1661 00:52:51,270 --> 00:52:51,280 1662 00:52:51,280 --> 00:52:53,030 1663 00:52:53,030 --> 00:52:55,030 1664 00:52:55,030 --> 00:52:56,870 1665 00:52:56,870 --> 00:52:58,829 1666 00:52:58,829 --> 00:53:00,870 1667 00:53:00,870 --> 00:53:03,430 1668 00:53:03,430 --> 00:53:07,510 1669 00:53:07,510 --> 00:53:09,190 1670 00:53:09,190 --> 00:53:11,270 1671 00:53:11,270 --> 00:53:12,870 1672 00:53:12,870 --> 00:53:14,309 1673 00:53:14,309 --> 00:53:15,750 1674 00:53:15,750 --> 00:53:19,109 1675 00:53:19,109 --> 00:53:20,390 1676 00:53:20,390 --> 00:53:22,549 1677 00:53:22,549 --> 00:53:24,790 1678 00:53:24,790 --> 00:53:24,800 1679 00:53:24,800 --> 00:53:25,420 1680 00:53:25,420 --> 00:53:25,430 1681 00:53:25,430 --> 00:53:26,870 1682 00:53:26,870 --> 00:53:26,880 1683 00:53:26,880 --> 00:53:27,670 1684 00:53:27,670 --> 00:53:28,710 1685 00:53:28,710 --> 00:53:30,390 1686 00:53:30,390 --> 00:53:32,309 1687 00:53:32,309 --> 00:53:34,309 1688 00:53:34,309 --> 00:53:36,390 1689 00:53:36,390 --> 00:53:38,950 1690 00:53:38,950 --> 00:53:40,950 1691 00:53:40,950 --> 00:53:40,960 1692 00:53:40,960 --> 00:53:42,390 1693 00:53:42,390 --> 00:53:43,750 1694 00:53:43,750 --> 00:53:47,190 1695 00:53:47,190 --> 00:53:52,069 1696 00:53:52,069 --> 00:53:54,230 1697 00:53:54,230 --> 00:53:55,510 1698 00:53:55,510 --> 00:53:55,520 1699 00:53:55,520 --> 00:53:56,710 1700 00:53:56,710 --> 00:53:59,430 1701 00:53:59,430 --> 00:54:01,349 1702 00:54:01,349 --> 00:54:03,910 1703 00:54:03,910 --> 00:54:06,390 1704 00:54:06,390 --> 00:54:09,030 1705 00:54:09,030 --> 00:54:09,040 1706 00:54:09,040 --> 00:54:13,109 1707 00:54:13,109 --> 00:54:15,349 1708 00:54:15,349 --> 00:54:17,670 1709 00:54:17,670 --> 00:54:20,470 1710 00:54:20,470 --> 00:54:21,589 1711 00:54:21,589 --> 00:54:23,589 1712 00:54:23,589 --> 00:54:26,309 1713 00:54:26,309 --> 00:54:27,829 1714 00:54:27,829 --> 00:54:30,870 1715 00:54:30,870 --> 00:54:33,829 1716 00:54:33,829 --> 00:54:35,990 1717 00:54:35,990 --> 00:54:40,309 1718 00:54:40,309 --> 00:54:41,829 1719 00:54:41,829 --> 00:54:43,109 1720 00:54:43,109 --> 00:54:43,119 1721 00:54:43,119 --> 00:54:44,069 1722 00:54:44,069 --> 00:54:46,549 1723 00:54:46,549 --> 00:54:46,559 1724 00:54:46,559 --> 00:54:48,150 1725 00:54:48,150 --> 00:54:49,910 1726 00:54:49,910 --> 00:54:49,920 1727 00:54:49,920 --> 00:54:52,549 1728 00:54:52,549 --> 00:54:55,750 1729 00:54:55,750 --> 00:54:55,760 1730 00:54:55,760 --> 00:54:56,630 1731 00:54:56,630 --> 00:54:56,640 1732 00:54:56,640 --> 00:54:58,069 1733 00:54:58,069 --> 00:55:00,230 1734 00:55:00,230 --> 00:55:01,990 1735 00:55:01,990 --> 00:55:03,190 1736 00:55:03,190 --> 00:55:05,510 1737 00:55:05,510 --> 00:55:07,829 1738 00:55:07,829 --> 00:55:10,870 1739 00:55:10,870 --> 00:55:12,870 1740 00:55:12,870 --> 00:55:14,549 1741 00:55:14,549 --> 00:55:17,030 1742 00:55:17,030 --> 00:55:18,630 1743 00:55:18,630 --> 00:55:20,230 1744 00:55:20,230 --> 00:55:23,109 1745 00:55:23,109 --> 00:55:26,710 1746 00:55:26,710 --> 00:55:26,720 1747 00:55:26,720 --> 00:55:27,910 1748 00:55:27,910 --> 00:55:30,470 1749 00:55:30,470 --> 00:55:32,630 1750 00:55:32,630 --> 00:55:36,390 1751 00:55:36,390 --> 00:55:37,670 1752 00:55:37,670 --> 00:55:39,990 1753 00:55:39,990 --> 00:55:43,670 1754 00:55:43,670 --> 00:55:45,030 1755 00:55:45,030 --> 00:55:47,109 1756 00:55:47,109 --> 00:55:47,119 1757 00:55:47,119 --> 00:55:48,710 1758 00:55:48,710 --> 00:55:51,910 1759 00:55:51,910 --> 00:55:51,920 1760 00:55:51,920 --> 00:55:53,750 1761 00:55:53,750 --> 00:55:53,760 1762 00:55:53,760 --> 00:55:55,349 1763 00:55:55,349 --> 00:55:58,789 1764 00:55:58,789 --> 00:56:01,030 1765 00:56:01,030 --> 00:56:02,549 1766 00:56:02,549 --> 00:56:04,069 1767 00:56:04,069 --> 00:56:05,829 1768 00:56:05,829 --> 00:56:08,390 1769 00:56:08,390 --> 00:56:12,069 1770 00:56:12,069 --> 00:56:14,630 1771 00:56:14,630 --> 00:56:18,390 1772 00:56:18,390 --> 00:56:20,710 1773 00:56:20,710 --> 00:56:22,069 1774 00:56:22,069 --> 00:56:22,079 1775 00:56:22,079 --> 00:56:23,030 1776 00:56:23,030 --> 00:56:25,750 1777 00:56:25,750 --> 00:56:31,030 1778 00:56:31,030 --> 00:56:36,470 1779 00:56:36,470 --> 00:56:38,630 1780 00:56:38,630 --> 00:56:42,870 1781 00:56:42,870 --> 00:56:46,069 1782 00:56:46,069 --> 00:56:49,190 1783 00:56:49,190 --> 00:56:50,789 1784 00:56:50,789 --> 00:56:52,150 1785 00:56:52,150 --> 00:56:53,829 1786 00:56:53,829 --> 00:56:53,839 1787 00:56:53,839 --> 00:56:54,870 1788 00:56:54,870 --> 00:56:56,950 1789 00:56:56,950 --> 00:57:00,390 1790 00:57:00,390 --> 00:57:00,400 1791 00:57:00,400 --> 00:57:03,030 1792 00:57:03,030 --> 00:57:05,030 1793 00:57:05,030 --> 00:57:06,870 1794 00:57:06,870 --> 00:57:10,230 1795 00:57:10,230 --> 00:57:10,240 1796 00:57:10,240 --> 00:57:13,190 1797 00:57:13,190 --> 00:57:15,990 1798 00:57:15,990 --> 00:57:18,549 1799 00:57:18,549 --> 00:57:18,559 1800 00:57:18,559 --> 00:57:19,510 1801 00:57:19,510 --> 00:57:23,670 1802 00:57:23,670 --> 00:57:26,630 1803 00:57:26,630 --> 00:57:27,670 1804 00:57:27,670 --> 00:57:30,950 1805 00:57:30,950 --> 00:57:35,510 1806 00:57:35,510 --> 00:57:37,430 1807 00:57:37,430 --> 00:57:37,440 1808 00:57:37,440 --> 00:57:38,630 1809 00:57:38,630 --> 00:57:41,030 1810 00:57:41,030 --> 00:57:43,109 1811 00:57:43,109 --> 00:57:44,789 1812 00:57:44,789 --> 00:57:44,799 1813 00:57:44,799 --> 00:57:45,750 1814 00:57:45,750 --> 00:57:47,910 1815 00:57:47,910 --> 00:57:50,069 1816 00:57:50,069 --> 00:57:52,069 1817 00:57:52,069 --> 00:57:53,990 1818 00:57:53,990 --> 00:57:56,710 1819 00:57:56,710 --> 00:57:59,030 1820 00:57:59,030 --> 00:58:01,510 1821 00:58:01,510 --> 00:58:03,589 1822 00:58:03,589 --> 00:58:06,789 1823 00:58:06,789 --> 00:58:08,950 1824 00:58:08,950 --> 00:58:11,270 1825 00:58:11,270 --> 00:58:13,829 1826 00:58:13,829 --> 00:58:17,829 1827 00:58:17,829 --> 00:58:17,839 1828 00:58:17,839 --> 00:58:19,030 1829 00:58:19,030 --> 00:58:21,190 1830 00:58:21,190 --> 00:58:21,200 1831 00:58:21,200 --> 00:58:22,549 1832 00:58:22,549 --> 00:58:22,559 1833 00:58:22,559 --> 00:58:23,430 1834 00:58:23,430 --> 00:58:25,270 1835 00:58:25,270 --> 00:58:27,030 1836 00:58:27,030 --> 00:58:29,349 1837 00:58:29,349 --> 00:58:29,359 1838 00:58:29,359 --> 00:58:32,230 1839 00:58:32,230 --> 00:58:35,270 1840 00:58:35,270 --> 00:58:37,910 1841 00:58:37,910 --> 00:58:43,990 1842 00:58:43,990 --> 00:58:45,589 1843 00:58:45,589 --> 00:58:47,829 1844 00:58:47,829 --> 00:58:49,349 1845 00:58:49,349 --> 00:58:52,710 1846 00:58:52,710 --> 00:58:55,270 1847 00:58:55,270 --> 00:58:55,280 1848 00:58:55,280 --> 00:58:57,190 1849 00:58:57,190 --> 00:58:59,030 1850 00:58:59,030 --> 00:59:00,390 1851 00:59:00,390 --> 00:59:03,670 1852 00:59:03,670 --> 00:59:05,510 1853 00:59:05,510 --> 00:59:06,870 1854 00:59:06,870 --> 00:59:06,880 1855 00:59:06,880 --> 00:59:09,670 1856 00:59:09,670 --> 00:59:12,069 1857 00:59:12,069 --> 00:59:15,910 1858 00:59:15,910 --> 00:59:21,670 1859 00:59:21,670 --> 00:59:23,589 1860 00:59:23,589 --> 00:59:25,430 1861 00:59:25,430 --> 00:59:27,190 1862 00:59:27,190 --> 00:59:27,200 1863 00:59:27,200 --> 00:59:28,069 1864 00:59:28,069 --> 00:59:29,349 1865 00:59:29,349 --> 00:59:29,359 1866 00:59:29,359 --> 00:59:30,870 1867 00:59:30,870 --> 00:59:33,589 1868 00:59:33,589 --> 00:59:35,190 1869 00:59:35,190 --> 00:59:37,109 1870 00:59:37,109 --> 00:59:39,510 1871 00:59:39,510 --> 00:59:42,150 1872 00:59:42,150 --> 00:59:43,270 1873 00:59:43,270 --> 00:59:45,510 1874 00:59:45,510 --> 00:59:46,950 1875 00:59:46,950 --> 00:59:48,390 1876 00:59:48,390 --> 00:59:49,750 1877 00:59:49,750 --> 00:59:51,750 1878 00:59:51,750 --> 00:59:53,510 1879 00:59:53,510 --> 00:59:55,349 1880 00:59:55,349 --> 00:59:56,390 1881 00:59:56,390 --> 00:59:59,190 1882 00:59:59,190 --> 01:00:01,430 1883 01:00:01,430 --> 01:00:04,549 1884 01:00:04,549 --> 01:00:04,559 1885 01:00:04,559 --> 01:00:05,510 1886 01:00:05,510 --> 01:00:06,789 1887 01:00:06,789 --> 01:00:08,710 1888 01:00:08,710 --> 01:00:10,309 1889 01:00:10,309 --> 01:00:12,309 1890 01:00:12,309 --> 01:00:14,789 1891 01:00:14,789 --> 01:00:16,069 1892 01:00:16,069 --> 01:00:18,150 1893 01:00:18,150 --> 01:00:19,349 1894 01:00:19,349 --> 01:00:19,359 1895 01:00:19,359 --> 01:00:20,789 1896 01:00:20,789 --> 01:00:23,109 1897 01:00:23,109 --> 01:00:25,589 1898 01:00:25,589 --> 01:00:27,750 1899 01:00:27,750 --> 01:00:29,750 1900 01:00:29,750 --> 01:00:31,109 1901 01:00:31,109 --> 01:00:34,950 1902 01:00:34,950 --> 01:00:37,109 1903 01:00:37,109 --> 01:00:39,190 1904 01:00:39,190 --> 01:00:41,109 1905 01:00:41,109 --> 01:00:43,270 1906 01:00:43,270 --> 01:00:45,910 1907 01:00:45,910 --> 01:00:48,710 1908 01:00:48,710 --> 01:00:50,630 1909 01:00:50,630 --> 01:00:52,630 1910 01:00:52,630 --> 01:00:55,109 1911 01:00:55,109 --> 01:00:56,630 1912 01:00:56,630 --> 01:00:58,630 1913 01:00:58,630 --> 01:01:00,470 1914 01:01:00,470 --> 01:01:00,480 1915 01:01:00,480 --> 01:01:01,750 1916 01:01:01,750 --> 01:01:01,760 1917 01:01:01,760 --> 01:01:02,630 1918 01:01:02,630 --> 01:01:06,230 1919 01:01:06,230 --> 01:01:08,069 1920 01:01:08,069 --> 01:01:09,430 1921 01:01:09,430 --> 01:01:11,750 1922 01:01:11,750 --> 01:01:13,990 1923 01:01:13,990 --> 01:01:14,000 1924 01:01:14,000 --> 01:01:14,870 1925 01:01:14,870 --> 01:01:16,390 1926 01:01:16,390 --> 01:01:18,470 1927 01:01:18,470 --> 01:01:20,950 1928 01:01:20,950 --> 01:01:23,430 1929 01:01:23,430 --> 01:01:24,630 1930 01:01:24,630 --> 01:01:27,910 1931 01:01:27,910 --> 01:01:27,920 1932 01:01:27,920 --> 01:01:30,549 1933 01:01:30,549 --> 01:01:36,230 1934 01:01:36,230 --> 01:01:37,430 1935 01:01:37,430 --> 01:01:39,750 1936 01:01:39,750 --> 01:01:42,069 1937 01:01:42,069 --> 01:01:43,510 1938 01:01:43,510 --> 01:01:43,520 1939 01:01:43,520 --> 01:01:44,789 1940 01:01:44,789 --> 01:01:46,950 1941 01:01:46,950 --> 01:01:48,390 1942 01:01:48,390 --> 01:01:50,710 1943 01:01:50,710 --> 01:01:52,390 1944 01:01:52,390 --> 01:01:55,589 1945 01:01:55,589 --> 01:01:55,599 1946 01:01:55,599 --> 01:01:58,150 1947 01:01:58,150 --> 01:01:58,160 1948 01:01:58,160 --> 01:01:59,750 1949 01:01:59,750 --> 01:02:02,870 1950 01:02:02,870 --> 01:02:05,670 1951 01:02:05,670 --> 01:02:06,950 1952 01:02:06,950 --> 01:02:09,349 1953 01:02:09,349 --> 01:02:11,990 1954 01:02:11,990 --> 01:02:12,000 1955 01:02:12,000 --> 01:02:14,870 1956 01:02:14,870 --> 01:02:14,880 1957 01:02:14,880 --> 01:02:15,990 1958 01:02:15,990 --> 01:02:17,670 1959 01:02:17,670 --> 01:02:19,990 1960 01:02:19,990 --> 01:02:22,150 1961 01:02:22,150 --> 01:02:23,589 1962 01:02:23,589 --> 01:02:25,029 1963 01:02:25,029 --> 01:02:26,870 1964 01:02:26,870 --> 01:02:28,549 1965 01:02:28,549 --> 01:02:31,829 1966 01:02:31,829 --> 01:02:33,589 1967 01:02:33,589 --> 01:02:33,599 1968 01:02:33,599 --> 01:02:35,029 1969 01:02:35,029 --> 01:02:37,349 1970 01:02:37,349 --> 01:02:40,789 1971 01:02:40,789 --> 01:02:44,150 1972 01:02:44,150 --> 01:02:46,710 1973 01:02:46,710 --> 01:02:49,829 1974 01:02:49,829 --> 01:02:49,839 1975 01:02:49,839 --> 01:02:51,750 1976 01:02:51,750 --> 01:02:55,190 1977 01:02:55,190 --> 01:02:55,200 1978 01:02:55,200 --> 01:02:56,230 1979 01:02:56,230 --> 01:02:58,630 1980 01:02:58,630 --> 01:02:58,640 1981 01:02:58,640 --> 01:03:00,630 1982 01:03:00,630 --> 01:03:01,750 1983 01:03:01,750 --> 01:03:03,589 1984 01:03:03,589 --> 01:03:06,390 1985 01:03:06,390 --> 01:03:10,390 1986 01:03:10,390 --> 01:03:12,789 1987 01:03:12,789 --> 01:03:12,799 1988 01:03:12,799 --> 01:03:13,750 1989 01:03:13,750 --> 01:03:14,829 1990 01:03:14,829 --> 01:03:14,839 1991 01:03:14,839 --> 01:03:16,549 1992 01:03:16,549 --> 01:03:19,910 1993 01:03:19,910 --> 01:03:19,920 1994 01:03:19,920 --> 01:03:21,190 1995 01:03:21,190 --> 01:03:24,069 1996 01:03:24,069 --> 01:03:24,079 1997 01:03:24,079 --> 01:03:25,430 1998 01:03:25,430 --> 01:03:27,430 1999 01:03:27,430 --> 01:03:34,870 2000 01:03:34,870 --> 01:03:37,029 2001 01:03:37,029 --> 01:03:40,549 2002 01:03:40,549 --> 01:03:43,349 2003 01:03:43,349 --> 01:03:45,270 2004 01:03:45,270 --> 01:03:49,029 2005 01:03:49,029 --> 01:03:49,039 2006 01:03:49,039 --> 01:03:50,230 2007 01:03:50,230 --> 01:03:53,270 2008 01:03:53,270 --> 01:03:55,670 2009 01:03:55,670 --> 01:03:57,430 2010 01:03:57,430 --> 01:03:59,750 2011 01:03:59,750 --> 01:04:01,029 2012 01:04:01,029 --> 01:04:03,750 2013 01:04:03,750 --> 01:04:05,430 2014 01:04:05,430 --> 01:04:07,190 2015 01:04:07,190 --> 01:04:08,950 2016 01:04:08,950 --> 01:04:11,270 2017 01:04:11,270 --> 01:04:13,029 2018 01:04:13,029 --> 01:04:15,190 2019 01:04:15,190 --> 01:04:18,789 2020 01:04:18,789 --> 01:04:20,470 2021 01:04:20,470 --> 01:04:23,750 2022 01:04:23,750 --> 01:04:26,710 2023 01:04:26,710 --> 01:04:31,990 2024 01:04:31,990 --> 01:04:33,750 2025 01:04:33,750 --> 01:04:36,230 2026 01:04:36,230 --> 01:04:36,240 2027 01:04:36,240 --> 01:04:37,029 2028 01:04:37,029 --> 01:04:39,109 2029 01:04:39,109 --> 01:04:39,119 2030 01:04:39,119 --> 01:04:42,230 2031 01:04:42,230 --> 01:04:46,069 2032 01:04:46,069 --> 01:04:48,950 2033 01:04:48,950 --> 01:04:51,829 2034 01:04:51,829 --> 01:04:56,069 2035 01:04:56,069 --> 01:04:57,589 2036 01:04:57,589 --> 01:04:59,029 2037 01:04:59,029 --> 01:04:59,039 2038 01:04:59,039 --> 01:05:01,190 2039 01:05:01,190 --> 01:05:03,510 2040 01:05:03,510 --> 01:05:05,190 2041 01:05:05,190 --> 01:05:07,430 2042 01:05:07,430 --> 01:05:09,510 2043 01:05:09,510 --> 01:05:12,390 2044 01:05:12,390 --> 01:05:13,910 2045 01:05:13,910 --> 01:05:15,750 2046 01:05:15,750 --> 01:05:17,990 2047 01:05:17,990 --> 01:05:19,349 2048 01:05:19,349 --> 01:05:19,359 2049 01:05:19,359 --> 01:05:20,870 2050 01:05:20,870 --> 01:05:22,309 2051 01:05:22,309 --> 01:05:26,630 2052 01:05:26,630 --> 01:05:28,630 2053 01:05:28,630 --> 01:05:30,789 2054 01:05:30,789 --> 01:05:33,109 2055 01:05:33,109 --> 01:05:35,270 2056 01:05:35,270 --> 01:05:39,829 2057 01:05:39,829 --> 01:05:41,910 2058 01:05:41,910 --> 01:05:44,710 2059 01:05:44,710 --> 01:05:46,470 2060 01:05:46,470 --> 01:05:49,430 2061 01:05:49,430 --> 01:05:51,029 2062 01:05:51,029 --> 01:05:51,039 2063 01:05:51,039 --> 01:05:52,470 2064 01:05:52,470 --> 01:05:53,510 2065 01:05:53,510 --> 01:05:54,950 2066 01:05:54,950 --> 01:05:56,710 2067 01:05:56,710 --> 01:05:59,910 2068 01:05:59,910 --> 01:06:01,430 2069 01:06:01,430 --> 01:06:13,430 2070 01:06:13,430 --> 01:06:15,349 2071 01:06:15,349 --> 01:06:17,190 2072 01:06:17,190 --> 01:06:18,390 2073 01:06:18,390 --> 01:06:20,069 2074 01:06:20,069 --> 01:06:22,069 2075 01:06:22,069 --> 01:06:24,150 2076 01:06:24,150 --> 01:06:24,160 2077 01:06:24,160 --> 01:06:25,510 2078 01:06:25,510 --> 01:06:28,470 2079 01:06:28,470 --> 01:06:29,829 2080 01:06:29,829 --> 01:06:32,309 2081 01:06:32,309 --> 01:06:34,150 2082 01:06:34,150 --> 01:06:35,670 2083 01:06:35,670 --> 01:06:37,750 2084 01:06:37,750 --> 01:06:37,760 2085 01:06:37,760 --> 01:06:39,510 2086 01:06:39,510 --> 01:06:41,190 2087 01:06:41,190 --> 01:06:42,950 2088 01:06:42,950 --> 01:06:44,870 2089 01:06:44,870 --> 01:06:46,069 2090 01:06:46,069 --> 01:06:47,270 2091 01:06:47,270 --> 01:06:48,710 2092 01:06:48,710 --> 01:06:50,630 2093 01:06:50,630 --> 01:06:53,270 2094 01:06:53,270 --> 01:06:55,190 2095 01:06:55,190 --> 01:06:56,789 2096 01:06:56,789 --> 01:06:58,630 2097 01:06:58,630 --> 01:07:00,950 2098 01:07:00,950 --> 01:07:02,150 2099 01:07:02,150 --> 01:07:04,230 2100 01:07:04,230 --> 01:07:06,150 2101 01:07:06,150 --> 01:07:08,150 2102 01:07:08,150 --> 01:07:12,390 2103 01:07:12,390 --> 01:07:14,789 2104 01:07:14,789 --> 01:07:17,430 2105 01:07:17,430 --> 01:07:19,109 2106 01:07:19,109 --> 01:07:19,119 2107 01:07:19,119 --> 01:07:20,069 2108 01:07:20,069 --> 01:07:23,589 2109 01:07:23,589 --> 01:07:25,270 2110 01:07:25,270 --> 01:07:29,510 2111 01:07:29,510 --> 01:07:29,520 2112 01:07:29,520 --> 01:07:30,160 2113 01:07:30,160 --> 01:07:30,170 2114 01:07:30,170 --> 01:07:34,230 2115 01:07:34,230 --> 01:07:36,630 2116 01:07:36,630 --> 01:07:36,640 2117 01:07:36,640 --> 01:07:38,150 2118 01:07:38,150 --> 01:07:40,069 2119 01:07:40,069 --> 01:07:42,549 2120 01:07:42,549 --> 01:07:44,950 2121 01:07:44,950 --> 01:07:46,630 2122 01:07:46,630 --> 01:07:48,150 2123 01:07:48,150 --> 01:07:48,160 2124 01:07:48,160 --> 01:07:49,109 2125 01:07:49,109 --> 01:07:51,349 2126 01:07:51,349 --> 01:07:54,789 2127 01:07:54,789 --> 01:07:56,630 2128 01:07:56,630 --> 01:08:00,230 2129 01:08:00,230 --> 01:08:01,910 2130 01:08:01,910 --> 01:08:03,190 2131 01:08:03,190 --> 01:08:05,109 2132 01:08:05,109 --> 01:08:07,029 2133 01:08:07,029 --> 01:08:07,039 2134 01:08:07,039 --> 01:08:09,109 2135 01:08:09,109 --> 01:08:12,390 2136 01:08:12,390 --> 01:08:12,400 2137 01:08:12,400 --> 01:08:14,549 2138 01:08:14,549 --> 01:08:16,390 2139 01:08:16,390 --> 01:08:17,749 2140 01:08:17,749 --> 01:08:19,430 2141 01:08:19,430 --> 01:08:20,870 2142 01:08:20,870 --> 01:08:23,349 2143 01:08:23,349 --> 01:08:23,359 2144 01:08:23,359 --> 01:08:25,349 2145 01:08:25,349 --> 01:08:27,910 2146 01:08:27,910 --> 01:08:27,920 2147 01:08:27,920 --> 01:08:29,990 2148 01:08:29,990 --> 01:08:34,229 2149 01:08:34,229 --> 01:08:34,239 2150 01:08:34,239 --> 01:08:38,309 2151 01:08:38,309 --> 01:08:40,789 2152 01:08:40,789 --> 01:08:42,470 2153 01:08:42,470 --> 01:08:43,749 2154 01:08:43,749 --> 01:08:48,070 2155 01:08:48,070 --> 01:08:50,070 2156 01:08:50,070 --> 01:08:50,080 2157 01:08:50,080 --> 01:08:51,030 2158 01:08:51,030 --> 01:08:54,149 2159 01:08:54,149 --> 01:08:56,149 2160 01:08:56,149 --> 01:08:57,829 2161 01:08:57,829 --> 01:08:59,110 2162 01:08:59,110 --> 01:09:01,669 2163 01:09:01,669 --> 01:09:03,590 2164 01:09:03,590 --> 01:09:06,149 2165 01:09:06,149 --> 01:09:08,309 2166 01:09:08,309 --> 01:09:10,070 2167 01:09:10,070 --> 01:09:11,510 2168 01:09:11,510 --> 01:09:15,430 2169 01:09:15,430 --> 01:09:17,189 2170 01:09:17,189 --> 01:09:18,829 2171 01:09:18,829 --> 01:09:22,630 2172 01:09:22,630 --> 01:09:22,640 2173 01:09:22,640 --> 01:09:23,590 2174 01:09:23,590 --> 01:09:25,349 2175 01:09:25,349 --> 01:09:27,189 2176 01:09:27,189 --> 01:09:30,070 2177 01:09:30,070 --> 01:09:31,910 2178 01:09:31,910 --> 01:09:33,349 2179 01:09:33,349 --> 01:09:33,359 2180 01:09:33,359 --> 01:09:37,829 2181 01:09:37,829 --> 01:09:37,839 2182 01:09:37,839 --> 01:09:44,149 2183 01:09:44,149 --> 01:09:45,430 2184 01:09:45,430 --> 01:09:50,390 2185 01:09:50,390 --> 01:09:50,400 2186 01:09:50,400 --> 01:09:51,410 2187 01:09:51,410 --> 01:09:51,420 2188 01:09:51,420 --> 01:09:52,709 2189 01:09:52,709 --> 01:09:54,950 2190 01:09:54,950 --> 01:09:56,550 2191 01:09:56,550 --> 01:09:56,560 2192 01:09:56,560 --> 01:09:59,110 2193 01:09:59,110 --> 01:10:00,709 2194 01:10:00,709 --> 01:10:02,790 2195 01:10:02,790 --> 01:10:05,110 2196 01:10:05,110 --> 01:10:06,630 2197 01:10:06,630 --> 01:10:06,640 2198 01:10:06,640 --> 01:10:08,070 2199 01:10:08,070 --> 01:10:09,750 2200 01:10:09,750 --> 01:10:11,590 2201 01:10:11,590 --> 01:10:14,229 2202 01:10:14,229 --> 01:10:15,830 2203 01:10:15,830 --> 01:10:15,840 2204 01:10:15,840 --> 01:10:18,709 2205 01:10:18,709 --> 01:10:21,030 2206 01:10:21,030 --> 01:10:23,669 2207 01:10:23,669 --> 01:10:26,790 2208 01:10:26,790 --> 01:10:28,310 2209 01:10:28,310 --> 01:10:29,750 2210 01:10:29,750 --> 01:10:31,830 2211 01:10:31,830 --> 01:10:34,070 2212 01:10:34,070 --> 01:10:34,080 2213 01:10:34,080 --> 01:10:34,950 2214 01:10:34,950 --> 01:10:38,790 2215 01:10:38,790 --> 01:10:38,800 2216 01:10:38,800 --> 01:10:40,709 2217 01:10:40,709 --> 01:10:42,550 2218 01:10:42,550 --> 01:10:45,030 2219 01:10:45,030 --> 01:10:45,040 2220 01:10:45,040 --> 01:10:46,310 2221 01:10:46,310 --> 01:10:48,310 2222 01:10:48,310 --> 01:10:49,990 2223 01:10:49,990 --> 01:10:51,830 2224 01:10:51,830 --> 01:10:53,830 2225 01:10:53,830 --> 01:10:55,430 2226 01:10:55,430 --> 01:10:57,830 2227 01:10:57,830 --> 01:10:59,510 2228 01:10:59,510 --> 01:11:01,669 2229 01:11:01,669 --> 01:11:01,679 2230 01:11:01,679 --> 01:11:02,709 2231 01:11:02,709 --> 01:11:04,950 2232 01:11:04,950 --> 01:11:07,669 2233 01:11:07,669 --> 01:11:09,590 2234 01:11:09,590 --> 01:11:12,229 2235 01:11:12,229 --> 01:11:14,310 2236 01:11:14,310 --> 01:11:20,149 2237 01:11:20,149 --> 01:11:23,270 2238 01:11:23,270 --> 01:11:25,270 2239 01:11:25,270 --> 01:11:27,430 2240 01:11:27,430 --> 01:11:29,669 2241 01:11:29,669 --> 01:11:32,070 2242 01:11:32,070 --> 01:11:32,080 2243 01:11:32,080 --> 01:11:33,189 2244 01:11:33,189 --> 01:11:34,870 2245 01:11:34,870 --> 01:11:34,880 2246 01:11:34,880 --> 01:11:36,630 2247 01:11:36,630 --> 01:11:38,950 2248 01:11:38,950 --> 01:11:41,110 2249 01:11:41,110 --> 01:11:44,550 2250 01:11:44,550 --> 01:11:47,110 2251 01:11:47,110 --> 01:11:53,669 2252 01:11:53,669 --> 01:11:54,870 2253 01:11:54,870 --> 01:11:57,110 2254 01:11:57,110 --> 01:11:59,110 2255 01:11:59,110 --> 01:12:00,550 2256 01:12:00,550 --> 01:12:01,830 2257 01:12:01,830 --> 01:12:03,510 2258 01:12:03,510 --> 01:12:03,520 2259 01:12:03,520 --> 01:12:04,709 2260 01:12:04,709 --> 01:12:07,270 2261 01:12:07,270 --> 01:12:12,630 2262 01:12:12,630 --> 01:12:14,390 2263 01:12:14,390 --> 01:12:16,870 2264 01:12:16,870 --> 01:12:19,590 2265 01:12:19,590 --> 01:12:21,110 2266 01:12:21,110 --> 01:12:22,790 2267 01:12:22,790 --> 01:12:24,229 2268 01:12:24,229 --> 01:12:26,550 2269 01:12:26,550 --> 01:12:28,229 2270 01:12:28,229 --> 01:12:29,669 2271 01:12:29,669 --> 01:12:31,350 2272 01:12:31,350 --> 01:12:33,270 2273 01:12:33,270 --> 01:12:33,280 2274 01:12:33,280 --> 01:12:34,310 2275 01:12:34,310 --> 01:12:36,149 2276 01:12:36,149 --> 01:12:37,669 2277 01:12:37,669 --> 01:12:39,030 2278 01:12:39,030 --> 01:12:41,590 2279 01:12:41,590 --> 01:12:44,950 2280 01:12:44,950 --> 01:12:47,110 2281 01:12:47,110 --> 01:12:49,430 2282 01:12:49,430 --> 01:12:51,830 2283 01:12:51,830 --> 01:12:54,870 2284 01:12:54,870 --> 01:12:57,350 2285 01:12:57,350 --> 01:12:59,830 2286 01:12:59,830 --> 01:13:02,070 2287 01:13:02,070 --> 01:13:04,310 2288 01:13:04,310 --> 01:13:07,189 2289 01:13:07,189 --> 01:13:11,350 2290 01:13:11,350 --> 01:13:15,110 2291 01:13:15,110 --> 01:13:17,510 2292 01:13:17,510 --> 01:13:19,669 2293 01:13:19,669 --> 01:13:21,830 2294 01:13:21,830 --> 01:13:24,149 2295 01:13:24,149 --> 01:13:24,159 2296 01:13:24,159 --> 01:13:25,430 2297 01:13:25,430 --> 01:13:27,830 2298 01:13:27,830 --> 01:13:29,430 2299 01:13:29,430 --> 01:13:31,510 2300 01:13:31,510 --> 01:13:32,790 2301 01:13:32,790 --> 01:13:34,550 2302 01:13:34,550 --> 01:13:35,669 2303 01:13:35,669 --> 01:13:37,430 2304 01:13:37,430 --> 01:13:40,070 2305 01:13:40,070 --> 01:13:42,390 2306 01:13:42,390 --> 01:13:42,400 2307 01:13:42,400 --> 01:13:43,910 2308 01:13:43,910 --> 01:13:45,270 2309 01:13:45,270 --> 01:13:45,280 2310 01:13:45,280 --> 01:13:46,390 2311 01:13:46,390 --> 01:13:48,310 2312 01:13:48,310 --> 01:13:48,320 2313 01:13:48,320 --> 01:13:49,189 2314 01:13:49,189 --> 01:13:50,950 2315 01:13:50,950 --> 01:13:50,960 2316 01:13:50,960 --> 01:13:51,530 2317 01:13:51,530 --> 01:13:51,540 2318 01:13:51,540 --> 01:13:54,229 2319 01:13:54,229 --> 01:13:54,239 2320 01:13:54,239 --> 01:13:55,830 2321 01:13:55,830 --> 01:13:57,110 2322 01:13:57,110 --> 01:14:01,430 2323 01:14:01,430 --> 01:14:01,440 2324 01:14:01,440 --> 01:14:02,550 2325 01:14:02,550 --> 01:14:04,630 2326 01:14:04,630 --> 01:14:06,630 2327 01:14:06,630 --> 01:14:08,470 2328 01:14:08,470 --> 01:14:10,870 2329 01:14:10,870 --> 01:14:10,880 2330 01:14:10,880 --> 01:14:11,990 2331 01:14:11,990 --> 01:14:13,510 2332 01:14:13,510 --> 01:14:15,350 2333 01:14:15,350 --> 01:14:16,790 2334 01:14:16,790 --> 01:14:18,950 2335 01:14:18,950 --> 01:14:20,950 2336 01:14:20,950 --> 01:14:20,960 2337 01:14:20,960 --> 01:14:23,030 2338 01:14:23,030 --> 01:14:26,229 2339 01:14:26,229 --> 01:14:28,709 2340 01:14:28,709 --> 01:14:30,390 2341 01:14:30,390 --> 01:14:31,590 2342 01:14:31,590 --> 01:14:33,990 2343 01:14:33,990 --> 01:14:34,000 2344 01:14:34,000 --> 01:14:34,950 2345 01:14:34,950 --> 01:14:34,960 2346 01:14:34,960 --> 01:14:36,070 2347 01:14:36,070 --> 01:14:37,590 2348 01:14:37,590 --> 01:14:39,270 2349 01:14:39,270 --> 01:14:40,709 2350 01:14:40,709 --> 01:14:42,550 2351 01:14:42,550 --> 01:14:44,870 2352 01:14:44,870 --> 01:14:46,390 2353 01:14:46,390 --> 01:14:48,709 2354 01:14:48,709 --> 01:14:48,719 2355 01:14:48,719 --> 01:14:49,669 2356 01:14:49,669 --> 01:14:52,790 2357 01:14:52,790 --> 01:14:57,430 2358 01:14:57,430 --> 01:14:59,030 2359 01:14:59,030 --> 01:15:00,550 2360 01:15:00,550 --> 01:15:00,560 2361 01:15:00,560 --> 01:15:03,270 2362 01:15:03,270 --> 01:15:07,590 2363 01:15:07,590 --> 01:15:10,070 2364 01:15:10,070 --> 01:15:10,080 2365 01:15:10,080 --> 01:15:11,270 2366 01:15:11,270 --> 01:15:13,030 2367 01:15:13,030 --> 01:15:15,110 2368 01:15:15,110 --> 01:15:16,550 2369 01:15:16,550 --> 01:15:17,750 2370 01:15:17,750 --> 01:15:20,470 2371 01:15:20,470 --> 01:15:22,149 2372 01:15:22,149 --> 01:15:24,390 2373 01:15:24,390 --> 01:15:26,310 2374 01:15:26,310 --> 01:15:26,320 2375 01:15:26,320 --> 01:15:28,229 2376 01:15:28,229 --> 01:15:31,189 2377 01:15:31,189 --> 01:15:33,430 2378 01:15:33,430 --> 01:15:35,350 2379 01:15:35,350 --> 01:15:37,510 2380 01:15:37,510 --> 01:15:39,110 2381 01:15:39,110 --> 01:15:40,950 2382 01:15:40,950 --> 01:15:42,950 2383 01:15:42,950 --> 01:15:47,030 2384 01:15:47,030 --> 01:15:49,750 2385 01:15:49,750 --> 01:15:51,910 2386 01:15:51,910 --> 01:15:53,270 2387 01:15:53,270 --> 01:15:55,030 2388 01:15:55,030 --> 01:15:57,189 2389 01:15:57,189 --> 01:15:57,199 2390 01:15:57,199 --> 01:15:58,709 2391 01:15:58,709 --> 01:16:01,510 2392 01:16:01,510 --> 01:16:03,189 2393 01:16:03,189 --> 01:16:06,550 2394 01:16:06,550 --> 01:16:08,550 2395 01:16:08,550 --> 01:16:10,870 2396 01:16:10,870 --> 01:16:10,880 2397 01:16:10,880 --> 01:16:11,830 2398 01:16:11,830 --> 01:16:16,550 2399 01:16:16,550 --> 01:16:17,990 2400 01:16:17,990 --> 01:16:19,669 2401 01:16:19,669 --> 01:16:21,990 2402 01:16:21,990 --> 01:16:23,590 2403 01:16:23,590 --> 01:16:25,669 2404 01:16:25,669 --> 01:16:28,790 2405 01:16:28,790 --> 01:16:30,470 2406 01:16:30,470 --> 01:16:32,470 2407 01:16:32,470 --> 01:16:33,910 2408 01:16:33,910 --> 01:16:37,189 2409 01:16:37,189 --> 01:16:37,199 2410 01:16:37,199 --> 01:16:39,510 2411 01:16:39,510 --> 01:16:41,510 2412 01:16:41,510 --> 01:16:43,110 2413 01:16:43,110 --> 01:16:46,229 2414 01:16:46,229 --> 01:16:47,830 2415 01:16:47,830 --> 01:16:48,870 2416 01:16:48,870 --> 01:16:50,070 2417 01:16:50,070 --> 01:16:51,990 2418 01:16:51,990 --> 01:16:52,000 2419 01:16:52,000 --> 01:16:53,590 2420 01:16:53,590 --> 01:16:57,430 2421 01:16:57,430 --> 01:16:57,440 2422 01:16:57,440 --> 01:16:58,709 2423 01:16:58,709 --> 01:17:00,310 2424 01:17:00,310 --> 01:17:00,320 2425 01:17:00,320 --> 01:17:02,709 2426 01:17:02,709 --> 01:17:05,110 2427 01:17:05,110 --> 01:17:05,120 2428 01:17:05,120 --> 01:17:08,070 2429 01:17:08,070 --> 01:17:11,430 2430 01:17:11,430 --> 01:17:13,910 2431 01:17:13,910 --> 01:17:15,910 2432 01:17:15,910 --> 01:17:17,990 2433 01:17:17,990 --> 01:17:20,070 2434 01:17:20,070 --> 01:17:20,080 2435 01:17:20,080 --> 01:17:21,750 2436 01:17:21,750 --> 01:17:21,760 2437 01:17:21,760 --> 01:17:23,990 2438 01:17:23,990 --> 01:17:25,910 2439 01:17:25,910 --> 01:17:28,630 2440 01:17:28,630 --> 01:17:30,390 2441 01:17:30,390 --> 01:17:30,400 2442 01:17:30,400 --> 01:17:33,990 2443 01:17:33,990 --> 01:17:36,550 2444 01:17:36,550 --> 01:17:36,560 2445 01:17:36,560 --> 01:17:37,430 2446 01:17:37,430 --> 01:17:39,189 2447 01:17:39,189 --> 01:17:41,350 2448 01:17:41,350 --> 01:17:41,360 2449 01:17:41,360 --> 01:17:42,709 2450 01:17:42,709 --> 01:17:44,070 2451 01:17:44,070 --> 01:17:45,990 2452 01:17:45,990 --> 01:17:46,000 2453 01:17:46,000 --> 01:17:46,709 2454 01:17:46,709 --> 01:17:48,790 2455 01:17:48,790 --> 01:17:50,550 2456 01:17:50,550 --> 01:17:52,390 2457 01:17:52,390 --> 01:17:53,990 2458 01:17:53,990 --> 01:17:55,750 2459 01:17:55,750 --> 01:17:57,830 2460 01:17:57,830 --> 01:18:01,430 2461 01:18:01,430 --> 01:18:03,590 2462 01:18:03,590 --> 01:18:06,470 2463 01:18:06,470 --> 01:18:08,470 2464 01:18:08,470 --> 01:18:10,229 2465 01:18:10,229 --> 01:18:11,990 2466 01:18:11,990 --> 01:18:12,000 2467 01:18:12,000 --> 01:18:13,910 2468 01:18:13,910 --> 01:18:16,470 2469 01:18:16,470 --> 01:18:16,480 2470 01:18:16,480 --> 01:18:17,750 2471 01:18:17,750 --> 01:18:20,870 2472 01:18:20,870 --> 01:18:20,880 2473 01:18:20,880 --> 01:18:21,750 2474 01:18:21,750 --> 01:18:23,030 2475 01:18:23,030 --> 01:18:25,110 2476 01:18:25,110 --> 01:18:26,709 2477 01:18:26,709 --> 01:18:28,390 2478 01:18:28,390 --> 01:18:30,630 2479 01:18:30,630 --> 01:18:31,910 2480 01:18:31,910 --> 01:18:33,510 2481 01:18:33,510 --> 01:18:35,750 2482 01:18:35,750 --> 01:18:40,149 2483 01:18:40,149 --> 01:18:40,159 2484 01:18:40,159 --> 01:18:42,149 2485 01:18:42,149 --> 01:18:43,510 2486 01:18:43,510 --> 01:18:46,310 2487 01:18:46,310 --> 01:18:49,990 2488 01:18:49,990 --> 01:18:51,750 2489 01:18:51,750 --> 01:18:53,590 2490 01:18:53,590 --> 01:18:53,600 2491 01:18:53,600 --> 01:18:54,950 2492 01:18:54,950 --> 01:18:58,149 2493 01:18:58,149 --> 01:19:01,830 2494 01:19:01,830 --> 01:19:01,840 2495 01:19:01,840 --> 01:19:03,910 2496 01:19:03,910 --> 01:19:05,110 2497 01:19:05,110 --> 01:19:07,510 2498 01:19:07,510 --> 01:19:08,709 2499 01:19:08,709 --> 01:19:09,910 2500 01:19:09,910 --> 01:19:09,920 2501 01:19:09,920 --> 01:19:11,110 2502 01:19:11,110 --> 01:19:14,070 2503 01:19:14,070 --> 01:19:16,310 2504 01:19:16,310 --> 01:19:17,430 2505 01:19:17,430 --> 01:19:19,510 2506 01:19:19,510 --> 01:19:19,520 2507 01:19:19,520 --> 01:19:21,030 2508 01:19:21,030 --> 01:19:24,470 2509 01:19:24,470 --> 01:19:26,390 2510 01:19:26,390 --> 01:19:29,030 2511 01:19:29,030 --> 01:19:31,910 2512 01:19:31,910 --> 01:19:34,310 2513 01:19:34,310 --> 01:19:34,320 2514 01:19:34,320 --> 01:19:35,189 2515 01:19:35,189 --> 01:19:38,070 2516 01:19:38,070 --> 01:19:39,910 2517 01:19:39,910 --> 01:19:41,510 2518 01:19:41,510 --> 01:19:44,630 2519 01:19:44,630 --> 01:19:45,830 2520 01:19:45,830 --> 01:19:47,750 2521 01:19:47,750 --> 01:19:50,630 2522 01:19:50,630 --> 01:19:52,470 2523 01:19:52,470 --> 01:19:53,830 2524 01:19:53,830 --> 01:19:55,750 2525 01:19:55,750 --> 01:19:55,760 2526 01:19:55,760 --> 01:19:56,630 2527 01:19:56,630 --> 01:19:58,070 2528 01:19:58,070 --> 01:19:59,750 2529 01:19:59,750 --> 01:20:01,430 2530 01:20:01,430 --> 01:20:03,030 2531 01:20:03,030 --> 01:20:05,030 2532 01:20:05,030 --> 01:20:07,189 2533 01:20:07,189 --> 01:20:09,350 2534 01:20:09,350 --> 01:20:10,790 2535 01:20:10,790 --> 01:20:12,629 2536 01:20:12,629 --> 01:20:14,950 2537 01:20:14,950 --> 01:20:17,110 2538 01:20:17,110 --> 01:20:19,430 2539 01:20:19,430 --> 01:20:21,590 2540 01:20:21,590 --> 01:20:24,149 2541 01:20:24,149 --> 01:20:26,950 2542 01:20:26,950 --> 01:20:28,950 2543 01:20:28,950 --> 01:20:31,350 2544 01:20:31,350 --> 01:20:31,360 2545 01:20:31,360 --> 01:20:34,709 2546 01:20:34,709 --> 01:20:36,950 2547 01:20:36,950 --> 01:20:38,629 2548 01:20:38,629 --> 01:20:40,229 2549 01:20:40,229 --> 01:20:41,990 2550 01:20:41,990 --> 01:20:43,990 2551 01:20:43,990 --> 01:20:45,189 2552 01:20:45,189 --> 01:20:47,590 2553 01:20:47,590 --> 01:20:47,600 2554 01:20:47,600 --> 01:20:48,470 2555 01:20:48,470 --> 01:20:49,750 2556 01:20:49,750 --> 01:20:51,669 2557 01:20:51,669 --> 01:20:53,270 2558 01:20:53,270 --> 01:20:54,870 2559 01:20:54,870 --> 01:20:56,550 2560 01:20:56,550 --> 01:20:58,310 2561 01:20:58,310 --> 01:21:01,270 2562 01:21:01,270 --> 01:21:01,280 2563 01:21:01,280 --> 01:21:05,270 2564 01:21:05,270 --> 01:21:05,280 2565 01:21:05,280 --> 01:21:06,390 2566 01:21:06,390 --> 01:21:07,669 2567 01:21:07,669 --> 01:21:10,470 2568 01:21:10,470 --> 01:21:10,480 2569 01:21:10,480 --> 01:21:14,390 2570 01:21:14,390 --> 01:21:15,910 2571 01:21:15,910 --> 01:21:18,070 2572 01:21:18,070 --> 01:21:19,590 2573 01:21:19,590 --> 01:21:23,110 2574 01:21:23,110 --> 01:21:25,270 2575 01:21:25,270 --> 01:21:25,280 2576 01:21:25,280 --> 01:21:26,550 2577 01:21:26,550 --> 01:21:27,910 2578 01:21:27,910 --> 01:21:29,350 2579 01:21:29,350 --> 01:21:29,360 2580 01:21:29,360 --> 01:21:32,790 2581 01:21:32,790 --> 01:21:35,030 2582 01:21:35,030 --> 01:21:36,229 2583 01:21:36,229 --> 01:21:36,239 2584 01:21:36,239 --> 01:21:37,590 2585 01:21:37,590 --> 01:21:37,600 2586 01:21:37,600 --> 01:21:41,189 2587 01:21:41,189 --> 01:21:42,870 2588 01:21:42,870 --> 01:21:44,310 2589 01:21:44,310 --> 01:21:46,070 2590 01:21:46,070 --> 01:21:47,189 2591 01:21:47,189 --> 01:21:50,070 2592 01:21:50,070 --> 01:21:51,830 2593 01:21:51,830 --> 01:21:55,270 2594 01:21:55,270 --> 01:21:56,390 2595 01:21:56,390 --> 01:21:57,750 2596 01:21:57,750 --> 01:21:58,790 2597 01:21:58,790 --> 01:22:00,790 2598 01:22:00,790 --> 01:22:03,270 2599 01:22:03,270 --> 01:22:04,709 2600 01:22:04,709 --> 01:22:04,719 2601 01:22:04,719 --> 01:22:06,310 2602 01:22:06,310 --> 01:22:06,320 2603 01:22:06,320 --> 01:22:10,070 2604 01:22:10,070 --> 01:22:10,080 2605 01:22:10,080 --> 01:22:12,950 2606 01:22:12,950 --> 01:22:14,870 2607 01:22:14,870 --> 01:22:18,070 2608 01:22:18,070 --> 01:22:20,149 2609 01:22:20,149 --> 01:22:22,149 2610 01:22:22,149 --> 01:22:24,709 2611 01:22:24,709 --> 01:22:26,310 2612 01:22:26,310 --> 01:22:28,870 2613 01:22:28,870 --> 01:22:30,870 2614 01:22:30,870 --> 01:22:30,880 2615 01:22:30,880 --> 01:22:32,229 2616 01:22:32,229 --> 01:22:34,629 2617 01:22:34,629 --> 01:22:34,639 2618 01:22:34,639 --> 01:22:35,669 2619 01:22:35,669 --> 01:22:35,679 2620 01:22:35,679 --> 01:22:36,470 2621 01:22:36,470 --> 01:22:36,480 2622 01:22:36,480 --> 01:22:37,189 2623 01:22:37,189 --> 01:22:40,629 2624 01:22:40,629 --> 01:22:43,030 2625 01:22:43,030 --> 01:22:45,350 2626 01:22:45,350 --> 01:22:45,360 2627 01:22:45,360 --> 01:22:46,950 2628 01:22:46,950 --> 01:22:49,030 2629 01:22:49,030 --> 01:22:50,950 2630 01:22:50,950 --> 01:22:53,910 2631 01:22:53,910 --> 01:22:56,390 2632 01:22:56,390 --> 01:22:58,470 2633 01:22:58,470 --> 01:23:01,030 2634 01:23:01,030 --> 01:23:15,350 2635 01:23:15,350 --> 01:23:15,360 2636 01:23:15,360 --> 01:23:17,440