Today's class is going to be a little bit different instead of going over some of the mechanics of operating system design. Well I guess in one sense we will be doing that but this is going to be at a slightly higher level on this. Presumably you've all at some level taken a look at the research paper that Jeff had asked about operating system design and hints thereof on this. This is if you've looked at it already it's a classic paper certainly has like lots of sites way back when and as a result it should give you a bunch of ideas far as number one the fact that it is so old and it's still being cited it probably means these are good ideas that have stood the test of time on this. Another thing to keep in mind is I'm sure you've read through the examples a lot of them are severely dated. The specific applications do not always apply to things that you're dealing with today. On the other hand there are certain areas where the author speculates that this might be a good idea to do this and you're thinking good grief I deal with this all the time this is a huge problem. Well that's because things have changed over the course of the ensuing three decades since this paper was published on this but the point being is you know how Jeff talks about like trends or policies or theories on this well that's kind of what this paper is trying to get at. In other words how can we design systems and obviously as far as you guys are concerned operating systems like what are some of the things that you need to kind of take to the bank that this particular general idea works even though the specific applications or problems that they were dealing with back when may not be as important as they are today but again the general principles still very much remain on this. So as we're going through this today I'd also like to kind of draw some attention to some of the projects that you've been dealing with I certainly in reading this paper myself got a few laughs more than once in terms of yeah I should have done that in terms of my own research or back when when I was coding up OS 161 on this. So this paper is different in a couple other ways too in the sense that it really isn't a research paper per se by definition the author even admits it's not a bunch of de novo factoids rather the author is kind of just collecting the wisdom of the ages as of 30 years ago already and the other thing too it's a single author paper on this how many computer science papers for that matter even in STEM fields are single author it probably means it's a little bit unusual or off the track and it probably again means it's a little bit classic on this. So before we actually dive into that I should say and I did jump over this a second oh come on come on there we go okay and that is vicarious kudos from Jeff on this you guys are really tearing up the barn in terms of assignment 3.2 3.3 and whatnot and really it is this is quite good I think the class is a whole you need to kind of pat yourselves on the back even if you haven't submitted complete or gotten complete grades for 32 or 33 rest assured number one you probably already got Jeff's email you can continue to submit right to the end of the semester on that so that's one thing as far as how much to balance in terms of additional time to put into coding obviously if you're already at 80% or above in terms of point value it's kind of pointless excuse the pun to consider continue to bang on it right now at least until you get your quizzes out of the way next week but I would say we I've already talked with you a bunch of you on this I know I am as guilty as anyone else over the summer after I took operating systems with Jeff yeah I had been bitten and I continued to toy around with almost when 61 well into the summer on this and I think more than a few of you should be targeting something like copy on right or who knows multi threaded processes there's a whole bunch of stuff for you to kind of dig in on that too but anyway like I say again Jeff really is quite pleased with how the class has done so far one other remark from the trenches on this obviously there is going to be the quiz coming up 168 hours from now I think it's a what 330 or so okay so it'll be 169 hours from now so I believe it's it's Monday right I'm mistaken is that correct okay and I believe it's same time plus one hour in same bat cave right here so for better or for worse this is where is going to be scheduled on this so you already know the drill about this I would say the test is roughly speaking twice as long in the midterm but you'll have three times the time and that really should address the time crunch issue which I think affected a bunch of people on the midterms I know from proctoring and from taking the final in the past I can tell you that the final does not have the time pressure that the midterm does that said and done it kind of distresses me sometime to see a lot of people leaving earlier than they necessarily should because I I'm thinking myself I bet that person could continue to pound away and get more points on this so I'm not saying you have to stay the full three hours but please resist the temptation to get out and start frolicking in the spring sun on this you've got three hours in which to get points and you might as well make use of that I know you've already done the toughest certainly in terms of clock hours that put in in terms of your programming assignments the other thing it does go without saying remember that that final is 30% of your grades and you don't want to drop the ball on that I've already seen one of Jeff's tests in first hand you certainly have plenty of his released exams online take a look through that essentially what you see is what you get it's the midterm plus two additional essay questions on this so and I do mention that again because I think I know Ali and I discussed this at length I do think that the essay is where most people kind of came up short for the midterm I would again guess that's probably because of time pressure but you want to make sure that on the final where essentially the essays are going to be well a good almost three-quarters of your test two-thirds to three-quarters that you do want to spend your time thinking about the answers before you write them down on this so it's not difficult to score well on this test but again we are going to be looking for are you thinking things through it's again the essay questions that again Jeff calls them like the medium quite there's going to be typically one medium question worth 20 points which is the equivalent of the one essay that you had for the midterm and it's going to be two 25 point questions which are a hair longer than that so just make sure that you budget enough time you will have the time on the final unlike the midterm so there won't be time pressure but again make sure that you do take advantage of that and away she goes on this certainly Ali and I are going to try tomorrow and Wednesday to start in on a little bit of the mechanics of the test review and we're going to be seeing if we can't go through like an old practice test on that Jeff is going to be having a whole smash bang up ask me anything I believe it's either Wednesday or Friday of this week and the other thing I know I mentioned this for the midterm but once again to reiterate it I know for those of you and again for those of you out there in video land who are not here because again there's lots of orange seats again if you are thinking about hey I'm going to watch the videos whenever now is a time to start doing that because again if you have 15 hours worth of videos again you don't want to leave that to go to let's say Thursday or Friday it's going to take a lot longer for you actually to go through this and retain it then you might think so pardon me Sherman I will I guess descend from my pulpit at this point and I guess just any like last-minute questions or thoughts about like the end of assignment 3 like general questions about the test without going too far off the deep end before we dive into the paper yes the question is what is the coverage of the final exam Jeff's finals are comprehensive so everything from the beginning right up to the end of the semester yes other questions all right to the midterm to the midterm okay to the paper on this because so what do people think of this so knee-jerk reactions gut reactions sounds of silence okay one thumb up and everyone else it's the social hour at the trap it's nothing okay well let's actually kind of talk through this again in terms of come on there we are okay three goals in terms of what is this okay butler lamps and guys aim in terms of this paper again it's to if you will furnish and consolidate general tips for designing systems on this and this is one thing again just already talked about this in terms of like designing a system is very often difficult on this you've already seen this firsthand with assignment three so how can we actually kind of maybe give future coders a few bit of a few hints if you will to make the process slightly less painful and perhaps avoid some common pitfalls on this in terms of what's going on here okay there are goals of functionality speed and fault tolerance here well that is if you will he's going to give you hints as to how you can achieve these three goals and then there's going to be some other three things that he talks about in terms of how let's say where these actually get applied on this so remember just to review things functionality we're essentially talking about does the system do what we want it to that it doesn't come up short that it doesn't achieve some subset what have you on this speed again we're talking there again typically about well clock time but there could be other factors in play in terms of maybe like prioritization of speed so that we don't have let's say one thing gets done quickly but a more important task gets left to starve on this one other thing in terms of speed it's we talked about this already but remember there's a little bit of a balance to between speed and other goals on this like economics how can we achieve something but at what cost on this and then fault tolerance for those of you who have taken classes like databases or distributed systems that's huge in there not that it's not huge and operating systems but again we want a system that is going to achieve what we want but also not fail miserably on this so let's actually take a look at this the next page here and again this is directly from the PDF so if you do have a laptop or a phone or who knows a crystal ball kind of put this up we're going to kind of walk through some of these things and orders we see them in the paper itself here so what we're talking about here in terms of hints for a computer system design go through functionality on this okay Lampson talks about functionality is well we're trying to get a system to do something on this and in particular one of things that Lampson talks about is this interface thing and why are we kind of making a big issue you can see take a look at all the comments in this middle section here about interface why are we focusing on that I mean why do we even need to do this as opposed to these general three goals of functionality speed and fault tolerance what is so bleepity bleep about an interface on this thoughts on this you've all used interfaces like what's the big interface you had to deal with on in this course here hmm well sys 161 that's the okay you know what that is an interface okay I never thought about that okay but you're right because that is an interface at what level we're trying to get the operating system working with the interface of its emulator on this what's the interface that you had to code against you had to configure the sys 161 interface okay but you had to code against another one assignment to aka sys calls okay so so what's the whole point of these interfaces on here you can think of it again the paper talks a little bit about that it's a kind of almost a mini programming language this is the breaking off point where the system you're designing has to work with the user right in this case you are designing your operating system OS 161 to work with the user which in this case is a bunch of automated tests but in the real world it's probably going to be some cranky user who is going to import data that has not been sanitized or uncover some stupid corner case or what have you oh and by the way the user will also try to get your system to do something that maybe it's not designed to or what have you so we need to think long and hard about this interface because it's going to expose the functionality that you want to implement or should implement and also almost as important I'm gonna pick up from the paper on this hide functionality that your system doesn't do and that you want to kind of childproof the thing so that the user can't break your system on this so and I don't just mean simply error checking it could also be something as simple as just not allowing the user to pass in certain types of requests at all because again remember it's you want don't want to really do anything more than you absolutely have to on this so interfaces super important on this now in terms of what's going on after this here take a look at well that's right you know what let me actually just bring up the PDF it's probably going to be a little bit simpler to ah there we are so page okay and we are ah okay you've already remembered just post maybe about two months or so ago about kiss keep it simple stupid on this and this is probably the biggest recurring theme throughout this entire paper on this why what's the whole point with kiss in this are we concerned with osculatory indulgence or what what are we trying to avoid with the kiss theory on this if we're trying to keep things simple we don't want complications right okay and how can we get complications how can we if you will make things harder for ourselves I am being asked to design let's say a database or an operating system that has to perform to these specifications x y and z okay and that's what I have to do in order to keep my job and to keep the counter a company from having its contract terminated how can I make things worse for myself by adding extra okay because if I do that well yeah I'm making more work for myself but also what I am making the whole system more complicated I'm potentially introducing bugs and I'm potentially having the system trying to do something that it perhaps was not designed to do in the first place on this so once again is design one system or one subsystem to do one thing and only one thing really well on this so that's actually down there do one thing at a time and make sure that you do it well right if you do let's say you try to do some things too much that's when things get complicated and that's essentially when things go off the tracks on this now a couple things about this I should say we're talking about systems and there's also subsystems on this you've already designed several subsystems you do you assignment 3 is a memory manager subsystem like assignment 2 roughly speaking is a process managing subsystem on this and your interface that you're presenting to the user should ideally allow you to access one and only one part of the system on this so think about this in terms of preventing or presenting let's say the syscall interface to the user I am not letting the user muck around with let's say the internals of my buffer cache or my scheduling algorithm or what have you on this why not if I expose essentially the entire design of the kernel to the user okay security is one thing okay and closely aligned to stability is what else I've got this finely tuned grandfather clock and it's kind of dependent on all the gears working together and essentially what I've exposed to the user is a couple dials set the hour and set the minutes on this I don't want the user mucking around with let's say the weight of the weight or let's say changing the gears or something else like that because that's going to essentially throw off all my finely tuned handwork on this so I want to expose one subsection to the user in other words what is the current time right now and if there is a need for something else like let's say it's a cuckoo clock and I want to allow the user to have the ability to change let's say the species of bird that comes out and goes chirp chirp well that's going to be a different interface on this so again one interface to do one subsystem to do one thing at a time on this keep your interfaces as simple as possible on this again that's from your standpoint for your own sanity and also from the protection of the users on this now a couple things and I may have to scroll down on this now come on yes okay now that's a general rule and this talk is going to have a lot of general rules followed by some qualified exception on here so we want to keep our interfaces simple and we want to keep if you will what they're interfacing to simple and quick and very efficient but there's going to be some things for example things that are not used as often can be more complex you know it's the old 80-20 rule on this that if I need to let's say I need to set the clock time or let's say in terms of a syscall I let's say the read syscall does one thing what I read a file very simple no more no less but you know what a user that is sitting in a terminal is sometimes going to need to do very complex tasks like you might need to let's say who knows script a backup policy or what have you and that's actually what the author is getting at here in terms of let's say more complicated stuff like interpreting command lines that is something where you can have let's say exposed more complicated functionality that may not even be quite as efficient because do you really care if it takes five milliseconds or ten milliseconds to respond to a user's input line that's probably quick enough for that because the processing time beyond that is going to be a lot longer than that as opposed to something like the ability to respond to a read syscall that it better be lightning quick on that because there's a gazillion of those things going on every second I know that from my own woeful research and how it is completely overflowing the data collection server on this so simple things that are done all the time you need to keep very efficient okay more complex things that are not as frequently accessed that's where you can kind of let the complexity bubble up to the surface on this one other thing that we're keeping in mind in terms of complexity I already hinted at this it the user the more we can not guess ourselves and let the user make the complicated choices of this how does the user want the backup script to run I don't care let the user make that decision on this so I'm just going to give the user a bunch of very simple tools and that the user put together build the building blocks so in this case the user presumably assist admin can then use the syscalls with a bunch of typical Unix programs like RM-RF that will definitely get rid of all buggy programs and that in term will allow you to take accomplish whatever it is that you need to accomplish so questions on this so far we're talking about general principles we're talking about just keep it simple on this do a few things that are really important well and let complex things well be at corner cases on this so far so good straight forward already moving right along I can here we are oh come on which page okay get it right this goes without saying here but you know what you want you don't want bugs so and by bugs it certainly could be as obvious as like the old pedium bug from what 20 years or so ago that was in hardware but it could also be something like a performance bug on this too and kind of distilling all of this down here the author brings up the case of an old I believe it's a word processing program from back in the Cretaceous era when I was young and essentially what it has is an o of n squared search algorithm if you need to search for let's say I think it's like a mail merge or something like this so and then the author is basically saying guess what production and well yeah basically production code very often has bugs avoid them please so moving right along yeah we're talking about in terms of efficiency keep things simple keep bugs out of it few corollaries to this again make it fast so again simple fast functions again try to hard to guess like there's a few angles of what what users might want in other words in designing a system okay I know that the user is going to need to read a file so I'll keep it simple what I'm not going to try to do is guess what the user might want to read the file for or the specific circumstances or the exact performance metric or what additional features that the user might add I know it was ages and ages before they even came out with an extension to the read sys call as simple as p read which all that does is it adds on an extra parameter and it kind of combines lc and read together on this but it's kind of a generic like the design principle like Linus in particular absolutely hates adding sys calls and adding features to this and it's probably a good idea we'll look at some other reasons for that later on right and that is like well but this user might want to let's say do an atomic position and read at the same time all right but then you know what eventually you're going to be serving these requests well guess what I want an atomic position read back scratch and squeeze my parrot juice at the same time and it's feature it is this is the problem with this so what we're trying to do is keep the simple stuff simple and fast on this and in terms of you know what the user who does want a built in back scratch sub routine to this great widget you know what who's going to implement that windows well yeah window that's feature it is okay but again I don't want to do it so who does that leave yeah let's punt the complexity to the user remember we were just talking about that in terms of let the admin use the simple tools to put together the complex backup script on this well same thing here too so the upshot is it's difficult to guess what users are going to need or what their specific wants are so let them do the guessing and the configuring on this we want to keep our stuff clean and lean and lightweight on this now couple other caveats in terms of don't hide power what the author is trying to get here it's a very specific corner case but you know what if you have let's say your company is contracted with the electrical engineers and you've got this really really great hardware performance optimization like in this case the author is talking about this one computer system has I guess the ability to do like a huge read of an entire cylinders worth of disk data all at once on this you might as well expose something like that to the user because if it was specifically designed for that why cripple that particular functionality on it so now we're not going to try to completely cripple all functionality but this is something that was implemented for us down below it's not like we're trying to implement the additional functionality get the distinction on this so if there is specific power of the system we might as well expose that system but we're not going to try to be cutesy and implemented ourselves that's kind of the distinction that's going on here ready moving right along if I can we are use procedure arguments a little bit okay this is I'm already beginning to get off my own track of familiarity here but what is the author trying to say here is you know remember back to days of 115 116 and what was it like map reduce on this essentially what the author is trying to get at here is rather than me trying to implement a system that does let's say ten different variations let's say I'm retrieving data and then implementing ten functions okay back scratch massage what have you shampoo and what have you I'm going to instead say you know what I am going to let's say get my piece of data let's say in this case let's say a customer at a salon and I am going to have a parameter that is if you will okay a procedure argument so in this case let it kind of think of it as like a call back okay let the user implement the specifics to this again I'm just going to provide the basic tools and let the user take care of some of the more specifics and then look at that leave it to the client once again do we see a pattern here people so the more details that we can punt to the user so much the better on this and similarly on this too we already talked about this Unix system encourages the building of small programs that take one or more character have we seen that okay the real mark of a Unix wizard you've seen some like kensmith scripts that are about like five pages long and they have like all these pipes and they have like was it awk and said and like all this gibberish alright well the thing is that there are a lot of basic tools and the administrator is using at the user level these tools to build something to do rather complicated but we don't care about that again this is a general design principle of Unix and it certainly is something that we have seen bleed over into yes indeed even the windows world on this there's certainly aping the idea of let's say more and more scripting on this questions comments so far continuity I wish I had a clicker for this PDF but we'll have to bear with us on this here right constant tension between the desire to improve a design and the need for stability oh boy ain't that the truth on this those of you who have taken 341 especially with Chris Schindler do you remember him railing about what's the whole thing about x86 architecture why do we still have x86 architecture yes but you know what we're also still running programs that have been written last year to in x86 why is that we all agree that x86 is a boneheaded design at this point but we're still producing programs last year in this year in x86 ha how did that come about we get the 1989 thing but what yes right now the thing okay I think you're definitely getting very warm there okay the Intel has a lot of clout and arguably a whole bunch of different areas on this but I don't think they're probably holding a shotgun to people's backs but maybe almost close to that though what do users companies still have that they don't want to move away from here yeah because what there was that DOS program in 1989 which means that when I bought my computer in 1991 I wanted to run that DOS program because I was still very interested in you and by the way now that I bought the computer in 1991 I might as well buy software that runs on that in 1993 do we see okay it's kind of a rollover pattern and finally all of a sudden we are here in 2017 so part of it is we do get into this rut and it's very difficult to get out of on this but you know because of that we do need to support again Lance Torvalds is absolutely if you want to see him go apoplectic look well I guess a lot of things will set him off well actually many things will set him off but one of the things that he will really really tear a new one with the kernel developers for is if someone tries to be cute and breaks user space that's the big thing on this so it's absolutely important and linex linux whatever that you do not break the expectations of user space programs on this so that's what meaning by basic interfaces stable here and again take a look at this the interface is divided by programming language or operating systems well that's certainly one of the ones that you dealt with in os 161 these can go on for years and years and years and decades on this and even beyond that though let's say internally let's say I can guarantee you at a company like Microsoft they have their own internal API's on this well you don't really want to break a project that has taken let's say gazillions of dollars for them to develop internally on this so again try to keep changes to a minimum on this that said and done sometimes okay if you look at the next bullet point here keep a place to stand and that is sometimes we do need to move away change can't happen very glacially but it does happen we are now finally using 64-bit machines on this and how does windows deal with that legacy 32-bit code cry and die it runs just fine using what and remember like w o w 64 I think it's called that you know whatever windows on windows or something like that okay so you know we don't want to break these things but if we do change the interface what we want to do is in some way try to maintain backwards compatibility on this and there's a bunch of different ways on this the author talks about well in the case of windows on windows or whatnot providing let's say an additional layer of support to support deprecated commands for at least a while as you can say like windows is no longer supporting 16-bit software they've moved away from that but we're still going to support 32-bit software for a while plus the other thing too another great example this when this paper was written in 1983 it was kind of almost a pipe dream but it's here today remember Jeff's lectures on virtualization on this that is probably the biggest example of supporting deprecated systems on this we're not going to try to support things at the application level we're going to support the entire operating system so if you've got that legacy piece of software what we're going to do here is instead if we're smart at let's say windows and or let's say at apple and we want it we want it kind of because we know windows has the dominant market share we want to kind of make it easy for companies to use our Macintoshes on this so we're going to make sure that our machines can virtualize windows and thereby run that mission critical app so that if you come over to our side of the fence it you know you don't have to throw out your entire business model on this it'll still work so upshot is try to change that keep changes to a minimum but when you do always make sure that you give users and out by the way this is I can smell this sort of thing showing up in a Jeff essay type questions on this so what I'll ask you to do is possibly talk about what are some of the design principles and let's say software architecture and like well how well how would you go about designing a system that does XYZ or let's say the president of the company has told you that she wants XYZ features is this a good idea or a bad idea according to general design principles does the president know what she's talking about explain why something like that handling all the cases handle normal and worst cases on this what we're talking about here is in a system now this is kind of internal up until now I've been yabbering on about how we interact with the user if you will now we're talking about how can we make sure that our performance at least is well tolerable on this because you know what in terms of we want normal case remember that think about the 80-20 rule maybe we should say like the 98 to rule on this we want the normal case to run very quickly but we also need to be able to handle the odd case actually probably a better way of putting it is this is this worst case right here what do we not want this worst case to do I'm sorry I turn here I'm going deep not make progress definitely not make progress and what else do we not want it to do vis-a-vis the rest of the system okay in other words if we don't want the worst case to not make progress we can extend that to also say we don't want it to bottle up and essentially make sure that all the normal cases also don't make progress on this and Jeff used an example actually in the past about like the health care dot gov website remember there was that debacle about was it maybe a few years back when essentially the entire official government website melted on this and it turned out that there was one piece of software internal to the website that was a problem in certain cases and the patch that they came up with kind of lickety-split was you know what we're going to kind of do a quick test of what the user wants initially and for was it like the 90x percent places of that is the general case we're just going to bypass the one problem piece of software and for the sub case what we're going to do is say you know what thank you for your initial information we're going to get back to you maybe in the day or two and ask for additional help so that person is going to be told you're going to have to wait at least expectations were set but the big thing is we're not holding up everyone because before everyone was being fine funneled through this really really slow piece of software on this so what we're trying to do again is separate these two cases of handling on this how about an OS 161 example on this for those of you who were finishing up with assignment 3.3 do you remember the TLB on this and remember there's kind of a bunch of different ways of handling the TLB namely if you need to evict out a page what's the easiest way to make sure that we never have to worry about let's say messing up the page cache or I'm sorry the translation cache of the victim process do what to the victim process it's TLB I'm sorry clear it yeah nuke it in other words in every case every time I evict a page nuke all the TLBs on all the processors that will work I know for sure it will work and it is very easy to implement and what does that do to the if you will performance of your system where's the Moab okay there we go okay it is right so in other words it works in process but then what did you do okay you separated out the two because when do we need when we absolutely need to clear out that TLB when the essentially the only case when the victim process is doing what well yes and specifically running so if I can determine okay it's going to be on the longer and more complex code path to go down if the victim process is running I'm gonna still have to do a TLB if you will flush out on this or something like that but if the victim process is not the vast majority of cases on this I can keep much simpler I don't even have to do anything with the victim TLB done so again try to separate out weirdo quarter cases that are going to take a long time from other things here speed again there we go okay and a little bit about this this is kind of weird remember way back to there's two types of parallelism if you will temporal and spatial parallelism the author is suggesting here if at all possible try to divide up resources such that kind of each program or each user has its own little sandbox and they're not stomping on each other's toes it's kind of interesting because like 30 some odd years ago memory something like that was much more precious than it is today memory is much less of an issue yes we still have swapping that was part of assignment 3 but it's much less of an issue in general we want to give processes give users essentially all the ramp that they need on this so that's kind of an example of spatially multiplexing things for speed because that way we don't have to constantly port data in for one process and then port it out before we when we do a context which we're just going to leave let's say if two processes are running in memory at the same time leave the contents in memory barring an eviction on this with the exception the author does certainly admit that there are some resources that are well a little bit more expensive like CPUs on this and in that case what you need to do the author is trying to say is as a software engineer design whether decide whether or not a resource is expensive or not in other words memory is relatively cheap so we can give each process as much memory as it wants as opposed to a CPU even today even though there's let's say four or eight CPUs we don't have 500 CPUs we're not at the point where each process can have its own CPU so that's something that is still going to have to be shared again temporal multiplexing on this okay let's go down to if I can find it what page are we on oh 14 dynamic translation something certainly was talked about back then but everyone deals with dynamic translation directly or indirectly today what I mean by dynamic translation like what language in particular is notorious famous for dynamic translation it's the language I love to hate yeah good old Java okay and this is something low the JVM gets into it and certainly Android was putting around for it for a little while but again what we can do if possible well this is what we do with compiling in the first place we have let's say a human readable easily accessible way of expressing stuff and we have a very efficient way of expressing stuff IE machine code on this and we need to translate between the two on this and certainly we can do static translation IE compiling things but sometimes we want to also look at dynamic translation so this is something that the author is suggesting as a programming is running can we kind of peek ahead to see what's going on and Jeff probably mentioned that these would be the context of virtualization did he talk about that like with full virtualization you're having to translate bytecode on the fly that was done for the sake of stability and security but in this case what the author is trying to get at is dynamic translation for the purposes of efficiency and performance on this because if you look at something like again the JVM with just in time compilation or again Android certainly doing that in other words we want to kind of think okay we know we've got this blob of code that we have to execute in the next five or ten seconds can we look ahead and see what blocks of code are getting executed a lot aha that looks like a loop that we are executing five million times I'm gonna pre compile that thing so that when I get to it again it's going to execute a lot faster so this is again another general trend but one that has certainly become much much more important in recent days on this so just in time translation example of dynamic translation ready moving right along if I can't go down caching answers on this and certainly again the classic and so an example that the author brings up is caching is in cash caching again think back to 341 on a hardware level what we're trying to do is what is the answer to bite 1000 in other words let's read the value of bite 1000 and rather than fetching it from mainboard memory let's save it in a much more easily accessible place but from a standpoint of software designers your software designers not hardware designers this is a CS class not an EE class the same principle applies very often you're going to be doing computation and that computation is going to take a while if you have to do it repeatedly why not cash the results on this and where are we doing lots of software caching these days examples really here about software caching Jeff talked about one in this class the blank cash file system talk about you guys get into buffer cash this year okay okay so you did talk about that okay so in other words this is one example of okay what is the value of a particular file on this well rather than reading it from desk again it is the opposite of swapping I'm going to read it into the buffer cash so that I don't have to read it again and again on this those of you who have taken networks what's an example of caching that's now going on what's all this net neutrality debate okay because of like videos and stuff like that what's one way that you can let's say if people are constantly streaming or torrenting a particular video and let's say the home server is in Tahiti okay the black sense of Tahiti so what are we going to do is an ISP to try to make it go quicker yes prioritize it definitely that will improve it and that's actually any old idea you can talk about in this too so that will make sure that the user experience is better how can we use a cash to sell this I'm repeatedly seeing requests to this video server in Tahiti why should I continue to go to the video server in Tahiti instead what should I do the next time I see a request for video XYZ in Tahiti yeah okay so let's store a cash locally or at least regionally on this so again this is a big area of software engineering that is being implemented at the hardware level the local system level the cluster level whole bunch of different levels on this all right other things too ah hints what is a hint well we know what a hint is but like up until now I've been talking about specific policies you need to do X because it will produce Y on this like one example for let's say we talked about I'll give you an example like this in OS 161 is remember we're using the past to predict the future we want to pick a good page to evict so Jeff talked about clock and LRU on this what is let's say a good page to evict do I know the best page to evict now I can only take kind of a guess at that so this is a hint I might actually sometimes pick wrong and I might have to suffer the consequences on this or another one I had some discussions with people here about how many locks should I have for let's say the core map you can have one big lock for the core map and that's probably what most people do on this but wait a minute Karl can I optimize this and have a lock on each individual page on this well yeah it turns out you can right and you can get rid of the big core map lock on this and it will be a lot more granular on this in other words I want to let's say gain access to let's say entry 10 of the core map so okay what do I do I grab a hold of that and I want to see is it free or not okay well what happens in the interim though let's say because I've scanned the core map without holding a lock and I think you know what I want to grab this free page for my use but in while grabbing it what happens is what someone else might have grabbed it too so I don't know I might have made a bad guess state might have changed on this but that's okay these are simply hints that we can use in other words I can say that this was the last previously free page on this and I can start here I might be wrong in my guess but it will help me avoid the predicament of having to grab a global lock on the core map and iterate the entire thing from front to back each time on this now the other one on the bottom here if I can find it is this page oops no to head ah compute in background this is presented as almost a novel concept here when possible try to compute on this you get the feeling that things have changed because today let's face it multi-threading goes on all the time and this is something that certainly you know about this if your app is non responsive because you're doing some good stuff on the GUI thread your users are going to be very very unhappy on this and as a matter of fact this is something that is a big design principle of you know any graphical operating system you're going to have to make sure that the GUI thread is always as responsive as possible and make sure that you don't block responsiveness on this so just general thoughts questions okay the last try I will say very go quickly it's essentially fault tolerance on this and he talks about like end-to-end principles in other words essentially what you want to make sure is that the end user get stuff that matters on this if there's a problem in the interim you really don't care about it on this so again in terms of what you're looking for is performance is the end user is the end user is performance is the system if you will perform it within time and economic constraints does it work does it do what it wants and lastly is does the system actually not bomb out so questions on this well thanks people I appreciate it Jeff to go a review and take it from there


