Skycraft – Building Clouds and Wrangling Robots with Brittany Woods

Mandy Moore - Sep 22 '21 - - Dev Community

Jonan Scheffler talks to new friend Brittany Woods about how shifting workloads to the cloud is the new cool thing, work-life balance, and the possibility and potentiality of terrifying robots.

Also? Don't be afraid to have opinions.

Should you find a burning need to share your thoughts or rants about the show, please spray them at devrel@newrelic.com. While you're going to all the trouble of shipping us some bytes, please consider taking a moment to let us know what you'd like to hear on the show in the future. Despite the all-caps flaming you will receive in response, please know that we are sincerely interested in your feedback; we aim to appease. Follow us on the Twitters: @ObservyMcObserv.

play pause Observy McObservface

Jonan Scheffler: Hello and welcome back to Observy McObservface, proudly brought to you by New Relic's Developer Relations team, The Relicans. Observy is about observability in something a bit more than the traditional sense. It's often about technology and tools that we use to gain visibility into our systems. But it is also about people because, fundamentally, software is about people. You can think of Observy as something of an observability variety show where we will apply systems thinking and think critically about challenges across our entire industry, and we very much look forward to having you join us. You can find the show notes for this episode along with all of The Relicans podcasts on developer.newrelic.com/podcasts. We're so pleased to have you here this week. Enjoy the show.

Hello and welcome back to Observy. I am Jonan. I'm the Director of DevRel here at New Relic. And I am joined today by my good friend, Brittany. How are you, Brittany?

Brittany Woods: Good. It's nice to be here.

Jonan: It's nice to have you. I have a bad habit of saying my very good friend at the beginning of these episodes. I do like to welcome people as friends, but also, we just met. So I don't know what your barrier to entry is for friendship, but you have mine if you want it.

Brittany: Perfect. I love new friends, so let's be friends.

Jonan: I'm in. Okay. So, new friend, I noticed you have some stringed instruments hanging on your wall in the background. And I want to hear about what you play on them.

Brittany: So I've got two instruments behind me on the wall; one is an acoustic guitar that I couldn't tell you the first thing about playing. The second is a bass guitar, and I'm trying to learn the bass guitar. I'm garbage at reading bass clef. So I have to write the notes and/or look at pickups or whatever they're called. But I'm learning, so that's good.

Jonan: I did that with piano when I was a kid. So most of my piano education was when I was very young because then I quickly switched to the accordion. My mother was a concert accordionist, and so I have my mom's accordion collection in the next room here. I think there were 36 accordions in the office next to mine.

Brittany: Oh wow.

Jonan: Yeah. But when I go to play the piano, and I'm trying to learn a song, I will sometimes write numbers next to the notes to remind myself which finger I'm trying to use to hit. I'm like, finger two, finger two. Yeah, it's great. I'm not quite the musician I dream of being someday, but we'll see how that comes for me. So you play the bass guitar, any other instruments?

Brittany: Yeah. So my primary instrument is actually a clarinet. And I am in the Columbia Community Band in the town that I live in, which is a concert band. We do marches; we do concert music. And it's got people ranging from 19 years old fresh out of high school to 75, 80 years old, retired living that good life. We've got an array of backgrounds as well. We have janitors to retired cardiologists, to band instructors. So we have everyone.

Jonan: This is like the community band in the truest sense, this melting band of people.

Brittany: Right. Yes.

Jonan: I love it so much. What kind of music do you play? You've mentioned marches and things. I remember when I was in middle school, I was a percussionist. I played the...I don't know if it was snare. I was probably on snare at the time. I played the snare drum at the grand opening of the 76th Station on the edge of town. And I still have the trucker hat that says 76 on the front. We played the opening theme to Indiana Jones outside of a gas station. That was a pretty big moment for me. What kind of songs have you been learning lately?

Brittany: So for our concert that we have coming up, we're playing...we've got one march. We've got a song called Kitty Hawk, which is really just a lot of insanity. And then we're playing Sound of Music. So we've got 12 pages of the Sound of Music taking you through The Hills of Vienna, Austria.

Jonan: Oh, I love it. They're alive as I understand it; those Hills are with the Sound of Music.

