In this study, researchers have developed a new descriptor called S to measure the strength of noncovalent interactions between two molecules. The descriptor was found to be correlated with the reorganization energy of the photoexcited states or electron pumped charged states in organic polymeric semiconductors. This descriptor can be used to predict the strength of noncovalent interactions between two molecules, which is useful for molecular design and property prediction. This article was authored by Maihui Liu, Xiao Han, Hao Chen, and others.


Welcome to Access a Trader, the number one community for those who are committed to taking control of their trading in order to achieve success, profitability, and longevity. Thank you for joining us. Here's Dan Shapiro to help you find your edge, master your process, and own your future. Hey, guys. Good to see you, everybody. Welcome to another edition of the AccessaTrade.com Nightly Wrap-Up Show. Hope everybody is doing okay. So, let's talk about it. First of all, the big headline of the day is China, the United States, apparently sized, signed phase one. Okay. That was it. That was it. That was the global headline. More important, guys, again, we don't do these videos, well, I don't do these videos to talk about, you know, the macro events. Again, there's 3,000 websites. There's, you know, 200 million blogs. You can go on any one of them. They'll tell you exactly what happened throughout the day. Again, we're speaking from the trader's point of view of what we're all looking at and what we think might happen tomorrow and what we can do to not only put ourselves in the position to thrive, but again, really protect our capital. So yesterday, again, had a really funky day yesterday. I just, you know, lost some money yesterday. But I noticed something happened. And I described it in the video as it felt like the mother and the father were staying together. Okay. We're really staying together for the sake of the kids. So what I meant by that was everything was all great on the surface. But you could start seeing something called buyer strike.  No, relax. So we've been on a linear run, right? We've been on a linear run. We all know gravity is real. We all know at some point the market is going to come back, even, you know, even a small back test into rising support. You can see even going back to several months, any time there is a big rally, there's always some sort of areas of rest. So again, let's sit here talking about Armageddon, the market's going to zero, Tesla's going to 300.  What we're talking about is a potential buyer strike. And what a buyer strike happens is when you have a linear move up, right, when you have a big, big linear move up, eventually the buyers get tired, right? They just cannot fathom chasing the same names over and over and over again. And all those days that we had with big, big expansion channels, slowly but surely they're starting to get smaller and smaller and smaller and start to shrink.  I'm just being, you know, I'm just being sarcastic, but that's what happens. And the problem is when you get a linear move upwards and a linear move downwards, this buyer strike to the upside and seller strike to the downside is very real, okay? And what happens is most traders, you know, they can't identify this, okay? They can't identify this because again, for them, well, it's just a rest day, right? What's the big deal?  It's a rest day. But if you've noticed what's been happening to kind of the common denominator of what's been happening as the market's rising very, very aggressively, okay? Even the days that we had rest days on the indexes, there was still powerful moves, very, very exaggerated moves and, you know, a number of stocks like a Tesla, like a NVIDIA, like a beyond, you know, stuff like that. And now we're starting to see the market, you know, pretty strong, right? Pretty strong. But now we're starting to see the names that were really aggressively going up. They're starting to kind of get a little bit calmer, right? Get a little bit calmer. They're starting to take a little profits off the table, you know, BYND came in today. Again, we talked about BYND in last night's video talking about, well, there was an inverted hammer, right? Inverted hammer on BYD, which was bearish, and then we had that PR that came out. I still don't remember the company's name that they had the PR with. And then this morning, they downgraded and took it right down to, you know, not quite, but right down close to the five-day moving average. So again, the way it got there was a downgrade. But again, this has kind of set the tone of a negative tone. And again, all those coal buyers are coming in on Tesla, right? All those coal coming in. And again, they still could be right. But again, when you have such a magnificent run, and this is nothing short of a magnificent run, not only are you going to get buyer strike, right? It's talking about how could I possibly buy Tesla? It was $400 like three minutes ago. Now it's at $550. How could I possibly get loaned this up? Again, this is what's happening. And now you combine that with, well, we start seeing a little bit of technical damage today. We'll talk about, it was a very, very aggressive pivot towards end of the day. Unfortunately, I logged off. I logged off only to get my daughter from school, and I missed that whole move. But you could see, we'll talk about that in a second, you could see where its next support is going to line up. And I think it's going to get there. I still think there's another $10, $12 on this pullback here. But the most important part is, again, even when we started seeing stocks make very, very aggressive moves, the moves today were very, very somber into strength, right? We're only talking about the strength. There was a lot of value today on dip buys, okay? There was a lot of value today on the short side when things confirmed. But there wasn't a lot of value. And this is very, very surprisingly, there wasn't a lot of value today on names, right? And again, keep this in mind. The Nasdaq composite was up the whole day, right? So they started selling off on this phase one news, but nothing moved.  And you had, you know, had really, really aggressive potential setups. Like again, Netflix we talked about, you know, right? Netflix we talked about. And usually when you get a setup like this, right? You get the top of the supplies over here at $341.40, right? $341.00. On a setup like this, if this market was really, really strong and the buyers were just kind of all over the place and just wanted it, this thing would have been at $345.00 in a couple of minutes. And you can see here how, again, they just got up there, put up a $40.50 set move and they're like, ugh, leave me alone. And the stock sold off. Same thing, for example, like on the square, right? So I took, just to give you an example, like I took square long this morning, right? I took long, and it went up like 30 cents, right? 30 cents. And then it came right back in. And then finally later, it got a little bit stronger. But again, you have such a long duration of a breakout. You're talking about going back to November to November. I mean, we're in January. See, it's about November, December. You almost have three months of consolidation. Again, if this was a week ago, and you have such a long distribution channel, you're going to get a lot bigger move than 60 cents. So again, here's another, and again, example of people are getting tired. Now again, is there a move still to the upside? Yes, absolutely. Still very, very strong. Some option flow coming in on names that are very, very strong like ZM. I think it's going to have another big run tomorrow, like a stock like SDC. I didn't even notice till today, but we're in a really, really big call buying coming in on the 14s, the 16s I even saw. But the stocks that I trade every single day, right? The testers of the world, they're tired. The Netflix can't follow through with Amazon again, since its own personnel.  We took a modest profit in Amazon, like four or five bucks out of four-day holdable things. And I said, I'm done with this thing. I mean, how long can it possibly have to finally move? And again, it didn't. And the stock two days later goes all the way down 35, 40 points. So again, something's wrong with these things. Again, call it a buyer strike. Call it the market just needs a break. Call it whatever you want. But again, our job as traders is to adjust to what we're seeing. So for example, tomorrow, I know the market's tired, right? I can see by the stocks that we trade. So the value of tomorrow, at least on beta, right? At least on beta is neutral to negative. You have to. Again, how can you show any evidence of market bias, at least for the short term? And again, it has nothing to do with the queues, the spies, or anything between. Just the names that I trade, again, Amazon's week, but it's going to get it higher. Again, granted, really good size buyers came in on a dip today for the 1900 February calls. It's going to cover their earnings. I get it. People are positioning for earnings. But again, when a Netflix can't rally out of a very good two day 60 minute range, only goes up 50 cents or so. That's a sign to scale back and start looking not necessarily at other things, but I have. I started looking at other things. But trying to take advantage of those other instruments into rising dip buys. Again, we talked about, for example, we talked about the pot stocks for a couple of days. I said, you know, I think you may have another stock, another run, and they had their run. You had that three day run. And now again, they look tired. Is this, you know, is this group ready for reversal coming into tomorrow? I think they are, right? I think they are. I think if they gap up tomorrow and go into supply and get rejected. Yeah, I think they need to start moving lower tomorrow. Or tomorrow again, you had a big run on TLRI, for example, from 15 to 22. This is day three. If they gap up day four into supply and get rejected, I think the whole group comes in. So there's going to be value. Is there's value tomorrow, for example, on Tesla? Absolutely. You've got a 3,000 point run up in three weeks, right? Here's the rising, you know, rising five day support, right? If you believe in the theory of stocks to trade from supply to supply to demand and demand. Then again, any gap up tomorrow on Tesla, this thing starts validating today's low and confirming, there's another $10 in the trade. So again, there is value tomorrow. But again, what's good about a market like this, or I don't want to use the word good, but structure in a market like this, you could clearly see the strong players and you could see clearly the weak players, right? Very, very clean. And from the macro point of view, and this is kind of what we start talking about, the dreaded rounding top, right? If all you guys have been following my video or have been in the live web bar for me for almost, you know, over nine years, you kind of know what the rounding top is. A rounding top is an exhausted area of the market that buyers are tired.  They realize even the biggest macro bull or the permable, we need a rest. And you start seeing this kind of rounding top form at the top of the levels. And again, the craziest part about a rounding top or a potential rounding top, again, I don't like to paint anything into a corner, but this is at least what I'm seeing as examples of evidence that I'm, you know, I'm viewing for myself. What we see is a rounding top usually means there will be strength and weakness in the same day. Okay. And a lot of people will get their accounts churned. If you don't properly identify what you're looking at, you will churn your account because one second Tesla's rallying, the next second is selling off and then you sell the bottom and you're covering the top and the Netflix rotation and Roku goes higher to get rejected. So you're going to get a lot of mixed messages. It's almost like an awkward first date. Okay. Maybe she likes me. Maybe she hates me. This is my breath smell. My tall enough for her. Do I drive a nicer car? Well, what does she do right now for a living? Do I even like her? So there's been a lot of mixed messages for the next couple of days and rounding tops, they don't form in one day. They form tops, plural. It's about a four to five to six day event. And once you start seeing lower highs, lower highs, lower highs, and especially we have to watch out for this two, 19 and a half level on the cues. If that starts moving lower, the markets are going to go lower. Again, I know it's crazy here. I know there's a lot of young kids in the room, but yeah, markets do go lower. Shh. Don't tell anybody, but it's crazy. It's a very secret rule of tape. Gravity is real. So we're going to have to watch this pivot here and this macro pivot going into the day tomorrow, this 19 and a half, or at least going for the near future and try to pick out good spots, both longs, both shorts. Don't commit to aggressive moves. Okay. Do not commit to aggressive moves. Scout. Just scalp the market. Use measure potential. And the most important thing is, most important thing is just use cash flow. Use cash flow, both long and short. You know, there's some pretty decent pivots today. Okay. You can do decent pivots in names that names that we're kind of odd, right? We're kind of odd, like, you know, kind of odd, like, like, like, for example, like OSPN and an APLS. But there was also pivots in square. There was also pivots in Netflix. And this was the big one. This is the big one that really got pretty hammered here. 524 is the bottom channel. If it builds, blow can flush. And here's the levels, 518, 513, 505. And I logged off to get my daughter in the stock I destroyed. Absolutely. We're not like six points or so, or eight points, excuse me, eight points or so. So pretty big miss if he did catch it. Great job by you. But the oddest trade of the day, for sure. Okay. The oddest trade of the day was NIO. And usually, again, it's not something I would trade. But again, you know, I was looking at beta. I go, that's not here or not there. And there was all this coal buying coming in.  I was like, all right. So we're waiting for a dip on this thing. And I bought the, I mean, I'm talking about, I bought the dip perfectly, like, like, perfectly, like literally at the bottom of the range. I even tweeted this out. I said, hey, 428, 430, this thing holds this level. It's going to go back to the highs. And it went perfectly. It went perfectly. It literally went back to the highs. And it just, it, it, my highest sale was literally within a penny or so right through the highs. Just, just because it kind of keeps on getting rejected here. And this is why we always talk about always make sales. You just never know what happens.  Right.  And I'm like, okay, that's not good. And the one thing that saved this whole, if you saw the news, first of all, the speculation why it went up was, was a speculation that they were going to get funding. Again, this is not Tesla. They don't tell me this is the, the next version of Tesla. It's not okay. They, they, they're strapped for cash. They need money. And the rumor going around that they got funding secured, right? Funding secured. Funding secured a billion dollars, which is going to be a game changer. And the next thing you know, right? Next thing you know. So I sold a good chunk of my position. I got a runner left and a damn thing, you know, because again, it just couldn't, and again, I'm not in the, in the praying business. It couldn't, it just could not get through this level.  Right. Got to make some sales. Got to lock in your money. It gets halting, right? It gets halting. And, um, waiting for the news, waiting for the news. And obviously I'm not shmuck. I know something gets halting in the middle of the day. That's never a good thing. And they come out with news basically saying that, yeah, we're not any close to getting anything deal done.  And again, in my mind, you're always thinking to yourself, the worst case scenario, oh my God, they can open this damn thing up at three, at 350, at 375, I'm going to get killed. Oh my God, how could it happen? What's the chances? Here's what we had going for us, right? Here's what we had going for us. Number one, NIO, there was no materialistic news anyway to get this thing up. It was only speculation. So speculation cannot be sold as a material effect. It's just speculation. You're speculating a stock as they get FDA approval. So that's what we had going for us. Second of all, the stock trades with a specialist. A specialist's job is to maintain an orderly market. So there was no specific material in news that really had the stock being halted. So there was absolutely no reason, at least in my thought process, there was absolutely no reason for them to kill the stock. Again, remember, when the stock gets first halted, I'm thinking worst case scenario. And I finally see what the news is, or lack of news is all speculation. And I even said this in a live webinar. I said they're probably going to open up this thing. And again, I had my fingers and toes and everything in between crossed. But I said there's a chance because there's a specialist, and he has to keep an orderly market, because there's not fresh materialistic news, I wouldn't be surprised if they opened up anywhere between the 20s and 30s. And if that was the case, you know what? If I could take break even on the balance, we're up a little bit, that would be fine.  They open up the damn thing exactly with, I mean literally maybe 3, 4 cents away from the halt. Obviously I start hitting bids.  Which was fine. I just wanted it out. And it went all the way down to 406. Again, where we got lucky, where we got really, really lucky was, if this news came out after the close, and the specialist is not maintaining a fair and orderly market, which is his job, we would have been having this conversation at 375-350. So just yesterday, when I said, oh my God, I felt like I was in a prison scene with BYND. How could I be so unlucky? The market guys, and I said this yesterday, how could the market guys will kind of make you whole, even you out.  So today was a perfect example of we got saved. Because again, if this happened after hours, we'd have been having this conversation probably 75 cents to a dollar lower. So thank God for small things. So going into tomorrow guys, let me give you guys some ideas. I do like these pot stocks. If they gap up, right? If they gap up and they get stuff that's supplied, they start going green to red. I will be looking for channels to take advantage to the downside. I like this ZM, I like the ZM Zoom. I actually use for our live webinar, I use Zoom as our interface. Is it a coincidence stock is getting stronger? Just saying. Switch to it. It's getting stronger. Really aggressive coal buying, they came in all out of the money, all out of the money. The highest I think I saw it was like 85. So I'm definitely watching that for tomorrow. Let me see what else, let me see what else I want to talk about for tomorrow's session. I kind of like this SDC. Again, I don't know what this thing is, but I want to continue to look at this thing on dips. I want to see on dips. Looks like a recent IPO. If we can get a good washout tomorrow, I'd like to pick some up with the 60 minute channel, or if it starts confirming this $14 area, maybe it goes higher as well. So guys have a great night everybody. Please get to morning strategy early tomorrow for BYMD and Tesla and everything else in between, just to see if we have any edge there at all tomorrow. Because again, rounding tops make things a tad, a tad uneasy, so we have to be a little more selective. Obviously I think dip buys into support is going to be much more important tomorrow than buying into strength. Again, if this is how I see going into tomorrow, you're going to have to see the same thing, buying into strength, not the way to go. So guys have a great night everybody. God bless and I'll see you all tomorrow. Congratulations for putting in the time to take control of your trading. You're one step closer to owning your future and achieving the success you desire. Want daily trade ideas directly from Dan? Straight off his personal watch list? Unlock our free PS60 vault, where you'll get nightly updates on pivot opportunities we're watching for the next day's session. Click the link in the description to get started today.