Let's see what's in here. You're lying. You did not spend your money on that. Hold up. What's the big deal? Scared our cat away. We were trying to get a cute family, you know, clip right here with a new toy. But guys, it is Christmas. It is Christmas day, guys. This is Christmas. We did pre-film this, but it is Christmas day. It's Christmas now. We are so excited. We gotta actually change something over here. How many days till Christmas left, Raya? Zero days, because it's Christmas, guys. I hope you guys woke up. Right now you're seeing this.  I hope you love what you got. Freaking love family time. Watch it up and down. I want you guys to comment down below. We're gonna start off early. What did you guys get for Christmas? What was your favorite Christmas gift that you got this year? Comment down below what that is. I cannot wait. Oh, and the reason why we also pre-film this video, it's Christmas when we're posting it, but we're not gonna be together.  So that's why we're opening up gifts now. Obviously it's still Christmas for you guys. This is crazy, though. Like, I cannot believe how fast this year came and gone. I know, seriously. We literally have like, what, six days left of the year. And then it's over. And then 2021 is just on lock. That's crazy. But literally today in this video, we're gonna be opening up gifts and not only that, we have some packages from our P.O. box like you cannot imagine. Oh my God, guys, let's just show them really good. All right, let's go. Look at that. Model squad. And we have piles of just letters this big. The letters are all in this one. But look it, this is from yesterday. We picked it up so it's perfect and we're gonna do it on Christmas. This is insane and we're gonna get all those done. All of these gifts are on the tree. We're gonna be opening and see what we get today. We get a little early Christmas, but on actual Christmas, I'm gonna be sending my loving prayers to you.  If you haven't already, if you guys haven't subscribed, you should go down and hit that subscribe button and join the Marvel family. Join our family, guys. We are on the road to 2 million subscribers, 2 million by 2021. That's insane. Let's get it, Marvel Squad. Help us out. We appreciate all of you guys' support now. I think all we have to do is get into the unwrapping. Let's get it. Ryan, you need help finding a good angle for the camera. Do you want to buy the Christmas tree or do you want to buy the fireplace? Oh, my gosh. Ryan.  I'm sorry. What's Christmas without a little prank? Come on. Just wait. What? Just wait. Just wait. Guys, I'm surprised you didn't run away. You think that that was cool? Yes, but you always do that to me. I have to get you. I'm not gonna get you again, Ryan. I'm actually gonna send the gifts now. I don't know if you can hear that bill bill right now. It's in the outer room wrapping a few extra gifts. I guess he has a little bit more for me. Wait till the middle of this video because I'm gonna be pulling a crazy prank on him. We're gonna open up a few gifts first and then I'm gonna go in the room. I'm gonna tell him that I have a few more extra gifts that I wanna give him and I'm gonna change into a naughty Christmas outfit and come back out and see how he reacts.  Like, that's inappropriate. It's gonna be super funny. So stay tuned, guys.  Team Ryan is going back today. Bill tried pranking me with a little spray bottle this morning. He has no idea what's going for him. Alright guys, so it is gifts opening time and we're gonna start it off with the smallest person of the family snap. You're gonna open your first Christmas gift. Look at the first Christmas gift. It's your first gift of the year. Look. It's a reindeer. You like it? Oh guys, he's already playing with it. I don't know if you can tell. Alright, one more gift, right? One more gift, snap. Come here. Nice. You got nice. Dude, that's so awesome.  Alright, so that's with snap. Now we can move on to the bigger and the better and the more pretty. You want to do rock, paper, scissors? Oh, more handsome. Oh, thank you so much. Merry Christmas. Let's go, ready? Rock, paper, scissors, shoot. Rock, paper, scissors, shoot. Hey, it's rock, paper, scissors, shoot. Rock, paper, scissors, shoot. Oh! It's always happens. Rock, paper, scissors, shoot. Oh! Alright, I'm gonna start off simple. So I'm starting off with this gift. It's just a bag. It's kind of heavy, so let's see what's in here. And remember, we don't know anything that we got each other, obviously, so. You're lying. Yeah, I got a new one. No way. So we have two. So he's got big bulky. Mom's squad! What? You did not spend your money on that. Guys, no joke. It's expensive. Mariah got us another vlog camera. It's the same one that we're filming on. Yeah, it's because we love it so much and Bill kept saying we need to get another one. We need to get another one. Babe. This white one is so hard to find in stock. Wait, you said this one goes with it then? Yeah, that's fair. Oh, I think I know what it is then. Hold on. Mom's squad. Our content's about to be 20 times better now. Because we had that big can in EED too and it was too big. We need to have our second camera. No way, babe. We got the second lens. Woo! Guys, so when you buy the camera, it comes with a lens, but we buy an aftermarket lens because it looks way better. Better quality for our Marble Squad. Those of you watching, that's why it looks so good. Are you excited? You got two cameras there. Yes! You got two cameras. Thank you so much. That was expensive. So thank you. You're welcome. Feel bad now. She opened up my expensive gift the other day. If you guys did not watch our chief first expensive Christmas opening gift video, she opened up the Louis Vuitton bag that I was getting it for Christmas. I did get her a Louis Vuitton bag. Yes, she did get me a Louis Vuitton bag so make sure you guys go back and watch that. I am so excited. Now we're gonna be able to double film on two nice cameras. Is that crazy? Oh, I'm so happy, babe. Woo! You're welcome. All right, rise to 100 dollars. Get it. This is something just subtle. Set it up for this. Something subtle. Marble Squad. You guys have no idea how much I love this candle. Oh my God. You like it? Yeah, I love it. Thank you. It's a Spice Gingerbread Cookie. I already have one that I'm waiting to plate and now I have another one. I'm stocked up. She's obsessed with these candles, guys. I am stocked up. So I should sell them little, just sell them different. Should I open up one more? Yeah, why don't you open up? I actually want you to open up that silver one. And Mariah actually went shopping with me when I did pick this up, but it was during the one video, the cheaper, it's expensive, where we were shopping separately so she did not know anything that I got in my car. Oh, it's a robe. It's a robe. So every time you get out of the shower or whatever. Or I just wanna get cozy in these. Or you can get cozy, yeah. And I thought it was so cute. Babe, this is so cute. You, yeah, I love it. Dude, I'm probably gonna wear this tonight when I'm just chilling. TMI, Mariah, when she gets ready in the morning, puts on her makeup, she's like naked. Yeah, I'm naked. So I feel like having a robe, it'll be way more comfy. Oh my God, I love it. I'm gonna put it on right now. And it feels so soft. It is so soft. All right, I'm gonna open up another one. I'm opening up this one. It says to Bilbo from Mimi. I called her Mimi, by the way. Oh, so this is really funny. Even on this one, he says for a girl with 24 hair extensions in his family, they put like really funny things on there. I don't know if that's also a thing in any one else's family, but we put like two Mariah Tron from Bilbo or something like some random. All right, let's see what it is. I'm gonna open them up. Oh, Paxson. No, guys, she got the Playboy Sweatpants. Oh my God, these are nice. Guys, I'm getting treated.  I know, right? Louis Vuitton, that wasn't enough. Like, come on.  Yeah, but honestly, I've been loving wearing Sweatpants. These are sick. Those are gonna look so good. Look at that. The zipper. Hey! Sorry. No, this is awesome, though. Thank you so much. You wanna open that one? Yeah. Shout out to the big bow. Made another appearance in one of our Marvel Squad videos. You're gonna have to tell me, are these the Nike Jordans that I wanted? I don't know. I'm excited. She's been dying for these, guys. Look at these shoes. They need to be laced up, but Mariah, I hope you enjoy it. She's been asking for these for ever. They need to make sure they fit. These are fire. You like them? Yes. They put laces on them, obviously. Herb? Yeah, they fit good. They fit good. Look it. Yeah, that was probably like two out of the three big gifts that you've got. So you still have one big gift to go. The Louis Vuitton bag that I got her in the other video, the shoes, and there's one more thing, big thing that you're going to love. Can I take the camera into the room? Cause I wanna, I have some stocking stuff that I wanna, like show Marvel Squad. Oh yeah. Oh, you're gonna get it right now? Yeah. How long are you gonna be? 10 minutes. Okay. All right, Marvel Squad, it is go time.  So stay tuned. Let me change into it right now. All right guys, so here is my sexy Christmas outfit.  You need to take that off. That is inappropriate for video. But as you guys know, I've got a title.  Obviously he's not controlling and he doesn't control what I wear. He always is very supportive. But this is a little bit, you know, obviously really too much to be filming on camera just because it's a little more like something that I would wear for him, not for like our Marvel Squad. Today is Christmas Day, okay? I have to come through with the crazy Epic prank and I have to get him today.  I do actually have some stocking stuff over here.  All right, babe, so close your eyes. I wanna have you open up the stocking here. Hold this, don't open your eyes. I'm not, I'm just, okay. And then one of the things you're gonna open. Oh my God, there's a lot of stuff in here, babe. Grab this, grab this other one. That's so bad, I didn't get you a stocking. Okay, so you're gonna open your eyes, you're gonna see the first gift, but hold on, let me tell you, I'll tell you when to open them, go. Are they wrapped or not? No, there's no stocking. This one, obviously, I thought it was gonna fit.  I'm sorry. Better not be a fake stocking thing, explode in my face. Hey! Look it over there, look at that one. Oh yeah, I forgot about this. Dang, you got a mini waffle maker? Yes! What? I thought if you like waffles, so I thought maybe you could make waffles. Look it, look it, look it, look it. I know, and it's blue, I saw it and I'm like, no, I literally saw it when I was looking for stocking gifts and I'm like, oh, he needs that. That's awesome, thank you, babe. Oh, God. What else we got? Your line. Yeah. Ho-ho, ho-ho. I know, I wanted to come out. This is a second gift. On camera? Yeah. Hold up, hold up. This is a second gift, it's me, Merry Christmas. Babe, hold on, hold on, on camera. No, no, no, no, no, no, no, no. This is like short. No, it's not short.  It's not short. You can't put this on video. This is your Christmas gift, because you're not going to see me on Christmas day. I'm going to give you Christmas day. Hold up, hold up. Mariah, what do you want us? I thought you were going to like it. I love it, where'd you get those socks to? On Amazon, guys, on Amazon. Babe, hold on, we can't put this on video though. What's the big deal? I want to open up GIFs wearing this. And we're going to go on public today, wearing this too. No, we're not. We're not. We actually are. Just wanted to surprise you. You look good. You like it? Yeah. You can let me wear it when we finish unwrapping our gifts. Can we stop the camera? No, I don't know. Can you put something else on while we're done filming? You're not wearing this stuff the whole video? I am wearing throughout this whole video. I love it, but put it on after the video. No, I wanted to wear this for the video. This is one of your other GIFs, it was me. Not to show on camera?  Merry Christmas. Not to show on camera. Yes. Bro, you want people to see you like this? Yeah, I don't care. I love it. I just feel like it's a little too much.    All right. It's good. It's good. Let's film. I want to wear this. There's further to the next. I want to wear this. Bro, you look beautiful. I know, but Merry Christmas. Don't look sad. Merry prank miss. You're not pranking me. Yes I am. No, you're not. I wanted to come out in a naughty Christmas outfit to see how you would react. No, you're not. No, I heard your Christmas gift was a little pranky prank. Babe. You got my Christmas gift. No, you're not. I couldn't not possibly do that. So now I'm in this. Wait, wait, wait. So if I didn't prank you today, would you have not have done this? Were you saving this for a different video? I still would have done it, but honestly, it made it so much better than this. Were you saving this for a different video for today? No, I was doing it. I knew I was going to do it. This was the whole plan all along? I was thinking it all along. I was holding it right in front of you. I had it when I was wearing a cute Christmas outfit. Okay, okay. It's cute. We all understand that, babe. I will put on my robe because I respect it.  You look hot, though. Look at how good she looks at this, though. It's pranky perfect. I support this girl and let her wear whatever she wants. I thought it was a little too much showy on camera. You guys comment down below how you thought about that along with your Christmas list. I respect it. I didn't even realize you had it on. I've said Team Mariah. For like 30 seconds. Team Mariah.  I think Bill's going to be coming back pretty soon. Maybe you guys should watch till the end of this video today because some might be coming behind. Now I know. But you can't avoid it. What's Christmas without a prank? And I can't believe you freaking pranked me, though. Yeah, what's Christmas without a prank? There you go. I just pranked you. That's not fair. That is fair. That is not fair at all. Can I wear my stocking? Yes, I would have your stocking. Well, I'm not going to be kidding, Mariah. I thought you were going to get this from me the other day. I'm actually really excited. It's an electric toothbrush, but it's like a really nice one. Bill wouldn't get one when we were at the Target store, so I'm like, I'm going to get him when I have one and he was talking to us about it. And I'm like, you know, I know if he had one, he'd want it. And then I got you this because I know how much you like your waffles. Skittles? Guys, I feel so bad. Mariah literally went all out on my stocking and I didn't even get her a stock. I knew what it was before you even pranked me. Wait, open up yours. I want you to open up yours. What is it, babe? I don't know what the next gift is. I should probably just open it up. I know. This is a protectant for your purse. My course purse. For a purse. This is a protectant. She should have opened up the other purse. I know I got my Louis Vuitton purse, but I do really, really like Michael Kors. And she did ask for one also. So. Marvel Squad. Look at how cute this is. A Michael Kors purse. I know you already got a Louis purse. I know you have a big Michael Kors, but she wanted a small one for so long. I wanted a small one to match it. And this is super cute. I like this chain. I know a chain. Look at that. It's not actually longer, but I'm about to put it around. Marvel Squad, this is so freaking cute. I'm actually obsessed with this. Now for me to open my last gifts. I have two of them. And Mariah said they kind of like are the same. Here, how about you open up that one for me. And I open up this. So we can open some fan mail. What? Yeah, open it all up.  Box full of clothes. No way.  So look at this one. Look, she got a chain. It looks cool on it. Hey, beanie. The beanie. No way, babe. No way. What? Oh. Oh my gosh. Mariah. You outdid yourself. I know. I blushed you. You outdid yourself this year. I blushed you. Thank you so much, babe. Thank you. You blessed me too. With a lot of toned purse. And all the purses and the shoes and the candle. Hey, I know. You can't go wrong with getting a girl a purse. Getting her clothes. Like that's literally the main thing. It really is. I'm excited. I cannot wait to open up all these. Where am I even going to put them? Oh, and I wanted to wear the shirt today. Just because it's the closest thing I have to Christmas. It's like red and green at the roses. But it goes along with the theme, guys. It's time to open up some of your guys's packages for Christmas. Let's see. By the way, guys, watch till the end of this video. Because we're going to be giving a $50 away to one person in this video. And next video, we're actually going to be giving another $50 away for whoever's watching this video till the end. So just so you know that, we've got to watch until the end to be able to get entered. No way. Marvel Squad. Someone, guys, the pillow that has a hundred K on this side. Who was that? And a million on this side. This is the sweetest gift ever. This is our one. This is like our one million pillow. Who is this from? Taylor? Is it from Taylor? Thank you so much. This is literally such a huge milestone difference. Thank you so much whoever did this. This is the sweetest thing ever. I was actually really sad that we're going to have to take down these balloons. But this pillow is honestly the perfect remember. It's perfect. Remember it. Guys. When we first started, we were in Florida. That was a year ago. A hundred thousand. A little more than a year ago. That was insane. And then one bill on another side. And it's so good quality. I love it. Dang. I love that. That's awesome. All right. This next gift looks like a real Christmassy type of gift, guys. Look at this. Oh, wow. Oh my gosh. This is the both of us. This is Mariah. And this is Bill. All right. I'm going to open up my gift. Hey. What is this? Jelly cup. I got a jelly cup. Look at my earrings. That's so cute. I love how they rock on those, babe. Oh, they got a little bath and shower bath. Thank you so much for the gift. Literally every single thing in here is amazing. Look at this. That's so sweet. She made these pillows for us. Look at this. They're like mini pillows. That's awesome. That's really cute. Kissing boob. Tiktok. Skittles. That's sick. Thank you so much for these gifts. Navea. Thank you so much. Literally, we love you. Look at this. They got candy canes of M&Ms. This is so sweet. No way. I couldn't find a dollar at your bite, but I hope you like these. Thank you. Thank you. Oh my gosh. Israel. Oh, this is Israeli. Israel? Beaver. No way. Girl, thank you so much. Look at Snap over here. We got our first ornament, guys. That's joke. As you can tell from this package, I love Christmas. I randomly decided to order this online at midnight, but it's my favorite gift in the package. You obviously don't have to, but it would mean the world if you could put it on your Christmas tree. We're going to put this on our Christmas tree right after this video. I'm not even kidding. It's going up on there. This is so awesome. We're going to have this the other day. We died. Thank you so much for sending that. She got us a Starbucks gift card. Thank you so much for all of these gifts. And then, look it. She has a painting, a wooden painting. I made this for you because it reminds me of Florida in the beach. Hey, look it. She made this. That is so sweet. That's beautiful. That's crazy. This is the sweetest, most thoughtful gift ever. This is so sweet. All right, guys. So I just want to give a huge shout out to G. G. She said it's a bunch, so she did like a little booklet here. This is my all-time favorite. This is awesome. This is so, this is so cute set up in like our house and everything. Forever together. This is so cute though. Perfect for our house theme. This is going to go up on our shelves, guys. Like I'm not even kidding. Why not even pierced? And on top of that, she sent us a bunch of candy. So much different candy. G, you are so supportive. I'm so grateful for you. And birthday letters for them. Yes. Guys, G. I'm going to open up my birthday. We're flying through this stuff, but I want you guys to know after the video and everything, we really go through this stuff and we thank you guys so much for everything that you do. Shout out to Alice. Ally. This is so cute. I love it. M and B. That's awesome. That is sick. So cool. This is from Maria. Look at it. She got us chocolates. Some Christmas marshmallows. Shout out to Maria. Maria. I'm so sweet of you. Thank you so much for the gifts and the marshmallows. We literally love it. This is from Jocelyn from Aurora, Illinois, so she's close by. She got us some candy, some Christmas candy, and some little gifts as well. Jocelyn is nine years old. This is the first time saying out a letter to a YouTuber. Jocelyn, thank you so much for making our Christmas time times better. I'm so glad and I hope we can make all of your guys' Christmas come better. Jocelyn, if you made this, literally you are such a good artist. Thank you for all the love. Also, shout out to Ava Clark. She made these cute little rocks. They're so cute. Ryan and team Bill. That's unique. Thank you so much, Ava. This next package is actually from Hawaii.  Oh my God. It's awesome. They got cups. Are you kidding? These are cool. Look at that. Aloha vibes. Look at these little straws too. This is from Matt Oba. He just said thank you so much for putting great content on YouTube. Literally Mariah, look at this. This is Starbucks. Oh really? Starbucks. That's so cool. Hey, that's sick. Look at this is how you say Merry Christmas in Hawaiian. Thank you so much, Matt. You are awesome. This is so awesome. Thank you so much. So this is from Destiny. She's 12 years old. She drew us this and she also gave us a really good smelling candle. She has a pickup tool. And a cat toy. And a cat toy for snack. This about wraps up today's video. We have so many letters as you can see right there. Probably a hundred letters that we have to open. We're going to go through this after this video so it'll take way too long. We're going to do it off camera on our Instagram. So if you guys do not follow us on Instagram, make sure to go follow us. And if there are any other packages coming to our PO box for Christmas, we'll get those probably after Christmas. But we will still open those on camera. Thank you for all the love. We are so grateful for you guys. It's insane.  But we have to bless one special day. We do. We have to give away $50 now. It's somebody special today. And before we do that, I just want to show you guys really quick. This is the mess. This is what our model squad did to us, babe. Oh my gosh. Look at our apartment. That's insane, but totally worth it. So today's $50 giveaway goes to Autumn Mahoney. Thank you so much. I hope you enjoyed the $50. And Merry Christmas to you and your family. And Merry Christmas to all of you guys. Merry Christmas to everyone watching this video. I just want to say before we get on the video, we had a blast doing Vlogmas this year. Don't worry. We're guys are going to be doing it again next year. This was probably the most fun we've had in a really long time. And to be honest, Vlogmas is technically not stopping. All we're doing is we're not posting on Saturday and Sunday. We're still going to be posting Monday through Friday. So I just want to say thank you guys so much for all that support. We had a million during Vlogmas. You know, so many exciting things happened during Vlogmas. And we just want to say thank you guys for, you know, everything that you guys do for us every single day. We are so grateful for you guys. It's actually the same. So, so, so great. And thank you so much for watching all of our videos. So the end, show and love, like it up, commenting down below.  Like you guys, we love every one of you and all the new people coming on. Make sure to subscribe if you are not subscribed to our channel yet. We are so happy to have you here and get ready because our content coming up is about to be lit. We're going to text you pretty soon. I'm excited. We're going to be with now. See you in the next video. Stay tuned and we will see you guys in the next video. But until then, peace. Love you guys.