Brittany: They are. The Hills are indeed alive. [chuckles] So we're playing that for this concert. But in previous concert, we've played a song called Cartoon Carnival, which is just like The Animaniacs, and The Flintstones, and things like that.

Jonan: I love it.

Brittany: Played a bunch of Sousa Marches like The Stars and Stripes Forever. So it's really just a wide array of things.

Jonan: Do you ever go down to Austin? Have you ever been to Austin, Texas?

Brittany: Yeah. I've been to Austin.

Jonan: There's a place on Rainey Street that I forget the name of right now, but they've got like 99 beers on tap in a big keg thing. And they have a brass band on Sundays where they serve brunch from all the countries on earth. They have shakshuka and all of these various breakfast foods from around the world. The last time I was there, there was a 12-piece brass band playing Britney Spears covers, and it was amazing.

Brittany: That's awesome.

Jonan: Yes. I imagine The Animaniacs with a 70-person community band is pretty rad.

Brittany: Yeah, it was amazing.

Jonan: So I feel like we've got our mutual band experience covered. Let's talk about computer things. What sort of things do you do with computers these days?

Brittany: So for computer stuff, largely, that's limited to my day job. But where I really find myself right now is trying to establish traditional operations and get that more into the future, so moving that to more server automation type focus. We all know that operations is changing. DevOps is a big buzzword; everybody's doing it. But everybody's shifting workloads to the cloud, moving things left to their app teams or app squads or whatever your company calls them. And so, really, it's shifting the focus of those traditional operations teams into providing less of an operating system service, providing more of platforms that these development teams and squads can leverage to make their lives easier. So that's what I do during the day.

Jonan: And then after that, you don't do stuff with the computers. And as your new friend, I want to say I'm proud of you for maintaining that separation of concerns. I'm terrible at it, but I appreciate that other people have a work-life balance. I've read about it, and it sounds pretty nice.

Brittany: Don't mistake it, though. I am notorious for having a terrible work-life balance just because I'm not capable of shutting off. So I check my email at 10:00 p.m. because I can't help myself. But when it comes to personal projects and techie stuff, I like to do them. But I find that outside of work hours, it’s hard for me to sit down at the computer and actually dedicate any time to anything.

Jonan: Yeah, very healthy.

Brittany: So I'm excelling in that regard.

Jonan: Yes, well done. I actually think about this a lot because I do work odd hours, but I don't know necessarily that it's me working so many more hours in a day. I think the nature of tech work is occasionally more asynchronous than other forms, especially while we are all remote. But after this, I've got a meeting break for an hour. I could go and play with my kids in the other room and come back, and that's not something that was available to me in an office. So maybe the trade is worth it.

Brittany: Right. Yeah, exactly.

Jonan: So this conversation is very interesting to me because a lot of companies, or I guess a lot of Ops Professionals, are stuck in this same space right now where they're at a company, maybe a large enterprise, maybe not, maybe some small company that's just a little bit lagging behind like the most modern...This happens in tech all the time. The most modern technologies take five years sometimes to trickle down to everyone. And then you end up in situations where you actually have to make a rapid transition relatively quickly if you're going to want to be able to take advantage of all the new products and services that exist in the ecosystem.

So I guess the question I'm trying to get to here is what strategies have you found are successful in creating buy-in with people? All of the things that have to happen in an organization when you are transitioning at that scale where over the next six months, 10% of our stuff now running on cloud would be killing it. What kind of stuff do you have to do to make the dream come true for people?

Brittany: So in the past, in other talks and podcasts and things, I've talked about the need to bring people along with you. You don't want to pick people up at train station number three; you want to pick them up at train station number one. So I think that's part one of buy-in. You can't just dictate something from the top and say, "We're going to go all-in in this direction." You have to make sure that you're taking people with you on that journey.

And the easiest way I've found to combat that resistance to change and resistance for buy-in, especially in traditional roles that people have been very comfortable in for a lot of years, is to combat that with that knowledge and give them some ownership in that future platform like reiterate, "You do have a place. This place is leveraging your years of experience and expertise. It just looks different. It's the same expertise that you've always had. It just looks different, and you're leveraging it in a different way."

