Welcome everyone. My name is Simo Sokkyu. I'm a senior software, senior principal engineer in Red Hat and I work as a team lead for the crypto team. And today I have this presentation about building an open cell provider, in this case specifically for PKCS 11. And I'll just go a little bit of, you know, have a kind of high level overview and then some tips and some lessons learned maybe. Feel free to ask questions anytime. I welcome them. So I'm going through what's the problem? What is a provider? What is PKCS 11? What is the PKCS 11 provider? And then, you know, what happened when I tried to write one. So the problem is very simple. It's not a new problem actually. In, you know, in previous open cell version there's a thing called engines. And there was an engine that allow you to use PKCS 11. So the problem was specifically with the new version of Open Cell 3 which deprecated engines and introduced these concept of providers. And the problem is having an application that is using the Open Cell API ends up being able to use a hardware token generally or even a software token that does some cryptographic operation. So what is a provider and why there is this change? So Open Cell had these engines that there were limitations. Some, some, sometimes it would be awkward to use in applications and providers are kind of better engines if you want from an application point of view. They can be transparent to applications unlike engines where, where there was a requirement that the application know how to use them and call specific APIs. There are already in fact multiple providers within Open Cell 3 that applications don't really actually see. Like the default one, TIPS, legacy and stuff like that. So it doesn't, it's not required for an application to explicitly select a provider. It can be, for example, configured in, in, in Open Cell Conf file and, you know, transparently or loaded. And you can also set properties for a provider that kind of can change the behavior open a cell to use a provider or to change the behavior of a provider. So it basically allows a good configuration or agility if you want in the way cryptography is used once an application, you know, is open a cell, which was not really available before, I would say. At the code level, it's just a loadable model like a shared library. So in, in Open Cell Conf you will define I have this provider, this is the name and Open Cell can load this shared object, find, you know, functions and, and use various management functions. You have to implement generally at least, at least a key management operations because, you know, when you're using cryptography, usually using keys, even though technically there are some, some operations that open up can do that doesn't involve keys, those are not very, very interesting to me at least. And you also need to support at least a way to reference these keys later in other operations through Open Cell. But, but that's, that's, you know, that's it's just a self, self-contained shared object that can do operations that Open Cell can call into. And this is taken directly from the old Open Cell 3.0 design just to show you the difference in terms of where these things lives. In, in the engine is some sort of legacy thing that kind of has its own world around it while the provider is really below the core of the library today. So it's really, really hidden and very, very low level if you want. And all of the providers are basically on the same level. And while the engine was a special thing, together with many other special things. So that's why the provider can be used somewhat transparently while engines really had to be coded specifically for. All right. So what is the difference when an application had to use engines before and now needs to use providers? As you can see on the left side with engines, you will see a lot of this engine word, like you have to load the engine, you need to know what the engine is, what the name is. And then you need to use a special, special operation to load a key from an engine.  But the critical part is that you really have to change your application to use that, this, this functions. On the provider side is that if you use the modern Open SEL API, you just open a store, which can be anything, even normal file. So you can have an application that just doesn't know anything about your provider. And then you will load from the story key. Again, there is no special knowledge of where this key is coming from, what it is, then you will do your operation and close. So in terms of the amount of code, it's kind of comparable. But the good thing is that if you look down the URI, which is the only identifier that differs, if all goes well, that usually comes not even from the application directly, it comes from some configuration file, or maybe some prompting, if it's a common line utility. And so it can be totally transparent to the application itself. So if the application is well written, you can test with PEM files for keys. And then you, you bring in your provider that has the keys completely different place and the application will just keep working fine and doesn't know anything. So from the point of view of architecturally working application, it makes it much easier to plug in, you know, modules that will do new things without having to constantly write patch, you know, send bugs to many applications. Of course, this is not, this doesn't work backwards in time. So it's for new application that will use the new API. But that's okay, I think. Okay, so what are available providers, besides the internal ones, there are a few good points in this GitHub project that are two that I consider notable because I use them a lot to learn how an external provider should behave. One is the TPM to open a cell provider. It's a provider that give you access to TPM. So you can use basically TPM directly from this cell. And the OQS provider, which is the provider that use LiboQS, which implement quantum-safe algorithms. Both those providers are already quite well written, I would say, in terms of the number of operations that we're doing. I'm not making a good quality statement. But just in the, you know, the extent of the APIs they were using, and they were very useful to learn more about the providers before I venture into writing this other one. So let's then digress now a little bit what is PKCC 11 before we go there. You need to know, understand a little bit what it is to figure out why or what I did. And so PKCC 11 is fundamentally an API, so a C API specifically. And what it does is kind of mediate the access from an application that is more generic to a hardware, a generic hardware token like an HSM, a smart card, the UB key, whatever you have. So it's very simple in concept. And the standard is managed by the Oasis Group. And it really only defines how an application talks to a shared module fundamentally. It doesn't implement or define any hardware protocol. How that driver talks to the actual hardware is completely outside of the scope. And it basically creates an obstruction layer of, you know, potential hardware communication, but it doesn't have anything to do with hardware. That's kind of important because it means that you really need to have yet another piece of software underneath. It's not just calling and talking directly to some hardware. And the other thing is that it's not like a monolithic thing. There are many APIs defining PKCC 11, but not all of they are, but not all of the drivers implement all of them. So that also means we need to be a little bit careful of what you're going to use because maybe one hardware token with its driver will support that API and another will not. And things like that.  So it really inherits the hardware limitation if you want in some sense. And it continues to evolve as new, you know, cryptographic primitives or new protocols or new algorithms are being created. So now we can tell it what is the PKCC provider is just, you know, getting this API and stick it into open a cell with a middle layer that translate the way open a cell under, you know, created the providers API and talks to the driver that you want to use for whatever hardware you have. And so it just, you know, another abstraction layer in the middle somewhere. And eventually you go and talk to hardware or a software token or whatever it is. And it is that address there on GitHub. So what are the goals for the PKCC provider? The main goal for me was, of course, to make it possible to use PKCC 11 tokens. We've open cell three because the engine interface is rapidly kind of degrading its ability to do to work well, due to the deprecation. And I, you know, we wanted to look forward and see what use the native, you know, APIs for open cells that eventually we can stop using these deprecated interfaces. But the thing that really intrigued me and interested me was the fact that if used correctly, it can be completely transparent to our application. So one of the things I made very hard, in my opinion, use hardware tokens was that whenever you want to use a hardware token, you have to go to the application developer and ask, you know, can you start using this engine API in the specific, in the special case for me to use this token? So you have to go and change applications. While with the providers, there is a good chance that, you know, you can actually send patches to change how the application works. But it's not a special case. It's just a common case. And, you know, depending on how you configure open cell, then you will use either the standard cryptography within open cell or the provider. The other thing is that you can use the standard PK611 URIs to define how to get access to a key. It's a very well done, I think, standard in this case. It gives you all the tools and tweaks you need to identify a key in the token so that you can uniquely identify the key and call it what needed and use it and, you know, I haven't felt any need to do anything else. So I think it's complete from that point of view. The other thing I wanted to do is that I would like to get to a point where we can configure PK611 provider in a system like Fedora or REL by default as a standard provider in the default configuration and yet not have side effects in applications that are undesirable unless the application is actually using the provider and then the case will not be a side effect it will be wanted. And, you know, of course then that's also the case where applications want to explicitly force the use for the provider. In that case they will use a property like provider equal to PK611, but that just need to work. And the final goal was to make it work with as many actual hardware tokens as possible. Because as I said many of these tokens just support a subset of algorithms, subset of functions, sometimes they have quirks where they kind of support something but not in the correct way and many other strange things because hardware is, you know, it's kind of hard sometimes. And also software tokens. So these are the goals for the project. So how you can use it? I'm not going really down in details and give you exact configuration that can be easily found, you know, online. But fundamental is just a little snippet of configuration in the main open cell configuration file. What you need to define is where the module is, where you compiled it. You need to define what driver, what PK611 driver you want to use. You might want to define a pin because normally what happens with hardware tokens is that you have to have a pin to unlock the token to permit operations. It's not required to set the pin in configuration. There is support for prompting if what you're doing is, for example, using open cell commands and you'll have an interactive section. So you can avoid that. But generally, you know, like for services, running on some service on machine, you're okay setting the pin in that configuration so that machine can access the token directly without having to do any, you know, dance around introducing the pin and keeping it in memory or whatever. But that's up to the users. And then you can run a command, like the one that you see there, open cell store useful keys, the xpk611, to test the configuration and you should see something like this where it will connect to the token if there is a pin needed and its configure will use it, otherwise it will prompt you for a pin and then it will fetch the objects from the token and then print them out because of the dash text option. What we print out, we implemented encoders and decoders explicitly to print a little bit more information than what normally open cell prints when it pulls keys. And what we print is, for example, the URI, the URI that you could use if you want to use that key, you just found. If you have a token, you generated some key, maybe some UBI key utility, whatever not, you have the like, how do I find out this key that I want to use an application, just use this command, it will list all the keys you have, you find the key you like and you just can use that URI in the configuration to use that. So in this case, I found 12 keys and I just, you know, alighted something to put in the screen, but it will print for everyone, URI and, you know, the public key and a bunch of information. Alright, so in order to get there, I had to learn how to write a provider. That's, that's an interesting, an interesting, I mean, I like, I like doing that, I have to be honest, I really loved having to dig into the code, but it is a little bit of a daunting proposition because the documentation is really sparse, like if you do man 7 provider, you get some information, but you won't go very far in what in terms of what it really means to actually write a writer. It's mostly about how you use it or stuff like that. It's very generic. So you end up reading a lot of sources and there are, you know, two things to know. There is the open-sell source, of course. You read that, it will give you a lot of hints, although internal providers take shortcuts, even just in the initialization code when I started, I was looking at those like, this won't work in my own. And so what you end up doing is probably reading also external provider sources to figure out the difference or the things you have to do when the module is built outside of open-sell. The thing that makes things hard for real, more than actually reading the source per se, is that open-sell has an extreme level of indirection everywhere. And very, very hard to read. Multiplied nested macros everywhere. So sometimes reading the source code leaves you more confused than not reading it.  We get back traces and then I go back and try to find the functions with the understanding of where things are coming from, where they're going, and then you have a better idea. But sometimes GDB also get confused because of the extreme level macro interaction. And so, you know, it's, it's fun in a way. Sometimes you swear a little bit, but in, well, in the end, you know, it works. So the first hurdle I had was initialization. But actually, from that point of view is once you know the thing, it's kind of easy. The only thing that you have exposed for your share object is basically just one function. That makes it easy. Just this, this function called OSL provider in it. It's all you need. Done. We can go. Well, this function oratory, I think called a dispatch table, which is a function table that points multiple functions. And one of them, which is kind of the most important one is the one that, you know, allow you to query for operations, which basically will tell what operations they provide actually can do, can support. And that will return, each of them will return back another function table that then opens up will kind of cash and use at some point to do whatever operation you need to do. So for example, you can implement this OSL, OAP signature function table, we have a bunch of things. But if you do that, then you will also need to do a few more because open a cell kind of expected for some operation that you must have other operation also working. Although I know technically you could just implement, you know, the single operation in our side effects.  It's so what are operations just to be clear? Like, for example, if you want to implement your owner as a version, for whatever reason, you know, for fun, because you have a special hardware module, a special CPU instructor you want to use you just want to do some different code. You will have to have a name recognized or not recognized by open a cell. So if you use a name that is recognized like RSA, it means that open a cell can use your provider. Also when the application just genetically asks for RSA. And but if you implement something like a quantum safe algorithms, you will have different names that open cell doesn't necessarily know ahead of time. Anyway, there is a name that identify, you know, beyond the operation type, what kind of cryptographic algorithm we are implementing fundamentally. And then you will have to product constructors, destructors, get a set parameters. These are almost all of these operations have some kind of stuff like that. And then you will implement your specific, you know, function like, for example, if we want to implement signatures, you will have something like I'm implementing OSL func signature digest in it, which is in this function table, you have this thing define and then the function that will implement this operation. And then of course, you will have update and finalize and whatever now and verify, verify it, verify update, verify finalize. So this is what a function table kind of looks like at least in my code. And here you can see that I fell in the same trap of using macros. So it's not actually a real C structure in this form, but this makes it more readable. So in the end it was, it was okay. And I picked this as an example, because it's one of the shortest signature structure because the DDSA doesn't support various things. So you basically have three functions that create free or duplicate context. A context keeps various information on what kind of operation you're going to do. Then you have at the bottom, a way to get and set parameters. You could maybe setting digest that you want to use for a signature or other parameters needed. And then you have the actual sign and verify functions. And this is all that you need to implement to basically do a DDSA in a place. All right. So then there is key retrieval and key management, usually to do anything useful like it unless you're just re-implementing an existing thing just in a slightly different way. And specifically in the PKS, I mean provided where keys are not directly available because the whole point of hardware modules that the key is stored safely in hardware and so it cannot be extracted in using software. You have a way to go and find this key or reference them somehow. So the later when you do an operation, you will use the key you want. So and the API to use to find keys or load keys is the OSL op store API. It just defines ways to load keys, find keys and you know, unlock keys through password and callbacks and stuff like that. And also importing and exporting keys, which I also need another one, which is the encoder operations in case you actually need to then use ASM1 to export them in some form or import them and so on and so forth. And finally, you also need the key management like these three kind of always work kind of together somehow. And key management does things like generating keys or preparing keys for operations and various things like that.  So this is how once you've built enough things, things will start to kind of work finally. So if you have an application you and you want to do a signature operation, you have basically two basic operations you have to do. First, you have to get a key and then you will have to put up your data and you will say, I want to sign this data. So to get good idea key in the BKC11 case, you have this URI, you'll call openSL with the open store API and say, I want to find a key with this URI. Then open a cell will see that it's BKC11 call on and say, oh, I have a provider that can handle this kind of URI. And so it will go into the BKC11 provider. There are various things I'm not going into, but it will find what operation it can do. And eventually we'll find that there is a store facility there, we'll call it. And the provider will actually then know that there is a URI we're looking for. So it will go down into the driver for BKC11 and try to find if there is a key that basically fulfill all the filters you have in this URI. And if it finds it, it will return back, it will cache something in some memory object store, return a reference to openSL. And if openSL finally will recreate this EDPP key structure that gives back to the application. And that's the abstraction that basically allows the application to reference a key, whether there was a store in a file or in BKC11 or TMP or whatever it is. And then the next thing the application does it like, I finally have a key, I have my data, I want to sign it, it will send all this stuff down to openSL, which will send it down to the BKC11 provider. BKC11 provider say, oh, I got this key, there's a reference, I know what the handle is. For the BKC11 layer, I can set up the operation with the hardware. I can tell the hardware this is the operation I want to do, this is the key object that I want to use. This is the digest I want to use, whatever. It will call the driver, the driver will do its own set of things. Eventually you get back a binary blob, which is a signature. You will send it up. In some cases, the BKC11 provider might have to message this data because of sometimes, for some signature cases like ECC, I think, PKC11 return, you know, the data in some format, openSL will expect a slightly different one, so maybe it does some play with it, but eventually it will come back to the application and you have your signature. From the point of view of the application, the application just called openSL to the signature, that everything under the first layer is completely unknown, potentially by the application. I think that's the nice part. So what are the hard areas? I had my head on multiple times, encoders and decoders. The concept is very simple, but you have to know about the ASIN one, for example. All of the providers, the internal ones and the external ones, use at least five layers of nested macros to implement the functions that implement these encoders. So when I was trying to understand what was happening, it was really, really hard. The GDB was completely useless to follow what was going on and I just went trial and error until things worked. And eventually I understood enough to actually correct the first few mistakes ahead and it kind of works, but it is really, really difficult code. And then there is naming and caching resolution within OpenSL itself because whenever OpenSL tries to do an operation and tries to find which providers can't complete an operation, like for example RSA, it has a whole world where it looks for names and try to find them and cache stuff, find function pointers. I gave up on that one because every time I had, you know, I was trying to look into it, the code is really complicated, but I was also trying to solve another problem and the other problem was more important. So maybe it's just me, but I just say keep it on faith. I mean, it works most of the time.  Maybe it would be nice to have a guide on that from the open cell side, but it's not a showstopper, but those are really areas where it's really hard to understand what you're supposed to do and how things work. There's still one thing that I don't understand. Maybe I'll ask the pencil developers what they are about the query operation for the function that is a query operation where you can return a result that says, don't cache these. And if you do that, what happens is kind of the opposite, like open cell will only use that thing for their own. And it was like, what? So I stopped doing that.  So what are the next steps for me or for the project in general is integrating with applications because as I said, you know, you have to use the open cell three API fully to make use of the providers. So we did some testing within the team. We believe SSH stuff mostly works. Some bugs were found, but that should be, we should be able to get that working. But I want to work on ISE bind, open SSH and modern cell to make them use these instead of engines. And that's where we'll go next. And, you know, a lot of bugs were found in the making of these lights, but nobody was hurt. There were, there were PRs open, there were discussion upstream, open cell developers were mostly very, very gracious and useful and understanding and accommodating and we fixed things, we had PR going, changes. There are still some things discussing. There are still some areas where the provider API can be improved to make things easier or possible. But overall, it has been a very fun experience for me. So, yeah, thank you all. And if you have any questions. Yep, go ahead. From the bottom, fix small. A fix, using, you know, it's called SSH moving file for fix. The moving file has two providers. The name is base and the name also is named fix. And I was told in that case of the moving file the base is used as a decoding, decoding and the fix is used for encryption. And I wonder how it's necessary to have some kind of decoding which provider is used for decoding or encryption. Yeah, yeah, so the question is in fix small, when you want to use a fix provider, there are two providers you actually have to configure. One is called the base provider and the other is the fix provider. And the base provider does encode it and decode it. And a fix provider's encryption primitives and how that works. So one thing that maybe I didn't say is that although there is this impression that the provider is monolithic, like it says one thing, from the point of view of a cell, each provider fundamentally gives you a palette of providers to choose from. Like each operation is kind of its own provider within the provider. So, and each one of them has a name and a function table associated. So when open cell needs to do an operation like I need to decode something, it will query all of the providers or well it's more complicated than that but let's say it queries all of the providers and we'll find which providers tells back to open cell, I can handle this, okay? And then it will open cell has some logic to choose which of the providers it will use. So in the case of the base versus fix provider, the fix provider doesn't provide any encoder or decoder function. So whenever open cell ask, who can decode this PEM file, the fix provider will not respond but the base provider will say I can decode this. And that's how often the cell knows that it will use with the base provider for that. What is more complicated is what happened when one provider for example decodes the key and then you want to use it to another provider. But I don't go there unless you ask for it. It seems like the important thing we need to call applications is the switch to using this OSSO store. How do we get then the automatic association to using a specific provider for say, I've got a PQC user and a URI user, how do I know to use your provider for that URI versus some other provider which might be on the system? Yeah, so the question is if applications reach to this new open cell store API which is what is needed to use provider and passes in the URI, how does open cell know that it has to use the PQC user and provider versus another provider and stuff like that. There are multiple ways that are implemented to influence which provider is being used. So first of all, providers can register into an open cell, handle for URIs. And so the PQC provider registers into open cell, I can handle anything that is PQC 11 column, something. So whenever open cell is given a URI in the store case, it will see, oh, it's not file column or slash because there is a shorthand there. It's PQC 11 column, so which provider handle this? It will find that the PQC 11 provider handles it and it will call the store operations into that provider. Now, what happens after that is that the PQC 11 provider will return an object reference for a key, for example. And that will be embedded into EVP key structure. When you do an operation with the EVP key structure, then open cell will go in and look into it and say, oh, this key is owned by this provider. Let's try to see if this specific provider can handle the operation I'm being asked to do. And if it does, it will prefer to use that provider. And if that provider does not support the operation, what open cell does is it will ask the provider, can you actually export this key so I can actually import it in another provider and use it in another provider? So this is the general mechanism, but you have things like properties, for example, to tell open cell, well, you should really only ever use providers that dispose this property and never anything else, even if they say they support operation. This is how, for example, the FIPS provider is actually will be used because the FIPS provider is fundamentally the same code base as the default provider. The difference is that when you set the property called FIPS equal yes, then open cell will only use the provider that exposes property, which is the FIPS provider. So there is this selection mechanism within open cell that either the application can pass in or the configuration can file can be set to that allows you to select specific providers when multiple of them offer the same functionality. That's how it works in the international. I wonder if you load more than one PCS 11 module. Can I do that with stanzas, or does that mean people need to, or will the PCS 11 provider have to know if I'm going to load more than one module when I'm managing that? So the question is, I want to load more than one PCS 11 module. Okay, so the question is, can I load more than one? Are you, well, the question is, can I load more than one PCS 11 module? My question to you, do you mean more PCS 11 drivers? Yes. Okay, so because the PCS 11 provider is kind of a module itself, which gets loaded dynamically into open cell if there is configuration. And then the provider itself currently loads one driver. So if you want to use multiple tokens, there are multiple strategies that you can go for. One is different applications use multiple different tokens. So you will have a custom open cell.conf file for each application and in each one you will set the driver. Or you set an environment variable instead of setting the driver into the configuration and you set this environment variable for starting the application. But that's another way we support to load different drivers. And that's what we use for example in CI when we test different drivers. Or you use something like 11Kit that can aggregate multiple driver underneath. It's a basic proxy information there. So there isn't a single way to go. It will depend on the situation and what you need to use and how you need to use it. So, yeah. I have never tested whether I can load the same provider in open cell multiple times. So it... But I haven't looked at that. What does it provide you with multiple times to give structure text? Yeah. This is actually before that it's a load by default in the 11Kit proxy which basically aggregates all the cases that you will install in the 11Kit. So if I do not provide configuration in configuration file past or let's say in the case of 11Kit it allows cases from the 11Kit proxy that will basically do what you want. Yeah, Jakub commented that. We have a build option where we will load by default the 11Kit proxy which can collate multiple drivers available in the system by doing some discovery. And so it will make multiple driver available. And this work just fine because through the pks11 URI you can always select specific module you want to use even if multiple modules have keys that are named the same way. So there's no ambiguity unless you forget to set those parts. But yes, it's possible in the end to have multiple because you have a module load at the same time. We're out of time. Thank you.