Hello, everyone. It's Gabrielle and I'm here at Oxford Toyota. You all, I wanted to take a minute, talk a little bit about this Tacoma. So this is a 2022. It is a Toyota Tacoma. This is the Limited. Now the exterior color is called Wind Chill Pearl. Now on the front, you do have LED headlights, LED daylight running lights. Now on this Limited, you are going to have the Nightshade Edition. With that, you are going to have a black accents throughout this vehicle. So on the front, you did have that carbon-styled black grille. Really stands out against the beautiful white sparkly exterior color. You are going to have 18-inch alloy wheels. So around this vehicle, you are going to have the Tacoma. You'll have all the badging in the black. You've got the black mirror caps.  Again, the badging with that Limited right there.  And then for the back, once again, you have the black badging. So really, really beautiful. I love that black against the white color. Now, since we're back here, you are going to have a tunnel cover. And then going on to the interior of the Tacoma, you're going to have your black leather. There's going to be a sunroof. There is an 8-inch touchscreen. You'll have JBL sound system. There is a sub and amplifier. And I believe there are six speakers throughout the vehicle. And then you'll have Apple CarPlay and Right Auto. And then there is all-weather floor liners throughout. And we'll go ahead and show you the back. All right, I hope you enjoyed that little walk around on the 2022 Tacoma Limited. So if you have any questions on this vehicle, feel free to let us know. All of our contact info is listed right here. Thanks you all for watching and I'll see you soon. Bye.