And once they realize that you're taking them along with them or with you on this journey, they're less resistant to the change. With the other pieces, I've mentioned, you can't just edict it from the top. I say that, but you also have to have buy-in in the requirements for the transformation you're trying to make. So people at the most senior levels in your organization have to understand the implications of the change you're trying to make. It's not just a button that you flip or a light switch that says, "We're in cloud now." There's a lot of knowledge. There's a lot of restructuring and reorganization that has to take place for that to be able to occur. So having that kind of buy-in and support to do the right, hard thing is the other thing that makes this much easier, especially in traditional organizations.

Jonan: So, if we're describing a first step here, you've got to get the executive team to understand that one; this is going to take time because we need to do it right if we're going to bring people along. But two, get them sold on the idea fully and understand the depth of the change that they are proposing. I mean, something like transitioning from on-prem to cloud services sounds like the kind of thing that is a CEO snipe where they walk by your desk [chuckles], and they're like, "Let's do that AWS stuff. I'm selling these," right?

Brittany: Yeah. [chuckles] How do I buy the DevOps? Where do I buy that? Something like that.

Jonan: Yeah, [chuckles] one DevOps, please. So you get the buy-in from the executive team, and you slow them down a little bit. And they're very often in the business of not slowing down. It's kind of their job to be the person who's just like, "Just do the thing. Go." But let's say you're successful there. Then what I'm hearing, and I'm just trying to make sure I understand, is that you're going to teams and putting together an education plan almost. Like, here is this feature of our platform that we're going to transition to cloud services, and it's going to use these AWS services or these Azure services. And we're going to help you level up on those services. We're going to add these to your existing skillset, which we are taking full advantage of. And thank you for coming here and contributing to this effort, that kind of work.

Brittany: Yeah. I mean, largely. And when I talk about transitioning the role of operations teams, it kind of sounds a lot like that. It sounds a lot like we're consultants now. We're helping to enable you to make this work happen. So you have the enablers, and you have the doers. And it's just a change from the traditional role where you have the application teams that say, "I'm going to write this thing, and it provides value to the business because this is how customers interface with us." And then anything secondary to that has historically been tossed over a wall. So really, it's enablement and consulting, which is different than just standing with a shield at the bottom of the wall and catching whatever you can.

Jonan: [laughs]

Brittany: So you're taking operations teams and giving them a more active part in this while at the same time, you're giving those app dev squads or whatever also more of a solid role in what they need.

Jonan: So I love this analogy of like, I'm picturing just a pod of DevOps folks huddled under their shields at the bottom of a wall. That's great.

Brittany: It's a beautiful, beautiful picture. [chuckles]

Jonan: As the developers drop long-forgotten apps on their heads and other new server ecosystems just show up in your pile.

Brittany: Exactly, yeah. [chuckles]

Jonan: So what kind of tech are you working with lately?

Brittany: I got my start in the area using tech like Chef, for example. I think that even though we as an industry have moved more toward serverless and ephemeral workloads and things like that, I think there's still a place for image management and things like that for managing the configuration of a thing. So I'm still very much heavy in that area. I'm very heavy in the Terraform area as well, so infrastructure automation, things like that. So those are the two big players, honestly.

And what I see day to day is Terraform, Chef. You also have things like Packer and Azure Image Builder, which is basically Packer, a lot of that. And then personally, just trying to wrap my head and wheels around Azure as a whole coming from an AWS background. I'm a firm believer in cloud is cloud is cloud, but also you have to know the difference between an S3 bucket and a Blob. The words are different, and the way things are structured are a little different so just understanding that coming from the AWS shop.

Jonan: What I know about S3 buckets is that's where I give AWS my images if I want to never see them again or have permission to get them back.

Brittany: Right. [laughs]

Jonan: And I imagine Blobs are similar in that way. It's the black hole for all of your assets.

Brittany: Right. [laughs] Hopefully not because things can get expensive. But it's one of those areas…like S3 in particular, my personal AWS account; I finally came to the conclusion it just needed to be deleted. And I just had Amazon wipe the whole thing because I was paying 26 cents a month for something invisible. I think there was something in a bucket somewhere that I couldn't find. And then I had some other service running that I couldn't figure out. So wipe the account away; that’s what I did.

Jonan: 26 cents. That's like a gig of something somewhere. [laughs]