In the parable of David it was kind of surprising to me, always a little surprising, like when back in the early 1990s people started showing up saying, I am your student, I am your student. Nothing really could have prepared me for that kind of experience except the first part of the course that spoke to me was the teacher's manual, you know, when the student's ready the teacher will appear and everything like, oh this must be that thing in the manual. That's the thing in the manual. There they are.  So it was kind of like, oh that's the manual, that's the metaphor in the manual, that's the manual. Because the whole thing is about the teacher and student are the same and in this world it seems like the teacher is more than the student but that's not the case and he's just saying in so many words in the manual that you're always teaching yourself and teaching is not the way you see it in the world. It's not actions. It's not teaching with words and actions. They're actually teaching yourself all the time. So I'm glad I had all that preparation go, okay, there's nothing freaky going on here today. And then you go through the metaphor where there was the students and da, da, da, da, and you go through these all sessions daily and all this and this and this. And then you start, you finally come to that point where you feel like the metaphor has been used. Like a lot of metaphors in the course and then you're ready to set that one down. Not to push it away when it comes because obviously it's coming for a reason. It seems to just show up and you go, okay, it's here. I guess I've got to deal with it now. And then you work with it and then you start to go, oh, okay, we can set that aside. And then once you have kind of transcended things, then you don't really have a place left in your mind for that anymore. So Jesus said that in the Bible, who do you say that I am? And they'd say a prophet or Isaiah or so and so come again and all these different things and the Messiah and this and this and this.  It's literally before time so it doesn't even fit on the timeline even into the story of Jesus. That's where the whole sacrificial idea comes in. Somehow, you know, God became a man. How would you do that if you're like eternal in your little slab of flesh? You know, that doesn't happen. Even that stuff about Jesus corrects all that in the Course. In the beginning, the word capital W was made flesh. He says strictly speaking that's impossible. Wow. Kind of an important distinction there. It's like really basic in the Bible. In the beginning, the word was made flesh. Jesus is like, not really. Because I am the Word and I've never been flesh. I'm not a body. I'm with you always because I'm eternal. You're eternal. We've got to get to this basic agreement here. I'm here to teach you this and it doesn't matter if you resist it. I'll eventually get through. When I awoke, you were with me. All the kind of stuff in there, this and this. It wasn't about opening to eternity. But for me, you know, when that metaphor came, it was interesting too. It was a very strange thing that happened. I was in Australia, I think, I don't know, a couple of years ago or something, and a very, very, very prominent Course in Miracles teacher sent me an email. And it wasn't supposed to come to me. He was sending it to somebody else, but he put my address in and he sent it to me and he said, David is stealing other teacher's students. David is stealing other teacher's students. This was like a really prominent part. And it was just sent to me by mistake and I was like, look at that. Because I kind of got a good chuckle out of it because I didn't perceive myself as a teacher. But it was kind of interesting that it's just kind of one of those Freudian slips with the oops. And it was kind of cool because I was like, wow, that is amazing. Because once you transcend the concept, then you don't identify with the concept anymore. You don't identify with teachers and students. And in spirituality, that can be a long trap if you get identified as a guru or a student or a guru or a devotee or something. Those are still roles. And those are really sticky. They still have a lot of guilt with it. There's all this allegiance to the guru and da-da-da-da-da. Even though I've said all these years, guru is G, you are you. You, the Christ, are you. G, you are you. That's what guru means. It's just pointing you to the awareness that you're the one. That's all the symbol means in the most basic way. But that's the trap of teachers and students, of those that are leaders, those that are followers. Even though in the chorus Jesus says, you know, walk behind, walk beside me on the self-same road, capital self-same road. And he's giving that same metaphor of, you know, don't follow me. Don't go behind me.  You know, he's an elder brother. That symbol is just an equal brother. And even when Helen Shuckman had that vision in the church, which she went into the church with Bill, and they went up towards the altar and then they knelt down in the Catholic church. And they knelt down and both, and they looked and there, and Jesus appeared. And they're looking and Jesus is with them in this Catholic church. And Jesus comes and he kneels down beside them, all three of them kneeling together. It's such a beautiful symbol. They were like, it was Jesus, you know, and he came and he just kneeled right down almost just like a friendly, yes, let's all kneel here. You know, like the same thing he taught in the Bible. Why do you call me good? God is good. Everything was pointed at the Creator. All glory was given to the Creator. And even in the vision, he knelt down beside them. He didn't walk up and put his hands on their heads. All these things sometimes you see with gurus and all the blessings and all this and this and hugging them and this and this and this. What did he do 2,000 years ago? He washed the feet of the apostles. What a great symbol of equality. He washed their feet. The Master washed the feet of the apostles and with Helen Shuckman and Bill, he kneels down beside them. So to me, that's what this is all about. It's about kindness. It's about friendliness. It's about equality. It's about we are the same. It's about we're all in this together. Our arms are locked arm in arm and we're walking into the light together. That's a great metaphor. Nobody's ahead. Nobody's behind.