Hey there friends, how's it going? My name is Kevin and today we're playing Metopia again. If you missed the last episode, who cares? You know, it's alright. You don't have to spend every moment of your life with me. I'm fine. It's... It's fine. But for a bit of context that basically it's a game where you play with your means and an evil villain is stealing faces. It's kind of all you need to know.  Let's check on the party. All the setting up ground rules. Keeping it clean makes sense. Okay, he's talking about the inn being clean. And now the whole world being clean. Is he planning something? That is worrying talk, to be honest. We should clean the entire world. Oh, our little Kev doesn't want this food. Well, you know what? If you don't eat that, you get nothing at all. Let's go out on the road, folks. Let's get out of the inn. Oh, yeah, we're on our way to rescue Mario over here. Oh no. It's a me. A budget to Mario. What do you say you're a Nintendo fan? No. I've upset the game. What? They're trying to guilt me into buying an amiibo. No, you don't get to see my amiibo.  Let's get out of here. Let's find some butterflies with people's faces. Oh, look at that. It's butterflies with people's faces. Attack mistake. What? Huh? All right. Well, whatever he did it worked. Good job murdering boys. On we go. I'm getting blisters. Dig a hole. Ah, yes, I've always been one for good advice to talk about how hungry they are. Yes, sorry for not feeding you guys.  Oh, what have they found? Tough pat, easy pat. Well, they're starving. So go on the tough pat to distract them. Oh, sweet, but Jesus, this might have been a mistake. Honestly, this music slaps. Why do the goblins stand like this? I don't, I don't understand. It's really weird. Wait, he's got a new skill. Home cooking. Okay, maybe he is too hungry to fight. He's getting a bit distracted. Wait, what? He's being too kind to the goblin showing off for a little kev. Okay, that impressed me, but now you're dead. Sorry, peeps. He just dies. Don't worry gift of divine powers here. I don't understand. Where is he? Oh, he's here. I couldn't see him under his hat. I thought it was a rock or something. Okay, now don't feel sorry for them this time. Just kill him. He's having mood swings. He's going from let's clean the entire world to, oh, poor thing and not attacking. Yes, two faces released. Oh, and he's doing a little encore. He gave a little kev a little wink.  He just keeps healing himself by doing some home cooking. There we go. All the faces have been released into the atmosphere. I'm kind of worried about this stuff. Like, what about the consequences for that? What if it's causing like global warming or something? All those faces causing a hole in the ozone layer. It's time to face the facts and stop polluting, Turk. My reward for taking the tough path. Why would I leave it? I need to know what's in the mystery box. Lots of money. And now they found an end. God, these businesses, how do they survive? They're out in the middle of nowhere. There's no one else here ever. It's just the two of them. There is someone else here. Someone's at the door. Who could it be? It's a new adventurer. Defeating the Dark Lord would be difficult with just the two of you. So I called a new adventure to come and join your party. Thank you, God. Now I understand why all these bad things are happening. You're too busy trying to help me and me, Topia. Oh, I appreciate it. Default, I choose you. Be the worst Pokemon ever. Default, default. Why would they attack me? Just have tackle. That's it. What sort of personality would you say default has? I guess cool. And we'll just go with the default class warrior. I am default. I'm here to join you or not. I'm indifferent on the matter. Turk wants to buy some casual threads. They're like starvenies. Like, God, I could really use a fedora right now.  Got to be her white knight. And look, have once a non-stick frying pan. Oh, that is great. I can't help it. I have to give it to him. I know the frustrations of cooking without a non-stick frying pan. That is pure suction. Equip that little Kevin. Enjoy it. Goblin meat for you, Turk. Oh, he loves goblin meat. Thank God. Little Kev's face. He hates it. Look at him. He really doesn't want it. All right, default will get it then. Indifferent. What a surprise, right? Little Kev, I'm afraid you don't get to eat then because you're so picky. To be fair, he keeps cooking for himself when they're out in battle, like mid-battle. And he's not sharing any of that food. So I don't know if I should be feeding him in the end. Well, look who it is. I'm assuming this is the Dark Lord. Otherwise, I might have picked the wrong voice. Oh, it is him. Okay. He's just floating there menacingly and somehow Tog didn't see him. You just keep turning up like a bad penny. What does that even mean? Let's dance. Oh, they're actually going to fight. Oh, wait. Someone saved me. Oh, I need to make a mage. Who would have jumped in to save me like that? Who is that brave and selfless? Other than myself, of course. The music and everything. It's the powerful mage, Grognak. The destroyer, attorney at law, MD. Oh my God, look at this. Great sage, Grognak. Attorney at law, MD. Jim Pickens is deciding to let us live. God, this will answer the age-old question. Who would win in a battle? Jim Pickens or Grognak? Attorney at law, MD. I like to think that it's little Kevin default singing that song off to the side. He's talking nonsense. Grognak doesn't even understand. Or else their amnosia is making them forget it in real time.  All right. I just thought of something. Maybe I can download Amiibos and show off to this Mario wannabe. What up loser? I downloaded a Waluigi Amiibo. I hope this works. Oh, was it working? Thank you so much. Amiibo are so great. Why don't you take this? I got three game tickets. That's not as exciting as I thought it would be. I thought it might add Waluigi or something. Or am I playing a song with Waluigi? Or I don't know. I didn't really think it out, but I just thought something cool would happen. Well, now I'm just sad. What's this dank cave? Let me enter here. Oh my God, they're talking about Grognak. They're overwhelmed by Grognak.  Banshees? Banshees crying crocodile tears. Little Kevin is unmoved. He has no heart. Oh, is Ami acting strangely? I mean, they're all acts.  The first cool quote. Indifference. Little Kev is crying in the background. Oh, that is perfect. Little Kev is crying. Turg is singing in the song. And Deepvald is indifferent. Now Turg is singing and crying. Oh God, both of them are dead. And little Kev is just crying in the background. Now he is also dead. Maybe we weren't ready for the cave. All right, Arcade, use game tickets to play. I can get prizes or rock, paper, scissors. Now I can get prizes in roulette. Put it all on Black Turg. Oh, so I can get different things. Weapons. Get that megaphone. Come on, please. Please megaphone. Come on megaphone.  I was so close. I don't want a royal portion. I want a megaphone. Everyone knows the way to be a funny YouTuber is just to be louder. Now give XP to default. I'm not good with emotions. I know she won't give me any, so it's just easier to give gifts to her and she'll just be like, okay. And then it's done. Please megaphone, please. Come on. I want the worst thing there as well. Like, come on. I'm not asking for much. Come on. Yes, this has got to be it. Yes, megaphone. Give the megaphone to Turg. You can sing his songs through it. Okay, we're ready to set out now. Now that we have our megaphone, we're ready.  What are you doing in here? Let's go talk to this weirdo. Serious soldier, Merrick. All right, Merrick, what's up? I'm afraid I'll have to ask you to turn back. What? Oh, come on, Merrick. Why you got to be so serious? Shout at him with the megaphone, Turg. So I have to go through the cave or else I've got to go do something else to be allowed through there. God damn. Let's try those mermaids again then. Wait, no, not mermaids. Banshees. Yeah, I always get those two confused.  Kind of the same thing. Oh, my God, they almost one hit default.   Even little Kev is shocked at that. Oh, that was sweet. Look at that. They love each other. Now is not the time. No, guys, please. We're mid-fight. Default does not care about your crying. Don't even try it. Oh, and little Kev is feeding the team. They're a good team together. Except for the fact little Kev keeps having episodes. What is happening to Kevin? Oh, my God, the only one not crying is default. How is that thing still alive? Okay, thank God, the frying pan sent it to hell. Oh, he's feeding them again. He's the best little chef ever. Oh, no, he was the best little chef ever. Come on, come back in. Yes, it's a 3v1 now. I like when he was eating the food little Kev gave him. He kept the megaphone up. So it's like some ASMR for the banshee just your moist chewing. You know, come on default. The final strike. Let's go jump slash. This is new. Nope. That's all right. That wasn't as cool as I thought it would be. I thought that might finish off the battle. It would be kind of epic. You know, up the nonstick frying pan is the one that finishes it in the end. I think we won yesterday when all your opponents are dead. You have won. Please don't find another fight because we literally cannot win it. Like that was such a struggle. So default. Do you have a war cry that you use in battle? Of course. There we go. You drive me neutral. Perfect. Not for fexing. It's another fight. We can't win another fight. Wait. Who are these losers? Maybe we can beat these. Just get out that nonstick frying pan instead of frying them up. Oh my God. They're getting absolutely destroyed. They must be so fecking weak. You drive me neutral.  Our chef is down. All he needs is to attack one more time and turret would have been victorious. But no, we lose to little jellies. Tactical retreat folks. Tactical retreat. What is this? Maybe sort of likes a turban little kev or fallen for each other. All right. Well, I guess we'll have to try that cave again next time. It didn't go so well. I think I need more snacks. I think that's the problem. But yeah, I hope you guys enjoyed this game is very fun. I just love that we're entering all our characters into it. But I think the fact we have like a Kevin cinematic universe built up and we're entering all these characters just makes it so funny to me. But yeah, I hope you enjoyed. I appreciate you watching. If you want to see more, do let me know. I also post every day if you didn't know already and I stream over on Twitch. The link for that is in the description if you want more of me for some reason. But yeah, that's it folks. I hope you enjoyed. I appreciate you as always and I hope to see you next time. Bye for now.