Here's my six-pillar so when you start looking at those two seconds, coaches, that's going to be really key for you guys. Nice and easy again. The throwing chain reaction system.  I love it here. I always joke to the coaches here, I'm moving and using because there's so many good throwers. We would crush it here. Nick Cappuano of All American Throwers, one of our main guys, been a loyal online member for several years. The crew kills it every year. So many good kids. And the herpins, my Houston family, these guys, I want to see the whole crew, all of them super talented. Been working with them for years, so this camp's going to always kill. So stay tuned, you are going to seriously be like, damn. Camp in the morning, stopping, running to the last minute errands. We got into town, ate some great food. Chris Herpen, thank you again so much. Smoked us some salmon, butter. The thing was so good. And now just run some last minute errands. Going to get set up, gears set, and then we will be up right early. We're up at like five to get ready and day one here in Houston, it's going to be good. Tomorrow morning, what are we doing right now? We're going to sleep. Wake up. So happy birthday to my beautiful wife, the lovely Mrs. Aritae. Without her, we could not do any of this. Planning, 10 cities, flights, hotels, she killed it all. We are going to now get rolling, pack the car, grab a bite, and we will be setting up. So it's going to be good though.   And again, you guys have your lanyards, so you have those six pillars on that, on that badge. So you guys can look at that and kind of like, oh yeah, here's my six pillars. So when you start looking at those two seconds, coaches, that's going to be really key for you guys. You need to do a lot of movement. And the answer is yes. We're going to do a really short five minute warm up just to make sure everybody's awake and going. But in the real practice period, this side of my shoulder, what he turns their feet out like this. This is the system right there. See where I'm trying to get him to move this way now? Now watch the left push and pull it behind. What I want to do and how you can help me make it on my shoulder. The biggest thing that we're going to be teaching and what is the biggest thing you got to learn as a thrower? Okay, so we just finished lunch break and one of the things that's always interesting when we go to camps, what do you want to look out there? What is the thing that we really emphasize and that we see? It's that we train position and you have to do so many reps and you have to understand right. So we're adding different things that help our kids understand direction, resistance, providing more feedback. The more feedback you get earlier, the better you are at paying attention to feedback, the faster you're going to get as a thrower. Because usually my first started this because I just thought it was just spinning. So I actually know every single step now how to break it down. I thought it was like really cool because I've been going for like years, but I've never really gotten to like actually break it down and take like a really long time to just understand each step. Because like at my school, we just kind of go fast and it's just like kind of do your own thing. So it just kind of helped because I got like a lot of feedback with like everything I did. This was definitely helpful because I like I've always had to teach myself most of the stuff until I came to elementary school. And then I came here and it definitely just made things really awesome. It really simplified everything and kind of broke down the throw and helped you focus on certain key aspects. A lot of reminder stuff, check out our YouTube channel, get all that. There's a lot of extra tips we put up every week. It's all reinforcing all this stuff. So great job and it's great to meet you. Thanks so much for coming. Okay, so the end of day one here in Houston, the weather is freaking hot. So I heard the heat index here was like 112, so it's no joke. But we started early to avoid the heat and that made a big difference. Again, I think the thing that we strive for with the system is to teach people how to understand what they're trying to do. Because of course that takes the complexity and makes it easier and then you can get better results and get better faster. And that's the whole thing, when you understand what's going on, it's going to be better to get bigger results and it's going to happen quicker. And then again, we provide materials that's going to support all that. So when they leave this camp, they're going to continue to learn and they can reinforce everything. So, at any rate, these camps are good. It was great to hear the coach's feedback. The drill bands are people really like them and I think because they give you so much feedback. That's the whole point of why I started integrating it into our system. So we're going to go out for some private training. Some of those people wanted, since they came into town, they wanted to book that. So it's kind of hard for me to say no to people who wanted to try to do some extra training and they made a huge trip. So we're going to start that tonight, so we'll check that out. Thank you.


other God, a Tory MP wants to conscript unemployed UK citizens into the military crazy. They kill the economy and they want to take anyone that's unemployed or probably anyone that's going to get welfare or government support and put them in the military. If that fails they're going to take the mass migrants and make them into the military. Now they're military, whatever military the EU is proposing, it's not going to be used to wage war against Russia or anything. It's going to be used to suppress the uprising that is coming in Europe, right? To make sure that the guillotines don't come out all over Europe and get rid of their masters, their oligarchs, their royals, their psychopaths that have been waging war all around the world, right? That's my guess. So the EU army that the European Union is proposing is going to be taxing citizens of the EU to hire the mass migrants that they opened the gates for to come into Europe to beat the shutout of citizens of the EU and prevent uprisings. It's crazy.  Ain't that a kicker. Ain't that a kicker.


Which is really running the government learned a great deal in the in the two and a half with that I'm going to pause because I think in the not-too-distant future our first our first speaker will be arriving Thank you very much for joining Thank you Well Thank you all for coming this afternoon and seeing you here reminds me that we've Put together a team of pros of top-notch professionals professionals and your talents and energies are Getting the business of government back on track We haven't been in Washington a long time, but I think we've accomplished a great deal Nowhere is this more true than here at home America's economic pulse is getting stronger and steadier every day Inflation which had hit double digits when we took office is Running at the lowest annual rate in more than 15 years 2.6% for the last 12 months and that translates into real savings a medium-income family Income of $25,000 has about six hundred dollars more in purchasing power today than it had in 1980 and There's even good news at the supermarket Food prices not only has stopped rising they stopped that last month, but they're actually have declined You know for a time there when you went to the market to buy food it looked as if it might be cheaper to eat money But the prime interest rate is less than half what it was the GNP is growing faster than most economists dreamed it would Personal income is up production is up factory orders are up retail sales are up and we've heard once again today Housing sales are still going up in the months ahead I think we'll see more evidence and that even that last dragon unemployment Has started to wilt Now I have a feeling that a lot of you are just as familiar with all these things that I've just said as I am But the plain truth is I just like the sound of them so much that I wanted to say it out loud again. I Have a story about that. I don't know whether Jimmy Stewart would object to my Repeating his remarks when we were campaigning together and he would introduce me at the various banquets out there in the campaign trail And every time they talk about the MC and introducing him would talk about his Great stardom in pictures and all and then each time I would get up and think it was only fair Apologize to the MC for correcting him would say in addition to that His war record and the Jimmy Stewart not only flew the Hamburg run, but he's a major general in the Air Corps Reserve and One time after several of these situations The master ceremonies did refer to his military record and then said Brigadier general Jimmy Stewart So when I got up, I apologized to the MC again and said it's major general Jimmy Stewart And I'm thinking about this when I think about saying these things over again that night when we got back to the hotel Jimmy said Iran He said that that fella tonight. What was right? He says He says it it is Brigadier general he says I just never corrected you before because it it sounded so good So I think the statistics sound good and we can all talk about them some more We've done good teamwork and I think we can all be proud With the cornerstones of our economic program in place It's time to shine the limelight on another mammoth challenge that we also undertook in the early days of the administration Our attack was on waste and fraud in the federal government We came here Vowing to rein in the unwieldy federal bureaucracy and get this government running as honestly and efficiently as any successful American business We've been making some pretty good progress on that and I've invited you here today to enlist your further help in Expanding our reach and making our improvements permanent I'm proud to report that through the strike force efforts of our departmental IG offices 29.3 billion tax dollars have been saved or put to better use so far The government has collected three and a half billion dollars in debts that otherwise wouldn't have been collected The paperwork burden has been cut by 20 percent Our plan to reduce non-defense federal employment is ahead of schedule We've cut the cost of federal publications by a fifth travel by 16 percent and audio visual projects by 15 percent over at the Veterans Administration As Harry Wander's and Everett Alvarez can tell us we've set up a computer matching system that stopped a phony benefits Check scheme and save some seventy thousand dollars in VA benefits just in that At the GSA Jerry Karman has really turned things around. He's got work in progress Timed down from 30 days to seven days while absorbing budget cuts of 20 percent and the attrition of 7,000 employees and over at the Pentagon Cap Weinberger and our service secretaries along with many others had have identified nearly 16.1 billion dollars in savings on our cost avoidances on waste and fraud and During the next seven years Multi-year procurement and other acquisition initiatives will save us almost 30 billion dollars There's much more that we've done But there's still much more to do Another major initiative undertaken by this administration is our private sector survey on cost control Which was established a year and a half ago to identify waste and inefficiency in the federal government under the chairmanship of Peter Grace The survey already has issued 37 reports containing over 2,000 recommendations Which could result in cost savings and revenue opportunities totaling as much as 300 billion dollars over the next three years the survey will issue more reports during the next several months which should point out even more opportunities to Cut corners and save I expect to receive their final summer report early this fall But as important as whistleblowers investigators and surveyors are What our government needs most are good managers on the front line, and that's why I need you And that's why I'm calling on you on all program managers in every agency of the government to find more efficient ways of carrying out their programs Last fall I asked Joe right to hit up the reform 88 program And he's coordinating our effort to achieve lasting savings by changing financial and information management systems in every department and agency Our management improvement initiatives will expand the goals of our earlier efforts to streamline and reorganize the processes that control the money information Personnel and property of the federal government These new initiatives will bring us closer to fulfilling a promise that we made to the American people To limit government to its proper role and make it the servant not the master of the people There's not a lot of glory in our task, but I'm determined that when this administration leaves the stage The American people will have a federal government that operates on a business like many Now that means providing high quality essential public services as efficiently as possible and it means that by reducing the money lost to boondoggles More money will be available for a legitimate government programs by cutting waste and abuse and Through better targeting of aid we can ensure that those Americans who need and deserve our help can get it I know we share the same goals and that I can continue to depend on you for your help We have a chance to leave our permanent stamp on the executive branch Together we can do it and if we succeed we'll leave behind a better government and a better nation I thank you all for what you've done already and For all you're about to do for the good of our country and the generations who will follow us Again, good luck and God bless you


Howdy, everyone! Welcome to Cloud Native Live, where we dive into the code behind Cloud Native. I'm Taylor Dolasal, a senior developer advocate at HashiCorp, where I focus on all things infrastructure, application delivery, and developer experience. Every week, we bring a new set of presenters to showcase how to work with cloud-native technologies. They will build things, they will break things, and they will answer your questions. Join us Wednesdays at 11am Eastern Time. This week, we have Amir here to tell us about Cubescape, an open-source tool to test Kubernetes deployment security. This is an official live stream of the CNCF, and as such is subject to the CNCF code of conduct. Please do not add anything to the chat or ask any questions that would be in violation of that code of conduct, and basically please be respectful of all your fellow participants and presenters. And with that, I'd love to hand it over to Amir to kick off today's presentation. Amir, take it away. Thank you very, very much, Tyler. So I'll start by sharing my screen. Can you see my screen? Yes, that looks good. Great. So thank you very much, and welcome, everybody. I'm going to talk about Cubescape. If you're not familiar with Cubescape, Cubescape is an open-source project that Armo released, and we maintain it together with you guys and ladies, of course. And I'm going to share a very, very, very short presentation, kind of explaining what Cubescape is and why we developed it in the first place. And then I'm going to share a little bit on what's coming next, and then we're going to deep dive, and I will show you real use cases of how to use it and what you can get out of it. So Cubescape is the first open-source tool that scans Kubernetes according to multiple frameworks. The idea is that you can use Cubescape to scan, I'm sorry for that. You can use Cubescape to scan your cluster. You can use Cubescape to scan YAML files, handle charts, and it gives you a really, really nice report on what is misconfigured and how you need to remediate it. It is really, really skyrocketing in the number of Git stars that we got and the love that we got from the community, and I really hope that it will continue. We have over five, 15,000 developers who are using it to monitor their clusters, and you can see the name of the company and the persons who are using it, and I think that it's quite obvious why. The reason is because misconfiguration is one of the causes for data breaches. This is according to Gardner, the number one cause for data breaches, and as you can see from a survey that Red Hat conducted not a while ago, you can see that people are worried about misconfiguration in their clusters. That's why we created Cubescape in the first place.  If you didn't try it, I urge you to go and try it. It's free open source, and it will stay free and open source forever. It gives you the ability to scan cluster, YAML files and Helen charts. It has multiple frameworks. Right now, we support MITRE for Kubernetes and the NSA and CISA frameworks. We give you an ability to create your own framework, and I will be talking about it later. It can be inserted to your CICD pipeline, and as I will show you, you can identify drifts from one scan to the other. When you're scanning for misconfigurations, most of the tests that are being done are very, very generic. This means that in some cases, you will find unreasonable stuff in their results. For example, it will tell you that a Q proxy is privileged. Okay, that's how it's supposed to be. In this case, we created exceptions that will let you personalize the results, and it will make sure that you're focusing on the right things that needs to be remediated or fixed. We give you a very easy risk score that you can follow and see the trends over time, and we show you the history of all the tests. We understand that we are part of an ecosystem, so that's why it is integrated into CICD pipelines. I will show you how easy it is to deploy it and use the UI. The UI is super friendly and super easy to understand and work with, and the cool part is that you don't need to install anything on the cluster. It's just copy, paste, run, and it works. The next things that we're going to develop are, of course, more frameworks. This is where opening a request to you guys. If you have anything, any framework that is of interest for you, please shoot us an email, and we will definitely try to create it for you. We are going to extend the capabilities to support more tests or controls that are based on the worker node and API server settings. We are going to add, actually, we got help from the community and the community, and so on in the community developed a plugin for one of the managed Kubernetes settings. Again, if you want, we would love you to contribute more in the project. We are going to do Slack integration so you can send your scan results to your Slack channels. We're going to add recommendations, meaning that when you look at the exceptions, sometimes it's hard to understand if something should be in an exception or not. What we are going to do is we are going to tell you, hey, this is a normal behavior. Kube proxy is supposed to be privileged. You can put it in an exception, and you're good to go. It's not a real misconfiguration. We are going to give you the ability to run a Chrome job, a CubeScape as a Chrome job, and then scan your cluster on a regular basis. We are going to give you the ability to set the controls based on your organizational need. For example, one of the controls that we're going to introduce soon is the ability to choose which container image repositories you're willing to accept in your organization. Of course, it differs between one organization to the other, and this is where we're going to let you set it according to your specific organization. We understand that risk posture misconfiguration is changing over time because the cluster is changing over time, and we want to show you the major changes in your cluster. This is the inventory information. We are going to show you in the graph, which I will show you in a second what kind of big stones are happening inside your cluster, like a new namespace or a new deployment is being introduced. The last thing that we are going to do before Christmas is the RBGraph. We understand, and this is a feedback that we got from a lot of customers, that managing RBGraph understanding, following RBGraph in Kubernetes is quite challenging, and it involves describing a lot of Kubernetes objects like role, roll binding, etc., and then building the puzzle in order to understand what the role is doing, what the subject is doing, etc. What we did is we take this data out of your cluster and we build a graph out of it, and we give you the ability to walk through the graph and understand what are the capabilities. We give you built-in queries and that you can simply query who has high privileges, who has over excessive privileges, etc. This is the near-term roadmap that we hopefully we are going to deliver by the end of this year. Then we have the long-term roadmap where we are going to again add more frameworks, because this is the gist of the tool to give a lot of frameworks for misconfiguration. We're going to add container image scanning, again same feedback that we got from you. We are going to integrate the Kubernetes audit log in Iran detection policies against it. We're going to add policies that will be, instead of just identifying issues, it can really prevent these issues from occurring. The last thing we are going to add auto remediation, which means that you will be able to say, if I have this issue, please remediate it for me. That's a presentation and I finish the presentation. From now, we are going to go through the demo. I'm going to switch over to my browser. I'm going to share my browser in a second. Tyler, can you see my screen? Yeah, it looks good to me. Okay, great. What I did here is I have a Jenkins CRCD pipeline. What we did here, we created an environment where we scanned the YAML files before deployment. Here you can see I run my pipeline. I set the threshold to be 70%. This is the threshold that if my re-score is above 70%, sorry, if my score is above 70%, I cannot continue. If it's lower, I can continue. I'm running my pipeline and you can see it is failing. The reason that it's failing, and you can see that this is the command that I actually ran in my pipeline. You can see that my score was 15, and it was lower than 70. This is why it failed. If I go to the tasks, you can see the different controls that were tested. You can see that, for example, the checkout service is mapping the host PID, which is not a really, really good practice. We failed the pipeline from continuing. If I go back and I run it, and now I will set the threshold, let's say to be 50%, which is the score that I know I'm going to get. Now it will work. I'm setting it to 50, and you will see in a second that the pipeline succeeded because we got 50 and the threshold was 50, but you can see that the same tests have failed. Now let's go to my cluster and see how my cluster looks. This is my cluster. It's running with GKE. You can see I have a namespace called shop. If I look on the pods, you can see that they are running. Basically, what we did here we deployed the hipster shop application by Google. You can see I have an external IP. Please don't try to hack it, but you can enjoy, of course, connecting to it. Now I'm running it, and this is my front end, and you can see that I can buy things for Christmas. The application is working, and let's say that I want to scan it. I'm very familiar with a good tool to check it. You can go to Cubescape, and this is the Git page for Cubescape, and you can see we have basically all the information you need here, and some of it in the documentation that I will show in a minute. Deploying Cubescape is just taking this command and pasting it into my cluster, or the place where I'm running a CubeCTL, or I have a CubeCTL installed on. In this case, it will be here. Now it asks me to run this command, and so I copy and paste it, and it's scanning. That's it. I get the results. You see that the result here is 72. It's a little bit different from running it in the CICD, because some of the tests require real objects like, for example, network policies. We cannot test it when we have a YAML file, but we can test it when it is deployed. You can see here that for each one of the controls, we give you a status if it failed or succeeded. We give you a description of the control. We give you the namespace, and then the deployments that failed, and then we give you how many assets we scanned, how many failed, excluded. I will talk about exclusion in a second, and how many have passed. At the end of the report, I get a nice link. The idea is that I can send the reports to the UI, to our UI, or I can keep it in the CLI. By the way, we have a lot of options here. Customers, users who are savvy on privacy can use things like keep local. They can download the frameworks and run it without any object being or result being uploaded to us. You can read everything here in the documentation, which is quite extensive. Coming back here, if I click here, basically, I jump to the UI. In my case, I jump to the UI because I'm a registered user, but if you're not a registered user, basically you get something like this. It's quite easy to register. You can register with a username and password, or you can register with Google, a GitLab, or a Microsoft. Coming back to my case, you can see the UI. The UI is quite easy to understand. I ran so many scans today because of this demo. You can see them here, grouped, but usually people do not run as many scans as I did in one day. You can see the graph. You can see, for example, that in my case, the trend, my risk is going up, which is not good. I would prefer that my risk would go down. You can see here that since I ran a lot of tests, it went up and down and up and down. You can see that you have a score for each one of the frameworks. We're telling you how many controls failed out of how many tests that you have. In the next release here, you will have the ability to add your own framework and choose controls out of the existing controls to create frameworks that are suitable for your specific organization. If you look at each one of the controls, you can see if it passed, if it failed. You can see the control ID, and when you click on it, you get a detailed documentation telling you which framework it is running, the description, the related resources that we are scanning in order to see if this control passing or failing, what we test exactly, the remediation, and soon we're going to have examples here that will show you what is a good setting versus a bad setting. We have a description, again, of the control and the remediation of the control. Now, since we're running tests, scans, you can see all the different scans that you did, and you can jump and see these scans and review them. We always compare it to the previous scan. You can see, for example, I ran too many scans today, so probably we will not see any difference, but here, for example, you can see that I had 41 bad resources, and it went down to 18, so it's good. Someone worked and remediated stuff for me, and I'm very, very happy for that. So, I can always compare it. Now, let's say I want to see which resources failed, so I can click here, and I can see the namespace. I can see the deployment that failed and the deployment name. I can set exceptions on a specific resource or on the entire namespace. The difference is that when I do it on a namespace, new deployments that will come on the namespace will be in the exception list, and if I do it on a resource, it will be based on a specific resource. I'm going to show exceptions in a second. Let's say that this deployment, the checkout service should have these settings in our case. I can set it as an exception, and once I set it as an exception and I run scan, I'm going to scan it again, and then it will take me a few seconds. So, if I come back and I need to refresh my screen in order to see the new scan, so this is my new scan from now. You can see now that it will come in a second. It takes a few seconds for this to load, something that we are working on. Really quick, Amir. There were a couple of questions in the chat. Would you prefer I ask them now? Okay, cool. One thing that came in was Kubernetes audit logs. It would be amazing to have them out of GKE, and then a follow-up question was, is there any kind of specific configuration to scan GKE clusters? So, we scan right now what we do is we are connecting to the to Kube CTL and we can get all the objects that the API server exposes. In the coming releases, we are going to have specific integrations with GKE and AKS and EKS. And again, if someone from the audience would like to contribute this code, we will be more than welcome. Did this answer the question, Taylor? Yeah, I think so. If there is any more follow-up, please feel free to ask in Twitch, and I can relay that. I had a few more quick things, and then definitely let you get back to your demo. One person remarked that, I get an error when I try to buy something. Can we debug it so I can order a hairdryer today? I thought that was a good one. And then K9's rules, I definitely agree to that. And then a final comment was, I can never remember how to navigate inside. I always get stuck instead of a namespace looking at jobs instead of pods or something in reference to K9's, but looks like that is all the commentary right now. But if you do have any more questions, please feel free to throw those into chat, and I'll ask them to Amir. But with that, Amir, I'd love to throw back to you. Thank you very much. So this is the control view. We also have the resource view, and basically the idea is that you can choose a resource, let's say deployment, and then you can see which this deployment, the currency service, you can see which controls it is failing on. So it's kind of the opposite view of a failed control is a failed resources. Now jumping back to the command line, we also support setting exceptions in command line. So when you scan, you can decide that you want to scan, but you don't want to scan specific namespaces. So if we go to our git, you can see that we have an example for that as well. So you can see that it has the exclude namespaces, but we also have the ability to do the same exclusion as I did in the UI. We can do it also in the CLI. So we have the exception JSON. And in this case, what I'm telling my QtScape is don't scan these specific namespaces when I'm running the NSA framework. And basically, right now it's a part of the git, and you can see it there, but as soon we will have it in our documentation as well. So I'm running it now with my exception JSON. You will see it's running the same way, but probably the risk score will change a bit. And so when I look at it on the UI, let me see. And I can decide again if I want to see it in the UI or I want to see in the CLI. I think that all in all, we're basically, we covered most of it. If you have any specific question, now would be a good time. All right, please feel free to ask any questions in the chat, and I can get those asked. It looks like right now we don't have any, but I definitely have a few on that front. So QtScape's a really interesting tool. I heard about it just before the session and got to check it out. I thought that was quite interesting. When I delved a little bit deeper, I was curious as to where the idea for this tool came up, and if you have any insight around the formation of this tool. So we've been doing posture for a while. We've been developing it for our own use. And when we saw the NSA, and we were kind of thinking about how we need to release it as part of our product. And then, and then we saw that the NSA released the hardening guide for a Kubernetes. And we thought that it would be a good idea. And, you know, we saw the buzz around it. And we thought it would be a good idea to contribute it to the community, like other projects, like a project that scans the CIS benchmark or other frameworks. And at the end, it led us to a conclusion when we saw that the industry is really using it and you know, they gain value out of it. And we decided that we don't want to stop here. And our goal is to be the company that gives different frameworks that different customers can use and gain value out of it. What we saw is that, you know, we are working in a tech industry, in a tech world. People are super occupied with a lot of stuff. And they are really, really appreciative when you create these controls for them and they can just easily run it and enjoy the value out of it. And now that's our goal. Our goal is to create more frameworks and give it to users. So they would use it to solve real problems in their day to day job. Interesting. Thank you so much. Yeah, it's one of my personal curiosities is always to hear about where the tool came from and kind of what that motivation was to create that or donate that or kind of, you know, work with that. So thank you. Thank you. When it comes to some of the happy pads for scanning and things that might not be as optimal with scanning, are there any systems or instantiations of Kubernetes that make this easier to work with or more difficult to work with? You know, something like AWS Fargate or something like that, perhaps. Yeah, so right now we look at Kubernetes. So probably I'm not sure if it will work on Fargate, probably not. So it will work on any distribution of Kubernetes as long as you have the permissions to run the controls. So for example, if we have a control that needs service accounts or to check your service account configuration, if you don't have the RBAC privileges for service account, this specific control will fail. But other than that, if you're running the cluster and you have a QCTL to the cluster, you can run everything.  It's there down the road. It will be out there and it will give more capabilities and features to users who are going to adopt that. I think that one of the early feedbacks that we got from the community was that for them it's super cool to run CubeScape because it doesn't require any installation. So they can run it as I did a few minutes ago. It's easy. It's easy to understand. You can register and enjoy the UI. The UI is super simple. You can make it and adjust it to your organization and we are very responsive on Git. So people that open Git issues with us, we answer maximum 12 hours and that's because most of our development team is in Israel and many of the users are in the US or the far east. So that's the reason. Gotcha. Thank you so much. We had another question come in that asked, is it working in an air-gapped environment yet? Yes. So I started to mention that and please follow the documentation that we have. Basically what you can do is you can use CubeScape and everything is written here in the documentation. I don't want to repeat it. You can use CubeScape. You can download the definition of the frameworks and then once you do that, you can use it to scan via CLI and you can use flags like keep local that doesn't send any data to our SAS UI and you get the same results in the CLI and you can plug it to your CICD. As long as you keep updating the frameworks, you're good to go. You don't need to be connected to the internal. Nice. Good to know. I need to try that out with some of my Raspberry Pi clusters that I have here at my house that I haven't connected to the Wi-Fi yet. So be a good test for an air-gapped setup. Cool. Let me know how it works, Tyler. Absolutely. Cool. One of the things that you went through were some of the recommended ways to run CubeScape. You had talked about a Helm chart. You have that ability to run that from the shell. Are there any thoughts around what the recommended way for most contexts might be for running this tool? Is it via the shell and an operator typing it out or is it a Helm chart or a scheduled run or anything like that? Everyone, different people, different organizations have different use cases and requirements. I cannot tell you how I advise people to run it. We run it as part of our CI CD. We are 100% Kubernetes company. All the things that we do, all our backend is running on Kubernetes. So we use CubeScape in our CI CD pipeline to identify misconfigurations that might happen to us as well. So eating our own dog food. And then we scan the cluster, the cluster is using a Chrome job. And our DevOps engineer is watching it on a daily basis. Soon he's going to have it in Slack. So you will be very appreciative of that. So that's my two cents for you guys. Cool. Cool. Yeah. Thank you so much. I know that the more and more that I learn about technology and the more that I stay in the industry, I keep finding myself saying hearing somebody's problem and then answering back with, well, that depends. And I find that that's a far more common answer than I've ever expected. So it's difficult to get the context correct. And it's really important to realize that everything is trade offs. Nothing is 100% good or 100% bad. There are just different considerations to think through. And that's can be difficult. It's really complex. Speaking of that, do you have any interesting stories around vulnerabilities that you found either personally, like things that were surprising, or any that you've heard from people using this tool that they didn't expect or were just like, oh my gosh, I had no idea this was a vulnerability. So actually, one of the things that we decided as a company, we decided that we want to be always to try to be the first ones to add to CubeScape information on new vulnerabilities, mainly vulnerabilities in Kubernetes. So just to give you an example, last Thursday, this vulnerability, you can see it here on the screen, was published. Oh, I think I muted your screen. And so I can't see that unless you share. So last Thursday, the engine X vulnerability was disclosed. I don't know if everyone knows the engine X vulnerability, but basically engine X has a very, very strong service account tied to it. And in some conditions, you can expose this service account and get the access to secrets, et cetera, et cetera. So it was disclosed on Thursday evening Israel time, probably morning US time or West US time. And on Friday, lunchtime, we released CubeScape with a version that has the ability to test your cluster against this vulnerability. It's super important for us to give the users the ability to understand if they're running something which is vulnerable. And yesterday, I tend to have, I'm the VP producer myself. I'm the VP product of ARMO. And I talk with users from time to time. I'm the person who's nagging the user. No, I'm kidding. I'm the person who's contacting the users, asking them to give us feedback, to give us the direction. How can we help them? And I had a talk with a customer who told me, I ran CubeScape. I found two vulnerabilities in my live cluster. And it helped me to identify it and remediate it. He didn't want to tell me exactly which vulnerabilities, but he told me that he ran it and he found vulnerabilities. It always makes you happy that you created something that gives value. So I hope it answered your question. Absolutely. Absolutely. And I think that that really does make a difference, being able to see that. And nothing feels better too, right? Than being able to see that there are 40 issues and you're bringing that down to 18 or two or zero. That's always a good feeling on that front. And we got your screen sharing again, so you should be good on that front. So if there's anything that you want to go through. Awesome. With that, if anyone else has any questions that they'd like to go through, please feel free to share on that front. And then if there's anything that you're excited about with the project, I know in your slides, you had kind of talked about some of the things that were next up for the project, Amir. If you wouldn't mind bringing that back up, I'm kind of curious to take a look at that again, as well as kind of hear about some of the things that you're most excited about when it comes to what you're working on, what's up next for the project. Can you see my screen now? Yes. I see your browser and the restream tab. Oh, so let me, let me, probably I didn't share the entire screen, so. No worries. I feel like that's still, despite all that we've been through around the world, streaming is still one thing that we're always trying to work out the UX on. So I hope you see my screen now.  So, you know, personally, I like the roadmap. I created it together with users I've been talking to, but I think that the part that is really, really interesting for me is the fact that we are going to add more controls and put them in different frameworks and you will be able to run any framework that you want. So you don't need to go and, you know, many of the users that they talk to, they collect open source tools and they kind of stitch them together in order to create, you know, a solution that will protect their clusters. It can be that they take one tool to do the image scanning and one tool to do the audit log analysis and one tool to do the RBAC management and one tool for CIS and one tool for best practices and one tool and they end up being with a lot of tools. And we want to be the right tool that gives you everything you need in order to protect your cluster. And that's why I'm very excited when we release a new framework and see customers who are running it and using it and soon they will be able to create their own framework and adjust it to their own needs. So, you know, it's like asking, when you ask me what is my favorite feature in the roadmap, it's like asking the father which son he likes the most. And I like all my kids. It's so true. I know that I'm the eldest of three and I know my siblings and I would always ask our parents, you know, who's the favorite and they would never give an answer, which is the best answer. Exactly. That's funny. That also reminds me of one of my favorite comic strips that I'll go ahead and put that in chat for those of you that have seen it. You'll remember that the standards XKCD comic where it starts off saying there are 14 competing standards and then somebody is just like, we'll come up with one unite them all. There are 15 competing standards and it's just kind of illustrating how difficult it can be to kind of get everyone's buy in and kind of make things happen on that front. So again, you know, the whole it depends trade offs makes it difficult to kind of come to agreements on that front. And thank you for working on such a cool tool to help bring all these things together because like you said, it's might be easier to go kind of like with the CIS standards or, you know, whatever it might be. But when it comes to actually getting an understanding of what your entire security perspective looks like, it's helpful to have all of these to take a look at and to benchmark your clusters against. So, thank you so much. Exactly. And again, we are very open to feedback. And if you have anything, just, you know, drop it on, on, on GIT or on our Discord channel. We have a Discord channel. We're constantly watching it. We have a developer channel there, announcement channel there. So, you know, you can register to our Discord and be part of the community. And we, we are very focused on a tube scape and making it better for your use. So, you know, we created for you and we need you to be with us on that. Absolutely. And I'm honestly curious to hear any of your use cases or stories or kind of things that developed from that, too. So please feel free to share those. I'd be very curious to hear. Awesome. I have one more question, but we do have a few more minutes. So if there are any questions that you want to get answered, please feel free to throw those into the chat. Otherwise, we can get things kind of closed out and give you some time back. So drawing to the end, one of the questions that I always like to ask is, what's the best way to get involved with the project and contribute in meaningful ways, you know, whether it be documentation or if there's a certain, if there's a certain perspective or set of features that you're trying to add, what are some of the ways that people can most beneficially get involved for the project? So we, if you look at our GIT, there are some issues that we mark as we're asking people to help us and contribute codes to. So, you know, we constantly watch our GIT and we are very, very active on that. So I think this is the best way for someone to start the discussion with us. Of course, if needed, we can move to Slack, Discord, emails, old telephone calls. Do you support carrier pigeons or anything like that? That's usually what I prefer. I don't think that pigeons can fly that far, but did pigeons fly over the Atlantic Ocean? I don't know. But anyway, so we can definitely jump on any medium in the Soviet Union. We do appreciate help. So, yeah. But let's start with GIT. I think that this is the channel that we observe the most. And of course, the Discord channel is a very, very good medium as well. Fantastic. Excellent. Well, thank you so much. I did see one more question come in. Will there be support for CIS? Yes. CIS support will come toward the beginning of 2022. I don't know if it will be January or March, but it will be somewhere in between, and it will be supported as well. Awesome. We had another comment that said support for RFC 2549 is important, but I'll definitely have to read up on that one. I'm not sure that went off hand. I'm writing it to myself. Absolutely. I'll go ahead and put that in our chat. Oh, IP over Avian Carrier. Yes, absolutely. Sorry, it didn't make the correlation. That's funny. Yeah, with talking about data transfer and everything on that front, there's a, I worked for a previous company where we did talk a lot about data transfer and the rate at which it would be faster to load it up either on a USB device or a big hard drive and actually drive it, ship it, fly it somewhere faster than being able to transmit it over the wire. So carrier pigeons are important. Thank you so much on that. Awesome. Well, I think those are all the questions that we've had. Thank you so much, Amir. Thank you everyone for joining the latest episode of Cloud Native Live. It was great to hear from Amir about Cubescape and different ways that you can test your Kubernetes deployments. We also really loved the interaction and questions that we got from everyone in the audience. And don't forget that we bring you the latest cloud native code every Wednesday at 11 a.m. Eastern time. Next week, we'll have Karen Chu and Kent Rancourt presenting. So what's new in Brigade 2? Thank you so much for joining us today. We'll see you next week. And with that, Amir, any parting words or things that you'd like to let the fans know? Thank you very much and please use Cubescape. Awesome. Well, with that, thank you so much, everyone. We hope you have a wonderful rest of your day. And we'll see you later. Have a good one.