1 00:00:02,510 --> 00:00:05,650 alright so lecture 13 was about a lot of things we had algorithms for the Carpenters rule theorem we had three of those see there's the CDR stray new pseudo triangulations which we're going to talk about a bunch today there's the energy method which we'll talk about a little bit then there was locked trees I'll give you there's one new result in lock trees i'll tell you about and then we had the last topic which was she oh right last topic for today is four dimensions which wasn't covered in class at what we did talk about in class was 3d essentially no updates there all the open problems are still open fairly challenging but 40 we didn't get to talk about it all and that's not too hard how to unfold any 4d chain so that'll be fun also 5d chains okay and 60 and 70 but not eight now any any dimension first question for today is why do we care so much about expansiveness and this is mostly will say I want to reference next lecture which will use expansiveness but indeed the the original point of expansiveness was just a convenient way to ensure self intersection essentially before the idea of expansiveness we had this idea of a really complicated channel it's not very complicated but for the Carpenters rule problem we had this idea that well how do we distinguish between a linkage that is locked within epsilon I mean however you draw it if it's if it's not self touching it's going to jiggle a little bit versus something that can eventually unfold and there was no good way to distinguish between just jiggling a little bit and unfolding all the way which was frustrating and expansiveness gave us a way to guarantee that not only did it avoid self intersection which is nice if you expand who don't self intersect but it also gave away that things would actually be rigid if it was impossible to do and so you couldn't move at all that reduced it to a rigidity theory problem or really a tense a gritty theory problem which was kind of what this problem needed it's why it was open for 25 years before before we could prove it with tenseiga at ease so that's one answer but in fact now that we know expansive motions exist they're really handy they let us prove that the energy method worked for one and next class we're going to use them to add thickness to our edges add polygons or regions attached to every edge and if you have an expansive motion it turns out under certain conditions this thing will still work whereas with non expansive motions like those produced by the energy method it won't work in general so initially was convenience but it turns out to be handy mathematically to we will we've seen one example just proving the energy method that's actually our next topic we will see another next lecture so the but a few people asked about the proof of the energy method so I wanted to review it how do we know we don't get stuck in a local minimum so this is a question to ask if you're familiar with gradient descent if not here's the kind of picture imagine you have some energy landscape in reality this is a surface drawn over n times D dimensions but I will assume n times d equals 1 because I can draw it so here's configurations and then on the x-axis or in general all the other axes and then the y-axis which will always be one thing is the energy function so sometimes energy is high at some points it's going to actually shoot off to infinity that's where you'd self intersect remember the energy function was sum over all edges VW sum over all vertices you won over the distance between you and VW so when a distance goes to zero the energy shoots to infinity those are the points we want to avoid so those are bad things but if we start at some non self intersecting configuration will have some finite energy and the idea is well if we follow the the negative gradient that will decrease energy as fast as possible and from here it's going to basically follow this trajectory and it would get stuck in this little well this is called a local minimum but this local minimum might be lower and so the worry is that it depends where you start if I start over here I'll fall down there but if I start in this kind of well I'll end up at this kind of accumulation point and what I really want is maybe some kind of global mental energy minima that's the usual issue with gradient descent is why people don't like to use gradient descent sometimes because it gets stuck however I Jason however with the this particular setting we actually proved that the energy method does not get stuck in a local minimum and I'll just review that proof because it went by quickly in lecture so the idea in our setting is we know that we know the Carpenters rule theorem Carpenters rule theorem tells us that any configuration where we're not done and I'll start just by thinking about a single chain maybe an open chain or a closed chain any chain that is not already straight or convex not only can be unfolded but has an expansive motion to unfolding expensive motion tells us that if we look at any distance between a vertex and an edge this increases that's not how we define expensive we defined it between every pair of vertices but it turns out if you have this is actually something we needed for a non self intersection you have a vertex on an edge and you know that that well this edges stays fixed length because it's a bar we know that these distances increase and this distance increases by expansiveness then in fact this point must go away from this bar you can draw an ellipse if you held these fixed it would move along an ellipse or held the some fixed but you've got to go outside that ellipse this guy's got to get farther away from every every vertex has to get farther away from every bar if the pairwise vertex vertex distances increase so if you take this expanse of motion you know that it is an energy decreasing motion so what that tells you is that any configuration that's not already straighter convex has an energy decreasing motion so this tells you you never get stuck on a local minimum because what's a local minimum in one dimension it's a place where you cannot go down from here and those are the places we're worried about and the claim is the only places where you don't have a downhill motion our places where you don't have expansive motions and if and therefore the configuration must already be straight and convex straight or convex and then you're done so you don't have to worry about getting stuck with energy method there is one tricky part which is if you have a chain if you have a linkage that consists of multiple pieces if you have some open chain some clothes chains you can have some guys stuck in here they won't necessarily straighten out but there's a couple kinds of things you could do you can unfold this chain you can unfold this chain or you could just let them fly away from each other all of those things will decrease energy and so the worry here would be that these two linkages fly apart and never really unfold locally that would be bad for us because you know we're always decreasing energy there's always a decreasing flow but we may not actually finish we might not finally make this our goal in this case remember is to make it outer convex meaning that all the outermost chains are straight all the outermost polygons become convex so we want to argue this and i'm just going to sketch the proof here essentially if when you have multiple once they are very very very far away their contribution to energy just by all the pairwise distances across between two components will be very very tiny and the claim is actually the energy method won't get you all the way to an outer convex configuration but it will get you within some epsilon of outer convex you get to choose whatever epsilon you want and so when these guys are far enough away their contribution to energy is much less than epsilon once they're like N squared divided by epsilon away or something this really they're the contribution between them will be far less than epsilon so what really matters in energy is the all the distances inside the the linkages inside the components and we're following the gradient motion which decreases energy as fast as possible and so you can prove that it's better if you want to decrease energy as fast as possible it's better at some point to unfold the pieces not to just let them continue flying apart so waving my hands a little bit there but if you know that you're at least epsilon away from being done then the energy will be fairly high within the components and therefore you it's worth unfolding the components but it's especially clear for one people one component all right any questions about that that's why the energy method works the next set of topics is related to pointed pseudo triangulations which are indeed very cool there's dozens of papers about them they've spawned their whole little sub field of computational geometry we touched on them a little bit in lecture but there's a lot more to say about it in particular why they even work for the Carpenters rule problem I didn't make clear but I would like to so a couple things about them they're actually originally invented in 1994 or the first used I guess in 1994 at this point they were called geodesic triangulations for a particular reason and so for the Carpenters real problem we had a polygon and then we pseudo triangulated the inside and the outside of the polygon here we're just a pseudo triangulating the inside and that's setting they're called geodesic triangulations and it's for a particular data structures problem actually this is it some sometimes covered in 6851 which is advanced data structures you can check out online so if you the goal is to decompose this polygon in a kind of balanced way so first you choose a suit of triangles kind of most in the middle of the polygon then you recurse on the sides actually I guess number one is this one and if you do this it turns out if you want to walk from any point in this polygon to any other point in the polygon you only visit log and pseudo triangles which is a nice small number and this is a particular problem called ray shooting where you imagine you have like a laser to shoot in some direction the polygon you want to know when it exits the polygon when it hits the boundary and where it hits and to do that one way to do that is to walk through the pieces here the pseudo triangles if you only have to walk through log n of them turns out walking through a single triangle only takes log n time total amount of time is log squared n so this is a pretty good way to do ray shooting in polygons which is nice so that's where they originally come from but they weren't used very much until until later so let me tell you some nice properties about them Suter triangulation has 2n minus 3 edges and n minus 2 pseudo triangles always if you draw i should say if you drive pointed pseudo triangulation remember pointed means at every vertex of the suit of triangulation you have some angle which is you have a reflex angle bigger than 180 this is the pointed property sudo triangles mean that all the faces look like this they only have three convex vertices all the other vertices are reflex so this is pseudo triangle pointed pseudo triangulation has both of these properties and it's pretty easy to prove this by induction I won't go through the proof here it's interesting in the way that it is different from triangulations so n here is the number of points and I'm thinking about pointed pseudo triangulations of the point set meaning I take some points and I add edges until I can't anymore subject to the pointed property so I add this edge I'm still pointed I add this edge I'm still pointed I add this edge I'm still pointed can't add this edge can't really add that edge let's see I can add this one and this one and this one anymore at this one and now i'm done i can tell that i'm done because at this point all of the faces are pseudo triangles hf three convex vertices and as soon as you have that all the faces are pseudo triangles you can show that you can't adding will add any more edges while still being pointed i'm still pointed because i only added edges that preserve pointed pneus and this is a sort of greedy algorithm to construct point a suitor triangulation is it always works and we can count the number of edges I won't bother but it will always be 2 n minus 3 cool by contrast if you look at regular triangulations so a triangulation would go all the way to the point where every face is a triangle like this and in that case they have more edges obviously in general they will have here it's two more edges because there are two interior vertices so in general b to n minus 3 plus I edges for a triangulation or I is the number of interior points and it will have n minus 2 plus I faces triangles yeah so that's the pseudo triangulations are quite minimal in the number of edges in particular they're minimally generically rigid right this is the number of edges I want for a nice rigid structure to n minus 3 is what I should have and indeed pointed Souter triangulations are minimally generically rigid that's the next thing minimally generically rigid this was the Lamont condition and we saw a couple characterisations but in particular you can fairly easily prove that they satisfied the Lamont condition why well first thing to check is they have 2n minus three edges that I just claimed second thing to check is that if I look at any subset of the vertices k of the vertices they should only have at most 2k minus 3 edges among them they should induce at most 2k minus 3 edges well let's look at any K vertices what are the edges that they induce well the thing I know about them is that they will induce I pointed set of edges because this structure without the blue edges is pointed if i remove edges from it it will still be pointed right if you have a big angle you will continue to have a big angle if you remove edges from it so matter which subset of edges i look at in particular induce sub set it will still be pointed if i have a pointed set of edges on some k vertices i can use that greedy algorithm to finish the pseudo triangulation once if as long as you're pointed you can add edges until you can't add a jizz subject to the pointed constraint at all times preserving pointed pneus this is what I did to generate this triangulation the first place if I take some subset of K vertices I can do it again on those K vertices when I'm finished I will have a pseudo triangulation and that has 2n minus three edges in this case 2 K minus 3 edges so I started with some pointed set of edges i added stuff i ended up with 2k minus 3 that means i started with at most 2k minus 3 edges to k minus 3 and so that's how you prove the lemond condition is kind of trivial because pointed pneus is an inherited property so if you believe in 2n minus 3 then you believe minimally generically rigid cool even cooler is that the converse is roughly true some sense all lemond graphs can be drawn as pseudo triangulations it's one catch which is that you need plain arity any plainer lemond graph has a pseudo triangulation as a realization realization was just a way to draw the graph in 2d now Souter triangulations are planar meaning none of the edges cross each other so you definitely need a graph that can be drawn in the plane without crossings that's the planar constraint but if you have a planar minimally generically rigid graph you can always draw it as a suit of triangulation so it's kind of a converse of this theorem and a sense in which suit of triangle ations are universal for planar minimal generic rigidity which is pretty neat I will not prove that theorem but I will give you a sense of our visual sense of what the proof looks like it's based on the henneberg construction so we know minimally generically rigid graphs can always be drawn in a henneberg way either by adding new degree two vertices or by adding new degree three vertices and removing one of the existing edges and the claim is you take any Henneberg construction you can do it you can implement it in a pseudo triangulation so you start up with you know your single edge that's the suitor triangulation you keep adding things preserving the fact that is it at all times is a pointed pseudo triangulation it's tricky but for example if you know that you want to add this red vertex next to these two you find a place that will guarantee that this is a suitor triangle this is the suit of triangle it will be pointed for free because it's just a degree to vertex so the challenge is preserving pseudo triangles and same for adding the degree three vertex this is harder of course but you need to you find a little patch here where if you choose the point in there you get suit of triangles on all three sides and also that removing the edge still preserve sort of triangulation it's definitely not trivial to do this but it can be done it's kind of neat that it can be done for any Henneberg construction cool the last thing I wanted to tell you about sudo triangulations is why they work from the Carpenters rule theorem why do they give expansive motions well they're rigid of course they don't give you any motions but what we claimed is that if you remove a convex hull edge so if we take a pointed pseudo triangulation and then we remove a convex hull edge we of course get something that's flexible because we were minimally generically rigid so if you remove an edge you will now be generically flexible it turns out you're not only generically flexible you are actually flexible for at least a little bit of time so appointed suit of triangulation minus convex hull edge it's not only as flexible but it flexes expansively meaning if you look at all pairwise distances expansively look at all pairwise distances they either stay the same they're connected by a bar or they will increase and this is what we wanted for Carpenters rule you can do that motion for a little while then you might have to switch to a different suit of triangulation according to a flip which I won't talk about we already did in lecture but at all times the claim is there is an expansive suitor triangulation motion by removing a single edge so why does this hold this it turns out you can prove using things similar to what we know from the our proof of the Carpenters rule theorem that we covered so it's kind of neat to see the connection between the two so why is this true well we already argued that the thing is flexible without the expansiveness constraint so we want to add the expansiveness constraint so just like before we're going to add all pairwise struts so between all pairs of vertices that say they're not already connected by a bar we add a strep between them meeting that can only increase in length now we have a 10 security we want to argue that tensor gritty is infinitesimally flexible so we're going to do that using the duality just like CDR just like the proof of the Carpenters rule theorem we saw we say okay we want to prove this thing as flexible by duality that's equivalent to proving something about the equilibrium stresses now in the case of CDR on a single chain what we needed to say was the equilibrium stresses were all 0 and then we said ok if in order to prove the equilibrium stresses we're all 0 we use Maxwell cremona theorem that's equivalent to saying all polyhedral liftings are flat and then we prove that by looking at the maximum z-coordinate in this case we can't argue that all the stresses are zeros not true but if you recall the duality claim I said if you have a tense egra t10 cigarette is rigid if and only if the underlying linkage is rigid like when you replace struts with bars and the which is it's going to be true here and this there is a stress an equilibrium stress that is nonzero on every strut right that's equally mistress being non zero and every strut means that all the struts basically have to stay fixed length they become VARs and then you're done ok what I need to prove the opposite I want to prove its flexible I need to find a strut where there's no stress if I find a start where there's no stress then basically that strut can expand and there's a motion okay that's roughly true huh it's a little bit more complicated than that but I'm going to just claim suffice is to prove there's a strut that has 0 0 and every equilibrium stress okay which strut am I going to choose I am going to choose the one that comes from this convex hull edge e so I removed a convex hull edge as a bar it's going to get replaced when I add all pairwise struts by a strut so that I've got the vertices on the corner here one of these I replaced with a strut the other guys are whatever they are it's a suit of triangulation not a very interesting ones strangulation in this case a depart X here now it's a suitor triangulation so this guy got replaced with a strut for example I claim this guy is 0 in every stress why is it zero in every stress well claim we've essentially proved this in any equilibrium stress nonzero stresses must be on or interior to convex polygons of bars okay first believe this claim the only place i have non-zero stresses when I'm interior or on the boundary of a convex polygon of bars and then you know there might so there might be some nonzero stresses in here these edges might be nonzero stressed intuitively what's happening here these guys are going to serve as mountains in the lifting and there's like a hole so you go deep into the hole their claim is that that is the picture so you've got some convex polygons there's stuff in here that could be bad could be stressed but the stuff outside the convex polygons whatever they are have to be flat meaning they have zero stress I'm jumping back and forth between the lifting and the stresses by Maxwell cremona those are the same thing now look at edge E and G is a strut the other edges here that I've drawn those were the bars I haven't drawn all the other struts I should really use a color for this guy so this red edge there's lots of other red edges i'm not drawing between all pairs of vertices but the only bars are the white edges and those white edges well there's some convex polygons here's a convex polygon here's a convex polygon but none of the convex polygons in close e because these on the convex hull he's on the outside here so it can't be stressed by this claim okay so if you believe this claim then you believe he has zero stress because it's not interior to any convex bar polygon because it's a strut not a bar ok now let's improve the claim it follows from the argument we gave in that lecture 12 previous one will reprove the Carpenters rule theorem but it's not obvious that it follows let me explain why so I want to look at the maximum z-coordinate I want to look at the region of all the points in the plane that in the polyhedral lifting given by Maxwell cabanas theorem they are at maximum Z okay that is some region it could be two dimensional it could be one-dimensional can't be three-dimensional as part of the plane so I mean this region may have some one-dimensional parts it may have some two-dimensional parts like this whole part all all of this stuff might lift to maximum Z it could be you have some non convex parts like this whatever this is kind of generically what it might look like I guess it could have cycles with not filled interior all these things are plausible except we had this lemma this is like the key lemma the heart of the proof of the Carpenters rule theorem if you look at em and you look at a vertex V of the boundary of ammo use this del notation to mean I ignore the points in here I want points along the boundary here and in particular I want to look at these vertices in this drawing ok look at such a vertex V and suppose that V is pointed we didn't use this terminology because we didn't have it at the time but maybe V looks like this and there's an angle here this reflex that's a point in vertex now i'm looking here just at the bars ignoring the struts ok so suppose vertex V has a reflex angle among just the bars then the claim is locally this entire region must be an M must be locally at the maximum z-coordinate okay how did we prove that well a claim is this had to be flat because there's no mountains here so if you think of a reflex region and V V is at the maximum z-coordinate right it's on the boundary of the maximum z-coordinate so it has maximum possible Z so there's no way you can go up these edges could be mountains but all the other edges which are not drawn here use blue there are some other edges those are the struts coming to be those all have to be valleys they'll have to lift a valleys because stresses can only carry a positive stress stress course positive stress correspond to ballys these guys are all valleys and this is at maximum Z really can't use those valleys right you're up here at maximum Z if use valleys you go to higher Z which is not allowed so these actually i'll have to be flat out here which means locally all this stuff is at maximum Z ok that was the proof we had a couple lectures ago now once you know that that's at maximum Z you know that a lot of these things are impossible as look here's a reflex angle among bars I mean there might be more bars here I guess but we know that this is pointed whatever is missing here there's there's some reflex angle we're assuming we have a pointed Souter triangulation and then we remove an edge is still pointed so that means all of this has to be in em is it in this picture no contradiction so you cannot have one dimensional parts because wherever you have a one dimensional part there's a reflex angle that's not in em so that's bad in fact they all have to be two-dimensional parts like this can it be a two-dimensional part like this no because here's a reflex angle that is not an M contradiction so the only situation you can have is a convex polygon with the interior all in M sorry wrong the reverse the exterior should all be an F because you have all these reflex angles that has to contain the pointed part and locally by this lemma it has to be in em so all this stuff has to locally be an M the only way is for all of that to be an M the inside we don't know could be stress is there and this could be a hole where you go deeper all of this is at the maximum z-coordinate the boundary here the inside who knows could go down so you can have stresses interior to convex polygons of bars but not exterior to the convex polygon I mean M is either everything and there's no boundary and then there's no stress or it's not everything and then it will have to have stresses only interior to convex polygons and that's what we're claiming is that stresses can only be interior to convex bar polygons and in particular than E is not stressed the end this is definitely harder than the case we talked about for Carpenters rule theorem when you have a single chain you're just trying to prove there's the expanse of motion it's a lot easier than this because m is much simpler can basically only be a path or cycle because you only have you only have a single chain here M could be more complicated but in the end it's actually pretty darn simple any questions about that cool perfectly clear definitely bit complicated but nice now it turns out Souter triangulations are really at the core of expansive motions just mention one more theorem about them so you may recall I mentioned if you look at the space of infinitesimal motions of a linkage or at integrity they form a cone it's it lives in some high dimensional space but I'll try to draw a cone here these guys go off to infinity drawing it in three dimensions I guess you have some place here this is the zero zero zero motion where nothing moves and these are potential different motion each of these points corresponds to a set an assignment of velocity vectors where you move and you preserve all the constraints if I take such a motion I can scale it up it's still a motion so that's motions form a cone it's called a convex cone every motion can be scaled up or down all the way to zero so if we look at the cone of expansive motions it's also a cone it's you know it's a cone of motions of a particular tense a greater where we add all pairwise struts then pseudo triangulations correspond to these edges of the comb these edges they're really raised right they go off to infinity these things are called extreme rays meaning their extreme in a particular direction like if I want the emotion that is the most this way then it will be this this ray okay they're kind of the corners of this polyhedron the edges of the polyhedron if you will although in higher dimensions is not it is edges but they're called extreme raised in the case of okay the extreme raised in the cone of expansive motions equal pointed Souter triangulations minus one edge I think I have a slide about it yeah so this is a paper by rote dos santos and strain you this is just a particular example for five points these are all the different suitor triangulations minus an edge in some cases like here you get two triangles that that becomes rigid so they fill in the hole click to indicate that's a rigid component but the claim is 45 points these are the edges of the expansive cone each of these guys has an expense of motion like this guy would rotate pretty simple this one would open up a little like that in general all these guys have an expansive motion those are characterizing the cone those are kind of the extreme raised in this fairly high dimensional cone and has something like 10 dimensions if it's 5 times 2 and you can prove that if you interested to read the paper so in fact pseudo triangulations are really core to expansive motions if you wrote down the linear program which is expect the expansive motions then you are essentially characterizing this as the polyhedron and the linear program if you know linear programming and you follow like the simplex method simplex method is all about finding where the edges are and here they are so you would actually if you implemented the linear program ran it on a simplex solver you would get sued appointed Souter triangulations automatically they just pop out that's actually originally how they were discovered but then this is why they were discovered that way end of suit of triangulations alright next question is have any of the open problems been solved I get this almost every lecture and usually the answer is no so I don't tell you anything but this time there is a nice result which is related to this picture these are slides from from the lecture we had this linear lock tree which is which is minimal among all linear lock trees minimum number of edges we had this equilateral ochiltree all the edges were the same length was not strongly locked there was some positive distances here but it is locked I didn't mention this question but an obvious open question is can you get both at the same time is there a linear equilateral lock tree if there were probably be a lot easier to prove lock than this mess so it'd be nice to get both but in fact you cannot get both there's this paper by a bunch of people in the open problem session from two years ago I finally got published last last year and it proves a bunch of things but one of the things that proves there is no equilateral lock tree that is also linear also lives in a single dimension and the way it proves that essentially so you take any linear equilateral tree what does it look like well it lives along a line here and all its segmented into equal length chunks so from a high level it looks like this now in reality there could be lots of edges along each of these segments and there's you know interesting things happening inside one of these vertices could be I don't know something like this that's one way to do a tree like structure in there it could have parts like this that go from side to side without touching these guys who knows what's happening here but from a high level perspective it's a bunch of segments in a path okay the idea is this is basically just looking at five of the vertices out of all n of them but if we just look at those five vertices everything looks good this is in canonical form canonical form for a tree is where all the edges point to the right something like this is nice and canonical so right now this is canonical what we do is kind of look inside the path here look for a break point where things are not canonical and then we fix it so here's just an example of that here this is what it looks like currently at a high level here's what it looks like in reality ok so imagine so the tree is doing this stuff locally at all these vertices right now we're coalescing this all into one big mega vertex and then it looks like this but suppose we now we realize oh actually there's kind of a split here there's stuff over to the right of this or stuff over to write this or not directly connected then what we'll do is pull it apart treat these as two separate vertices increase the number of vertices in this picture by one so we end up splitting w here according to whatever is actually happening in the linkage and then we say oh gosh this is not really canonical right this edge is pointing to the left these guys are pointing to the right still but this one's pointing to the left so it looks like this picture we've got a rightward edge and then a leftward edge we fix it by just rotating this edge 180 degrees keeping at all times this thing pointing to the right so this kind of comes along for the ride and then we will end up with this picture now we're canonical again with one more vertex we repeat eventually will be canonical with all the vertices and we're done so if you take any two configurations you canonicalize both of them you will end up with essentially the same picture it does matter which route you choose but it's already known that it doesn't matter which route you choose you can change the route just by flopping the tree with one motion or very small number of motions so if you have two configurations you can authorize both of them then there's a motion between them and you get a motion from one configuration to the other therefore there are no locked trees that are equilateral and linear kind of nice the last thing I want to talk about is 40 a couple of people asked about 4d why is it so different from 3d the essential reason is we have one dimensional bars but four dimensions of motion that's a gap of three dimensions three dimensions is a lot when you have one dimensional chains in 3d or the gap of two dimensions two dimensions turns out to not be a lot so why is that let me prove it to you here's actually an animation of the motion just for fun this is in the textbook this is the top row is if you are zoomed out from the very beginning this is mess and you basically pull out a string it kind of actually Wiggles around a lot here's what it looks like zoomed in this is the original mess and you end up flopping this over here then flopping it over there and it's hard to see because this is a two-dimensional projection of a four-dimensional thing but eventually you pull open the whole thing so how does this algorithm work it's actually very simple for open chains it's very simple closed chains a little more complicated trees also very simple unfolding or D open chains this is spy Roxanna caca and Joe Rourke back before the Carpenters rule theorem I guess this publication was later but the original version was in 1998 I think 99 so what do we do well what I do is look at the end bar so let's say this is the end of the chain from here it goes in some direction there's no stuff what I'd like to do is rotate this bar so that it extends this bar so I have a 180 degree angle here that's my goal if I can do that i confuse that vertex never rotate it again treat this as a longer edge there for the remaining thing has n minus 1 edges if I had NN geez originally so I can just apply induction in other words just repeat that eventually the whole thing will be straight so the challenge is can I make a move can I fold this last bar to be to extend the next the second bar it's two issues to problems that could happen here one is that there's no continuous motion to get there the other problem is that even instantaneously if I just you know picked it up and dropped it into the right location it might intersect the rest of the chain maybe the chain here comes and intersects that ray if it intersects that ray I can just jiggle the whole chain a little bit and it won't is that clear let's see you've got these one-dimensional bars this is a one-dimensional target ray so if a bar happens to be on this ray and I just wiggle it a tiny bit it's going to come out of that off of that place this will actually even work in three dimensions this step there's an even easier way to do it is just to rotate this bar if you rotate this bar you can basically point the Ray wherever you want and if you look at where that bar is pointing it's kind of hard to draw the picture but you just have to miss all of these one-dimensional things so it's very easy to miss okay so let's just assume for now we'll kind of see this again in a moment assume that this ray happens to be clear there may be things that come very close to it maybe they go on the back side and then come on the front but they never don't actually touch the ring now think about where this bar can go relative to this vertex if I draw a little sphere here I'm going to drop initially in three dimensions but really it's in four dimensions so have a little sphere where this bar is currently corresponds to a single point on the sphere so I'm currently here where I want to be corresponds to another point on the sphere my goal is to find a path on the sphere that gets from gets to the X gets to the buried treasure okay this is essentially treating this as a whole ray so I don't even care that it's short if I just imagine it going off to infinity can I go from position a to position B now in three dimensions this is a two dimensional sphere and if you look at the obstacles the things I have to avoid those correspond to one dimensional bars here which if you project them onto the sphere correspond to great circular arcs so the worry would be let me draw them in red the obstacles the things that will kill you if you hit them the worry would be you have what we call a cage something like this of one-dimensional obstacles on the sphere that block this X point block the target from the source and in 3d this if you draw what happens in the knitting needles this is what happens you can't get you can't move the last link to extend the previous one because one dimensional barriers are a problem on a two-dimensional sphere because two minus one equals one but on the three-dimensional sphere if you draw one dimensional obstacles they have basically no effect on the sphere they do not disconnect the surface of a three-dimensional sphere can you see that the the analogy if you just keep the difference in dimensions the same so we have 3-dimensional sphere versus a one-dimensional obstacle let's go down a dimension of a two-dimensional sphere and a zero-dimensional obstacle what's a zero-dimensional obstacle a point so imagine you have all these red points which you can't touch and then you have the initial position and the target position B how do you get there no problem and there's tons of paths okay it's basically the same in three dimension and four dimensions just harder to see you have a three spear which is the boundary of a four ball and you have these one-dimensional arcs on it and they just don't block your way at all because they're so low dimensional so that's intuitively why for dzz 5d is also easy 60 and so on because the obstacles are so tiny obstacles remain one-dimensional on this high dimensional sphere you can just fix one link at a time eventually the whole thing will be straight tah-dah 4d any final questions yeah of holding a surface in four dimensions roughly analogous holding a two-dimensional surface in four dimensions definitely this argument breaks down and so you can get locked things there if you'd asked earlier I could show one example we have of a kind of locks surface I don't know if there's actually a lock to the surface in 4d known though I suspect there is one that could be an interesting question to work on cool think about that all right let's see you Thursday 2 00:00:05,650 --> 00:00:07,210 alright so lecture 13 was about a lot of things we had algorithms for the Carpenters rule theorem we had three of those see there's the CDR stray new pseudo triangulations which we're going to talk about a bunch today there's the energy method which we'll talk about a little bit then there was locked trees I'll give you there's one new result in lock trees i'll tell you about and then we had the last topic which was she oh right last topic for today is four dimensions which wasn't covered in class at what we did talk about in class was 3d essentially no updates there all the open problems are still open fairly challenging but 40 we didn't get to talk about it all and that's not too hard how to unfold any 4d chain so that'll be fun also 5d chains okay and 60 and 70 but not eight now any any dimension first question for today is why do we care so much about expansiveness and this is mostly will say I want to reference next lecture which will use expansiveness but indeed the the original point of expansiveness was just a convenient way to ensure self intersection essentially before the idea of expansiveness we had this idea of a really complicated channel it's not very complicated but for the Carpenters rule problem we had this idea that well how do we distinguish between a linkage that is locked within epsilon I mean however you draw it if it's if it's not self touching it's going to jiggle a little bit versus something that can eventually unfold and there was no good way to distinguish between just jiggling a little bit and unfolding all the way which was frustrating and expansiveness gave us a way to guarantee that not only did it avoid self intersection which is nice if you expand who don't self intersect but it also gave away that things would actually be rigid if it was impossible to do and so you couldn't move at all that reduced it to a rigidity theory problem or really a tense a gritty theory problem which was kind of what this problem needed it's why it was open for 25 years before before we could prove it with tenseiga at ease so that's one answer but in fact now that we know expansive motions exist they're really handy they let us prove that the energy method worked for one and next class we're going to use them to add thickness to our edges add polygons or regions attached to every edge and if you have an expansive motion it turns out under certain conditions this thing will still work whereas with non expansive motions like those produced by the energy method it won't work in general so initially was convenience but it turns out to be handy mathematically to we will we've seen one example just proving the energy method that's actually our next topic we will see another next lecture so the but a few people asked about the proof of the energy method so I wanted to review it how do we know we don't get stuck in a local minimum so this is a question to ask if you're familiar with gradient descent if not here's the kind of picture imagine you have some energy landscape in reality this is a surface drawn over n times D dimensions but I will assume n times d equals 1 because I can draw it so here's configurations and then on the x-axis or in general all the other axes and then the y-axis which will always be one thing is the energy function so sometimes energy is high at some points it's going to actually shoot off to infinity that's where you'd self intersect remember the energy function was sum over all edges VW sum over all vertices you won over the distance between you and VW so when a distance goes to zero the energy shoots to infinity those are the points we want to avoid so those are bad things but if we start at some non self intersecting configuration will have some finite energy and the idea is well if we follow the the negative gradient that will decrease energy as fast as possible and from here it's going to basically follow this trajectory and it would get stuck in this little well this is called a local minimum but this local minimum might be lower and so the worry is that it depends where you start if I start over here I'll fall down there but if I start in this kind of well I'll end up at this kind of accumulation point and what I really want is maybe some kind of global mental energy minima that's the usual issue with gradient descent is why people don't like to use gradient descent sometimes because it gets stuck however I Jason however with the this particular setting we actually proved that the energy method does not get stuck in a local minimum and I'll just review that proof because it went by quickly in lecture so the idea in our setting is we know that we know the Carpenters rule theorem Carpenters rule theorem tells us that any configuration where we're not done and I'll start just by thinking about a single chain maybe an open chain or a closed chain any chain that is not already straight or convex not only can be unfolded but has an expansive motion to unfolding expensive motion tells us that if we look at any distance between a vertex and an edge this increases that's not how we define expensive we defined it between every pair of vertices but it turns out if you have this is actually something we needed for a non self intersection you have a vertex on an edge and you know that that well this edges stays fixed length because it's a bar we know that these distances increase and this distance increases by expansiveness then in fact this point must go away from this bar you can draw an ellipse if you held these fixed it would move along an ellipse or held the some fixed but you've got to go outside that ellipse this guy's got to get farther away from every every vertex has to get farther away from every bar if the pairwise vertex vertex distances increase so if you take this expanse of motion you know that it is an energy decreasing motion so what that tells you is that any configuration that's not already straighter convex has an energy decreasing motion so this tells you you never get stuck on a local minimum because what's a local minimum in one dimension it's a place where you cannot go down from here and those are the places we're worried about and the claim is the only places where you don't have a downhill motion our places where you don't have expansive motions and if and therefore the configuration must already be straight and convex straight or convex and then you're done so you don't have to worry about getting stuck with energy method there is one tricky part which is if you have a chain if you have a linkage that consists of multiple pieces if you have some open chain some clothes chains you can have some guys stuck in here they won't necessarily straighten out but there's a couple kinds of things you could do you can unfold this chain you can unfold this chain or you could just let them fly away from each other all of those things will decrease energy and so the worry here would be that these two linkages fly apart and never really unfold locally that would be bad for us because you know we're always decreasing energy there's always a decreasing flow but we may not actually finish we might not finally make this our goal in this case remember is to make it outer convex meaning that all the outermost chains are straight all the outermost polygons become convex so we want to argue this and i'm just going to sketch the proof here essentially if when you have multiple once they are very very very far away their contribution to energy just by all the pairwise distances across between two components will be very very tiny and the claim is actually the energy method won't get you all the way to an outer convex configuration but it will get you within some epsilon of outer convex you get to choose whatever epsilon you want and so when these guys are far enough away their contribution to energy is much less than epsilon once they're like N squared divided by epsilon away or something this really they're the contribution between them will be far less than epsilon so what really matters in energy is the all the distances inside the the linkages inside the components and we're following the gradient motion which decreases energy as fast as possible and so you can prove that it's better if you want to decrease energy as fast as possible it's better at some point to unfold the pieces not to just let them continue flying apart so waving my hands a little bit there but if you know that you're at least epsilon away from being done then the energy will be fairly high within the components and therefore you it's worth unfolding the components but it's especially clear for one people one component all right any questions about that that's why the energy method works the next set of topics is related to pointed pseudo triangulations which are indeed very cool there's dozens of papers about them they've spawned their whole little sub field of computational geometry we touched on them a little bit in lecture but there's a lot more to say about it in particular why they even work for the Carpenters rule problem I didn't make clear but I would like to so a couple things about them they're actually originally invented in 1994 or the first used I guess in 1994 at this point they were called geodesic triangulations for a particular reason and so for the Carpenters real problem we had a polygon and then we pseudo triangulated the inside and the outside of the polygon here we're just a pseudo triangulating the inside and that's setting they're called geodesic triangulations and it's for a particular data structures problem actually this is it some sometimes covered in 6851 which is advanced data structures you can check out online so if you the goal is to decompose this polygon in a kind of balanced way so first you choose a suit of triangles kind of most in the middle of the polygon then you recurse on the sides actually I guess number one is this one and if you do this it turns out if you want to walk from any point in this polygon to any other point in the polygon you only visit log and pseudo triangles which is a nice small number and this is a particular problem called ray shooting where you imagine you have like a laser to shoot in some direction the polygon you want to know when it exits the polygon when it hits the boundary and where it hits and to do that one way to do that is to walk through the pieces here the pseudo triangles if you only have to walk through log n of them turns out walking through a single triangle only takes log n time total amount of time is log squared n so this is a pretty good way to do ray shooting in polygons which is nice so that's where they originally come from but they weren't used very much until until later so let me tell you some nice properties about them Suter triangulation has 2n minus 3 edges and n minus 2 pseudo triangles always if you draw i should say if you drive pointed pseudo triangulation remember pointed means at every vertex of the suit of triangulation you have some angle which is you have a reflex angle bigger than 180 this is the pointed property sudo triangles mean that all the faces look like this they only have three convex vertices all the other vertices are reflex so this is pseudo triangle pointed pseudo triangulation has both of these properties and it's pretty easy to prove this by induction I won't go through the proof here it's interesting in the way that it is different from triangulations so n here is the number of points and I'm thinking about pointed pseudo triangulations of the point set meaning I take some points and I add edges until I can't anymore subject to the pointed property so I add this edge I'm still pointed I add this edge I'm still pointed I add this edge I'm still pointed can't add this edge can't really add that edge let's see I can add this one and this one and this one anymore at this one and now i'm done i can tell that i'm done because at this point all of the faces are pseudo triangles hf three convex vertices and as soon as you have that all the faces are pseudo triangles you can show that you can't adding will add any more edges while still being pointed i'm still pointed because i only added edges that preserve pointed pneus and this is a sort of greedy algorithm to construct point a suitor triangulation is it always works and we can count the number of edges I won't bother but it will always be 2 n minus 3 cool by contrast if you look at regular triangulations so a triangulation would go all the way to the point where every face is a triangle like this and in that case they have more edges obviously in general they will have here it's two more edges because there are two interior vertices so in general b to n minus 3 plus I edges for a triangulation or I is the number of interior points and it will have n minus 2 plus I faces triangles yeah so that's the pseudo triangulations are quite minimal in the number of edges in particular they're minimally generically rigid right this is the number of edges I want for a nice rigid structure to n minus 3 is what I should have and indeed pointed Souter triangulations are minimally generically rigid that's the next thing minimally generically rigid this was the Lamont condition and we saw a couple characterisations but in particular you can fairly easily prove that they satisfied the Lamont condition why well first thing to check is they have 2n minus three edges that I just claimed second thing to check is that if I look at any subset of the vertices k of the vertices they should only have at most 2k minus 3 edges among them they should induce at most 2k minus 3 edges well let's look at any K vertices what are the edges that they induce well the thing I know about them is that they will induce I pointed set of edges because this structure without the blue edges is pointed if i remove edges from it it will still be pointed right if you have a big angle you will continue to have a big angle if you remove edges from it so matter which subset of edges i look at in particular induce sub set it will still be pointed if i have a pointed set of edges on some k vertices i can use that greedy algorithm to finish the pseudo triangulation once if as long as you're pointed you can add edges until you can't add a jizz subject to the pointed constraint at all times preserving pointed pneus this is what I did to generate this triangulation the first place if I take some subset of K vertices I can do it again on those K vertices when I'm finished I will have a pseudo triangulation and that has 2n minus three edges in this case 2 K minus 3 edges so I started with some pointed set of edges i added stuff i ended up with 2k minus 3 that means i started with at most 2k minus 3 edges to k minus 3 and so that's how you prove the lemond condition is kind of trivial because pointed pneus is an inherited property so if you believe in 2n minus 3 then you believe minimally generically rigid cool even cooler is that the converse is roughly true some sense all lemond graphs can be drawn as pseudo triangulations it's one catch which is that you need plain arity any plainer lemond graph has a pseudo triangulation as a realization realization was just a way to draw the graph in 2d now Souter triangulations are planar meaning none of the edges cross each other so you definitely need a graph that can be drawn in the plane without crossings that's the planar constraint but if you have a planar minimally generically rigid graph you can always draw it as a suit of triangulation so it's kind of a converse of this theorem and a sense in which suit of triangle ations are universal for planar minimal generic rigidity which is pretty neat I will not prove that theorem but I will give you a sense of our visual sense of what the proof looks like it's based on the henneberg construction so we know minimally generically rigid graphs can always be drawn in a henneberg way either by adding new degree two vertices or by adding new degree three vertices and removing one of the existing edges and the claim is you take any Henneberg construction you can do it you can implement it in a pseudo triangulation so you start up with you know your single edge that's the suitor triangulation you keep adding things preserving the fact that is it at all times is a pointed pseudo triangulation it's tricky but for example if you know that you want to add this red vertex next to these two you find a place that will guarantee that this is a suitor triangle this is the suit of triangle it will be pointed for free because it's just a degree to vertex so the challenge is preserving pseudo triangles and same for adding the degree three vertex this is harder of course but you need to you find a little patch here where if you choose the point in there you get suit of triangles on all three sides and also that removing the edge still preserve sort of triangulation it's definitely not trivial to do this but it can be done it's kind of neat that it can be done for any Henneberg construction cool the last thing I wanted to tell you about sudo triangulations is why they work from the Carpenters rule theorem why do they give expansive motions well they're rigid of course they don't give you any motions but what we claimed is that if you remove a convex hull edge so if we take a pointed pseudo triangulation and then we remove a convex hull edge we of course get something that's flexible because we were minimally generically rigid so if you remove an edge you will now be generically flexible it turns out you're not only generically flexible you are actually flexible for at least a little bit of time so appointed suit of triangulation minus convex hull edge it's not only as flexible but it flexes expansively meaning if you look at all pairwise distances expansively look at all pairwise distances they either stay the same they're connected by a bar or they will increase and this is what we wanted for Carpenters rule you can do that motion for a little while then you might have to switch to a different suit of triangulation according to a flip which I won't talk about we already did in lecture but at all times the claim is there is an expansive suitor triangulation motion by removing a single edge so why does this hold this it turns out you can prove using things similar to what we know from the our proof of the Carpenters rule theorem that we covered so it's kind of neat to see the connection between the two so why is this true well we already argued that the thing is flexible without the expansiveness constraint so we want to add the expansiveness constraint so just like before we're going to add all pairwise struts so between all pairs of vertices that say they're not already connected by a bar we add a strep between them meeting that can only increase in length now we have a 10 security we want to argue that tensor gritty is infinitesimally flexible so we're going to do that using the duality just like CDR just like the proof of the Carpenters rule theorem we saw we say okay we want to prove this thing as flexible by duality that's equivalent to proving something about the equilibrium stresses now in the case of CDR on a single chain what we needed to say was the equilibrium stresses were all 0 and then we said ok if in order to prove the equilibrium stresses we're all 0 we use Maxwell cremona theorem that's equivalent to saying all polyhedral liftings are flat and then we prove that by looking at the maximum z-coordinate in this case we can't argue that all the stresses are zeros not true but if you recall the duality claim I said if you have a tense egra t10 cigarette is rigid if and only if the underlying linkage is rigid like when you replace struts with bars and the which is it's going to be true here and this there is a stress an equilibrium stress that is nonzero on every strut right that's equally mistress being non zero and every strut means that all the struts basically have to stay fixed length they become VARs and then you're done ok what I need to prove the opposite I want to prove its flexible I need to find a strut where there's no stress if I find a start where there's no stress then basically that strut can expand and there's a motion okay that's roughly true huh it's a little bit more complicated than that but I'm going to just claim suffice is to prove there's a strut that has 0 0 and every equilibrium stress okay which strut am I going to choose I am going to choose the one that comes from this convex hull edge e so I removed a convex hull edge as a bar it's going to get replaced when I add all pairwise struts by a strut so that I've got the vertices on the corner here one of these I replaced with a strut the other guys are whatever they are it's a suit of triangulation not a very interesting ones strangulation in this case a depart X here now it's a suitor triangulation so this guy got replaced with a strut for example I claim this guy is 0 in every stress why is it zero in every stress well claim we've essentially proved this in any equilibrium stress nonzero stresses must be on or interior to convex polygons of bars okay first believe this claim the only place i have non-zero stresses when I'm interior or on the boundary of a convex polygon of bars and then you know there might so there might be some nonzero stresses in here these edges might be nonzero stressed intuitively what's happening here these guys are going to serve as mountains in the lifting and there's like a hole so you go deep into the hole their claim is that that is the picture so you've got some convex polygons there's stuff in here that could be bad could be stressed but the stuff outside the convex polygons whatever they are have to be flat meaning they have zero stress I'm jumping back and forth between the lifting and the stresses by Maxwell cremona those are the same thing now look at edge E and G is a strut the other edges here that I've drawn those were the bars I haven't drawn all the other struts I should really use a color for this guy so this red edge there's lots of other red edges i'm not drawing between all pairs of vertices but the only bars are the white edges and those white edges well there's some convex polygons here's a convex polygon here's a convex polygon but none of the convex polygons in close e because these on the convex hull he's on the outside here so it can't be stressed by this claim okay so if you believe this claim then you believe he has zero stress because it's not interior to any convex bar polygon because it's a strut not a bar ok now let's improve the claim it follows from the argument we gave in that lecture 12 previous one will reprove the Carpenters rule theorem but it's not obvious that it follows let me explain why so I want to look at the maximum z-coordinate I want to look at the region of all the points in the plane that in the polyhedral lifting given by Maxwell cabanas theorem they are at maximum Z okay that is some region it could be two dimensional it could be one-dimensional can't be three-dimensional as part of the plane so I mean this region may have some one-dimensional parts it may have some two-dimensional parts like this whole part all all of this stuff might lift to maximum Z it could be you have some non convex parts like this whatever this is kind of generically what it might look like I guess it could have cycles with not filled interior all these things are plausible except we had this lemma this is like the key lemma the heart of the proof of the Carpenters rule theorem if you look at em and you look at a vertex V of the boundary of ammo use this del notation to mean I ignore the points in here I want points along the boundary here and in particular I want to look at these vertices in this drawing ok look at such a vertex V and suppose that V is pointed we didn't use this terminology because we didn't have it at the time but maybe V looks like this and there's an angle here this reflex that's a point in vertex now i'm looking here just at the bars ignoring the struts ok so suppose vertex V has a reflex angle among just the bars then the claim is locally this entire region must be an M must be locally at the maximum z-coordinate okay how did we prove that well a claim is this had to be flat because there's no mountains here so if you think of a reflex region and V V is at the maximum z-coordinate right it's on the boundary of the maximum z-coordinate so it has maximum possible Z so there's no way you can go up these edges could be mountains but all the other edges which are not drawn here use blue there are some other edges those are the struts coming to be those all have to be valleys they'll have to lift a valleys because stresses can only carry a positive stress stress course positive stress correspond to ballys these guys are all valleys and this is at maximum Z really can't use those valleys right you're up here at maximum Z if use valleys you go to higher Z which is not allowed so these actually i'll have to be flat out here which means locally all this stuff is at maximum Z ok that was the proof we had a couple lectures ago now once you know that that's at maximum Z you know that a lot of these things are impossible as look here's a reflex angle among bars I mean there might be more bars here I guess but we know that this is pointed whatever is missing here there's there's some reflex angle we're assuming we have a pointed Souter triangulation and then we remove an edge is still pointed so that means all of this has to be in em is it in this picture no contradiction so you cannot have one dimensional parts because wherever you have a one dimensional part there's a reflex angle that's not in em so that's bad in fact they all have to be two-dimensional parts like this can it be a two-dimensional part like this no because here's a reflex angle that is not an M contradiction so the only situation you can have is a convex polygon with the interior all in M sorry wrong the reverse the exterior should all be an F because you have all these reflex angles that has to contain the pointed part and locally by this lemma it has to be in em so all this stuff has to locally be an M the only way is for all of that to be an M the inside we don't know could be stress is there and this could be a hole where you go deeper all of this is at the maximum z-coordinate the boundary here the inside who knows could go down so you can have stresses interior to convex polygons of bars but not exterior to the convex polygon I mean M is either everything and there's no boundary and then there's no stress or it's not everything and then it will have to have stresses only interior to convex polygons and that's what we're claiming is that stresses can only be interior to convex bar polygons and in particular than E is not stressed the end this is definitely harder than the case we talked about for Carpenters rule theorem when you have a single chain you're just trying to prove there's the expanse of motion it's a lot easier than this because m is much simpler can basically only be a path or cycle because you only have you only have a single chain here M could be more complicated but in the end it's actually pretty darn simple any questions about that cool perfectly clear definitely bit complicated but nice now it turns out Souter triangulations are really at the core of expansive motions just mention one more theorem about them so you may recall I mentioned if you look at the space of infinitesimal motions of a linkage or at integrity they form a cone it's it lives in some high dimensional space but I'll try to draw a cone here these guys go off to infinity drawing it in three dimensions I guess you have some place here this is the zero zero zero motion where nothing moves and these are potential different motion each of these points corresponds to a set an assignment of velocity vectors where you move and you preserve all the constraints if I take such a motion I can scale it up it's still a motion so that's motions form a cone it's called a convex cone every motion can be scaled up or down all the way to zero so if we look at the cone of expansive motions it's also a cone it's you know it's a cone of motions of a particular tense a greater where we add all pairwise struts then pseudo triangulations correspond to these edges of the comb these edges they're really raised right they go off to infinity these things are called extreme rays meaning their extreme in a particular direction like if I want the emotion that is the most this way then it will be this this ray okay they're kind of the corners of this polyhedron the edges of the polyhedron if you will although in higher dimensions is not it is edges but they're called extreme raised in the case of okay the extreme raised in the cone of expansive motions equal pointed Souter triangulations minus one edge I think I have a slide about it yeah so this is a paper by rote dos santos and strain you this is just a particular example for five points these are all the different suitor triangulations minus an edge in some cases like here you get two triangles that that becomes rigid so they fill in the hole click to indicate that's a rigid component but the claim is 45 points these are the edges of the expansive cone each of these guys has an expense of motion like this guy would rotate pretty simple this one would open up a little like that in general all these guys have an expansive motion those are characterizing the cone those are kind of the extreme raised in this fairly high dimensional cone and has something like 10 dimensions if it's 5 times 2 and you can prove that if you interested to read the paper so in fact pseudo triangulations are really core to expansive motions if you wrote down the linear program which is expect the expansive motions then you are essentially characterizing this as the polyhedron and the linear program if you know linear programming and you follow like the simplex method simplex method is all about finding where the edges are and here they are so you would actually if you implemented the linear program ran it on a simplex solver you would get sued appointed Souter triangulations automatically they just pop out that's actually originally how they were discovered but then this is why they were discovered that way end of suit of triangulations alright next question is have any of the open problems been solved I get this almost every lecture and usually the answer is no so I don't tell you anything but this time there is a nice result which is related to this picture these are slides from from the lecture we had this linear lock tree which is which is minimal among all linear lock trees minimum number of edges we had this equilateral ochiltree all the edges were the same length was not strongly locked there was some positive distances here but it is locked I didn't mention this question but an obvious open question is can you get both at the same time is there a linear equilateral lock tree if there were probably be a lot easier to prove lock than this mess so it'd be nice to get both but in fact you cannot get both there's this paper by a bunch of people in the open problem session from two years ago I finally got published last last year and it proves a bunch of things but one of the things that proves there is no equilateral lock tree that is also linear also lives in a single dimension and the way it proves that essentially so you take any linear equilateral tree what does it look like well it lives along a line here and all its segmented into equal length chunks so from a high level it looks like this now in reality there could be lots of edges along each of these segments and there's you know interesting things happening inside one of these vertices could be I don't know something like this that's one way to do a tree like structure in there it could have parts like this that go from side to side without touching these guys who knows what's happening here but from a high level perspective it's a bunch of segments in a path okay the idea is this is basically just looking at five of the vertices out of all n of them but if we just look at those five vertices everything looks good this is in canonical form canonical form for a tree is where all the edges point to the right something like this is nice and canonical so right now this is canonical what we do is kind of look inside the path here look for a break point where things are not canonical and then we fix it so here's just an example of that here this is what it looks like currently at a high level here's what it looks like in reality ok so imagine so the tree is doing this stuff locally at all these vertices right now we're coalescing this all into one big mega vertex and then it looks like this but suppose we now we realize oh actually there's kind of a split here there's stuff over to the right of this or stuff over to write this or not directly connected then what we'll do is pull it apart treat these as two separate vertices increase the number of vertices in this picture by one so we end up splitting w here according to whatever is actually happening in the linkage and then we say oh gosh this is not really canonical right this edge is pointing to the left these guys are pointing to the right still but this one's pointing to the left so it looks like this picture we've got a rightward edge and then a leftward edge we fix it by just rotating this edge 180 degrees keeping at all times this thing pointing to the right so this kind of comes along for the ride and then we will end up with this picture now we're canonical again with one more vertex we repeat eventually will be canonical with all the vertices and we're done so if you take any two configurations you canonicalize both of them you will end up with essentially the same picture it does matter which route you choose but it's already known that it doesn't matter which route you choose you can change the route just by flopping the tree with one motion or very small number of motions so if you have two configurations you can authorize both of them then there's a motion between them and you get a motion from one configuration to the other therefore there are no locked trees that are equilateral and linear kind of nice the last thing I want to talk about is 40 a couple of people asked about 4d why is it so different from 3d the essential reason is we have one dimensional bars but four dimensions of motion that's a gap of three dimensions three dimensions is a lot when you have one dimensional chains in 3d or the gap of two dimensions two dimensions turns out to not be a lot so why is that let me prove it to you here's actually an animation of the motion just for fun this is in the textbook this is the top row is if you are zoomed out from the very beginning this is mess and you basically pull out a string it kind of actually Wiggles around a lot here's what it looks like zoomed in this is the original mess and you end up flopping this over here then flopping it over there and it's hard to see because this is a two-dimensional projection of a four-dimensional thing but eventually you pull open the whole thing so how does this algorithm work it's actually very simple for open chains it's very simple closed chains a little more complicated trees also very simple unfolding or D open chains this is spy Roxanna caca and Joe Rourke back before the Carpenters rule theorem I guess this publication was later but the original version was in 1998 I think 99 so what do we do well what I do is look at the end bar so let's say this is the end of the chain from here it goes in some direction there's no stuff what I'd like to do is rotate this bar so that it extends this bar so I have a 180 degree angle here that's my goal if I can do that i confuse that vertex never rotate it again treat this as a longer edge there for the remaining thing has n minus 1 edges if I had NN geez originally so I can just apply induction in other words just repeat that eventually the whole thing will be straight so the challenge is can I make a move can I fold this last bar to be to extend the next the second bar it's two issues to problems that could happen here one is that there's no continuous motion to get there the other problem is that even instantaneously if I just you know picked it up and dropped it into the right location it might intersect the rest of the chain maybe the chain here comes and intersects that ray if it intersects that ray I can just jiggle the whole chain a little bit and it won't is that clear let's see you've got these one-dimensional bars this is a one-dimensional target ray so if a bar happens to be on this ray and I just wiggle it a tiny bit it's going to come out of that off of that place this will actually even work in three dimensions this step there's an even easier way to do it is just to rotate this bar if you rotate this bar you can basically point the Ray wherever you want and if you look at where that bar is pointing it's kind of hard to draw the picture but you just have to miss all of these one-dimensional things so it's very easy to miss okay so let's just assume for now we'll kind of see this again in a moment assume that this ray happens to be clear there may be things that come very close to it maybe they go on the back side and then come on the front but they never don't actually touch the ring now think about where this bar can go relative to this vertex if I draw a little sphere here I'm going to drop initially in three dimensions but really it's in four dimensions so have a little sphere where this bar is currently corresponds to a single point on the sphere so I'm currently here where I want to be corresponds to another point on the sphere my goal is to find a path on the sphere that gets from gets to the X gets to the buried treasure okay this is essentially treating this as a whole ray so I don't even care that it's short if I just imagine it going off to infinity can I go from position a to position B now in three dimensions this is a two dimensional sphere and if you look at the obstacles the things I have to avoid those correspond to one dimensional bars here which if you project them onto the sphere correspond to great circular arcs so the worry would be let me draw them in red the obstacles the things that will kill you if you hit them the worry would be you have what we call a cage something like this of one-dimensional obstacles on the sphere that block this X point block the target from the source and in 3d this if you draw what happens in the knitting needles this is what happens you can't get you can't move the last link to extend the previous one because one dimensional barriers are a problem on a two-dimensional sphere because two minus one equals one but on the three-dimensional sphere if you draw one dimensional obstacles they have basically no effect on the sphere they do not disconnect the surface of a three-dimensional sphere can you see that the the analogy if you just keep the difference in dimensions the same so we have 3-dimensional sphere versus a one-dimensional obstacle let's go down a dimension of a two-dimensional sphere and a zero-dimensional obstacle what's a zero-dimensional obstacle a point so imagine you have all these red points which you can't touch and then you have the initial position and the target position B how do you get there no problem and there's tons of paths okay it's basically the same in three dimension and four dimensions just harder to see you have a three spear which is the boundary of a four ball and you have these one-dimensional arcs on it and they just don't block your way at all because they're so low dimensional so that's intuitively why for dzz 5d is also easy 60 and so on because the obstacles are so tiny obstacles remain one-dimensional on this high dimensional sphere you can just fix one link at a time eventually the whole thing will be straight tah-dah 4d any final questions yeah of holding a surface in four dimensions roughly analogous holding a two-dimensional surface in four dimensions definitely this argument breaks down and so you can get locked things there if you'd asked earlier I could show one example we have of a kind of locks surface I don't know if there's actually a lock to the surface in 4d known though I suspect there is one that could be an interesting question to work on cool think about that all right let's see you Thursday 3 00:00:07,210 --> 00:00:08,740 4 00:00:08,740 --> 00:00:13,630 5 00:00:13,630 --> 00:00:15,790 6 00:00:15,790 --> 00:00:18,429 7 00:00:18,429 --> 00:00:19,779 8 00:00:19,779 --> 00:00:22,689 9 00:00:22,689 --> 00:00:24,609 10 00:00:24,609 --> 00:00:27,609 11 00:00:27,609 --> 00:00:36,209 12 00:00:36,209 --> 00:00:38,709 13 00:00:38,709 --> 00:00:40,329 14 00:00:40,329 --> 00:00:41,829 15 00:00:41,829 --> 00:00:44,229 16 00:00:44,229 --> 00:00:46,629 17 00:00:46,629 --> 00:00:48,939 18 00:00:48,939 --> 00:00:50,799 19 00:00:50,799 --> 00:00:53,889 20 00:00:53,889 --> 00:00:57,789 21 00:00:57,789 --> 00:01:01,299 22 00:01:01,299 --> 00:01:04,539 23 00:01:04,539 --> 00:01:06,820 24 00:01:06,820 --> 00:01:09,520 25 00:01:09,520 --> 00:01:12,120 26 00:01:12,120 --> 00:01:14,590 27 00:01:14,590 --> 00:01:16,900 28 00:01:16,900 --> 00:01:19,590 29 00:01:19,590 --> 00:01:22,390 30 00:01:22,390 --> 00:01:24,970 31 00:01:24,970 --> 00:01:28,260 32 00:01:28,260 --> 00:01:30,640 33 00:01:30,640 --> 00:01:32,980 34 00:01:32,980 --> 00:01:35,050 35 00:01:35,050 --> 00:01:37,060 36 00:01:37,060 --> 00:01:38,590 37 00:01:38,590 --> 00:01:39,910 38 00:01:39,910 --> 00:01:43,210 39 00:01:43,210 --> 00:01:45,640 40 00:01:45,640 --> 00:01:47,530 41 00:01:47,530 --> 00:01:50,310 42 00:01:50,310 --> 00:01:53,380 43 00:01:53,380 --> 00:01:58,120 44 00:01:58,120 --> 00:02:00,640 45 00:02:00,640 --> 00:02:02,590 46 00:02:02,590 --> 00:02:04,330 47 00:02:04,330 --> 00:02:06,010 48 00:02:06,010 --> 00:02:08,770 49 00:02:08,770 --> 00:02:10,749 50 00:02:10,749 --> 00:02:12,910 51 00:02:12,910 --> 00:02:15,039 52 00:02:15,039 --> 00:02:15,850 53 00:02:15,850 --> 00:02:17,380 54 00:02:17,380 --> 00:02:20,140 55 00:02:20,140 --> 00:02:22,900 56 00:02:22,900 --> 00:02:25,480 57 00:02:25,480 --> 00:02:27,250 58 00:02:27,250 --> 00:02:28,960 59 00:02:28,960 --> 00:02:31,240 60 00:02:31,240 --> 00:02:34,300 61 00:02:34,300 --> 00:02:38,020 62 00:02:38,020 --> 00:02:40,150 63 00:02:40,150 --> 00:02:42,250 64 00:02:42,250 --> 00:02:44,230 65 00:02:44,230 --> 00:02:46,510 66 00:02:46,510 --> 00:02:48,370 67 00:02:48,370 --> 00:02:52,300 68 00:02:52,300 --> 00:02:53,800 69 00:02:53,800 --> 00:02:55,660 70 00:02:55,660 --> 00:02:57,370 71 00:02:57,370 --> 00:02:59,949 72 00:02:59,949 --> 00:03:06,760 73 00:03:06,760 --> 00:03:09,010 74 00:03:09,010 --> 00:03:11,380 75 00:03:11,380 --> 00:03:13,420 76 00:03:13,420 --> 00:03:17,890 77 00:03:17,890 --> 00:03:19,510 78 00:03:19,510 --> 00:03:23,050 79 00:03:23,050 --> 00:03:25,600 80 00:03:25,600 --> 00:03:28,930 81 00:03:28,930 --> 00:03:31,750 82 00:03:31,750 --> 00:03:33,910 83 00:03:33,910 --> 00:03:38,820 84 00:03:38,820 --> 00:03:42,250 85 00:03:42,250 --> 00:03:44,140 86 00:03:44,140 --> 00:03:46,570 87 00:03:46,570 --> 00:03:49,090 88 00:03:49,090 --> 00:03:50,740 89 00:03:50,740 --> 00:03:52,210 90 00:03:52,210 --> 00:03:54,699 91 00:03:54,699 --> 00:04:00,880 92 00:04:00,880 --> 00:04:06,460 93 00:04:06,460 --> 00:04:11,050 94 00:04:11,050 --> 00:04:13,150 95 00:04:13,150 --> 00:04:14,650 96 00:04:14,650 --> 00:04:18,580 97 00:04:18,580 --> 00:04:20,140 98 00:04:20,140 --> 00:04:21,310 99 00:04:21,310 --> 00:04:25,600 100 00:04:25,600 --> 00:04:28,959 101 00:04:28,959 --> 00:04:30,819 102 00:04:30,819 --> 00:04:33,009 103 00:04:33,009 --> 00:04:35,709 104 00:04:35,709 --> 00:04:37,359 105 00:04:37,359 --> 00:04:40,179 106 00:04:40,179 --> 00:04:42,489 107 00:04:42,489 --> 00:04:44,619 108 00:04:44,619 --> 00:04:46,989 109 00:04:46,989 --> 00:04:49,299 110 00:04:49,299 --> 00:04:51,489 111 00:04:51,489 --> 00:04:53,049 112 00:04:53,049 --> 00:04:55,419 113 00:04:55,419 --> 00:04:56,859 114 00:04:56,859 --> 00:04:58,359 115 00:04:58,359 --> 00:05:00,369 116 00:05:00,369 --> 00:05:07,149 117 00:05:07,149 --> 00:05:10,029 118 00:05:10,029 --> 00:05:11,799 119 00:05:11,799 --> 00:05:13,449 120 00:05:13,449 --> 00:05:15,639 121 00:05:15,639 --> 00:05:24,100 122 00:05:24,100 --> 00:05:29,649 123 00:05:29,649 --> 00:05:36,969 124 00:05:36,969 --> 00:05:42,029 125 00:05:42,029 --> 00:05:46,089 126 00:05:46,089 --> 00:05:47,589 127 00:05:47,589 --> 00:05:50,559 128 00:05:50,559 --> 00:05:52,600 129 00:05:52,600 --> 00:06:02,289 130 00:06:02,289 --> 00:06:09,779 131 00:06:09,779 --> 00:06:13,209 132 00:06:13,209 --> 00:06:16,089 133 00:06:16,089 --> 00:06:20,949 134 00:06:20,949 --> 00:06:22,600 135 00:06:22,600 --> 00:06:25,029 136 00:06:25,029 --> 00:06:27,369 137 00:06:27,369 --> 00:06:28,719 138 00:06:28,719 --> 00:06:30,579 139 00:06:30,579 --> 00:06:33,129 140 00:06:33,129 --> 00:06:35,559 141 00:06:35,559 --> 00:06:37,959 142 00:06:37,959 --> 00:06:40,749 143 00:06:40,749 --> 00:06:42,590 144 00:06:42,590 --> 00:06:44,710 145 00:06:44,710 --> 00:06:47,720 146 00:06:47,720 --> 00:06:48,860 147 00:06:48,860 --> 00:06:51,410 148 00:06:51,410 --> 00:06:53,620 149 00:06:53,620 --> 00:06:55,850 150 00:06:55,850 --> 00:06:57,410 151 00:06:57,410 --> 00:06:59,230 152 00:06:59,230 --> 00:07:03,110 153 00:07:03,110 --> 00:07:05,840 154 00:07:05,840 --> 00:07:07,670 155 00:07:07,670 --> 00:07:10,070 156 00:07:10,070 --> 00:07:11,810 157 00:07:11,810 --> 00:07:14,810 158 00:07:14,810 --> 00:07:24,560 159 00:07:24,560 --> 00:07:26,740 160 00:07:26,740 --> 00:07:31,640 161 00:07:31,640 --> 00:07:33,770 162 00:07:33,770 --> 00:07:36,530 163 00:07:36,530 --> 00:07:37,880 164 00:07:37,880 --> 00:07:39,710 165 00:07:39,710 --> 00:07:42,470 166 00:07:42,470 --> 00:07:44,030 167 00:07:44,030 --> 00:07:45,710 168 00:07:45,710 --> 00:07:47,720 169 00:07:47,720 --> 00:07:50,480 170 00:07:50,480 --> 00:07:51,650 171 00:07:51,650 --> 00:07:54,650 172 00:07:54,650 --> 00:07:57,320 173 00:07:57,320 --> 00:07:58,820 174 00:07:58,820 --> 00:08:02,780 175 00:08:02,780 --> 00:08:04,190 176 00:08:04,190 --> 00:08:05,540 177 00:08:05,540 --> 00:08:09,740 178 00:08:09,740 --> 00:08:11,180 179 00:08:11,180 --> 00:08:12,860 180 00:08:12,860 --> 00:08:14,510 181 00:08:14,510 --> 00:08:16,250 182 00:08:16,250 --> 00:08:19,310 183 00:08:19,310 --> 00:08:22,220 184 00:08:22,220 --> 00:08:24,710 185 00:08:24,710 --> 00:08:28,240 186 00:08:28,240 --> 00:08:31,370 187 00:08:31,370 --> 00:08:34,430 188 00:08:34,430 --> 00:08:36,050 189 00:08:36,050 --> 00:08:38,240 190 00:08:38,240 --> 00:08:40,659 191 00:08:40,659 --> 00:08:44,060 192 00:08:44,060 --> 00:08:46,490 193 00:08:46,490 --> 00:08:51,380 194 00:08:51,380 --> 00:08:53,210 195 00:08:53,210 --> 00:08:55,790 196 00:08:55,790 --> 00:08:55,800 197 00:08:55,800 --> 00:08:56,480 198 00:08:56,480 --> 00:08:58,660 199 00:08:58,660 --> 00:09:02,150 200 00:09:02,150 --> 00:09:04,730 201 00:09:04,730 --> 00:09:06,829 202 00:09:06,829 --> 00:09:12,260 203 00:09:12,260 --> 00:09:13,910 204 00:09:13,910 --> 00:09:16,340 205 00:09:16,340 --> 00:09:21,290 206 00:09:21,290 --> 00:09:22,610 207 00:09:22,610 --> 00:09:25,910 208 00:09:25,910 --> 00:09:27,920 209 00:09:27,920 --> 00:09:30,350 210 00:09:30,350 --> 00:09:32,030 211 00:09:32,030 --> 00:09:34,190 212 00:09:34,190 --> 00:09:36,079 213 00:09:36,079 --> 00:09:39,920 214 00:09:39,920 --> 00:09:42,590 215 00:09:42,590 --> 00:09:45,710 216 00:09:45,710 --> 00:09:48,740 217 00:09:48,740 --> 00:09:50,480 218 00:09:50,480 --> 00:09:52,910 219 00:09:52,910 --> 00:09:55,040 220 00:09:55,040 --> 00:09:56,449 221 00:09:56,449 --> 00:09:58,550 222 00:09:58,550 --> 00:10:00,400 223 00:10:00,400 --> 00:10:02,660 224 00:10:02,660 --> 00:10:07,130 225 00:10:07,130 --> 00:10:09,560 226 00:10:09,560 --> 00:10:11,060 227 00:10:11,060 --> 00:10:13,190 228 00:10:13,190 --> 00:10:16,730 229 00:10:16,730 --> 00:10:18,350 230 00:10:18,350 --> 00:10:22,220 231 00:10:22,220 --> 00:10:28,000 232 00:10:28,000 --> 00:10:31,940 233 00:10:31,940 --> 00:10:34,010 234 00:10:34,010 --> 00:10:36,199 235 00:10:36,199 --> 00:10:38,090 236 00:10:38,090 --> 00:10:40,190 237 00:10:40,190 --> 00:10:43,850 238 00:10:43,850 --> 00:10:46,490 239 00:10:46,490 --> 00:10:48,740 240 00:10:48,740 --> 00:10:50,480 241 00:10:50,480 --> 00:10:54,230 242 00:10:54,230 --> 00:10:57,800 243 00:10:57,800 --> 00:11:00,800 244 00:11:00,800 --> 00:11:03,500 245 00:11:03,500 --> 00:11:04,880 246 00:11:04,880 --> 00:11:06,860 247 00:11:06,860 --> 00:11:06,870 248 00:11:06,870 --> 00:11:08,840 249 00:11:08,840 --> 00:11:10,790 250 00:11:10,790 --> 00:11:12,949 251 00:11:12,949 --> 00:11:14,480 252 00:11:14,480 --> 00:11:18,259 253 00:11:18,259 --> 00:11:19,879 254 00:11:19,879 --> 00:11:21,139 255 00:11:21,139 --> 00:11:25,069 256 00:11:25,069 --> 00:11:27,139 257 00:11:27,139 --> 00:11:29,660 258 00:11:29,660 --> 00:11:32,180 259 00:11:32,180 --> 00:11:36,230 260 00:11:36,230 --> 00:11:38,210 261 00:11:38,210 --> 00:11:40,370 262 00:11:40,370 --> 00:11:41,870 263 00:11:41,870 --> 00:11:43,790 264 00:11:43,790 --> 00:11:45,800 265 00:11:45,800 --> 00:11:50,300 266 00:11:50,300 --> 00:11:52,189 267 00:11:52,189 --> 00:11:53,720 268 00:11:53,720 --> 00:11:56,300 269 00:11:56,300 --> 00:11:58,370 270 00:11:58,370 --> 00:12:00,590 271 00:12:00,590 --> 00:12:04,790 272 00:12:04,790 --> 00:12:07,579 273 00:12:07,579 --> 00:12:09,019 274 00:12:09,019 --> 00:12:10,730 275 00:12:10,730 --> 00:12:13,129 276 00:12:13,129 --> 00:12:14,509 277 00:12:14,509 --> 00:12:16,309 278 00:12:16,309 --> 00:12:17,540 279 00:12:17,540 --> 00:12:20,150 280 00:12:20,150 --> 00:12:21,590 281 00:12:21,590 --> 00:12:23,150 282 00:12:23,150 --> 00:12:25,040 283 00:12:25,040 --> 00:12:28,999 284 00:12:28,999 --> 00:12:33,170 285 00:12:33,170 --> 00:12:35,360 286 00:12:35,360 --> 00:12:40,040 287 00:12:40,040 --> 00:12:42,970 288 00:12:42,970 --> 00:12:49,179 289 00:12:49,179 --> 00:13:00,379 290 00:13:00,379 --> 00:13:02,569 291 00:13:02,569 --> 00:13:04,370 292 00:13:04,370 --> 00:13:08,150 293 00:13:08,150 --> 00:13:09,740 294 00:13:09,740 --> 00:13:11,720 295 00:13:11,720 --> 00:13:14,120 296 00:13:14,120 --> 00:13:14,130 297 00:13:14,130 --> 00:13:15,890 298 00:13:15,890 --> 00:13:19,710 299 00:13:19,710 --> 00:13:21,240 300 00:13:21,240 --> 00:13:23,610 301 00:13:23,610 --> 00:13:29,510 302 00:13:29,510 --> 00:13:32,310 303 00:13:32,310 --> 00:13:34,680 304 00:13:34,680 --> 00:13:36,030 305 00:13:36,030 --> 00:13:38,370 306 00:13:38,370 --> 00:13:40,400 307 00:13:40,400 --> 00:13:42,960 308 00:13:42,960 --> 00:13:46,830 309 00:13:46,830 --> 00:13:48,330 310 00:13:48,330 --> 00:13:55,260 311 00:13:55,260 --> 00:13:59,970 312 00:13:59,970 --> 00:14:02,610 313 00:14:02,610 --> 00:14:04,680 314 00:14:04,680 --> 00:14:06,600 315 00:14:06,600 --> 00:14:09,330 316 00:14:09,330 --> 00:14:12,270 317 00:14:12,270 --> 00:14:20,880 318 00:14:20,880 --> 00:14:24,180 319 00:14:24,180 --> 00:14:25,560 320 00:14:25,560 --> 00:14:28,530 321 00:14:28,530 --> 00:14:31,740 322 00:14:31,740 --> 00:14:33,120 323 00:14:33,120 --> 00:14:35,520 324 00:14:35,520 --> 00:14:36,930 325 00:14:36,930 --> 00:14:38,400 326 00:14:38,400 --> 00:14:41,580 327 00:14:41,580 --> 00:14:43,710 328 00:14:43,710 --> 00:14:46,410 329 00:14:46,410 --> 00:14:49,430 330 00:14:49,430 --> 00:14:52,260 331 00:14:52,260 --> 00:14:53,970 332 00:14:53,970 --> 00:15:00,540 333 00:15:00,540 --> 00:15:02,310 334 00:15:02,310 --> 00:15:04,800 335 00:15:04,800 --> 00:15:09,030 336 00:15:09,030 --> 00:15:14,730 337 00:15:14,730 --> 00:15:16,920 338 00:15:16,920 --> 00:15:19,050 339 00:15:19,050 --> 00:15:22,610 340 00:15:22,610 --> 00:15:26,210 341 00:15:26,210 --> 00:15:28,800 342 00:15:28,800 --> 00:15:30,690 343 00:15:30,690 --> 00:15:37,820 344 00:15:37,820 --> 00:15:44,160 345 00:15:44,160 --> 00:15:45,900 346 00:15:45,900 --> 00:15:48,930 347 00:15:48,930 --> 00:15:51,750 348 00:15:51,750 --> 00:15:53,519 349 00:15:53,519 --> 00:15:55,920 350 00:15:55,920 --> 00:15:59,519 351 00:15:59,519 --> 00:16:01,470 352 00:16:01,470 --> 00:16:08,820 353 00:16:08,820 --> 00:16:16,530 354 00:16:16,530 --> 00:16:19,380 355 00:16:19,380 --> 00:16:21,630 356 00:16:21,630 --> 00:16:22,950 357 00:16:22,950 --> 00:16:25,740 358 00:16:25,740 --> 00:16:27,120 359 00:16:27,120 --> 00:16:28,760 360 00:16:28,760 --> 00:16:30,930 361 00:16:30,930 --> 00:16:32,820 362 00:16:32,820 --> 00:16:34,650 363 00:16:34,650 --> 00:16:37,410 364 00:16:37,410 --> 00:16:40,190 365 00:16:40,190 --> 00:16:49,560 366 00:16:49,560 --> 00:16:53,220 367 00:16:53,220 --> 00:16:54,600 368 00:16:54,600 --> 00:17:02,840 369 00:17:02,840 --> 00:17:05,669 370 00:17:05,669 --> 00:17:08,069 371 00:17:08,069 --> 00:17:10,319 372 00:17:10,319 --> 00:17:11,970 373 00:17:11,970 --> 00:17:13,350 374 00:17:13,350 --> 00:17:15,660 375 00:17:15,660 --> 00:17:18,090 376 00:17:18,090 --> 00:17:20,790 377 00:17:20,790 --> 00:17:24,840 378 00:17:24,840 --> 00:17:27,449 379 00:17:27,449 --> 00:17:32,160 380 00:17:32,160 --> 00:17:34,650 381 00:17:34,650 --> 00:17:34,660 382 00:17:34,660 --> 00:17:39,680 383 00:17:39,680 --> 00:17:45,480 384 00:17:45,480 --> 00:17:51,360 385 00:17:51,360 --> 00:17:53,880 386 00:17:53,880 --> 00:17:55,350 387 00:17:55,350 --> 00:17:57,240 388 00:17:57,240 --> 00:17:59,100 389 00:17:59,100 --> 00:18:03,140 390 00:18:03,140 --> 00:18:13,170 391 00:18:13,170 --> 00:18:15,240 392 00:18:15,240 --> 00:18:21,330 393 00:18:21,330 --> 00:18:23,190 394 00:18:23,190 --> 00:18:24,750 395 00:18:24,750 --> 00:18:32,760 396 00:18:32,760 --> 00:18:36,210 397 00:18:36,210 --> 00:18:38,010 398 00:18:38,010 --> 00:18:40,640 399 00:18:40,640 --> 00:18:43,890 400 00:18:43,890 --> 00:18:48,470 401 00:18:48,470 --> 00:18:52,170 402 00:18:52,170 --> 00:18:54,900 403 00:18:54,900 --> 00:18:57,360 404 00:18:57,360 --> 00:19:00,240 405 00:19:00,240 --> 00:19:06,650 406 00:19:06,650 --> 00:19:13,450 407 00:19:13,450 --> 00:19:22,419 408 00:19:22,419 --> 00:19:28,610 409 00:19:28,610 --> 00:19:32,870 410 00:19:32,870 --> 00:19:34,610 411 00:19:34,610 --> 00:19:36,710 412 00:19:36,710 --> 00:19:38,240 413 00:19:38,240 --> 00:19:39,950 414 00:19:39,950 --> 00:19:41,899 415 00:19:41,899 --> 00:19:43,070 416 00:19:43,070 --> 00:19:46,070 417 00:19:46,070 --> 00:19:48,169 418 00:19:48,169 --> 00:19:50,600 419 00:19:50,600 --> 00:19:51,590 420 00:19:51,590 --> 00:19:54,440 421 00:19:54,440 --> 00:19:59,419 422 00:19:59,419 --> 00:20:02,090 423 00:20:02,090 --> 00:20:05,180 424 00:20:05,180 --> 00:20:06,950 425 00:20:06,950 --> 00:20:08,869 426 00:20:08,869 --> 00:20:10,460 427 00:20:10,460 --> 00:20:12,860 428 00:20:12,860 --> 00:20:15,440 429 00:20:15,440 --> 00:20:18,590 430 00:20:18,590 --> 00:20:20,539 431 00:20:20,539 --> 00:20:23,029 432 00:20:23,029 --> 00:20:25,970 433 00:20:25,970 --> 00:20:27,980 434 00:20:27,980 --> 00:20:30,289 435 00:20:30,289 --> 00:20:31,310 436 00:20:31,310 --> 00:20:32,769 437 00:20:32,769 --> 00:20:35,180 438 00:20:35,180 --> 00:20:37,279 439 00:20:37,279 --> 00:20:39,889 440 00:20:39,889 --> 00:20:42,350 441 00:20:42,350 --> 00:20:46,070 442 00:20:46,070 --> 00:20:48,049 443 00:20:48,049 --> 00:20:50,450 444 00:20:50,450 --> 00:20:51,980 445 00:20:51,980 --> 00:20:55,009 446 00:20:55,009 --> 00:20:58,220 447 00:20:58,220 --> 00:20:59,899 448 00:20:59,899 --> 00:21:02,659 449 00:21:02,659 --> 00:21:05,029 450 00:21:05,029 --> 00:21:06,499 451 00:21:06,499 --> 00:21:09,320 452 00:21:09,320 --> 00:21:10,789 453 00:21:10,789 --> 00:21:13,850 454 00:21:13,850 --> 00:21:15,889 455 00:21:15,889 --> 00:21:17,210 456 00:21:17,210 --> 00:21:21,510 457 00:21:21,510 --> 00:21:25,740 458 00:21:25,740 --> 00:21:28,440 459 00:21:28,440 --> 00:21:29,670 460 00:21:29,670 --> 00:21:32,940 461 00:21:32,940 --> 00:21:34,050 462 00:21:34,050 --> 00:21:36,180 463 00:21:36,180 --> 00:21:39,750 464 00:21:39,750 --> 00:21:43,500 465 00:21:43,500 --> 00:21:54,000 466 00:21:54,000 --> 00:22:02,640 467 00:22:02,640 --> 00:22:04,530 468 00:22:04,530 --> 00:22:06,780 469 00:22:06,780 --> 00:22:08,100 470 00:22:08,100 --> 00:22:10,050 471 00:22:10,050 --> 00:22:11,250 472 00:22:11,250 --> 00:22:12,990 473 00:22:12,990 --> 00:22:15,510 474 00:22:15,510 --> 00:22:18,080 475 00:22:18,080 --> 00:22:25,670 476 00:22:25,670 --> 00:22:30,780 477 00:22:30,780 --> 00:22:36,090 478 00:22:36,090 --> 00:22:37,800 479 00:22:37,800 --> 00:22:39,660 480 00:22:39,660 --> 00:22:42,900 481 00:22:42,900 --> 00:22:44,760 482 00:22:44,760 --> 00:22:46,530 483 00:22:46,530 --> 00:22:47,700 484 00:22:47,700 --> 00:22:49,080 485 00:22:49,080 --> 00:22:51,990 486 00:22:51,990 --> 00:22:55,080 487 00:22:55,080 --> 00:22:56,400 488 00:22:56,400 --> 00:22:59,130 489 00:22:59,130 --> 00:23:01,620 490 00:23:01,620 --> 00:23:04,650 491 00:23:04,650 --> 00:23:08,250 492 00:23:08,250 --> 00:23:11,120 493 00:23:11,120 --> 00:23:16,200 494 00:23:16,200 --> 00:23:26,980 495 00:23:26,980 --> 00:23:34,279 496 00:23:34,279 --> 00:23:37,330 497 00:23:37,330 --> 00:23:41,270 498 00:23:41,270 --> 00:23:42,350 499 00:23:42,350 --> 00:23:44,419 500 00:23:44,419 --> 00:23:53,659 501 00:23:53,659 --> 00:23:55,460 502 00:23:55,460 --> 00:23:57,020 503 00:23:57,020 --> 00:23:59,299 504 00:23:59,299 --> 00:24:01,159 505 00:24:01,159 --> 00:24:02,779 506 00:24:02,779 --> 00:24:04,520 507 00:24:04,520 --> 00:24:16,190 508 00:24:16,190 --> 00:24:20,720 509 00:24:20,720 --> 00:24:22,279 510 00:24:22,279 --> 00:24:24,860 511 00:24:24,860 --> 00:24:27,350 512 00:24:27,350 --> 00:24:29,450 513 00:24:29,450 --> 00:24:32,659 514 00:24:32,659 --> 00:24:36,289 515 00:24:36,289 --> 00:24:37,789 516 00:24:37,789 --> 00:24:42,710 517 00:24:42,710 --> 00:24:43,970 518 00:24:43,970 --> 00:24:45,500 519 00:24:45,500 --> 00:24:46,760 520 00:24:46,760 --> 00:24:49,070 521 00:24:49,070 --> 00:24:50,750 522 00:24:50,750 --> 00:24:54,169 523 00:24:54,169 --> 00:24:57,830 524 00:24:57,830 --> 00:24:59,930 525 00:24:59,930 --> 00:25:02,330 526 00:25:02,330 --> 00:25:04,730 527 00:25:04,730 --> 00:25:06,350 528 00:25:06,350 --> 00:25:10,549 529 00:25:10,549 --> 00:25:14,419 530 00:25:14,419 --> 00:25:16,340 531 00:25:16,340 --> 00:25:19,010 532 00:25:19,010 --> 00:25:20,600 533 00:25:20,600 --> 00:25:22,310 534 00:25:22,310 --> 00:25:24,770 535 00:25:24,770 --> 00:25:28,310 536 00:25:28,310 --> 00:25:29,750 537 00:25:29,750 --> 00:25:32,960 538 00:25:32,960 --> 00:25:34,350 539 00:25:34,350 --> 00:25:35,640 540 00:25:35,640 --> 00:25:37,230 541 00:25:37,230 --> 00:25:39,900 542 00:25:39,900 --> 00:25:43,200 543 00:25:43,200 --> 00:25:44,490 544 00:25:44,490 --> 00:25:55,650 545 00:25:55,650 --> 00:26:10,410 546 00:26:10,410 --> 00:26:18,180 547 00:26:18,180 --> 00:26:20,490 548 00:26:20,490 --> 00:26:25,080 549 00:26:25,080 --> 00:26:27,510 550 00:26:27,510 --> 00:26:28,890 551 00:26:28,890 --> 00:26:33,810 552 00:26:33,810 --> 00:26:38,490 553 00:26:38,490 --> 00:26:41,580 554 00:26:41,580 --> 00:26:43,650 555 00:26:43,650 --> 00:26:45,480 556 00:26:45,480 --> 00:26:47,040 557 00:26:47,040 --> 00:26:50,280 558 00:26:50,280 --> 00:26:53,760 559 00:26:53,760 --> 00:26:57,810 560 00:26:57,810 --> 00:27:02,040 561 00:27:02,040 --> 00:27:15,430 562 00:27:15,430 --> 00:27:19,730 563 00:27:19,730 --> 00:27:26,690 564 00:27:26,690 --> 00:27:35,090 565 00:27:35,090 --> 00:27:47,690 566 00:27:47,690 --> 00:27:49,340 567 00:27:49,340 --> 00:27:53,180 568 00:27:53,180 --> 00:27:56,540 569 00:27:56,540 --> 00:27:57,860 570 00:27:57,860 --> 00:27:59,660 571 00:27:59,660 --> 00:28:01,490 572 00:28:01,490 --> 00:28:03,140 573 00:28:03,140 --> 00:28:04,310 574 00:28:04,310 --> 00:28:06,950 575 00:28:06,950 --> 00:28:10,460 576 00:28:10,460 --> 00:28:13,400 577 00:28:13,400 --> 00:28:17,750 578 00:28:17,750 --> 00:28:20,930 579 00:28:20,930 --> 00:28:22,430 580 00:28:22,430 --> 00:28:24,970 581 00:28:24,970 --> 00:28:28,820 582 00:28:28,820 --> 00:28:30,080 583 00:28:30,080 --> 00:28:31,610 584 00:28:31,610 --> 00:28:34,370 585 00:28:34,370 --> 00:28:38,090 586 00:28:38,090 --> 00:28:39,860 587 00:28:39,860 --> 00:28:41,270 588 00:28:41,270 --> 00:28:43,790 589 00:28:43,790 --> 00:28:46,790 590 00:28:46,790 --> 00:28:48,230 591 00:28:48,230 --> 00:28:50,240 592 00:28:50,240 --> 00:28:53,930 593 00:28:53,930 --> 00:28:57,290 594 00:28:57,290 --> 00:28:59,180 595 00:28:59,180 --> 00:29:01,790 596 00:29:01,790 --> 00:29:05,480 597 00:29:05,480 --> 00:29:08,660 598 00:29:08,660 --> 00:29:13,130 599 00:29:13,130 --> 00:29:14,900 600 00:29:14,900 --> 00:29:16,730 601 00:29:16,730 --> 00:29:18,860 602 00:29:18,860 --> 00:29:22,700 603 00:29:22,700 --> 00:29:30,910 604 00:29:30,910 --> 00:29:34,160 605 00:29:34,160 --> 00:29:38,180 606 00:29:38,180 --> 00:29:42,320 607 00:29:42,320 --> 00:29:44,290 608 00:29:44,290 --> 00:30:00,020 609 00:30:00,020 --> 00:30:01,760 610 00:30:01,760 --> 00:30:03,260 611 00:30:03,260 --> 00:30:08,860 612 00:30:08,860 --> 00:30:11,960 613 00:30:11,960 --> 00:30:18,200 614 00:30:18,200 --> 00:30:20,840 615 00:30:20,840 --> 00:30:23,180 616 00:30:23,180 --> 00:30:24,800 617 00:30:24,800 --> 00:30:27,950 618 00:30:27,950 --> 00:30:29,540 619 00:30:29,540 --> 00:30:32,600 620 00:30:32,600 --> 00:30:34,400 621 00:30:34,400 --> 00:30:37,610 622 00:30:37,610 --> 00:30:41,120 623 00:30:41,120 --> 00:30:42,380 624 00:30:42,380 --> 00:30:44,690 625 00:30:44,690 --> 00:30:47,240 626 00:30:47,240 --> 00:30:51,080 627 00:30:51,080 --> 00:30:53,600 628 00:30:53,600 --> 00:30:55,160 629 00:30:55,160 --> 00:30:59,830 630 00:30:59,830 --> 00:31:04,160 631 00:31:04,160 --> 00:31:07,340 632 00:31:07,340 --> 00:31:09,980 633 00:31:09,980 --> 00:31:11,210 634 00:31:11,210 --> 00:31:15,890 635 00:31:15,890 --> 00:31:18,790 636 00:31:18,790 --> 00:31:20,900 637 00:31:20,900 --> 00:31:22,430 638 00:31:22,430 --> 00:31:27,380 639 00:31:27,380 --> 00:31:33,290 640 00:31:33,290 --> 00:31:35,690 641 00:31:35,690 --> 00:31:38,590 642 00:31:38,590 --> 00:31:41,629 643 00:31:41,629 --> 00:31:53,229 644 00:31:53,229 --> 00:31:57,139 645 00:31:57,139 --> 00:32:07,310 646 00:32:07,310 --> 00:32:10,099 647 00:32:10,099 --> 00:32:12,979 648 00:32:12,979 --> 00:32:16,759 649 00:32:16,759 --> 00:32:20,169 650 00:32:20,169 --> 00:32:25,009 651 00:32:25,009 --> 00:32:26,839 652 00:32:26,839 --> 00:32:29,029 653 00:32:29,029 --> 00:32:31,579 654 00:32:31,579 --> 00:32:34,609 655 00:32:34,609 --> 00:32:36,319 656 00:32:36,319 --> 00:32:40,519 657 00:32:40,519 --> 00:32:44,029 658 00:32:44,029 --> 00:32:45,529 659 00:32:45,529 --> 00:32:46,969 660 00:32:46,969 --> 00:32:48,589 661 00:32:48,589 --> 00:32:50,509 662 00:32:50,509 --> 00:32:52,669 663 00:32:52,669 --> 00:32:54,560 664 00:32:54,560 --> 00:32:57,739 665 00:32:57,739 --> 00:33:00,229 666 00:33:00,229 --> 00:33:02,239 667 00:33:02,239 --> 00:33:03,979 668 00:33:03,979 --> 00:33:05,779 669 00:33:05,779 --> 00:33:08,690 670 00:33:08,690 --> 00:33:11,089 671 00:33:11,089 --> 00:33:13,789 672 00:33:13,789 --> 00:33:15,829 673 00:33:15,829 --> 00:33:19,869 674 00:33:19,869 --> 00:33:22,989 675 00:33:22,989 --> 00:33:26,499 676 00:33:26,499 --> 00:33:28,940 677 00:33:28,940 --> 00:33:30,709 678 00:33:30,709 --> 00:33:32,209 679 00:33:32,209 --> 00:33:34,249 680 00:33:34,249 --> 00:33:35,899 681 00:33:35,899 --> 00:33:38,419 682 00:33:38,419 --> 00:33:40,999 683 00:33:40,999 --> 00:33:42,409 684 00:33:42,409 --> 00:33:43,789 685 00:33:43,789 --> 00:33:47,299 686 00:33:47,299 --> 00:33:48,289 687 00:33:48,289 --> 00:33:50,180 688 00:33:50,180 --> 00:33:51,889 689 00:33:51,889 --> 00:33:55,100 690 00:33:55,100 --> 00:33:57,860 691 00:33:57,860 --> 00:34:00,530 692 00:34:00,530 --> 00:34:04,970 693 00:34:04,970 --> 00:34:08,869 694 00:34:08,869 --> 00:34:15,379 695 00:34:15,379 --> 00:34:17,570 696 00:34:17,570 --> 00:34:19,960 697 00:34:19,960 --> 00:34:23,540 698 00:34:23,540 --> 00:34:25,159 699 00:34:25,159 --> 00:34:27,409 700 00:34:27,409 --> 00:34:29,119 701 00:34:29,119 --> 00:34:30,889 702 00:34:30,889 --> 00:34:32,840 703 00:34:32,840 --> 00:34:35,060 704 00:34:35,060 --> 00:34:38,510 705 00:34:38,510 --> 00:34:40,460 706 00:34:40,460 --> 00:34:45,340 707 00:34:45,340 --> 00:34:47,690 708 00:34:47,690 --> 00:34:49,310 709 00:34:49,310 --> 00:34:51,440 710 00:34:51,440 --> 00:34:52,879 711 00:34:52,879 --> 00:34:54,409 712 00:34:54,409 --> 00:34:56,240 713 00:34:56,240 --> 00:34:58,550 714 00:34:58,550 --> 00:35:00,710 715 00:35:00,710 --> 00:35:05,450 716 00:35:05,450 --> 00:35:07,430 717 00:35:07,430 --> 00:35:10,400 718 00:35:10,400 --> 00:35:11,840 719 00:35:11,840 --> 00:35:12,920 720 00:35:12,920 --> 00:35:14,120 721 00:35:14,120 --> 00:35:17,570 722 00:35:17,570 --> 00:35:19,760 723 00:35:19,760 --> 00:35:25,310 724 00:35:25,310 --> 00:35:27,349 725 00:35:27,349 --> 00:35:31,550 726 00:35:31,550 --> 00:35:35,099 727 00:35:35,099 --> 00:35:41,109 728 00:35:41,109 --> 00:35:45,310 729 00:35:45,310 --> 00:35:47,109 730 00:35:47,109 --> 00:35:49,900 731 00:35:49,900 --> 00:35:55,839 732 00:35:55,839 --> 00:35:58,660 733 00:35:58,660 --> 00:36:01,450 734 00:36:01,450 --> 00:36:05,370 735 00:36:05,370 --> 00:36:08,020 736 00:36:08,020 --> 00:36:11,370 737 00:36:11,370 --> 00:36:16,030 738 00:36:16,030 --> 00:36:18,040 739 00:36:18,040 --> 00:36:20,319 740 00:36:20,319 --> 00:36:23,520 741 00:36:23,520 --> 00:36:26,260 742 00:36:26,260 --> 00:36:28,120 743 00:36:28,120 --> 00:36:29,680 744 00:36:29,680 --> 00:36:31,569 745 00:36:31,569 --> 00:36:34,089 746 00:36:34,089 --> 00:36:36,339 747 00:36:36,339 --> 00:36:38,920 748 00:36:38,920 --> 00:36:41,650 749 00:36:41,650 --> 00:36:44,349 750 00:36:44,349 --> 00:36:54,270 751 00:36:54,270 --> 00:36:58,540 752 00:36:58,540 --> 00:37:00,520 753 00:37:00,520 --> 00:37:03,960 754 00:37:03,960 --> 00:37:09,400 755 00:37:09,400 --> 00:37:14,500 756 00:37:14,500 --> 00:37:16,030 757 00:37:16,030 --> 00:37:17,829 758 00:37:17,829 --> 00:37:24,880 759 00:37:24,880 --> 00:37:26,650 760 00:37:26,650 --> 00:37:29,589 761 00:37:29,589 --> 00:37:32,920 762 00:37:32,920 --> 00:37:34,900 763 00:37:34,900 --> 00:37:36,910 764 00:37:36,910 --> 00:37:39,520 765 00:37:39,520 --> 00:37:42,910 766 00:37:42,910 --> 00:37:45,510 767 00:37:45,510 --> 00:37:47,950 768 00:37:47,950 --> 00:37:52,300 769 00:37:52,300 --> 00:38:11,079 770 00:38:11,079 --> 00:38:15,310 771 00:38:15,310 --> 00:38:17,520 772 00:38:17,520 --> 00:38:21,280 773 00:38:21,280 --> 00:38:23,290 774 00:38:23,290 --> 00:38:25,960 775 00:38:25,960 --> 00:38:28,060 776 00:38:28,060 --> 00:38:29,800 777 00:38:29,800 --> 00:38:31,510 778 00:38:31,510 --> 00:38:34,510 779 00:38:34,510 --> 00:38:37,089 780 00:38:37,089 --> 00:38:38,920 781 00:38:38,920 --> 00:38:40,300 782 00:38:40,300 --> 00:38:43,150 783 00:38:43,150 --> 00:38:47,079 784 00:38:47,079 --> 00:38:48,640 785 00:38:48,640 --> 00:38:51,609 786 00:38:51,609 --> 00:38:54,420 787 00:38:54,420 --> 00:38:56,589 788 00:38:56,589 --> 00:38:58,270 789 00:38:58,270 --> 00:39:02,170 790 00:39:02,170 --> 00:39:08,730 791 00:39:08,730 --> 00:39:10,870 792 00:39:10,870 --> 00:39:13,089 793 00:39:13,089 --> 00:39:14,740 794 00:39:14,740 --> 00:39:17,650 795 00:39:17,650 --> 00:39:19,240 796 00:39:19,240 --> 00:39:20,710 797 00:39:20,710 --> 00:39:22,780 798 00:39:22,780 --> 00:39:24,400 799 00:39:24,400 --> 00:39:26,020 800 00:39:26,020 --> 00:39:29,380 801 00:39:29,380 --> 00:39:31,300 802 00:39:31,300 --> 00:39:33,670 803 00:39:33,670 --> 00:39:35,849 804 00:39:35,849 --> 00:39:38,079 805 00:39:38,079 --> 00:39:39,040 806 00:39:39,040 --> 00:39:42,280 807 00:39:42,280 --> 00:39:46,330 808 00:39:46,330 --> 00:39:51,220 809 00:39:51,220 --> 00:39:53,750 810 00:39:53,750 --> 00:39:55,760 811 00:39:55,760 --> 00:39:57,410 812 00:39:57,410 --> 00:39:59,240 813 00:39:59,240 --> 00:40:04,720 814 00:40:04,720 --> 00:40:06,770 815 00:40:06,770 --> 00:40:10,040 816 00:40:10,040 --> 00:40:12,800 817 00:40:12,800 --> 00:40:14,359 818 00:40:14,359 --> 00:40:16,100 819 00:40:16,100 --> 00:40:18,980 820 00:40:18,980 --> 00:40:21,859 821 00:40:21,859 --> 00:40:23,660 822 00:40:23,660 --> 00:40:26,540 823 00:40:26,540 --> 00:40:28,609 824 00:40:28,609 --> 00:40:30,500 825 00:40:30,500 --> 00:40:33,620 826 00:40:33,620 --> 00:40:35,000 827 00:40:35,000 --> 00:40:37,490 828 00:40:37,490 --> 00:40:40,510 829 00:40:40,510 --> 00:40:43,760 830 00:40:43,760 --> 00:40:45,320 831 00:40:45,320 --> 00:40:48,770 832 00:40:48,770 --> 00:40:53,150 833 00:40:53,150 --> 00:40:54,380 834 00:40:54,380 --> 00:40:57,200 835 00:40:57,200 --> 00:41:00,050 836 00:41:00,050 --> 00:41:03,520 837 00:41:03,520 --> 00:41:08,450 838 00:41:08,450 --> 00:41:17,920 839 00:41:17,920 --> 00:41:22,370 840 00:41:22,370 --> 00:41:25,390 841 00:41:25,390 --> 00:41:29,270 842 00:41:29,270 --> 00:41:31,640 843 00:41:31,640 --> 00:41:34,340 844 00:41:34,340 --> 00:41:35,690 845 00:41:35,690 --> 00:41:37,610 846 00:41:37,610 --> 00:41:39,920 847 00:41:39,920 --> 00:41:41,810 848 00:41:41,810 --> 00:41:46,640 849 00:41:46,640 --> 00:41:49,250 850 00:41:49,250 --> 00:41:51,980 851 00:41:51,980 --> 00:41:53,270 852 00:41:53,270 --> 00:41:55,070 853 00:41:55,070 --> 00:41:59,840 854 00:41:59,840 --> 00:42:02,450 855 00:42:02,450 --> 00:42:05,840 856 00:42:05,840 --> 00:42:06,800 857 00:42:06,800 --> 00:42:08,090 858 00:42:08,090 --> 00:42:10,160 859 00:42:10,160 --> 00:42:12,410 860 00:42:12,410 --> 00:42:15,020 861 00:42:15,020 --> 00:42:18,080 862 00:42:18,080 --> 00:42:21,470 863 00:42:21,470 --> 00:42:23,870 864 00:42:23,870 --> 00:42:26,630 865 00:42:26,630 --> 00:42:29,080 866 00:42:29,080 --> 00:42:31,340 867 00:42:31,340 --> 00:42:33,860 868 00:42:33,860 --> 00:42:37,100 869 00:42:37,100 --> 00:42:39,410 870 00:42:39,410 --> 00:42:41,600 871 00:42:41,600 --> 00:42:43,460 872 00:42:43,460 --> 00:42:45,800 873 00:42:45,800 --> 00:42:47,930 874 00:42:47,930 --> 00:42:49,940 875 00:42:49,940 --> 00:42:51,620 876 00:42:51,620 --> 00:42:52,880 877 00:42:52,880 --> 00:42:55,340 878 00:42:55,340 --> 00:42:57,170 879 00:42:57,170 --> 00:42:58,430 880 00:42:58,430 --> 00:43:01,010 881 00:43:01,010 --> 00:43:03,200 882 00:43:03,200 --> 00:43:05,210 883 00:43:05,210 --> 00:43:07,580 884 00:43:07,580 --> 00:43:09,230 885 00:43:09,230 --> 00:43:10,970 886 00:43:10,970 --> 00:43:12,830 887 00:43:12,830 --> 00:43:14,270 888 00:43:14,270 --> 00:43:15,800 889 00:43:15,800 --> 00:43:18,380 890 00:43:18,380 --> 00:43:21,590 891 00:43:21,590 --> 00:43:23,270 892 00:43:23,270 --> 00:43:25,430 893 00:43:25,430 --> 00:43:27,500 894 00:43:27,500 --> 00:43:29,540 895 00:43:29,540 --> 00:43:30,990 896 00:43:30,990 --> 00:43:32,820 897 00:43:32,820 --> 00:43:35,340 898 00:43:35,340 --> 00:43:38,010 899 00:43:38,010 --> 00:43:40,140 900 00:43:40,140 --> 00:43:42,870 901 00:43:42,870 --> 00:43:44,670 902 00:43:44,670 --> 00:43:47,160 903 00:43:47,160 --> 00:43:48,330 904 00:43:48,330 --> 00:43:50,190 905 00:43:50,190 --> 00:43:54,060 906 00:43:54,060 --> 00:43:56,670 907 00:43:56,670 --> 00:43:58,380 908 00:43:58,380 --> 00:43:59,760 909 00:43:59,760 --> 00:44:02,280 910 00:44:02,280 --> 00:44:05,310 911 00:44:05,310 --> 00:44:06,780 912 00:44:06,780 --> 00:44:13,980 913 00:44:13,980 --> 00:44:16,590 914 00:44:16,590 --> 00:44:19,110 915 00:44:19,110 --> 00:44:21,060 916 00:44:21,060 --> 00:44:23,600 917 00:44:23,600 --> 00:44:26,310 918 00:44:26,310 --> 00:44:28,770 919 00:44:28,770 --> 00:44:31,680 920 00:44:31,680 --> 00:44:33,360 921 00:44:33,360 --> 00:44:34,920 922 00:44:34,920 --> 00:44:39,090 923 00:44:39,090 --> 00:44:41,310 924 00:44:41,310 --> 00:44:43,260 925 00:44:43,260 --> 00:44:45,690 926 00:44:45,690 --> 00:44:47,730 927 00:44:47,730 --> 00:44:49,680 928 00:44:49,680 --> 00:44:51,870 929 00:44:51,870 --> 00:44:54,330 930 00:44:54,330 --> 00:44:55,470 931 00:44:55,470 --> 00:44:57,840 932 00:44:57,840 --> 00:44:59,700 933 00:44:59,700 --> 00:45:01,200 934 00:45:01,200 --> 00:45:02,580 935 00:45:02,580 --> 00:45:04,320 936 00:45:04,320 --> 00:45:06,570 937 00:45:06,570 --> 00:45:07,800 938 00:45:07,800 --> 00:45:14,160 939 00:45:14,160 --> 00:45:15,600 940 00:45:15,600 --> 00:45:20,690 941 00:45:20,690 --> 00:45:20,700 942 00:45:20,700 --> 00:45:25,450 943 00:45:25,450 --> 00:45:32,029 944 00:45:32,029 --> 00:45:35,599 945 00:45:35,599 --> 00:45:39,170 946 00:45:39,170 --> 00:45:40,730 947 00:45:40,730 --> 00:45:46,880 948 00:45:46,880 --> 00:45:49,069 949 00:45:49,069 --> 00:45:51,739 950 00:45:51,739 --> 00:45:53,749 951 00:45:53,749 --> 00:45:56,509 952 00:45:56,509 --> 00:45:59,900 953 00:45:59,900 --> 00:46:03,470 954 00:46:03,470 --> 00:46:06,739 955 00:46:06,739 --> 00:46:09,980 956 00:46:09,980 --> 00:46:11,660 957 00:46:11,660 --> 00:46:14,089 958 00:46:14,089 --> 00:46:15,739 959 00:46:15,739 --> 00:46:17,599 960 00:46:17,599 --> 00:46:18,759 961 00:46:18,759 --> 00:46:20,390 962 00:46:20,390 --> 00:46:23,150 963 00:46:23,150 --> 00:46:27,170 964 00:46:27,170 --> 00:46:31,160 965 00:46:31,160 --> 00:46:33,650 966 00:46:33,650 --> 00:46:37,640 967 00:46:37,640 --> 00:46:39,620 968 00:46:39,620 --> 00:46:42,319 969 00:46:42,319 --> 00:46:43,999 970 00:46:43,999 --> 00:46:46,190 971 00:46:46,190 --> 00:46:47,660 972 00:46:47,660 --> 00:46:51,829 973 00:46:51,829 --> 00:46:54,380 974 00:46:54,380 --> 00:46:55,999 975 00:46:55,999 --> 00:46:59,960 976 00:46:59,960 --> 00:47:02,809 977 00:47:02,809 --> 00:47:06,109 978 00:47:06,109 --> 00:47:08,749 979 00:47:08,749 --> 00:47:10,460 980 00:47:10,460 --> 00:47:12,950 981 00:47:12,950 --> 00:47:14,359 982 00:47:14,359 --> 00:47:19,549 983 00:47:19,549 --> 00:47:22,249 984 00:47:22,249 --> 00:47:24,109 985 00:47:24,109 --> 00:47:26,150 986 00:47:26,150 --> 00:47:29,150 987 00:47:29,150 --> 00:47:32,599 988 00:47:32,599 --> 00:47:34,069 989 00:47:34,069 --> 00:47:35,539 990 00:47:35,539 --> 00:47:37,849 991 00:47:37,849 --> 00:47:38,790 992 00:47:38,790 --> 00:47:40,980 993 00:47:40,980 --> 00:47:42,480 994 00:47:42,480 --> 00:47:45,990 995 00:47:45,990 --> 00:47:47,580 996 00:47:47,580 --> 00:47:50,040 997 00:47:50,040 --> 00:47:54,120 998 00:47:54,120 --> 00:47:56,970 999 00:47:56,970 --> 00:48:02,130 1000 00:48:02,130 --> 00:48:03,570 1001 00:48:03,570 --> 00:48:05,490 1002 00:48:05,490 --> 00:48:08,700 1003 00:48:08,700 --> 00:48:10,530 1004 00:48:10,530 --> 00:48:12,720 1005 00:48:12,720 --> 00:48:14,910 1006 00:48:14,910 --> 00:48:17,700 1007 00:48:17,700 --> 00:48:20,760 1008 00:48:20,760 --> 00:48:23,970 1009 00:48:23,970 --> 00:48:27,360 1010 00:48:27,360 --> 00:48:30,450 1011 00:48:30,450 --> 00:48:31,920 1012 00:48:31,920 --> 00:48:33,480 1013 00:48:33,480 --> 00:48:40,380 1014 00:48:40,380 --> 00:48:42,270 1015 00:48:42,270 --> 00:48:44,310 1016 00:48:44,310 --> 00:48:46,050 1017 00:48:46,050 --> 00:48:50,430 1018 00:48:50,430 --> 00:48:52,650 1019 00:48:52,650 --> 00:48:54,750 1020 00:48:54,750 --> 00:48:58,020 1021 00:48:58,020 --> 00:49:00,240 1022 00:49:00,240 --> 00:49:02,790 1023 00:49:02,790 --> 00:49:05,570 1024 00:49:05,570 --> 00:49:09,600 1025 00:49:09,600 --> 00:49:13,170 1026 00:49:13,170 --> 00:49:16,980 1027 00:49:16,980 --> 00:49:19,950 1028 00:49:19,950 --> 00:49:21,210 1029 00:49:21,210 --> 00:49:23,400 1030 00:49:23,400 --> 00:49:25,440 1031 00:49:25,440 --> 00:49:27,600 1032 00:49:27,600 --> 00:49:29,610 1033 00:49:29,610 --> 00:49:33,870 1034 00:49:33,870 --> 00:49:36,840 1035 00:49:36,840 --> 00:49:38,430 1036 00:49:38,430 --> 00:49:41,130 1037 00:49:41,130 --> 00:49:43,020 1038 00:49:43,020 --> 00:49:45,390 1039 00:49:45,390 --> 00:49:48,510 1040 00:49:48,510 --> 00:49:51,450 1041 00:49:51,450 --> 00:49:52,290 1042 00:49:52,290 --> 00:49:53,340 1043 00:49:53,340 --> 00:49:54,960 1044 00:49:54,960 --> 00:49:56,970 1045 00:49:56,970 --> 00:49:59,070 1046 00:49:59,070 --> 00:50:02,460 1047 00:50:02,460 --> 00:50:04,860 1048 00:50:04,860 --> 00:50:07,350 1049 00:50:07,350 --> 00:50:09,750 1050 00:50:09,750 --> 00:50:12,360 1051 00:50:12,360 --> 00:50:15,180 1052 00:50:15,180 --> 00:50:16,620 1053 00:50:16,620 --> 00:50:18,540 1054 00:50:18,540 --> 00:50:20,540 1055 00:50:20,540 --> 00:50:23,850 1056 00:50:23,850 --> 00:50:26,220 1057 00:50:26,220 --> 00:50:28,560 1058 00:50:28,560 --> 00:50:30,020 1059 00:50:30,020 --> 00:50:33,090 1060 00:50:33,090 --> 00:50:36,030 1061 00:50:36,030 --> 00:50:38,160 1062 00:50:38,160 --> 00:50:39,570 1063 00:50:39,570 --> 00:50:41,460 1064 00:50:41,460 --> 00:50:43,170 1065 00:50:43,170 --> 00:50:49,130 1066 00:50:49,130 --> 00:50:57,120 1067 00:50:57,120 --> 00:51:00,030 1068 00:51:00,030 --> 00:51:01,800 1069 00:51:01,800 --> 00:51:03,930 1070 00:51:03,930 --> 00:51:06,060 1071 00:51:06,060 --> 00:51:09,810 1072 00:51:09,810 --> 00:51:11,490 1073 00:51:11,490 --> 00:51:14,160 1074 00:51:14,160 --> 00:51:15,990 1075 00:51:15,990 --> 00:51:18,630 1076 00:51:18,630 --> 00:51:20,370 1077 00:51:20,370 --> 00:51:25,710 1078 00:51:25,710 --> 00:51:28,680