mae'n gweithio yn ffy忘u gyda ni i ddengyrch yn yoliaeth ar y cyflwyno'r bulw. Erhyw'r ffermau yn geisio'r bwysig ar gael so gilydd eu cyflwyno. Felly mae'r ffermau hyn yn eistedd gyda'r cyffredin yn llwyddau hwnnw gyrfa gennymol yn yr eich hunain. Mae gynhyrchu bywyd yng nghymru othen yn deall yr oeddech chi'n gwneud, ac mae'n gael i'r syniadau o'r anodd lleidio'r cyfnoddau. Mae'r anodd lleidio'r cyfnoddau yn cael y 5 cwmniadau ei fod yn cyfnoddau. Fy enw, mae'r anodd teimlo'r cyfnoddau. Mae'r anodd llwyddon yn cael ei gwybodaeth o'r cyfnoddau y Llywodraeth Llywodraeth, ond y Llywodraeth Llywodraeth wedi ei chweilio'r anodd llwyddon yn gwybod of whether it is an election year or not. There will be ongoing investments such as voter registration infrastructure, the buildings which EMB staff work in, or sustained utility costs. Secondly, there are then the event-related investments. Some costs will be related to a particular electoral contest, a referendum or an election. On the day of the election, there will obviously be an additional cost in terms of the staff to man the polling stations or the hiring of the premises. Next, there are the security investments. Resources will be needed to ensure the security or the integrity of the election. These have traditionally been thought to fall in or around election day, where extra police may be required to secure polling stations. In other words, it is an event-related investment. However, threats may emerge at other points in the cycle as well. For example, cyber threats such as online attacks at voter registration records might occur at any particular moment in time. So some security costs will be sustained costs as well. There are also campaign investments. Some democracies provide candidates or parties with free postage or airtime or resources. These will need budgeting for. Again, they are event-related costs. And lastly, there are project investments. Most costs are tied to a point in the electoral cycle. However, a reform might be introduced that will take several electoral cycles to implement. For example, a major change to introduce electronic voting could take many, many years. Projects may also have anticipated costs which could continue into the longer term. The introduction of individual election registration in Britain is one example. This was a one-off reform that was introduced in 2014, made voter registration much more expensive to undertake. So we've already seen how many different types of costs there are involved in elections. And for this reason, elections are often described as one of the most complex logistical events to ever take place during peacetime. And yet the credibility of the political system depends on their safe delivery. They involve enormous volumes of staff, complex technology and sophisticated security. It's therefore no surprise this requires considerable resource investment. And from research that we've done, we've found that budgets can therefore be as much as US$30 per person at an electoral contest. We often hear stories in the press of electoral management bodies being under severe financial pressure with declining budgets. We actually undertook some research on this, surveying electoral management bodies around the world and found a very mixed experience. As the figure shows, in general, budgets are often usually increasing more than they are declining. But it's certainly the case that some electoral management bodies have seen cuts and where there have been cuts, they've also often been very significant. We know that overall levels of performance can be affected by budget cuts. My research has shown that where budgets were declining, the performance of electoral management bodies, as measured by independent expert surveys, is lower. There's also some evidence that budget cuts leads to cuts in the services provided to voters. In the UK, for example, my research shows that voter outreach activities were the casualties of austerity measures. There can also be effects on staff over time, loss of holidays and increased staff levels can all occur. This isn't sustainable in the longer term and it is likely to lead to some staff leaving. They take valuable knowledge and experience with them that is very difficult to replace. There are a number of steps that could make for better run elections. Not all of this is about getting more money, but this obviously will help. Advocacy is a very important starting point. Senior electoral officials will need to lobby budget holders to explain why investment in elections is important, but also why the timing is so important as well. The late disbursements of funds, for example, can lead to delays in purchases. You can also make purchases much more expensive. It's worth also looking at procurement procedures and simplifying them to give it flexibility where possible to electoral officials. Contingency planning for unexpected costs is absolutely central. Expanding the range of suppliers can help lower the overall costs for an election and also expanding the pool of short-term employees in case there is, for example, staff illnesses, but also industrial action close to an electoral event. So overall I think there are five main principles to think about when investment in elections is made. Firstly, as we have already covered sufficiently, is absolutely central. In short, there needs to be enough money to cover the strategic objectives. Secondly, transparency. Open, transparent accounting for the income and the expenditure is important because it increases confidence among stakeholders that money is being spent appropriately. It enables accountability and an EMB can be criticised for the misuse of funds. It also allows lesson drawing. EMBs with similar demographic characteristics can compare budgets to see whether they have sufficient funds. This can then allow them to lobby for more or to look for ways in which they need to spend their money more efficiently. Thirdly, the sustainability of funding. Elections are an ongoing process as the electoral cycle illustrates. Short-term and lumpy investment may be required to overcome immediate pressures or cash restraint. But it's important that funding is available over the longer term. If donors or overseas governments invest in the electoral process in the short term to get elections up and running, then we need to think what happens next. What about the longer term? Fourthly, the legitimacy of funding is important too. Having multiple sources of funding is sometimes necessary to ensure suficiency and sustainability. Donors such as governments or NGOs may decide to provide direct assistance to the election. Money may even come from private sector sources. Some sources of income could be seen as illegitimate, however, in the eyes of the public and other stakeholders, which can undermine the electoral process. Fifth, contingency. Unexpected things happen. Inflation can suddenly change costs, perhaps in response to a global shock such as rises in oil prices or geopolitical stability. Trade unions may mobilise to bring demands for higher wages. Equipment can be damaged through floods. Technology may need to be updated. Additional polling stations may be needed due to population rises or the building of new housing developments in particular areas. Risk management plans are therefore essential to ensure that the shock rises to costs can be covered.