Brittany: Right? [laughs] There's just something. I had tried to use it as an automated picture backup.

Jonan: Oh, smart.

Brittany: Because I wasn't happy with how things were uploading to my iCloud. So I was like, oh, I can do this. And then I had all of these things out there that I couldn't find. It was a mess. Don't do that. Don't. [chuckles]

Jonan: I don't know that I've ever once on the first try configured my permissions correctly for just an image to go in an S3 bucket and get it back again. AWS is like, thanks, it's mine now.

Brittany: Yup. [laughs] You can't have this.

Jonan: No, this is for me. So the transition definitely complicates things because the clouds…everyone wants to be cloud-agnostic. I think what's driving that is we want to be able to quit AWS when their sales team tries to extort us for more money and threaten to go to Azure and make it a real threat because the lock-in was real and continues to be real. But then you get to this place where you're cloud-agnostic, and then it's a race to the bottom. If we commoditize all of these services, then nobody's really going to move again. Then we go back through the whole cycle, and history repeats itself. But in transitioning, how much are you seeing that is the same. I have to admit; I’m entirely unfamiliar with Azure's offering. I know a little GCP. I know a fair amount of AWS. But I've used Azure maybe once.

Brittany: In terms of structure, it's very different. You've got resource groups in Azure that you just don't have in AWS. You don't group things that way. So structurally, it's very different in Azure. But from a service perspective, Azure's got basically a lot of the same services that AWS has. They're just named something different. They've got their own proprietary database offerings, just as AWS does. And I think the thing...and you said it about being cloud-agnostic and a race to the bottom and all of that.

I have this conversation in a group that I'm in online called Skycrafters. It's just a group of cloud engineers or people that want to get into the industry. We were talking about the merits of being cloud-agnostic and whether those merits still existed or not. Because initially, like when everybody started going to the cloud, it was we need to remain as agnostic as possible, but now you can't.

Amazon's got their proprietary database that they make incredibly easy to integrate across all of their different services. And if you were to roll your own, how you would do it traditionally on-prem? First of all, there's a cost implication. So you're paying double or more what you would be paying for their proprietary database. But you're also having to meet challenges then of integrating with other Amazon services and all of that. Plus, you have the automation on the backend.

So if you wrote all of this in Terraform, that's going to look entirely different for Azure. So again, you're extending engineering efforts and things like that. Plus, you're losing out on the ability to make the most of your Reserved Instances. And like instance costs, you're losing out on that because you're getting discounts for volume. So if you try to do multi-cloud, it's just not going to work that way. So I think where we're at, it's not a fruitful endeavor.

Jonan: And there are added expenses beyond even this. Like you have, in many cases, free communication between services, and you have authentication set up for you already. I think GCP has this magic auth thing that took me ages to figure out. I'm like, so I put this on a file somewhere and then a server in this other place. Okay, that doesn't seem safe to me, but I guess I have to trust you.

Brittany: You're Google, and you said it's fine, right?

Jonan: Yeah. [chuckles] It said 'Don't be evil' right in your motto for a while.

Brittany: Right. [laughs]

Jonan: I wanted to be in that room when that conversation went down. And you're like, so about this 'Don't be evil' thing, can we address that for a moment? [laughs] I put this on the agenda. I would like to do some evil. I don't know how people feel about that.

Brittany: Right. [laughs] What do you consider evil?

Jonan: [laughs] Yeah, that's kind of a vague definition. Let's just strike it. We're building guns and robots now. That's great. Yes, it's fine. The future is fine. I saw one of these Boston Robotics Robots the other day that have been increasingly horrifying over the years now. And now they've got a humanoid one, and it was doing gymnastics and running, wall running. It was wall running.

Brittany: Oh.

Jonan: I don't want to be chased by a robot, period. But especially not one that runs along walls while chasing me.

Brittany: That's like if somebody were to take the worst imagery from a horror film and then combine it with the worst technological future film and put it together. You would get robots wall running.

Jonan: Yeah. It's just robot parkour. It'll be fine.

Brittany: Oh no.