Awesome, we should be coming in live. Yep, nice, nice, nice. Hi everyone, this is Chichu. Welcome to my channel and welcome to another live stream. Today we're playing our 10 by 10 puzzle, the pattern recognition game. Right, fantastic. We've done a few of these over the last few years and I'm just gonna link up the original video that we did in chat because we are live streaming in the song Twitch and the links will be in the description of the video once it's been uploaded to BitShoot and YouTube. Okay, and while we wait for notifications to go out for people to come in to the chat for us to play this game, let me tell you who I am. I am Chichu and I am on Patreon, patreon.com backslashchichu, chychu.  I don't put anything behind paywalls, everything's created commons, share and share like, right? So you can just follow the work and at some point if you do have the means to support this project through Patreon is a fantastic way to do so. We are live streaming this on Twitch, twitch.tv backslashchichu live, chycholive, okay. And if you wanna participate in these live streams as they are happening, Twitch is where you wanna be at, okay. And after the fact, almost technical difficulties along, we're loading and looking to be chute and censorship permitting, we're loading most of the stuff on YouTube, pay chichu, hope all is well, hope you are well, I'm doing good, Josh, doing fantastic. Looking forward to this game. I think summertime is gonna be our 10 by 10, a lot of 10 by 10 game going on. Nicky, how are you doing, hey brothers and sisters? I think, Bobber, I expect nothing less than a perfect 100 today. Two games, two perfect 100s. We'll see, we did pretty good last time, man. We got our last game, we got up to 99 and that was pretty damn sweet. Now I do announce these live streams 30 minutes before we go live on Twitter, Gavs, Minds, VK, Alon, Parler, all the links again will be in the description of this video. So if you wanna follow this work and notifications and see what else we're sharing, those six platforms, part of our decentralization is a good way to do so. Cheryl, how are you doing, hey chichu? After an awesome music day, I'm looking forward to my first 10 by 10. Is this your first 10 by 10? Oh, Cheryl, you're in for a ride, should be fun. And I noticed a whole bunch of so much awesome music being shared on our Discord page. And we are on Discord Gang and the link, again it will be in the description of this video and it is in the, actually on chat, we have a little command, says Discord. And if you wanna go to Discord, I've Cheryl did it as well. If you wanna go to Discord, we are sharing, everybody's sharing a favorite of content on there. And there's a lot of music being shared recently. So that was fantastic going through that stuff. I haven't gone through it all, I went through some of them and I got it too. I started listening to some Davey and Marley, Jamrock and One Tree or Halfway Tree. Fantastic, those two albums are fantastic albums. We will be uploading a lot of the audio where we do open discussion, live streams to SoundCloud. SoundCloud.com, backslash, CHO, CHY, CHO. I haven't started really uploading any of the audio where we have visuals in play to SoundCloud, maybe one or two. But I haven't yet on a mass basis. I just limited on time. So we're gonna reserve sort of the audio being loaded onto SoundCloud with a lapel mic recording. Hannah, how are you doing? Welcome, welcome to another 10 by 10. And we will be uploading this video, this live stream to YouTube and BitShoot, okay? And if you're on YouTube, one way to support this project is by joining YouTube membership, okay? And as for what it is that we're doing today, Larek, how are you doing? Hope you're doing well. As for what we're doing today, we are playing the 10 by 10 game. This is the first video we put out, the 10 by 10 puzzle. I forget when I put it out. Actually, let me see one that I put this out. We first put this out in 2015, five years ago, woo-hoo. So we put this out five years ago. It's a game that one of my students showed me 20 years ago, how to play. 15, 20, 20 years ago, most likely. Probably, yeah, 20 plus or minus, a couple of years here and there. And I started playing it and loved it, got hooked on it and go back to it every now and then, don't play it for a while, come back to it. And this is now sort of my fix for playing the 10 by 10 which is fantastic. It's an amazing thing to include into your life, right? A pattern recognition game, good for the brain, good for the nugget, right? It's math time, folks, it's math time, folks. And we do have a playlist for this video on YouTube. I don't have a playlist on Bitshoot and this video, I don't believe I've uploaded it to Bitshoot yet. I will at some point, take a little bit of a Bill Hicks break and start uploading everything to Bitshoot just to make sure everything's preserved. There as well, it will take some time. We've got nine other plus videos on YouTube, so we'll see when I'll get to it, right? But we do have a playlist and we have some of the games that we've live streamed on Bitshoot for sure. But the playlist on YouTube has all the video, all the content that we did for the 10 by 10 puzzle, including us setting up the grid, taking down the grid, doing a math matter, doing a Pythagorean, special Pythagorems and stuff to build this nice square grid that I've kept up here for now for over a year, I guess. Content, machine, tree, job, and the key. I'm just lovin' it, just lovin' it. It's my ADD, right? It wasn't appreciated in our centralized indoctrination center schools, but once you let it loose, you give the tools available to people like in multitask, you have a blast, right? You have a blast. Let me take these guys down again and welcome everybody. So we're about seven minutes in. I went through that intro, speedy gonzala style, right? We'll wait a few more minutes before we start our first game, but we can start any time. If you guys are ready, I should give you guys the directions for this thing, right? In that case, you're behind. Where's the system? To a certain degree, man, to a certain degree. I got so much stuff that I need to create. Oh my God. Jacobi, how are you doing? Here, early today, awesome Jacobi. Randolph. Search is waving in so many muscles. Allerious. I gotta create, we actually have a couple more spots, I think. One or two more spots for emotes that we can load up to Twitch. So there's a couple contenders that I've been thinking about, but I got distracted, right? So I'll see what I can do to load up more emotes to our Twitch chat. Love me some system with dialtox. This is a great animal, yeah. Oh, you know what? Their whole library is fantastic. And they kept the same theme, and they put it together really well. Like, really. They did, initially when they came out, they were, I didn't catch them. They came out in 94, I think. I didn't catch them in the first few years. I caught them pre-9-11, like, in 2000. 1999, 2000, I caught System of the Down and rolled the wave that came afterwards and went back, obviously, to their original albums, right? Steal This Album is a fantastic album. Search Tankian is such a talented musician, yeah. I think they all are. Daren too. I didn't appreciate them as much until Scars on Broadway. I started listening to Scars on Broadway. I was like, damn, that's the meat of System. That's the anger in there. The chaos factor came from Daren. That's the feel I got from it. Okay, and of course, from Surge as well. Listen to some Coltrane today, nice. While organizing my bookshelf, so good. John Coltrane, holy hypnotic, fantastic. Coltrane, awesome. Shouldn't be a surprise though. Coltrane is phenomenal. Coltrane is on the same level as John Lee Hooker and Nina Simone and Phenolius Monk and System of the Down and musicians, creators that just blew us away, right? I love Supreme, fun. Gang, let me give you the intro of how to play this game. Okay, I think notifications are slowly going out, just the numbers are popping up. Salute, crab apple liqueur. And I'm drinking crab apple liqueur right now is because I made some crab apple butter yesterday. Crab apple jam yesterday. We had some crab apples left over in the freezer and I ended up making a small batch of crab apple butter. It came out beautiful. Let me show it to you. Check this out. Look at this. Look at the color on this. This is crab apple butter. So good. Crab apples that we picked from a small town that we go to during the festivals, but the festivals are closed. This one festival we've been going to like five years. They got amazing crab apple trees, but we can't, we're not going there. All the festivals are closed. They're canceled. So I'm drinking crab apple liqueur and I made some fruit roll ups as well. Check this out. I took some of the crab apple butter that we made. And put it on some, what do you call it, parchment paper. Okay. So it becomes like a roll up and I've been snacking on this.   It's super delicious. All right. Fantastic. I'm here. What is that? Jammer again. Well, we're going to change it up, by the way. We're going to change it up to the other camera because I'm going to give you guys talk programmer. Thank you very much for the sub. Appreciate it. I think the world needs more basic mass streams. 100% agree. Talk programmer, 100% agree. There's a lot of people creating like calculus above, math stuff. There's a lot of people creating early education math stuff, but the amount of math, that the need of mathematics that we really need in our lives is high school mathematics. Okay. Glad you, yeah. Is high school math, if you know high school mathematics, 99.999% of the population of this planet, if you have enough high school mathematics, you can do anything you want. Right. And then you can specialize if you want, go up higher level, but in everyday activity and running your life, high school mathematics, man, you could rule the world with high school mathematics. That's the beauty of it, right? How come it's not rolled up? Because I just made it yesterday and I don't roll it up. We finish it off. I'm not going to put a, I didn't make enough to roll up to save, right? It's just one little batch for sampling, right? Good evening, the QC warrior. How are you doing? Long time no see. I haven't seen you around for a while, man. Gang, we're about 13 minutes in. I'm going to give you the instructions of how to play this game and we're going to go at it. Okay. 10 minus two equals 67. Giddy-dee, my guess is going to college to teach secondary math. Nice, that's good. Seems we are in agreement. Yeah, 100%, 100%. Let me give you the instructions of how to play this game. I saw some video where you said the real numbers are the most important set. Why do you think it's more important than the natural prime number? The real numbers includes the naturals and the prime numbers. The real number encompasses that whole thing, right? The primes and naturals are a subset of the real number set, right? The prime numbers for sure, when the prime numbers are governor lives, really, right? I always miss these streams. At least I can catch up on YouTube most of the time. Good, good, good. Yeah, YouTube, don't forget Bitshoot, too. Okay, YouTube and Bitshoot. This week, we've already loaded one video on Bitshoot that is not going to go on YouTube and we're going to load up one more video on Bitshoot that's not going to go on YouTube, right? So we are loading up Bitshoot exclusive videos. So if you want to follow everything that we're doing, which includes the politics and some of the other non... Some people will consider it, some people don't, right? I'm going to change the angle gang. Let's play. Do you know the instructor? Do you know how to play this game? If you know how to play this game, you can give us the directions of where to start, but this is the angle we're going to use, right? Yeah, but the reels are constructed from the naturals indirectly, I think. Yeah, the reels are constructed from the prime numbers, really, the prime numbers govern it all, even the irrational numbers. The irrational numbers are just, well, except for yes and no, okay? Encompasses most of the real number set, the prime numbers. I'm going to increase the text size here. That way, I don't have to squint to read the chat. And my eyes have to adjust to the non-glasses. What are you doing, Nicholas? How are you doing? How's life? Hello, hello, gang. This is our 10 by 10 math puzzle. Okay, it's a game that a student of mine showed me about 20 years ago. The game is simple, right? We've got a 10 by 10 grid, 100 squares. We want to fill up all the squares. We're going to start off with the number one, and we're going to go all the way to two, all the way to 100, right? And there's two movement types. Vertically and horizontally, we have to be three squares away from the previous number, okay? And diagonally, we're two squares away, right? And you could start anywhere you want. So we start with the number one, right? One, right? And we could put one anywhere. That's the sort we're going to put it here. We're starting off at E eight, right? That's the map of the board. If we go vertically or horizontally, we're three squares away. One, two, three. This could be number two, or one, two, three. This could be number two, or one, two, three. This could be number two, or one, two. Oops, we're off the board. We can't go off the board. We can't occupy a square that's already occupied, right? So we can't go up there. Diagonally, we're two squares away. Number two could be here. Number two could be here, right? One, two, one, two, or one, two, right? Once we put number two down, then the same thing, right? Let's say we go two here, right? Then number three, you can't go there. Vertically or horizontally, three squares away. One, two, three, one, two, three, one, two, three. So here, here, here, we can't go here. Diagonally here, we can't go there. That's already occupied, here or here. That's it. That's the game. We've tried a few different patterns previously, okay? And some things work better than others. We've been breaking these things up into grids as well. Cutting it down the middle with four quadrants, we're going five by five, trying to fill up a quadrant before we move on to the next quadrant. That has worked pretty well, but the last game we played, we got up to 99 and we did a full board. We just went around and around in a couple of this way. Okay, so it was fantastic. Aside from that, gang, where should we start? Where should we start? Nicholas, Chicho, haircut, bro. You're looking about, thanks. I gave myself a haircut a few days ago, or last week I think, last week. A-10, we're going with A-10, that's it. And what we're gonna do is basically movements that are placed first, we're gonna go with those, right? So we'll speed up the game. And if there's any specific instructions, patterns that you want me to do, we can do, as long as there's agreement, right? So right now we're at A-10, we're starting here. We could say go all around clockwise until you can't and then go backwards or go up or go down or whatnot, right? We've done a lot of this, going clockwise. And it seems to work out not bad. Starsky, how are you doing? Did not do it yet though. I've wanted to make a neural network for this game for a while, that's cool, you should try. There's some people that have written certain programs to run iterations of this stuff. The results were interesting. And there's different rules you can put in. People have put in to say, okay, you always move to the square that has the least number of options, right? And the one, if they're equal number, then you move right or you move down or you move this way or whatnot, right? So for example, if you go to this one, this one has, if we put number two here, right? Right? This one would have one, two, three, four, five options, right? If we go here, we have one, two, three, four options. And if we go here, because there's only three choices, we have one, two, three, four options, right? So they're the same. So you could always say go to the right one or go to the lower one, to the left one or whatnot, right? So there's different algorithms we can use, which is pretty cool, which is very cool. So the question is, where do we go from number 10? Should we do round and around? Or should we go diagonals? Or should we go zigzag? And then up, I guess, because we wouldn't be able to go there. Go round, outside, anti-clockwise, done deal, Nicholas, we do. Phil, how are you doing? Welcome, welcome. So we're gonna go round, anti-clockwise. So two, three, four, right? Seven. And at the beginning stages, it's very relaxing because it's got a lot of board to play with, right? As you get less options, you gotta start strategizing. Just got it. What's this game? This game is our 10 by 10 puzzle. Here's a, oh, how come the, what do you call it? Let's see. I think you gotta go 10 by 10. Not 10 times 10, but 10 by 10. It brings up a little command with the instructions. That's what it is for chat, right? And here's the video, our original instructions to this game. The first video I put out, which is in 2015. Okay, Graham, how are you doing? Yeah, 10 BY and then 10 Nicholas, right? And the game is really easy game. Two movement types, vertically, horizontally, three scores away from the previous number, diagonally, two scores away, right? So two, three, four, five, six, seven, eight, nine. So from here, we've got three choices. We can't go here, let's already occupy. We can't go there, let's occupy. So we can go one, we can go 13, 13, or 13, where should we go? Where should we go? Since this is a puzzle, I think I should mention that Mr. Beast will post a riddle tomorrow night on the Twitter, and the person who solves it wants one. I have no idea who Mr. Beast is. Is he like the Riddler? Batman doesn't need any more money. He's already super rich. He doesn't need any more money. Should we keep on going around? If we're gonna continue the same pattern, go around, go diagonal, and then go down again, right? 13, 14, 15, and we continue. Should we do? No, he is rich, but he is just a famous YouTuber. Is he? I don't know him. I actually don't know too many famous YouTubers. I go more underground in my YouTube consumption of information, and some of those underground people have been deep platformed, so I watch favorite of content on BitShoot. Salute gang. Salute, salute. Should we do? Let's do. Let's keep on going for the same pattern, counter-clockwise, as far as we can. 13, 14, 15, I'm all excited because last time we got 99, we're so close. And we almost, we accidentally got 100, but we didn't. Last time we got a 99, the time before we got a 99, and it would have been 100 if we started off one position before. It was actually very cool, cool outcome. So we got 15, 16, 17. Now, it would have been awesome if we go here on this thing, because usually we try to get the outside first. Hello, I'm packing right now, so I have to lurk. Spider-Man, lurk away. Oh yeah, you guys have to leave your space by the end of next month. I'm fortunate. So we continue the same pattern. So this would be 18, 19, right? 16, 17, 18, 19. And if you have a pattern you want us to do, we do, post it on the chat, right? I think it might be a red herring to start in a reasonable position for number one. I think picking a random square might be more successful, just a thought. To a certain degree, I think getting the ones, I think the strategy of getting, trying to fill in the squares that have the least options first is a pretty good strategy, right? But sometimes I think you do have to go inside somewhere where it has more options to be able to make your way around to a tight spot, right? So we've got 19 here. Now 20, we can go here and then hit this up and then come here, do the outside, or we can go up here right now and then hit these guys up, which is same diff, right? If we go here, here, here, that ends up being the same thing as here, here, here, right? So it's a choice between these two. And we could also go down there, there, right? F10, F10, okay, let's do 20.  Now before we lap this guy, let's put the numbers in because from there we can just go here, right? So 19, 20, 21, 22, 23, 24, 25. Oops, killed that one. 25, 26, 27, 28, 29, 30. Wish I had the time to create a mini max algorithm for this. It would be fun to see the results. We'll be doing this again at some point, right? So 30, let's keep on going around, right? 31, 32, 33, 34, 35, 36, 37, 38, 39, 40. And then we gotta come this way around, 41, 42, 43.  So let's start filling this in so we don't lose track of where we are, right? So 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40. 41, 42, 43. And for sure we hit these guys up, right? Looking good, looking good so far, yeah. I'm concerned about the rows where we don't have anything in. We usually don't want to leave full rows that are bare, right? But this is looking pretty good. We got in the outside nicely. 43, 44, 45, 46. 47, 48, 49, 50, 51. And for this one, we have no choice. We have to come out here, right? So 51, 52. And then let's see where we're gonna go for there. 44, 45, 46, 47, 48, 48, 48. 49, 50, 51, 52. Where do we go? Where do we go? Where do we go? Where do we go? Yeah, the board looks pretty good. Looking at it from sideways and looking at it straight on on the screen. Pause on 52 for, yeah, let's think about this. What do we got? We can come here. We can come here. We can come here or we can go there. So one thing we can do is try to figure out if there's any problem areas. I think everything has multiple ins and outs. So we're okay on that. Right to left, down, and right to left, up. Right to left, right to left, up. That doesn't, I need the numbers. Pippi, Pippi Lover. E8, I like I6, E6. Okay, we got three different ones. But E8, E6, even. E6, E6, we go here. Yeah, go in the middle. E6, E6, we got confirmation. E6, 53. We could do 54, 55, 56, 57. Knock off the bottom row. Come here, E6. I think we need to pre-identify the biggest trouble spots. We could. Which ones are the biggest trouble spots? I don't know if we have any big trouble spots. This one has multiple going in. This one has multiple going in. That one has multiple going in. This one has two going in. Or three, no, no, three. So this has multiple going in. Multiple, multiple, multiple, multiple. Most of them have multiple. I don't think we have any problem areas yet. Need bottom open to make back. Need bottom open to make back. I would go I6, I9. I6, I9. So boom, boom. And then grams B6 to B9. B6 to B9. So we got one person saying we go Oh, we can't reach I6. I6 is too far. That's four squares away. We can't go to I6. No, we already ended up here. We made our choice. Ding-Bopper down towards the right. Also left, but back up then westward. No idea which direction that is. Oh, funny. We're going with gram B6 to B9. That makes the most sense to me. That's the correct movement, right? That one's out of the place. So B6 and then B9. And then we're going up B9, sorry. B9, right? 54, 55. I'm president laughing at how far than westward and round and around. Dude, the Hokey Pokey, turn yourself around. B6 to B9. Okay, awesome. So we got those, B6 and then B9. So we got that covered, nice. I think that looks healthy, but I'm wary about E9 because we block I9 for there, B9. Well, this one we only have two. So we got to be careful with this one. Here or here, we have to go here. So what's the quickest way to take care of that guy? We could just go around and nail it and do it. E9, yeah. Check this out, we could do this. So 56, if problem areas come up, just deal with them right away to a certain degree, right? 56, 57, 58, is this doing it? 59, 60, 61, and then 62, we're out, right? So problem area dealt with. Does that sound reasonable? My screen is lagging. Your screen is lagging. Oh no, no. I think E9 is a mistake. You think E9 is a mistake? Let's see, what does that have? No, it's still good, but it takes care of this. So that's good. Should we do? I can just see us at 99 at the end with no moves left and Graham going, I told you, E9 is a mistake. That's the one. Cryptomic. Let's do this, 56, 56, 57, 58, 59, 60, 61, 62. We can go anywhere we want now. Any problem areas, that's good. That's good, that's good, that's good, that's good. Seriously, if this board is looking pretty good, everything looks pretty good. I don't see any problem areas. Go for it, we will see, we will see up. We do, we do. So we're at 62, where should we go? We got this, we got this, we got that, and we got this. We could do 63, 64, 65, 66, 67, 68, and then we're at 69. I9 and I2 and C2 have the least inputs. I9, I9's got three. I2, I2's got three as well. And C9, C9, C9 has got three as well. I9, four scares me, four scares you, that's good. Yeah, these two guys, I will not be making suggestions as when I played this game, I could barely get to the ding bobbin. Nicholas, F3, F3, let's do this. F3, we're going down, let's do it. Alongside F3, we're going down, 63. So we've got two choices, we could come this way or that way. Should we do this? Boom, boom, boom, boom, boom, boom, boom, boom. Let's do it, let's go around. I3, I6 for me. We went to F3 already, grab. I got the 98 once, I think. I usually get to 91, 92 or something like that. So we already came here, let's do this. Let's go around again. 64, 65, 66, 67, 68, 69, 70. And we have no choice, we've got to come out here, right? 71, let's do this, 71. Any problem areas, do you guys see any problem areas? You can go from I3, that works too, that works too. Okay, cool, let's do it. So 64, 65, 66, 67, 68, 69, 70, 71. Okay, any problem areas, this one has two. So we've got to be careful with that. That one still has three. Three, three, 71. Oh wow, this one we have no choice, we have to go here. 72, good thing we went there. We must go to number seven. B2 looks bad, B2, B2's already done, Nicholas. You mean B, C2? That one we have no choice, we've got to go there.  This is it, this is 72, no choice. So we could do this, 73, 74, 75, 76, 77, 78, 79, 90. We could do that, B2, Nicholas says, I2, I2. No, we can nail I2 right now. We can go get it, A10 through to A1, all look bad.  Do that, okay, let's do it. Let's do a C8, where would you go for a C8, C8, C8? C8, you can come here. So let's do this, take a look at this thing. C8, yeah, you would come here. Oh, very good point, we can't do that. So if we go around, we're dead, right? Because we filled that up, so we can't do that. So what we could do is go backwards, right? We could come here and then go that way. And then we end up here and we got an out. Let's do that, very good job. Cryptomic, excellent. Yeah, very good, that's good. So we do this, but instead of going clockwise, we go, instead of going counterclockwise, we go clockwise. So 72, 73, 74, 75, 76, 76, 76. 77, 78, 79, 90, 79, 80, 81, right? Does that look good? Good move, always leave the door open. Yeah, excellent job, that was really good. I didn't see that at all. 73, 74, 75, 76, 77, 78, 79, 79, 79, 79. 80, 81. We gotta take our time. What do we got? Any problem areas? This one has two. Many of these things are only gonna have two now. That's a problem. That would have to be 100. D8 has to be 100. Is single-handedly keeping the posted notes in the stream, good financial standing. We must go to H4 or G6. Let's be careful, let's be careful, yeah. This one has to be 100. Check this out, because this guy, let's bring out the pink. This guy only has this coming into it, right? So if that needs to be 100, that needs to be 99. That needs to be 99. So this needs to be 100, this needs to be 99. And this has two options, right? H4, hello crafter, how are you doing? H4 is the only real choice, I think. H4, so we got two for H4. Looks iffy as well, D7, D7, D7. This one has one, two, three. This one has three choices still, Cheryl, so that's not bad. Sorry, guys, had to dump out. And again, internet being paid.  If we pick H4 for 82, that knocks it out for 98. H2, oh sorry, H4 for 82. H4, yeah, that knocks it out, that's right. So 98 could be this. Here, should we use blue? So if that's 99, this can be 98, or this can be 98. So these guys could be 98. If that's the case, we can take one of them out and then that makes one of those guys a pink. So I'd rather not take them out personally. Corona has been getting on my nerves. I think the world's nerves. As a problem later, so no worries, sure. As a problem later, yeah. But I've watched the magnificent seven today. Nice, blue. Have you gotten to 100 yet? No, by accident we did. But it wasn't really because one missing spot, everything had to be shifted over one position. We've gotten to 99 about three times. Other people have before though. G6, then for 82, G6, should we do? If we go here, 82, what are our choices? 83, 84, 85, 86, 87, 88. So that gives us a lot more to go if you want to keep your options, yeah. There's nothing wrong with taking them out, but let's see where this takes us. 81, 82, we could do 83. How many ins we got here? Okay, we've got to take this one out. So if that's 82, this has got to go because there's only one out from this. So 82, 83, right? 82, 83, and then this has to be 84. No choice in that, right? 84, is that correct? 100 is there, elder God, is it? I'll have a drink assuming that 100 is there, salut. 84, 85, 86. Oh, we've got to take this down. This only has one out. So 84, yeah, we have to take that. So that has to be 85. That means this has got to be 86. Is that correct? Two death squares? 85, 86. We got boom, boom. 87, 88, 89, 90, 91. Is that work? 86, 87. What have we got? C4, yeah. We need to take care of this guy. How do we take care of that guy? If we get to 100, something special has to happen. Black hole forms and the world disappears. Try to think of a good way to celebrate would be I am mapping your moves on my phone as I can't see you. Did I miss something? I don't know. Unless I am being real slow, which is a huge possibility I can't get beyond 94. Oh no, Nicholas, C4 has one input, but no out C4. It's got doing, doing. So if we hit any of these, we've got to come here. So we're at 86, how do we get to that? How do we get there? Look at this, we could go here, here, here, here, here and then we're stuck because that's been occupied. So how do we get there? Might have to backtrack. D6, F6, yeah, but then we're dead and then we're dead, damn. Never mind, C4 has two inputs, has two inputs. We're one in, one out, yeah. I'm so confused at this point. We have the movements, right now we're at 86, right? This has to be 100, that only has one in, that's 99. So if we're gonna get rid of these guys, let's remove these guys, see what we can do with this. So 86, let's do backwards. Should we do backwards? Maybe F5 first, but I don't think that's any better. 86, 87, 88, 89, 90, 91, that's the problem. Oh, why are we doing that? Why not do it this way? Why do we have to go that way? 86, 87, 88, 89, 90, oh and then we're stuck and then 91 and then that's it. Oh my God, that gives us stuck, right? Should we go back, backtrack?  Let's take it back. Virtual rotating case, right? Let's take it back, 86, 85. So what if we go this way? Where was 83, 83, 82, this had to be 83 and that had to be 84, so what if we go this way? 85, let's take this guy down too. 85, 86, 87, 88, that's not good. So this has got to be 86, right? 84, to 84, to 84, yeah. So 85, 86, 87, let's see where this takes us. 88, 89, 90, 91, oh my God. Man, we don't go far. 92, 93, 94, 95. We can get to 95. 91 has another option, should we take it to 95? 91, let's see where we are. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95. 99, 90, 91, 92, 93, 94, 95. We get to 95. D4, D7, D4, yeah, D7, F5, yeah. H, oh, we go the other way. Oh, okay, let's check this out. Here, so take back 91, 90, H5, oh yeah, that's good. 90, 91, 92, but then that ends up at 93, so that's no good. I think we get back track again. What is this? It's a game. It's not any better, no, it's not any better. It's actually worse, so 80, not it. 90, 91, that doesn't work. 90, 91, 92. Those two connect, connects to this. So this, this, this, this connect, that's a four way. How about we take this guy down, forget about the hundred. We'll go back to 87. So where's our 88? There's our 88. There's our 87, right? So if we've got 87, we go 88, 89, oops, come back here. 64, I think this was 64, right? Yeah, 64, that's 63 and that's 65. 90 is now locked, 10 by 10 hard mode. Yeah, the rules are easy. Like for example, we're at, where are we right now? 87, vertically and horizontally, you gotta be three squares away from where you were. Diagonally, two squares, you can't occupy the same square. And this is basically us saying there's only one in for that, right? So we're at 87, 98 is now locked. But what are the rules? Without an input for 97 or nevermind, 97 goes 87. So we could do this. 87, 88, 89, 90, 91, 98, 98, 98, 98, 98, 98, 98. Two, again it's the same deal, 93, 94. And we can get to 95. Can we do better than that? 90, 91, 92, doesn't really make a difference. 92, 93, 94, 95. Are any of these connected? These three are connected if we could hit either, well that one we can't hit. How do we hit that one? What goes into that one? 81 goes into that one. 79 goes into that one. Oh, take a look at these things. These four are connected so if we can hit those, let's check it out. F6, H4, H7, F6. So we go the other way. That and 95 might be the best. There's this one. I wonder how many possible complete configuration exist for this? I don't know. Dangjos probably involves some hard statistics. I don't want to try, I don't want to try them either. There are some people I think that have written some programs. I think the modification to make it to 100 somewhere in the 80s, 80s maybe. Let's take it back to this game because these four connect. Doom, doom, doom, doom. So how do we get to those to knock them off? If we can get into that one, we got all four done. What goes into there? 89 goes into there. So 89, 90, 91, 92, but then, should we try that? I think I'm done. Let's kick this back a notch. 95, 94, 93, 92, 91, 90. So if we do that, and then we're gonna go 90, 91. Oh, that was a problem. From 92, we've got no choice to go here and that's a dead end. So if we kick it back to 87, let's kick it back to 87. We did this before, right? Our war horn is a lot between like seven square inches. So close to hitting 88 miles per hour. I see you guys just went around the perimeter of the square at the beginning. Yeah, is that most optimal? Optimal, we found that we break this grid up into quadrants, five by five quadrants. So we've tried that before and that's gotten pretty good results. So we try to take care of one quadrant first before we move on to another quadrant. I think Graham would agree. We need to go back to E9. Clearly it was a mistake. Clearly E9 is where it all went down the rail. Round the start, I found the solution once ago but never found another. Yeah, I've never been able to do 100 by myself, so though. So if that's the case, if we do this, 87, 88, 89, 90, 91, 92, we're stuck. 87. Oh, we could do it this way. 87, 88, 89. No, but then it'll get stuck again. What goes into here? 87, and that's it, dad. Thank you very much for the follow-ups and the subs getting right away. Okay, let's do this. Let's take this back. How do we do that? It ends again. How do we get to A95 again? I can see up to 95, but then it gets stuck. That's the furthest I've found out. Yeah, that's as far as we got. We're trying to do better, but it's not working out. We probably have to go back to 81. Should we try 81? Let's try 81. It's a back to the future, brothers. Let's divide C4 into two squares. Don't take any more back. End up where we can, and then start again. So, yeah, someone's saying we should go back to 81. Should we try going back to 81? Cryptomic? Let's go back to 81. Let's see where 81 takes us. Should we do it? 81? See where we end up? Go for it. Go for it, let's do it. Let's do this in proper order. 87, 86, 85, 84, 83, 83, 82. So we're 81. Where to now? 80. So we could do this, because this only has two ends. Chichou, I finally have an idea for 100 celebrations. Auction off the post-it with 100 on it for charity. 82, H4. H4? Okay, H4. Let's do 82. So from there, this only, remember, this one only has one end, and it's these guys, right? So let's put these guys back in, yeah. So that's 100, this is 99, right? So that's 82. So that's the reason we didn't take that one down before we had the balloons on there, right? So we didn't go in there because it was a 98 and 98, remember? So let's take that one down. If that's the case, let's take this guy. Oh no, hold on. This has any other, oh yeah, this has this end. So let's take this one, 83. If that's the case, this has to be, down here, has to be 84, and let's use a pink one, because this guy has to be 98. 98. So this has to be 98, no choice. So 83, 84, where do we go now? If we take that, we can go that way, or if we take this, if we take this, then that's the only place we can go, and we don't wanna go there. So we're gonna take this, right? 84, 85, 86, these seven would have to be 97. These seven would have to be 97, I think so, right? Except with these guys, right? Both of these guys could be 97. So where are we right now? We're at 86, where's 86? 86 is down there. So 97, we got two options for 97, and we shouldn't be afraid to take them down, right? 20 next to 100. So 97, so either this is 97, or this has to be 97. So we're at 86 right now. So 87 or 87. If we do 87, 88, 88, 89, 90, 91, 92, 93, 94, where does that take us? 89, 90, 91, 92, 93, 94, where does that take us? G6 to D6, G6. So 87, 88, and we have no choice. This has to be 89, but that doesn't help us out, does it? 89, 90, 91, 92, we're stuck. 90, 91, 92, and we're stuck. So that's no good. C4 would be the end and dead end here. 90 to F7. Yeah, if we do this, it's not gonna, wow, we could do this. 90, and then we forget about this one, this one's a dead end. So 90, 91, 92, 93, this becomes 94, this becomes 95, 96, 97, we can get to 97. 96, and 97. We went back a fair bit, but we went forward to 97, which is not bad. 96, 97, 97, and these three don't connect. So we couldn't really improve it that much more. Right, that work? That's not bad, 97. The best we did before going back to 81 was 95, we ended up here somewhere, here I think. So 97 is a serious step up. 97 is pretty good. 95 was not bad either, but 97 is way better. I think it's exponential, the difficulty of, I swear at some point we'll have an app for this and we'll record anonymously what the frequency of each number is, how high, and I would be very curious on a random sampling of a lot of people playing what the difficulty level was going, the difference between 95, 96, 97, 98, 99, and 100. Is it logarithmic? Is it exponential? What's the factor? Right, not bad, 97. I'm okay with that. Anybody see anything better? You should analyze Mind Sweeper game one of these days. It's my favorite PC game. I used to play a lot of Mind Sweeper back in the day when we first started. Mind Sweeper was one of the main games you could play. Two of us said H4 for 82, but a mod overruled us. Democracy was abolished today. Democracy was abolished. The answer is there, it is, we know that. Maybe we forgot all the way to one and then we do it again. But 87 is not bad. 87, we're happy with. Maternity rule us. Fun, let's do another one, let's do another one. I'm gonna take these down again. Let's do it, let's do it. Where's my pen? Let's do, let's do, let's do, let's do, let's do. Dangerous, thank you for popping in and playing our game. I hope you had a good time. Maybe that was after whatever. He's talking about, not that it makes much difference, but could we start at 100 and work down? We could, but counting up 100, I don't know, up to you guys. It throws our whole game off. We've played so many years from one to 100, going from 100 to one. Just got to 99 by mistake. Ha, ha, nice. Nope, nope, to 16. That's fun, damn it, Nicholas. We have a box, think inside it, cry atomic. Do you guys want to start from 100 and go down to one? At least we can always say we got to 100. We got to 100. Should we do 100? Count down, up to you guys. But where should we start? We've got 40 minutes to do a game, to get to 100. Let's do it, let's do it.  Where should we start, gang? And should we start with one or 100? Where are we going? To start negative 50 to 50. We could do multi-colors. Do one to 50 in this and negative one to 50 in the pink. Negative 52, what has been a work? I don't know, it won't work. Play kamikaze, I started one. It may confuse us otherwise. Yeah, it may, it may. I'm so used to one going, where should we go? Should we do inside out? That's very difficult, I think, inside out. We get to, we can't get to zero, we get to one. 100 looks better than one. Start from the middle and go up. Okay, let's do it. I'm going in the middle, gang. Any preferences? This is the middle. You don't start phase zero. No, we started one, right? Let's do it. Let's go E6. E6, number one? The computers are crying. We're into the quantum realm, man. Zero's unnecessary. Start from outside the grid and go even further outside. A true 10 by 10 master. You can get 101 every time, grab. I was making a lemon meringue pie, but my meringue didn't work out. It was a waste. Oh, no, lemon meringue pie. They're difficult to make, I think. I'm going to start doing this. I'm going to try to do the inside as much as possible. G4 and make a box. G4 and make a box. Okay, G4 and make a box. Let's make a box. So we've got two, three, four, five. Now we've got no choice. We've got to go diagonal, but I think we should come inside again, right? Because we can't go there, so we should go here. Six, seven, or make another box. Six, seven, eight, 11, 12, 13. That's another box. I was making a hen inside a chicken, inside a turkey, inside a pig, but it didn't turn work out. That was always, the goal is now to stay within that box. We could, sure. So five, six, seven, eight, nine, 10, 11, 12, 13. So let's go inside again, right? 14, we could do 15, 16, 17, 18, 19, 19, 19, 19, 19. 20, 21, and then 22. So let's fill this in so we don't get confused, or I don't get confused. Where are we? 13, 14, 15, 16, 17, 18, 19, 20, 21. Is that legit so far? Is that good? The five and four aren't right? No, that's right. That works box life. Sorry, I've had a bit to drink.  Four is a legit. Jebus, jebus, thank you. So three and four are wrong. Here is four. We're going to take all this back. 21, 22, 20, 19, 18, 17, 16, 15, 14, 13, 11, 10, 19, 10. 10, 8, 7, 6, a little bit of 14 here too, you have to go all the way back, there is our box, crazy, Z7 is wrong, good bye, neep, good bye, thanks for popping in, yeah, one a bit wayward with the four, yeah, incoming removal and recycle of many pulses, yes error, error, three to four, best reaction ever, someone gift that, now imagine if we started at 100, let's stay within the box, let's keep on going, six, so we're gonna try to stay within center, right, let's just zigzag around this, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, where should we go, now imagine if we started at 100, we can't even count out, we can't even count out, we can't even count out, C3 for me, C3, C3, okay, C7, C3, we got two choices, we need a second, C5, what, it doesn't work for C5, it would have to be here, okay we got two C3's, so C3 it is, 18, if we're gonna stay within center, 19, 20, 21, what do we say, 21, let's go around, 22, 23, 24, 25, let's hit this guy up, 26, 27, 28, 29, 31, 32, let's put some numbers in, yeah, that looks good, let's do it, so we're at 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, that's not bad, so we gotta go this way to optimize staying within 33, 34, 35, 36, 33, 34, 35, 36, now this, this is how you keep in the box, that's how you keep in the box, this one is problematic though, so I rather keep a couple of these guys open, just maybe 36, so we can do 37, 38, then we got one more choice, 39, 40, 41, 42, 43, 44, and then we can, no we can't, 44, 45, should we do, I6, we keep going in the pattern, we will break early, yeah, I think so we should break it, I think now is the time to break the pattern and go around the outside, okay let's go around the outside, sound good, it's a good idea to break the pattern, that's for sure, so if we do this 37, 38, 39, 40, oh we're in trouble, that one only has one in now, so we can't, we don't want to go this way, oh we're screwed, if we hit this, we hit this, oh that was not a good idea, I think we're in trouble in the bottom row, right, and even in the top one, because if we do this, that one, we come that way, we hit this, we hit that and that's it, so we can't take any of these, we can't take the rows out unless we're going all the way, whoops, go up from 37, go up from 37, it doesn't really help us out, I think what we need to do is go this way, 37, 38, 39, and then come, so I think the outside, we have to go from edge to edge, this may be a substantive result, we're going to try not to do it, I think that's the thing, if we start from one edge, we have to go all the way through, we have to commit, and that becomes now, oh no it doesn't yet, so 38, 39, that means we have to come through 40, 41, 42, 43, 44, and then we'll go across, yeah, don't break the pattern, continue building inside out, that doesn't help us out here, that's the kicker, right, the box thing might still work, we're just going to do an outside box, I6, I9, F9, H7, I6, so where are we, I6, I9, F9, that way, if that's the case, so here's a problem with this one, if we hit this one up, then this one would only have that guy in, so this one would have to be 100, right, cryptomic, if we take this guy, if we go here, and then we go up, then this guy only has this in, so this would now have to be 100, so that means that would have to be 99, this would have to be 98, this would have to be 97, this would have to be 96, 95, 94, so we're working our way back, I prefer C7 to A8, C7, you prefer this, from here, this, but then this guy, again, is the same problem, this one would have to be 100 on the next one, this one at least has, we could hit that and just go right, we dug ourselves into a corner, we have to sort of follow a certain pattern, perfect, let's go back from there, see if it works, be the most awkward method, okay, we'll try it, down this way you mean, yeah, I think so, I think that's what you mean, 40, 41, 42, 43, 44, 45, if that's the case, should we go down, but then again, the same problem, this one still has two in, this one, this guy will only have one in, so we have to continue, we have to continue the same pattern, right, because this guy only has that guy in, so we have to use it as an out, we have to follow the pattern, 46, 47, and again, we've got no choice, we've got to come down, 47, 48, and then we have a choice from there, but we don't have a choice, we've got to go here, because otherwise we can't fill that one up, that one will have to be 100, if we ever get to 100, this board should be framed and put in this Smithsonian, yeah, we need to finish the out, we need to continue, we need to go around, we have to do this, we wanted to do boxes, we're doing boxes now, we sort of forced ourselves into it, right, so 46, 47, 48, 49, 50, 51, 52, now we have a choice, we can take this, which I think we should, or come here and then go that, right, what else comes here, here, this is the only out, this one at least has this going into it, what a mess, what a mess, should we just stay on the outside, 53, 54, 55, 56, 57, and we're stuck, 53, so this would have to be 100, what a mess, okay, we'll go around, keep on going around I guess, Chicho, hi, it's been a super hectic day, so thank you for the stream, my pleasure Jack, my pleasure, we're having a pretty hectic time of this right now, I don't know, like the recent, my optimum boxes, yeah, I don't think this is working out through well, I think we've done this before, we've tried this a few times, starting from the middle, working out, and we get stuck, we get killed, right, I too would like to retract, let's keep on going, we got no choice now, 53, 54, 55, I mean at least we can nail this guy, 56, and then come out, because there's no, oh we can get to that from that, what am I saying, so 55, 56, 57, 58, 59, oh let's do this, let's do this, let's break the pattern right now, from now on I'm all about circles, I would have gone to 100 if we weren't for new meddling boxes, too heavy a center, too heavy a center, I say keep going around, this is what we can do, watch this, we could go 56, 57, 58, 59, and that's it, we're screwed, no that doesn't work, I got too excited, so keep on going around, let's keep on going around, let's keep on going around, maybe this is going to be our out, we're coming that way, right, so 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, and then we've got no choice but here, let's fill these in, let's see what we're at, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, and then we got no choice but to hit that, right, how's that look, once you start the box you never leave the box, it's like the movie The Cube, have you guys ever seen the movie The Cube, the original one, so good, I was born a box, raised by the box, I didn't see a circle, I was already done, where are we at, so 69, 70, 71, 72, more, more, 72, 72, 73, 74, 75, 76, 77, 78, 79, 80, oh check this, I wish we had an opening here, oh no, this one, oh we go this way, and this one doesn't have an out, oh let's go the other way gang, let's go the other way, I feel like the movie cube would have been much easier to escape from, I think from here we have to go this way, because this one has an out that way, so from here, because it's going to bring us to the same location I think, so let's take these guys down, so let's do this, 69, 70, 71, 72, 73, because if we go around the other way, we end up here, we have no way of getting out, but if we go this way, this one has an out, so 73, 74, so we just changed our pattern, to be honest it's looking a lot better than I ever expect, yeah it really is actually, it's like the cube right at the end, you're about to escape and then they kill you, 74, 75, 76, 77, 78, 78, 79, 80, 81, 82, 83, 84, 85, so 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, so we go around again, yeah, but bottom right is going to be pretty impossible, yeah, pretty much, check this out, these are connected, this, this, this, this and that's a dead end, right, that's a dead end, that's it, that's a dead end, this is connected to these guys, so we can go boom boom, that's a dead end, 85, 86, 87, let's see what we can do man, let's see how far we can get, we already got further than I thought we'd get, it's been a bored cube and 100 has been assimilated, not yet, hi Chi-cho, how are you doing, what kind of math does the legal device use to detect collision of two black walls in space times, well they can detect gravitational waves, right, so two black walls hitting, we detected a gravitational wave, we dropped to 16, where's 16, 16, 15, 14, 16, where's 17, 17 down here, there's 17, so that's 16, let's do this, 86, 86, 87, 88, we didn't even get that far, can we do anything else, 85, like we have no choice, like there is no way, no other way we could go, it's not an open world, we're on a path, unless there is any place where we can turn around, 86, 87, man I wish we could get on this lane, 88, and 89, that's it, 89, oh we didn't even break 90, we went too far at the beginning, a sticky has fallen from under 20, 27, it would be side 27, beside 27, was it under 27, wait a second, under 27, where's 16, no it would have to be here, 16 and then 17, so 15, there's 15, yeah 15, 16, 17, we went too far at the beginning, we need to break the pattern much sooner, yeah we need to break pattern much sooner, we stuck with it too long, Nicholas peace gang, I got to sleep early rise, thanks for this, thanks for, my pleasure chichou, my pleasure, much pleasure Nicholas, thanks for popping in sweet dreams by the way, so we got the 88, 89, that's pathetic, 97, much better than 89, look at this, if we got into this lane, 1, 2, 3, that's it, 1, 2, 3, 4, that's it, 1, 2, 3, that's it, they're all disconnected, we didn't do well, we didn't do well, just another tactic to avoid just another tactic, and it's okay to fail right, now you know what not to do, or started off that way and break it earlier, that wasn't good, 97, much better, much better, much better, we tried, for the truth it's actually better than I thought it was going to be, for a second there it was just like, looked like the whole section was going to be out of whack, never again chichou, I swear two boxes are dead to me, next step, triangle formation, maybe cellular automaton from Wolfram Alpha, we'll try that out, let it build its own life, once you got onto a rhythm though it wasn't bad, you're like oh yeah look at all the numbers and you get stuck, pooper scooper, I'm counting to 1am, I'm moody, music, music we do in two days, politics, current events tomorrow, next tetrahedrons formations, okay gang let's call this stream, we tried, we tried on this one, oh well, oh well, salut, delicious, delicious, triangle formation, gang thanks for being here, fun stream, I love these 10x10 puzzles by the way, aside from that my little ending intro stuff, and by the way if you want to know what this game is all about, here's the video we put out, the intro videos are a math playlist, imagine someone trying to get to 100 the whole life, the student that showed it to me by the way, he'd been playing it for a few years and he had never got to 100 and we were working together at the beginning of the year, we started school years, this is like 20 years ago, and then halfway through the year, he came up to me, he goes, oh my god, I found a solution and he showed it to me, right, he was so excited, he was so excited, he was like, look at this solution, I got so excited, I'm forgetting about teacher, it was funny though, he had tried for I think three years, four years since he learned the game to play it and he totally missed, he had never done it and he did it while we were doing math together, that's what really got me excited to try it out, never getting there and failing into a deeper, you know what, if you appreciate the game, it's the challenge of it, it's not the completing always, it's the challenge of it, that's the fun part, right, it's the challenge, gang, if you want to know who I am, I'm on Patreon, patreon.com.backslash.cho, C-H-Y-C-H-O, mods, thank you for taking care of business by the way, I don't think there was any business, it was very chill, no trolls, right, if you want to support this work, Patreon is a great way to support this project, if you want to play this game, check out the playlist, check out the video, we do have, and there's a post in that video and I'll provide the link in the description of this video as well, once we've uploaded it to an article that I have online, where it has all the games that we played sort of listed, and the rules of the game, and a couple of solutions to the game, and there's two programs out there that you can play for free, just apps that you can, one of them is just a flash game or something, where you can play it without using paper or stickies and a wall, right, peace chichou, some people need to add to the dream channels, add to the dream channels, fun, yeah, there's a lot of people from Europe, sleep time coming up, we are live streaming on twitch, twitch.tv, backslash chichou live, c-h-y-c-h-o-l-i-v, if you want to participate in these live streams, play this game live while we're doing it, try your luck, let's get to 100, twitch is where you want to be at, okay, I do announce these live streams 30 minutes before we go live on twitter, gabbs, mines, vk, and elo, and parlor, okay, sort of a dream channel and discord, I'm the only pollster so far, if you want to follow this work, some of the other stuff that we're sharing, those platforms, part of our decentralization plan, okay, a lot of the audio that we're having open discussions for, maybe politics, economics, personal finance, movies, music, we will be recording the lapel mic and uploading to SoundCloud in audio format, this was fun, thanks, my pleasure Cheryl, thanks for popping in and congrats on your first 10 by 10 game, we got the 97, that's not bad, 89, not so good, not so good, that's like negative numbers, negative points, and we will be uploading this video to youtube, bitchute, and maybe other platforms in the future, all right, aside from that gang mods, again, thank you for taking care of business, those who follow subscribe, thank you for subscribing, thank you for following, and if you're watching this video on bitchuter youtube, thanks for watching, I hope you enjoyed the game, and I'll see you guys in the next video, and I'll see you guys in a live stream, we've got four more coming up in the next four days, okay, we talk current events tomorrow, music on Friday, we do something on Saturday, I forget what it is, education on Saturday, and we do a comic book reading on Sunday, bye everyone.