Hello and welcome back to the craft box. My name is brent and today we are looking at some skeleton key bosses I haven't really done this before but we're in The world called croquetopia. I had a mind blank there, but it's fine We are underneath the library and we are about to enter one of the wooden skeleton key bosses called Sepouti or something like that something along those lines. I don't really know how to pronounce it, but um, yeah He is in here But just be patient. I told myself the opportunity will someday come See I snuck into this chamber to claim its treasures, but how is I to know the door automatically locks? It's terrible. No sign or nothing. So I've been stuck in here for a long time But today after I defeat you I will walk free and you You will take my place Uh-huh, so that's basically the story of this guy He got stuck in here and we need to take his place Unfortunately for him not gonna happen.  The boss actually has a significant amount of health for the rank But obviously it is a skeleton key boss. So that is to be expected This is definitely not gonna take long at all But if you want me to go through all of the skeleton key bosses as I try and get all of these badges Let me know and we've still got a couple more that I haven't actually done yet So if you want me to do some more of this I will be More than happy to do that. Um, but yeah, these guys pretty trash. They're underneath the library and Crocodotopia basically you just go down Go down the stairs to the right There's like a wee little tunnel you go down there and yeah, that's how you get here and At the end of the hall is obviously Rah who I have found a lot on stream because he drops Things and stuff that are good that I need for crafting So yeah, but this guy not very good at all not very good. I don't actually know what he drops So that's fun we could Find out I guess what does he drop? Here we go. Here we go. Here we go Should we faint him probably just because we can just say we did he Drops not anything really important. He drops a foxy dragon, which is a pet Which is basically a dragon And he drops some gear, I don't know if it's good or not so Yeah, he drops a whole set of staffs Which actually look kind of cool. They're basically like a wee little Basically has one there that he has and he drops him. So let's go for a You know what? Let's just do a double kismet because I never do double kismets if it ever if it So we're gonna do a double kismet because it will kill no matter what Okay, okay, we little imp. He loves him. I have to say absolutely loves them It's great spell and he just loves using it all the time. What is this a natural attack? Oh, no, I am scared Oh, no 54. I am so scared petrified. Here we go with the kill gg What are we gonna get? Hopefully we get the pet the pets always really cool to have Just because they fill up the pit tone, which is dope and I need to do more Crit of course because you know, why would we not crit when we need to does that make sense? Probably not but you understand so I understand so it's all fine, right? Okay, that's way too much. Yeah, that's embarrassing You take the treasures. I don't care. Just just I gotta get out of here like now Unfortunately, he's not going anywhere and we told to go that way, but we're not so yeah, that was so pretty he dropped slippers of sensibility which are level 15 plus balance boots Interesting worn shovel and the expert socket wrench. That's actually really good These things actually really good to get socket wrenches from I would highly recommend farming them for them if you want socket wrenches because they're really useful instead of spending crowns and then of course we got another badge Which was So pretty saviour so yeah, as you can see we've got a whole bunch badges to get so if you want to see more of this Feel free to let me know and we will do some more. We've got whole lots that we can do so yeah Otherwise, thank you for watching remember to leave a like and subscribe before you subscribe press the little bell So you know exactly when I post another video and remember to craft outside the box