Jonan: Just trust the AI. So we are probably nearing the end of our episode here, but there are a couple of questions I like to ask every guest on Observy. And the first one is to make a prediction about what's coming. I've kind of set us up for a headspace around killer robots. In the sphere of our work and the people we're trying to talk to here, what do you think is coming for the industry? And we are going to make a prediction maybe a year or two out, pretty tight timeline. The goal being to have you back on the podcast a year from now, and then I can say, "I told you so."

Brittany: [laughs]

Jonan: Like I would have known any better. None of us can predict the future, but let's try.

Brittany: Okay. I don't know; you could always look at the buzzwords. Things around AI, and machine learning, and blockchain all of that is getting bigger, and it's changing the way we look at data. But I think we're also as an industry looking more and giving more scrutiny to the way those models develop and the inclusivity behind that.

So I think over the next year hopefully, and this is me being very optimistic, but hopefully, we're looking at the build-out of these technologies and these automated systems and all of that, taking a more inclusive lens, being trained more inclusively, getting rid of some of that bias that we see in operating models and things like that today. So I'm hoping that's the direction that we move, at least putting that out into the universe, so maybe that's what happens.

Jonan: I would really like to see that. I had hoped recently that we were headed in that direction because Twitter was all abuzz about the firing of Timnit; I’m going to say this wrong, Gebru. I don't know how to say the last name correctly. But Timnit Gebru, we'll say, worked at Google, was an AI researcher who wrote a paper about the ethical implications of AI, and was summarily dismissed through some interior politicking that just sounded awful and very much like a large company like Google would do to a human being.

I thought in that moment, like, yes; people are getting it. Everyone's angry about it. But the attention span of Twitter is so short sometimes. We seem to have moved on, and now we have lots of other things to complain about. But I very much look forward to a future where we are at least building these things in a way that...I'm going to step my answer back here a minute. What I'm trying to get at here is that the success of those systems is a function of the people in the room, full stop, right?

Brittany: Yeah.

Jonan: Let's pretend for a moment that I am very oppressed. For viewers at home just listening to my voice, I'm a very white dude. [chuckles] But if I'm in the minority some magical day in the future, and what a beautiful world that would be, and I'm not in that room, then maybe an AI is not trained to recognize my face. And they're like, oh, I count six people and a bedsheet, and you have a busted AI. Those are all functions of the people in the room. And that the same theory extends to all facets of this, especially in spaces like blockchain. I love you, blockchain, looking very dude over there for a while now. And I don't know how these things spin up that way. But once a culture starts down that path, it's a hard turn. You've got this river carved in the sand, and you got to work at it.

And I appreciate that you called it out because I would like to call out the rest of us here on the podcast to keep doing the work. Let's keep fighting that fight. And I know there are a lot of fights to fight in the world, but this one matters. Like, it might save the planet matters. If you don't want to be shot with a flamethrower because the wall-bouncing robot assumes that you're a bed sheet and it's just trying to tidy up the town, then now would be the time. I wish your prediction wasn't so on point because it's kind of a sad one. [laughter]

Brittany: It's an area that we all need to get better at. This extends beyond tech. It's a problem that exists in every facet of the human existence, getting people in the room for public policy decisions, getting people in the room for tech decisions and AI models, and getting that representation. And so I'm hoping that because we're all communicating in different ways in modern times and we're all bringing attention to these issues, I'm hoping that that sets us on a course to be better humans in the future.

Jonan: Yeah. I actually can see that, though. With the transition to remote work, I think a lot of things are changing in the way that we interact with each other. Like, you have to build a wall around things. We have processes in our own internal meetings where we're using the raise hand feature and going in order and taking turns. So those who are particularly outspoken and interrupty, myself exactly, don't just trample over everyone in the conversation. You have to build those things in there. Maybe it's going to give us a chance to be a little more thoughtful.

Our second question...and thank you for such a well-thought-out answer. Here's another challenge for you. The second question is what advice you would give yourself if you were just starting out today. What sorts of things do you wish you had known about your future career? Or really, the root of the question is that there are likely people listening today who would very much like to be in your shoes someday; what advice would you have for them?

Brittany: So don't be self-limiting. So my early career roots, I've talked about this publicly before, but they were very rooted in I was the only woman in the room and very rooted in not-so-great bosses and the typical or somewhat typical woman in tech story. So don't be self-limiting, don't allow anyone else to dictate your personality professionally, and don't be afraid. And, of course, your mileage may vary, so keep that in mind. But don't be afraid to be an outspoken woman in tech. For example, don't be afraid to have opinions.

