 Welcome. This is screenshot updates project with Sheikot Africa. Today we're going to do a test drive of some screenshot updates is our proposal. Miracle and Soma don't seem to be available. So we're going to just go ahead. And the three of us are going to attempt some screenshot updates. So we have a record that they can reference in the recording of different techniques and different experiences doing doing screenshot updates. So first task is we're going to open up the sheet that's linked in the dock. This sheet shows entries that need needs screenshot updates so it says in this column, if there's an entry in column E no change needed we can skip that. But then if there's an entry here in column F with the pull request URL that's one that says hey we know it needs it. And now we need to just assign ourselves to it. So is there one that. Let's see. Here's here's an interesting one Bruno if you want to try something related to SSH keys that's probably an interesting spot in your area or is there another one that the two of you each would say hey I'm interested in that one. It could be blue ocean based to be installation based. And then it's Jenkins screenshot is a pretty common thing to need an update. So maybe you want to do do managing UI themes, what's your preferences. I'll go with it. Okay so Bruno is going to take SSH Kevin which let's see which one did I get that on the right line. I did okay. And then Kevin is there one that looks interesting to you. I can do the manage Jenkins screenshot. Okay so script approval and this one's a good one because sometimes I found cases where I needed a screenshot and I could do it in two places using the same exact picture. Good. So let's let's get started then alright and I think I want to take. I think I want to take pipeline running pipelines. Alright so now now what you do is is open up your page. I'm going to open my page. Now I need to find the screenshot. Okay, here it is my first screenshot. This one talks about restart from stage and those icons are already not no longer the correct icon so I'm going to create a I'm going to get a Jenkins weekly running. And I've got one already at weekly dot ci dot Jenkins that IO. And let's see if it has. I'm logging in with my Jenkins account, and it does not have any jobs to find okay so I need to use a different one so I'm going to instead switch to this other machine that I have that is running a weekly version. It's current, and it does have some jobs. So if either of the two of you need an account on this, this one I am happy to give you one. Otherwise you can just start your own Jenkins locally actually you'll probably yeah, either is fine you let me know. Now this is showing how to restart from the classic UI. So what I need is I need a job that runs in a pipeline, like the get client plug in multi branch. And here's one. Okay, and they want me to show restart from stage. I need to go all the way there inside the job and find the restart from stage. Nope, it's not there. Okay, so classic UI and click restart from stage. Okay. Okay, so now I've got to go find out why my job does not have a restart from stage. I think it's linked to your job is a feature that still exists in the current weekly Jenkins base. That's a good question so now it's maybe time to research to see maybe I'm missing a plug in. Maybe I'm missing something that doesn't doesn't even give me the facility so. Okay, so here Oh, it takes me right to this page. Okay, it's a day I need to have a declarative pipeline. Okay, I should have read that read the instructions more carefully. The problem that I had was the pipeline I was look I was viewing was not declarative so the easiest thing to do is create a new one. A new declarative pipeline, and that makes sense in that declarative pipelines evaluate the complete definition of the pipeline before they start it. Scripted pipelines evaluate the pipeline definition while executing, and that difference may make it impossible to do a restart from stage. So I'm going to create a new declarative pipeline. I'm going to create declarative pipeline for a restart from stage demonstration. Okay, so we need a pipeline script. Let's go with hello world for now and first we're going to do check out. I'm just going to have something that does a checkout step. Then I want to add another stage so that I have I need at least two stages in order to start from stage so maybe we're going to say something like Java doc is a stage. And what it does is maven Java doc colon Java doc. And now I have to say, label, not windows because I'm using an SH step. So let's try that build now. And what does blue ocean show us. So blue ocean shows to check out and then Java doc and Java doc failed. Interesting. That's a very interesting failure mode. Okay, maybe we need to declare where it's supposed to run. Let's see where it actually ran. That's a good machine. And so why would it say that. Okay, this is why we have restart from stage we're going to configure it and fix my mistake whatever it was. Okay, so it may be that I need to say, maven minus version, so that I know what maven version is trying to run. It says it's running Java 17 maven 3.6 so it's running an ancient maven version, and a thoroughly modern but not completely modern Java version so I need to give some more definition to this to get the correct versions of the tools that I need. Okay, so, configure. And now what if we said, see using pipeline syntax, it should be able to help me find the tools directives, actually I need declarative so I've got to have this one and it needs tools, and I need to add maven. I need to use maven latest, and I would like to add JDK, and I would like to use Java 11. So this is the syntax I need to use. And I put it right here. In case you can't tell screenshot updates is a big chunk of it is not just about taking the screenshot it's getting to the place where we can duplicate the condition. And the that makes it extra fun for our she code Africa participants because they then learn more about Jenkins and more about software development. As a result of their working on. Okay, this is much better notice it now says Apache Maven 3.8.4. This Java version now that's a little out of date it should be 11.0.15 but that's much, much better. And it's a success. And it is so now I should be able to find restart from stage. And there it is restart from stage. Well, I would like to restart from stage Java doc. But looks after the job finishes. Interesting that it's taking 12 seconds to change and change to use a new age. No. Okay, so. Alright so notice that the first stage is empty because it didn't do it. And if we look at three. Let's see let's look at stages here. And now if I look at pipeline steps. Yeah, okay this shows allocate a node start the stage install the tool as defined by declarative. And it skips the checkout stage and goes right to Java doc now that is assuming that that workspace is still available had this been an ephemeral workspace. That would have just failed because without a checkout step you can't generate Java doc. All right now back to the real task which was capture this image. Okay, so now there it is shows back to project status changes console output. This is the right page good. Okay. Okay, so now I can just do my screen capture. Yeah, exactly. Okay, where's my a little wider to get the icon back that will let me take the screenshot. Come on. There we go. Okay. screenshot. All right now we do a little bit of edit crop. This one back to project restart from stage okay I am impressed that there are not more changes than that. So here we see status changes. Status changes console output. Yeah, okay good so this is. Now, I'm ready to download that. And then I need to decode what image that actually is so I'm going to open that image in a new tab and it's called restart stages sidebar dot PNG. So I'm going to rename that file. It was dropped into my downloads directory as real start stages sidebar PNG. Okay, so I'm re I've got the correct file name and now I need to upload that to my place where I actually do the development work. And the reason here is I'm a Windows user, but documentation development on Windows is almost infeasible it's so painful. And in the future it will be easier but for right now it's just not and all of my, my worrying about it doesn't matter it's just easier to do it on Linux or Mac OS. Okay, so restart stages sidebar PNG has been uploaded. Okay, so check out a new branch. Let's make this text big enough to read. All right, so get check out minus B. See it was update restart from stage screenshot. Right. And that should be synced with the master branch, it is okay. Wrong command, I need. I need less files star and I need to find that file name it was that one restart stages sidebar. There it is okay so I'm going to move the temporarily uploaded loaded one to that location. Okay, and now I need to optimize the image and I've got an optimizer script that I use. It is right exactly it's also stored in the document and so it saved 10 k bytes of a file that was approaching 30 case so a one third savings that's worth it. So here we go. There is the image. Let's do a make run to then be able to what look at that image and see how it looks in context. So what I did was I generated the screenshot, put it into my into my source repository into my working directory, optimized it and added it so that now it's ready to be used. And now let's see how it looks. You can see how it looks right here so I look at my computer on port 4242 is where that is and this is. What was the page again it was run pipeline running pipelines documentation pipeline running pipelines there. Okay, so here is a very different screenshot. So except. Okay, I made a mistake. Notice where the highlight is the highlight is over the word status and it's yes status and it should have been. And was it that way originally. No, but I should hover over status for the better for the better experience so that means I've got to be a little smarter about gathering the screenshot. Okay, so let's do that. Let's do it for play a game. Interesting, except it's got status highlighted. What do you wonder what. Oh, that's what I should have done. Okay, so clearly, it would have been much better if I'd done it more wisely so let's let's do this we need to redo the screenshot. Okay, so redo the screenshot. No, not that one redo the screenshot. Okay, edit crop. Sorry that the two of you get to watch me make mistakes but hey, part of part of this is in fact making mistakes. Okay, and then. And now how far down the list did they go they stopped at pipeline steps. So, if I go up a couple here. Okay, that's better. Now we're back to upload the file. So rename this one temporarily. Okay, now back to do my upload. And now over here. Okay, now let's do that make again and see if it looks right. And then this make run, etc, all from get pod.io as well. It doesn't have to be done locally. There are ways to upload files to to get pod. So, so that could have been done as well I just for me it's easier to use the setup that I have right now. Okay, so now there it is okay restart from stage is now correctly shown as the, as the one to choose. And good here's another one that I didn't capture the next screenshot, just a minute. That is actually close enough to not need a change. Yep, it looks the same. It's pretty close right. Good. Okay, so I think. So now I think I'm ready to submit a poll request here. So first, I've got update. Restart from stage screenshot. Assure that the highlight is correct is correct. And good. Alright ghpr create. So it says where should I push it I want to push it to my, my copy. That title is good and I want to edit. Submit it. And so now what I'm going to do is go back to that sheet and put this poll request into the into the worksheet. So that, let's see where was mine here it was. Okay, or request is submitted done. Excuse my being the only one talking here so Kevin or Bruno anything you wanted to ask or any questions or things that you've encountered on your experience. I was looking at Marcus is it says that the managed Jenkins screenshot needs to be updated. The only thing is when I'm in Jenkins I'm not seeing that option and I'm not sure if I if it's because I don't have projects currently running or if it what might be holding it back in this case. Good so let's are you okay sharing your, your screen Kevin and we'll let's look at it together and let's get you there. Great. I'm going to stop my sharing. So when you open manage Jenkins it doesn't show a and an in process. Okay one you're running dark theme. Okay, that's that's interesting. Good. Okay. So, so you're using ci dot Jenkins that IO and it doesn't give you access to manage Jenkins. So that's, that's not a shock, because we don't want you to be able to manage this. This instance that is huge so right do you have, do you have a local instance. On the outside of my clone repository, or, like, okay, maybe I'm just a little bit disconnected on this instance, if anything. No, so, so are you running a Jenkins server in on your own computer locally, most people don't and so it's okay to say hey no I'm not. Okay good so what I'm going to do is I'm going to paste a URL where you can get access to one. Okay, that is a current weekly and then. Alright so if you'll go here so into the chat. Home dot mark weight net has one connect there. But I don't know that you'll have an account there so let me look just to be to see shipping users. Not yet so you can go ahead and stop sharing your screen, because I'm going to send you a single use URL for a password that you can use so k martins 27 is that correct. Okay, alright, generate a secure password lovely choice. Generate secure password. And you're welcome to change this password to whatever you'd like, but it makes it easier for me if I just generate these things. Let's see k martins. Okay user has been created. Okay, so now what I'm going to do is I'm going to generate a single use URL. And I'll paste that password into that single use URL, then I'll email you the, the URL you click it, and that's the password you use to. Let's see so I'm going to put that I think I'm just going to message it to you through a private channel. Here it comes. Alright so you should see it in slack. And you can click on that URL and it will open up the page, you get it can be clicked only once. Second clicks later clicks will no longer and then you can log in as k martins 27 with that password. Okay, great. Mark, would you mind doing the same thing for me, please? Yeah, thank you. I have Jenkins instance running on my Windows PC. The thing is, I can't do any modification like it's Docker container running. I didn't manage to run Jenkins, I directly under Windows without without Docker, you know, the, the key clon doesn't work for me, but it works when I'm on the linux. I have some sound problems with linux, I can't tell, there's a meeting with linux, I'm stuck for the time being. No problem, what username would you like Bruno? Podang, if you don't mind. Okay, that's great. Could you place that to me in chat so that I've got it? Yeah, for sure. Because then it's easy for me. And you could put it, let's see, so have you, you've posted it to a Slack message, or given that this is public, you can put it in the chat here in, in, oh, got it, I see it. Got it. Okay, good. All right, so, and yet another password. Just a moment. Okay. So, and now we're going to create a single use URL again, so single use. And Kevin, were you able to log in? Yes, I was able to log in, no problem, Mark, I'm actually in the stream where I wanted to be in the first place. Oh, good. Okay. All right. So, sorry Bruno I'm apparently not as fluent with doing this as I thought I should be encrypt the message copy the link. So, coming to you on a private channel is the link to the single use single use URL. Okay, if I learned how to copy. Okay. So that that single use URL and you should be able to log into that server. Cool. Let me try I got the password. And just so you're clear you both have administrator permission on that and if you were to destroy it accidentally, no problem. It is intentionally if it were destroyed, I can recover so don't worry. Don't don't be shy about doing both things it would be fun great if if you destroy it if you were to tell me mark I destroyed it. If that doesn't happen if I detect and spend destroyed. I'll replace it, etc. It's not a big deal. And we leave and log on. Thank you. So you're logged in. Okay, great. Yeah. All right. And Kevin were you you said you were able to get to the manage Jenkins screen. Yes. Yeah, I found the screen and the menu and the piece that was actually called out in the outdated screenshots spreadsheet. Oh good. Oh yeah so it's got in process script approval. Now now this one this one has a complication that it needs some annotation. Okay, because it needs that red box around it and the original screenshot is particularly ugly because the red box cuts off prematurely truncates text. So you may want to set your screen size to be more reasonable. This is a really old screenshot because it doesn't even show things in the multi column layout. Correct. Yeah, and I just noticed that too. And so I was actually curious, should I just share my screen mark while we're sure. Yes please do it cool. Okay. And my screen is visible. And it's far too wide for screenshots so you're going to have to make this this webpage much much narrower for columns I don't think I've ever seen four columns the most I ever got three so obviously you have very good eyes and a and a nice wide screen. I was gonna say I think my monitor is just a little bit bigger I don't think I have my eyes or any better. Okay. So yeah, so in this case, let's say I do just kind of take it away. True. Should I make it so just one column like this or for me for me I like it having to because if you look at the original screenshot the original screenshot shows multiple things on the page. And so for me, having at least two columns was nice, but two columns, not more than two columns is good because then it, it keeps people from being miss from misunderstanding that, oh, what's this text is too small to read in the screenshot. Right, right. Okay, cool. And I figured that with the page itself talking about manage Jenkins that would want to be highlighted like you had in your page. And this is the area that they specifically call out in the outdated note. So would it be the idea is just highlight it like this like we had previously and then grab this screenshot or should I actually go into it and then grab the screenshot. And the original screenshot, you would you were whoops the way you had it hovered right there that for me is the preferred and then I would crop the image to only include the security section, because because if you look at the original screenshot the original screenshot doesn't provide any context that you're in the manage Jenkins page. It only shows here is exactly this tiny little subset. For me, having the highlight there, the darker color may mean we don't have to annotate the screenshot at all now because the darker color gives an indication that nice darker background. So can you think we will be sorry, go ahead Bruno. Oh, sorry. Do you think you will be able to screenshot with the hash over, you know, there's a great background and gets rid of the pointer, the mouse sign on it. Okay, so right now I don't think that I'll be able to, but only because I'm screen sharing, and it might be a little different. Oh, typically on the map. I actually there's a keyboard shortcut that I can click on and it basically allows me to just drag over a section of screen and screenshot whatever I want, and it's it holds on to what's in play at the moment. So if I were to do it while I have this hover over it would actually hold on to the highlight when I go to screenshot. Perfect, so stop sharing your screen and take the screenshot that sounds great. So somebody who actually knows how to drive a Mac I don't know how to drive. That's one of the things I don't want to learn. That's fair. I think I think I do like to take the political statement there that's very good I like that that's great. Yeah, I'm afraid I've not had the patience yet to learn Mac so thank you for being willing to be our, our tip of the spear on this experience. Okay, can you so can you show us the screenshot how does it. Yeah, how does it look. So let me put up right here, and I'll just move it on to this side of screen so that it's visible. So this is actually the screenshot. So and that that has okay now bring up bring up if you can in the on that left hand, the old page so we can see for comparison because I think that. Yeah, see that that is, that is a much better screenshot and you didn't have to do the red box thing. Right, because it already highlights things for us in a box. So it's already self contained. Excellent. Yeah, this is great. Okay, so now the challenge is, how do you get that into the right place and how do you find it. So, right now, so I've, I'm in my text editor. And I have the script approval doc which is where the screenshot is coming from if I'm not mistaken. Okay. Yeah, script approval. So I'm here, and then I just need to change the existing screenshot with what my screenshot would be in this case. Right, yeah so you want to update the existing file, and I assume it's that managing slash manage dash. So could you back to the web page. Yeah. So to the original web page for the for the documentation the one that we started from. Yeah, right click over that. And open image in new tab, or oh yeah okay that's a good way to do it looking at source code. Yep, that's it so manage process script approval is the image we need. Okay, so now is this one here. Right. And then let me just rename my file real quickly so that's a little bit easier. So now I've got that all squared away it's got a normal name. Copy that. And so I would actually it should be in a folder of some sort correct mark just to have the directory there. Well yeah so what you want to do is you want to find the existing copy of manage in process script approval and replace it. So, so back to your editor where you were. Yeah. And now we want to find that image and managing manage in process. Okay, why don't I see it already in the list on the left hand side because that's a file explorer list on the left right. Yes. Oh, I know why. If you look up at the top. It's on the very top of the page online 12. It says, Oh, images to colon dot slash resources so go up one level to book slash resources. Okay. Yeah, book slash resources slash managing. And now there should be the picture for. There it is okay good you found it now that's the one we want to replace so copy over the top of that file with this new image. Okay. So, okay, then. So then I would want to add a new file into the managing folder. Yeah, and it's it's you want to you want to file of the, this is where it gets, I'm not sure how to do it from the, the Explorer view what you want to do is we want to take the, the new picture you created. Yeah, we want it to have the exact same name as that file because we want it to override it. Oh, okay, got it. Okay. And the reason for the override is because we don't want to change the, the a doc source file, and because the old screenshot is no longer useful let's, let's throw it away and replace it with a new one. Got it. Okay. So then, now are you in a, I'm not sure what kind of a tool you're in here is this a file explorer a finder kind of thing, or a, an ID kind of thing. Yeah, so this is Adam. Oh, it's Adam. Okay. Yes. So, so I'm sure there's a way in Adam to move files around. I just don't know how to do it. So, so. Yeah, and then as far as like, figuring that out right now goes and we don't have to necessarily do that. But what would be, would it be easier for me to do it through terminal mark and just I don't mind doing it from the command line we can do it and then go figure it out later. So, so from the command line get space LS dash files space. Yeah, so you need more more commands on the LS dash files. Yep. And for your for your own speed and sanity the upwards arrow usually will recall your last command space dash dash. An asterisk. And then the name of that file it was like something I script. Yeah in process and another asterisk so it says show me anything that's got that in its name. Okay. So let me actually put that in the, the right folder. Well but but you're in the you're in the parent of all of these things, right. So the screenshot however is saved to my desktop. And it's okay where it is right now we're trying to find the destination file. So there must be something wrong with the file name there in the in the find the destination process so what's its name again it was no it's really in process. Manage in process. Okay let me do some checking on my side because I expected that to be easily found so you did get LS files. dash dash asterisk in process. Close the asterisk. Yeah I definitely have a match so I am. No, no you don't want to take the space away that space was exactly correct. And this, and that one should show you a lot hit enter. No, okay. Oh, wait a sec ZSH. Interesting. What is ZSH doing to us here. Okay, so try putting a backslash ahead of the asterisk. I've never. So, so recall, yeah, that's a forward slash the other direction. And we want it right before the asterisk rather than right after. Okay. Interesting ZSH no matches. Okay, let's try a cheat type in bash BSH enter. And now PWD let's see where we are. Good okay so now do that same get LS files command. So get space LS dash files. Yeah, exactly. Space dash dash space asterisk in process. Close the asterisk enter. Okay, now that's better. I don't know why ZSH did not do that I can't explain what ZSH was doing with with that matching but it was doing something unexpected. Okay, so now we want to move from your home directory so MV tilde slash. Yeah, the tilde character on my keyboard is right above the key right above the tab character. There we go slash. I am. Is there a space or should it just be no space, no space. And now press the tab key. Is home phone in Mac OS. I mean, you know, Good question. Yeah. So, Kevin, back up all the way and let's do LS of tilde to see what it is what it thinks it is. See if we can find that file. Okay, LS space and then the tilde character. Okay. And I don't see the maybe desktop maybe. Oh, all right. Yeah, you said it was on the desktop didn't you. Yeah, yeah. Of course you did so LS tilde slash desktop. Okay. It's forward slash or a backlash. That was that's the correct slash forward slash. So capital D for desktop. And now if you hit tab, it should complete it. Yeah, now enter. Yep. screenshot. Okay, so in the screenshots folder there. The screenshots and then there is this. This file here. This is the file here. This is another. Oh, got it. Okay, good. So, so we need to, we need to do an MV. Space tilde slash desktop slash. In process and so slash I am P and then hit the tab key character. Yeah, because you will have. Oh, yes. Right. And then. Okay. And now if you can copy and paste from the. The first line of the get LS files output up above where it says content slash doc. No, no, you scroll too far. So. You see the LS files. It's about three lines below your current cursor. There's some more. Yep. Yeah. A few lines more. Whoa, right there. We want, we want the one right below where I see your cursor right now that one. Yes, paste that. And hit enter. Now if you do a get status. It should tell us there's a changed file. Yep. It does. Good. Okay. Now let's do the, let's see. Do you have the optimized thing set up locally for yourself? Probably not. I'm not sure what that is. I thought my head mark. Yeah. So let's given that we're almost out of time here. Let's do, let's do a get ad. Yes. Get ad space. That says add everything. So get ad space. Dot. Good. Okay. Now get commit space minus B. And these will all become second nature. So, so this is saying I want to start a commit and I'm going to give you a second. Sorry, I was doing myself a V as in verbose. Oh, VVV. Yeah. My initiation. Mark. Yes. I guess the GH command will do it for us, but we didn't create a branch. Oh, you're right. We didn't. Okay. Stop what you're doing. Good point. Thank you very much, Brunel. So back to Adam. You can go back to Adam and empty out that buffer. So delete all the lines in it. Everything. that too. If you if quitting Adam is fine. So back to the terminal window. Okay, commit. Yeah. So Bruno's right. We need a branch. So check out minus B. Actually, and before we get a branch, let's be sure that your current copy is up to date. No sense in submitting a pull request to something that's out of date. So do you have GH install GH space repo space sync. You do very good. Okay. And we are currently on the master branch. Is there a get space branch? Okay, we're not. So get space check out space master. Okay, now do the get status and let's prove that we've only got one file changed. Good. All right. So now get check out minus B and space and then a branch name. So this is let's see what is it update manage Jenkins screenshot update dash manage. No spaces. Sorry. Get branch names can have spaces, but you won't like the experience. Right. Okay. And now do a get commit minus A minus V. And back to Adam. Where is so you have to bring up your Adam editor somewhere. It's it appeared. Oh, there it is. Good. So very first line needs to be a brief description 50 characters less typically describing what we did. So on line one put in update the managed Jenkins screenshot. And now if you want to put more lines in, you could for this one, it's probably simple enough to just save that file. Okay. And now you can exit Adam. I think that will tell it to continue. There's probably a way not have not to have to quit Adam. They did it. Okay. So now you're going to do a GH space PR space create. And that's where you want to push it. So you can just push enter. And the title is great. So that's good by pressing enter. It says I accept the title it proposed as a default. And you don't need any other body. So just press enter to skip. And now it's saying shall I submit you say yes, I want to submit. Okay. Now copy that URL. Yep. Into the sheet that we were using to do tracking. Yep. Yeah, and just replace the text actually replace that text because now we've got the real poll request hit enter and we're done. Excellent. Thank you, Kevin. Very much. I appreciate all the help. Thank you, Bruno, for being in there. All right. I think we're set. We just run out of time. So any other questions before we call it done? Sure. If we have cleans and master branch before leaving. Good question. Yeah. Okay. Good. Good point. So and by clean, you mean run and get clean? Oh, something on those line just to get rid of the PNG that we put in the master branch we see is not supposed to be there. Oh, no, actually, it didn't end up there because we didn't commit it. So that's a good one, Kevin. Okay. Right. Because because we didn't commit it, we committed it on a branch. And because we committed it on a branch, it never arrived on the master branch. It will arrive on the master branch after we merge. Good question. Bye, sorry. All right. Anything else? Not as I think of. We could add in a step by having a local copy to see what it gives in the context, but it was not possible on Kevin's machine. And it's not possible on my Okay. Well, and that's that's a good one. We could have also done that with Gitpod or or another another step, right? Would have been, okay, let's do it with Gitpod instead of doing it from your local desktop, because if the local desktop isn't for whatever reason able to do the Docker commands or the whatever, Gitpod could let us do it. Good. All right. We've got things to do in future meetings. Yes, for sure. Except if you don't mind that I tried by myself, you know, the line that I assigned to my chef, maybe I should try it and just log if I'm running into problems. Absolutely. Or ask questions in the Slack channel if you encounter a problem. Exactly. Because then they can see the questions and realize, oh, okay, here's the questions being asked. I may have the same problem. Cool. We'll do that. But hopefully everything will run smoothly. Actually, if it doesn't run smoothly, all the better because problems you encounter are the same problems other people encounter. So we appreciate you being a volunteer. Okay. Fine. Thank you. All right. Thanks. Recording should be available within about 24 hours. I'll post it to the community forum. Thanks, both of you. Thank you.