Hi everyone, Sean with jaspyscasebreaks.com, here doing 2021 Leaf Pro Set Sports 5 box one half case break random letter number 4. 18 spots when we get to random letter from the list below, we'll go by a player's first letter of his or her first name. So if we pull a Chloe Kim, it will go to the letter C for Chloe. Each row will go to I, Pele goes to P, so on, and so forth. So there's the list from A through combo spots. You have an H-I combo, an N-O combo, and a V-W-Z combo. Each box has two autograph cards, there you go. Here is that list, you can see from A down to the V-W-Z combo spots, and the two other ones in there. I did, Porter, I did a lot. Here is the list of customers from Anthony Venturino down to Jonathan Arnaldi with last spot mojo. This looks a little bit different than random.org, it's because we're using psychic science today. The only difference, guys, is that when we do the random number generator, which is in a dice, random number generator, one integer between the numbers 2 and 12, which is obviously the only potential combos that you get with two dice, it will not count on the list. So I will verbally count as we click it, just so we know how many times we've randomized it. Randomize both lists and pair them up. Dice roll is a 5, you can see right there. Here's on the customers, 1, 2, 3, 4, and 5th and final time. So from Bennett Page down to Jonathan Arnaldi, and now 5 times on the letters, 1, 2, 3, 4, and 5th and final time. So from T down to the letter A. So those are the randomizers, and here are the results. Bennett Page with T, Barry Roberts, K, Bennett Page, S, Anthony Venturino, R, Vipul, Poonwani, C, Montefoist, G, Gregory Lau, F, Barry Roberts, M, Montefoist, N and O combo, Brad Pauley, B, Jonathan Arnaldi, J, Deborah Close, L, Bennett Page, P, Montefoist, V, W, and Z, Vipul, Poonwani, H, and I, Bennett Page, E, Gregory Lau, D, and Jonathan Arnaldi with A. There is the list. Trade window is open. Typically not a lot of trades happen on stuff like this because I don't think there's a set trade, like a checklist on this, but it is a random letter break. I'll give it another, I'll give it like 30 seconds to see if anybody wants to trade. Maybe there's a letter you were really looking forward to, and this is your opportunity to trade for that. Okay, trade window going once, trade window going twice, trade window going three times, trade window closed. There you go. So, random.org or psychic science in this case has sealed your fates. Now, let's see what the boxes have in store. So here are the five boxes for us, and I think this is random number four. You can see that these all have number four written on them to show that these are all from the same case that we started with number three. Like I said, every box has two autographs in there. I believe they are all in the case. There is another one half five box break in the store under number five. So go to your spots now. There is our final list. Jonathan and Ollie, last spot mojos, letters A and J with your two spots. This is really nice stuff. I think I've only done one box on our personal site. I don't think there's any cover for it. Oh, hey, perfect example right on top, Chloe Kim. Remember, we're going with the first letter of the first name, US Olympian gold medalist, Chloe Kim. Letter C, Vapal Punwani, there you go Vapal, Chloe Kim, and another one for C, Cal Ripken Jr., Vapal, personal box for you. That is 42 out of 99 action ink, Cal Ripken Jr. Nice, congrats. There you go, and you can see there's nothing else in there. Oh, this one's a dual auto, and it's James Bonecruster-Schmidt and Michael Moorer, pro set champions, heavyweights, 42 out of 45. So J is Jonathan Arnaldi, Michael Moorer, M is Barry Roberts. That one will have to be a randomizer between the letters J and M at the end of the break. I mean, you'd end up just talking off, you'd be doing all the talking, I'd just be listening. I like hearing other people's life stories for it, I bore myself. And Joe Montana, there's one for J and Jonathan Arnaldi, congrats Jonathan, so no matter how that randomizer works out, you got a nice one here, Joe Montana. Another one for J, Jason Williams, white chocolate, J Will, Jason Williams, Jonathan Arnaldi again, out of seven, Ronald Acunha Jr. for R, Anthony Ventorino, there you go, Anthony. That is two out of seven, hard to see right there, top right corner, artist Gilmore for letter A, Jonathan Arnaldi, sweet, and we're cooking, we got a chef, Chef Steph Curry, Benet Page, nice Steph Curry there for you, Benet. Box, guys, that's Box Mojo, let's see what we got. And we're starting off with Brown's legend, Greg Pruitt, letter G, Montefoist, and we got another randomizer I can already tell. There's too many autographs on there for people for one person. And it's a four-way autograph, numbered out of six, Sammy Sosa, Jose Canseco, Alex Rodriguez, Vinny Castilla, very nice. S, Sammy Sosa, Benet Page, J, Jose Canseco, Jonathan Arnaldi, Alex Rodriguez, A, Jonathan Arnaldi, and Vinny Castilla, Montefoist with the VWC combo spot. So there you go, that is the break. We've got two randomizers to do, so let me get this set up real quick. So let's pop over here real quick. So first randomizer is the James Bonecrusher Smith, which is J, and Michael Morer, M, randomizer. Second one is the Sammy Sosa, which is S, Jose Canseco, which is J, Alex Rodriguez, A, and Vinny Castilla, V. So the letter on top, after on both randomizers, after same dice roll for both, eleven times gets these cards. So eleven times first on the James Smith, Michael Morer. Eleven times, good luck. One, two, three, four, five, six, seven, eight, nine, ten, and eleven to final time. It's going to go to M, Michael Morer, which is Barry Roberts. Eleven times on the four-way auto, good luck. One, two, three, four, five, six, seven, eight, nine, ten, and eleven to final time. It's going to go to J, Jonathan Arnaldi. That's for the Jose Canseco portion of that card. Very nice four-way auto for you, Jonathan. Congrats, man. And there you go, guys. So J on the four-way auto, out of five, Sammy Sosa, Jose Canseco, Alex Rodriguez, Vinny Castilla. I'm sure Jonathan's actually more excited for the Sammy Sosa autograph as a Cubs fan. So five out of six on that four-way relic, or four-way auto. And then the 42 out of 45, James Bonecrusher Smith, Michael Morer, will go to the letter M. And there you go. Very nice break, guys. Next one in the store, another five-box break. That was 2021 Leaf Pro Set Sports, five-box, half case break, random letter number four from jaspyscasebreaks.com. I'm Sean, jaspyscasebreaks.com. Thanks for hanging out. We'll see you next time.