And then, on top of all of that, one of the things that I think really helped with that was finding my niche, so finding an area that you believe in that you can get behind at the time. And for most of my career, that area has been configuration management. And as the industry has changed, that's obviously changed into more cloud automation. But find a niche and something that you believe in in some way. You don't have to be passionate about tech outside of work. But find something that you can get behind and believe in and get really good at, and then have opinions, have loud opinions about those things.

Jonan: That's really good advice.

Brittany: Yeah, I try. [laughs]

Jonan: You nailed it. This is such a common downfall for people because the world does that thing a lot where we talk about men and women in the workplace in different ways. Or we'll say men and non-men maybe to be a little more inclusive of our non-binary friends out there. We are talking about conversations you have with your manager one day where like most of your personal feedback you get from your manager over the course of your time with that company, is about smiling more. While you have peers out there who are getting feedback about their technical accomplishments and their ideas and how they're sharing them, and those kinds of things.

I would like to think that over the course of my 10, 12 years in the industry, I've seen improvement. But we've got a long way to go, and to be perfectly honest, I'm not in a position to declare that there has been improvement, especially on those work relationships. Do you think that you've seen things improve, or is it just maybe that you've put your foot down? You haven't been self-limiting. You've found a way to traverse these spaces and into a better position.

Brittany: I think I have changed, so that's helped. But I think the industry is starting to at least be more mindful of that. I'm coming from Brittany, who is good at administrative tasks and knows a little bit of code as one of two people that knew how to do [Chef[(https://chef.io) in my organization. So I think that, or I would like to think that that kind of behavior is easier to call out now. But I know that there's still a long way to go. And I know I can see from Twitter that there are still things like that happening. There are still a lot of barriers to calling that out without losing your job or getting targeted. But I like to think that it's getting better than it was when that happened to me eight years ago.

But I also have come to a point in my career, and I think everyone will be able to get to that point, but I've come to a point in my career where I can put my foot down and say, "That's not acceptable." And I can be choosy, and I can be picky about who I choose to work with.

Jonan: Yeah, that's nice when you have the political capital of F you money as they say, right? [laughs]

Brittany: [laughs] Right. It's kind of a humbling experience, to be clear. But I think this goes back to when you do an interview remembering that you don't owe the interviewer anything. You are interviewing them just as much as they are interviewing you. So as I've progressed in my career, it's not something so much...Sure, it's about evaluating the company and making sure that it's the type of people that I would want to work with, absolutely. But it's also about understanding what I think the treatment is going to be when I get there. So that goes into being my authentic self and unabashedly asking questions and saying, "If we were in this situation, what would it look like? I'm outspoken. I'm not going to limit my opinions. How do you feel about that?" And not everybody's at a place where they feel comfortable to do that. Not everyone is in a place where they can do that. But just know that you don't have to accept poor treatment just because you think you owe them something because they've hired you.

Jonan: I don't think I have anything to share after that. Would you like to take over our podcast?

Brittany: [laughs]

Jonan: I feel like you have a lot more value to offer the world than I do in this regard. You have excellent opinions, and I'm glad that you share them loudly.

Brittany: Thank you. I appreciate you bringing me on and letting me share them.

Jonan: It's been really nice. I look forward to coming back in a year if we survive the robot apocalypse. Let's check-in next summer, and hopefully, the world will be all better. I think this COVID stuff is just going to be done by then.

Brittany: I hope.

Jonan: Boston Dynamics probably shut down. Google will probably reinstate the 'Don't be evil' thing. I think a lot is going to change in the next year.

Brittany: [laughs] Let's hope. Let's hope we all change for the good.

Jonan: Because some days hope is all we have. [laughs]

Brittany: Yes.

Jonan: Thank you for coming on, Brittany. It's been a pleasure.

Brittany: Yeah, thank you.

Jonan: Thank you so much for joining us. We really appreciate it. You can find the show notes for this episode along with all of the rest of The Relicans podcasts on therelicans.com. In fact, most anything The Relicans get up to online will be on that site. We'll see you next week. Take care.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .