 The following presentation is written on TV LA. But enough about me. It went like this. Which take music and sounds created by others. And create new sounds. Beautiful sounds. Though their speech might be different, it works. Isn't that illegal? Hey, I'm an independent artist. Isn't sampling wrong? Casting off the chains of the world. But the bottom line for any business is money. Not in a brave new world, which includes creative commons licenses. I just never thought of it that way. Artists were trampled, have mimimimimimim mixed, rewet and transformed and create new sounds. It's like so hard. That sounds fair to me. The first song. Yes, I welcome you to our work week. The last one this year. We're expecting interesting news about the commercialization of C-Books. A status report. We're expecting a lecture on Javascript. A lecture on Lattechbima. I'm going to report on my business trip. And last but not least, some machines have been prepared to work with Xen and this old American operating system. Thank you very much for the opportunity to talk about this. Maybe we can solve some problems. My team is Xen, not all of us, but a specific team. For example, Xen can work with Xen in depth and together with C-Books. And specifically, we can work effectively with C-Books. That's what I'm going to talk about today, what I would like to talk about. I'm going to talk about this later. I'm not going to talk about Xen technology. The topic of this week is work week. The goal is to produce some results in the end. In the end, Christian and I are going to try some things and go through them. I'm going to talk about some of the things that we have found. I'm going to talk about some of the things that I'm going to talk about and maybe talk about what we're going to do next. So, what am I going to talk about today? I'm going to talk about some goals of Xen and C-Books. Then, how you can use the context of small content to Xen, some things I would say, to the present situation, what image deployments are. If you want to talk about that, I would like to say a short word, an idea, how you can use the two concepts, the image deployments and Xen. And then, I would like to talk about some of the things that we have found and how you can use them to present your ideas. So, why Xen and C-Books? Why Xen and C-Books? Why Xen and C-Books? Why Xen and C-Books? Why Xen and C-Books? Why Xen and C-Books? The goal is to produce something that doesn't mean that you don't want to spend a lot of time in your image, but you want to have a reference machine and then present all the relevant ideas and then use the same machines that are distributed in this direction. So, we have found that Xen and C-Books don't mean that you don't want to spend a lot of money in your image, but that you don't want to spend a lot of time in your image. You have 400 customers and then maybe 100 PCs and if you use all of them, that's quite different. You have to change and you have to make sure that you don't spend a lot of time in your image and that you don't spend a lot of time in your image. So, I'm asking Christian what he should do with this concept. That means maybe it's more plastic and you have to start with a PC and what happens? You start with a computer system and learn how to do it and what you can do with it. The goal is in my opinion that someone will implement a new image in the image that means you have to create a new image in a few days and you have to present this image in a new way. It's important that it happens quite quickly. It's a commercial solution that you have to work on until you're there and you can work on it. You have to work on it. That's the concept. It's important that you get new installations every time but you have to think about the installation and the party or the central control that is distributed and started. My main goal is that there are different user scenarios and I think every user scenario is one user scenario that you have flexibility and a central goal and the advantage is that the image is very strong. You have to change the map and a computer starts and then the new installation can be used. You have to think about how you can implement it. There is a possibility to work on the graphics. You have the real hardware and a new hardware that stays constant. So if you have a graphics card or something important you can create a image. That means the installation and the user are in order. And the last point is the situation and you have to think about how we can implement it. In short, the 4 minutes of the speech is the time to be updated or to make it new until it is in the desktop. It is more on the user side. The user wants to know how much time is wasted until he wants to work. He can work for many minutes and the time has to be different. You can implement it on the user side. That means you don't have to work on the server on the user side. You don't have to think about another solution. I don't mean which solution, but how the 4 minutes are spent. So it is the best solution. If you have to work on the server, you don't have to wait for a long time until you can work on the server. It is faster. Yes, it is always better but sometimes it is called the other solution. If you want to ask why Xen Xen has two features, a hybridization and a hybridization. I mean two waves. One is a group that was mentioned yesterday and developed in England. Let's say Xen is a product with a lot of numbers and the hybridization is possible. It can be within a IPC within a system. There are different possibilities or you can install this product in a special way. It is a very successful product. It is also a resource and there are some developments in the industry and it is not yet clear how long it will take and what is not particularly interesting is the hybridization and the hardware support of this hybridization. There are certain possibilities of this hybridization that I believe to implement. The hybridization is between full hybridization and the hybridization of the hybridization. The interesting thing is that you can implement the hybridization but there are certain devices in which the hybridization can be extremely successful. So so far it was usually like this. You have installed something and you have installed a virtual hard drive. But it sometimes works quite fluently. You can use this hardware hybridization for example with different devices the hard drive which as a result does not even make sense for the user. Is this important? The further important is that the hardware supports the hybridization of the hybridization of the hybridization of the hybridization of the hardware and therefore it is possible to implement the hybridization system and to make the user more license-free. How can you imagine the hybridization? There is a 36804 hardware and you can imagine the hardware in a way that is more advanced. It is like this. The hardware is now running. Before the hybridization of the hybridization of the hybridization of the hybridization of the hybridization of the hybridization of the hybridization of the hybridization of the hardware which means which data is used for the operation of the hardware and which area is measured. The fixed data with the 1371 was not applied. That will help to support the similar devices. Well, the gas systems, as well as the BIABs, could be used as a gas system or any other system, can be used in various virtualization environments, or, let's say, you have several servers, and you want to create a security system and install it on other machines, such as XAML and Kaniya, which are already on the way to work, then secure the gas systems and set the time when you want to create a security system. And what is not very important for me is that I can do all of this very easily. And one problem is, and that's what it looks like, that the stability for all is not really guaranteed. So there is a lot of news from users and groups that claim, or even manufacturers claim, that I can agree that they will not be able to implement it. That means that we will be able to go through some of the things that we want to do, and we will be able to make it clear here. So, about the current situation. So I would like to point out that, what I have been working on in terms of productivity, is that there is a lot of pressure. And what can you imagine? On the one hand, it is the case that the computers are being installed, after about a few minutes, the situation that the user has been working on has been positively prepared. That means that they have been working on it for a long time, then the users want to see that something is also being planned, that there will always be a review and then a new situation takes place. And what was also a problem with a review and a touch refresh of the installation, which is now in the X-Quart mode, is very, very fast. And that is what I would like to talk about. The solution that was developed in the year 2000 and was developed in 2005. So, I would like to briefly explain how I can imagine it. On one side, the server, on the other side, the client, the client is first made in a right way, then comes a question, yes, I don't have any application, no way to be prepared, then the application is prepared, then the next step is to come to the application, what should be done with it, then the individual service is installed, that certain tasks are carried out and the user first looks at the server. Aha, there is a new installation, there is a new image. If it is not the case, then look at a hidden partition, whether it is in order, if it is in order, then the actual work installation is passed and then a complete new installation with the system is started, except that it was bought for about 40 seconds. And in the last step, of course, what you want to do is, you get an application mask and the user can always contact a domain controller and record their work. So, new concept. I have already thought about the new operating system, but in the installation process, I wanted a two-step process, the solution that is now running on us, so that you can do it better. The problem is that the 45-minute-second-long-step process, that is, the concept can not be put together, you have to think about it and think about it. That means that the new one is called Stichwort Xen. It doesn't work in 45 seconds, what is it now? I have understood that in the process it can also be in the small one. It doesn't work in the small one at all. Then this image has to be in the small one. At some point it will come back. And it will still be a new one. So, every time the new one is running on us, and when the new one is running, then it will also be pushed to the small one, in a certain partition, then the partition will be completely hidden on the installation, the start partition, the initial partition and the start partition. And there is also a test case, where the cast partition is still in order, if not, where it works, and you can put it in the image and it will come back. And that happens very, very quickly. And that doesn't work now. When the installation comes, what will you do? When I put it in the installation, over two gigabytes, I can't use it for about a minute. Because the installation is available, because the installation had to be in the small one for about a minute. And you could do that, but then I would probably be in the area of 4, 5, 6 minutes. So now that's why the goal is to reach the next installation. To reach everything, the idea is, that within a small one, a small one is provided in an extension installation, and that is installed in the operating system, that you want to use. And basically, what I already showed you, within the XAMP engine, the scenario will be used on the user side, because users are making fun of it. The XAMP starts first, the next step starts XAMP. Then there is a test mechanism, the test is renewed. There is also a service, if not, start from a hidden partition, the already established program installation and then prepare it on the user side. So the idea is very simple, that is to transfer the XAMP to every morning and evening. And there are interesting reports about this, because the use of logic volumes XAMP can be very, very fast. That means that within a small one, there are various installations and the use of logic volumes are available and can be used as a website to support the user. That means that it is possible, that the XAMP can be very fast, that the XAMP can be very fast, that the XAMP can be very fast, that the XAMP can be very fast, that the installation have where a large operating system is, or if there is a XAMP installation where a large operating system is, then there is not the difference. The idea is that on the small side the users do not just want to return to the right, but rather the XAMP. So the people go to the right and want to share logic or applications with them. That means that the time is given for the installation, and for the second or third time the user will return to the right. For the first time, on the small side, the user will return to the right. That means that the user pages will return to the right again. And then the installation will start in the gas delivery system and the delivery system will order what they need for their work. They will also be done here at the end of the delivery system. And now the time comes. That means that it takes a long time until the new delivery system is re-installed and the XAMP offers it to be very fast. With a snapshot or something like that. Yes. Yes, it also has to be re-installed or if you want to say the company is very far away from where you are. Yes, but it goes pretty fast. That means that you get the copy on the wall. Over the snapshot. Yes. That's just one advantage. It's always important that you set the speed but another important advantage is that you have a hardware application. That means that the XAMP is always identical and no matter which PC has the same speed you could keep the image uniform. That means that the hardware only supports the hardware that supports the hardware. And otherwise you could vary it. And nowadays when you want to use a large pool it's not a concept that is only possible when the hardware is uniform. That means that if you exchange all the hardware for the hardware that would be a problem. That would be the two central aspects. Yes, we were just talking about other possibilities such as a small hidden partition or something like that but that you have a reserve partition where you get it from the reserve application where you have a reserve XAMP that is fresh and started with it and that it is virtualized at the moment where this machine runs and the user can use it because in the background there is another snapshot that is overloaded and then it's out of the blue That's why we wanted to do it. Yes, that was the final empirical question that we had to answer in time. Yes, that's the question that I've been asked. The camera will be stable and will run the XAMP and will work in the cloud images of the domain controller. I've come into a lot of things but I'll explain some other things to you. I couldn't understand the problem because of the XAMP and because I thought that I made a mistake and I'll try it again. The points that we have today and tomorrow are what has worked so far is to install XAMP and to install the XAMP and to install the XAMP and to clarify that we want to do there are news related to the operating systems such as Fedoma and GENTOS that are also included there are news about where the XAMP has where we also get to clarify how reliable the XAMP is and I'd like to do that as a weekly model. That's all for the concept of XAMP and XAMP and what we'll do this week. Thank you. Thank you again for your question. As I said the hardware can be used to save money but don't you have a different hardware? The problem? No, it can't be. No, it can't be. No, it can't be. There are a lot of different data. Yes, yes. For my point of view is that the graphics card is not the problem but for me it's a real hard drive. It's a hard drive to save money and it's a hard drive to save money. That's very important. Also a graphics card is enough for office applications or you can see it. It's not critical but it's not hard. And where I want to go? You can't save money but you can transfer it because if you have a graphics card you can use it to save money and I'm still wondering whether it's generally difficult for everyone to save money. Exactly, and that's why I would like to say that it would be difficult to let it be transferred. I think that comes in between with the conventional version or something like that. But it's also difficult to transfer it so it's not enough. And that's enough for office applications. Sound card? I think it's similar to my graphics card. You can have a look at what you need. For office applications you need a lot of dynamics. So it's important that you have a lot of problems. That's why I think I can't virtualize. These virtualization technology sets from Intel and ALG are also virtualization of the processors and memory controller so that the storage area is separated without having to translate every address which costs a lot of time and that these legacy things like pressure connection, sound chip and so on which is hidden in the source grid because it's not yet in hardware technology. That's why it's emulated in the DOM0 Linux as a guest and with that the three-man on the run or on the other guest and the other instances of Xen were special three-man but they don't see the original sound chip or the original graphics but only an emulated a contact point. That's pretty fixed. That's what I think about Xen. I think I think Xen with potential is a good example of Xen because it was the case when Xen was on the run or on the run is the Xen computer to work 100% you can do it and Xen will work less on the run than on the on the run and that's of course a big potential and on the other hand of course the hardware and the beauty is that Xen has the ability to work. You can work with Xen or me and of course you can work with Xen but you can't work with Xen for example with an emulator or you can't work with Xen you can't work with Xen with Xen and that's the difference of the processor which is switched on and also the memory management between the host and the main system is that a graphics card or a sound card these virtualization techniques don't exist yet and they are or virtual machines can be arranged and then the rest of the other things have to be touched on by this special driver, so where the data is then reached, to the machines that have the control over it. As far as I know, I don't know if it's already used, but because I read it recently that there should be the possibility that this hardware, like the graphics card or the song card, no longer necessarily has to be connected to the DOM0, but that I can also say, okay, I'm giving the graphics card to a guest and do my primary instance, so actually my control instance, this DOM0, that's the graphics from which a virtual driver can then run. Maybe there's a reason why you can sort it out. If you start using Linux with Xenium, then the first Linux installation is privileged, so it's called the DOM0 file. That means, of course, it also includes a guest system that is privileged in different ways, because the other ones are controlled over it and then you can use certain resources that the DOM0 has always integrated here. You can use them. For example, the privilege of the graphics card control is given to another instance and that the first, the specific domain, otherwise everything is certain, but then for this hardware, it's just like all the other ones, it's just enough. If that somehow works, then of course you can do something great that leaves an industry running and that directs you to the graphics card and then you can directly play Xenium, a great game, but otherwise for the whole hardware, and what else is still running and controlling that in a Linux instance? I would not say anything like that. In Linux, it should also be that this is also as a host, so that you can operate it as a DOM0 so that it then also gives these things away. The explained goal of Microsoft is that it should work together with Xenium, but is it necessary in that context? Okay. Do we have any further questions about Linux? Otherwise, I would like to say that we, of course, have made a page in which Xenium and Zyprox have been connected. That means that the software on the Zyprox features and whoever is involved in this can do it on their own, but of course, if you have other ideas or if someone else can do it, of course it would be great if they could make a corresponding limitation on their own and therefore I would like to offer in any case a very concrete approach to this. I would also like to say that on a very concrete level on the next day or so today, a little bit until 8 o'clock and in the morning, two or three hours, in order to work on this concept. Our goal will be that we try to show the community on the one side that we can make the content in which the project is available and you can also create the concept and the management of the project in which I live. For example, if you can change the concept in a concrete way, there will be more questions about the concept or the work, but I would like to give you an example of what can be done. I would like to ask a question about the concept of the project on the one side and on the other side of the project, I don't know, but on the other side there will be questions about the concept of the project on the one side and on the other side of the project. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. I would like to talk about what happened in the last few months and what this change brings with it in the future in the future. I would like to talk a little bit in terms of speed, that is, if it is too fast, maybe I will learn a name or something, because I don't know much about it. So, first I would like to briefly talk about the last version 3.2.10 which was the official release the last one and let the plan release 3.4.0 with each other and in the second part I would like to talk a little bit about 3.4.0 in the first minute. Let's start. Can you turn it on? Can you turn it on? Can you turn it on? Yes, I can. Me? Let's do it. So, what is the next version? Most of you want to know what is changing, I think the question is maybe the most important one and for the user it is the distribution of the content, for example, I can change something as a user even though I am not very good it will be changed before and of course in a world like this you can use your user in any case for the user it changes relatively little and for the admin it also changes when you can edit the content and when you can distribute the content you don't have to do everything yourself what is possible but you can also use tutorials for the admin It will be changed before the command line and in both versions you can also use a portal for the world it is programmed it will be used for the master and it will also be used as a concept and we like it before the command line and for the XMLRPC server it is not the same as what is different and for the first for the user it will be changed when the user wants to edit the content it is possible for the user to edit the content you can decide how good it is but it is a very useful aspect the speed will also change it will be faster for the admin it will also change the number of packages it will be more packages than before it will change the error ending that means for example in his version 1.0 it was not possible to let errors happen so everything was modified that was possible because the parameters under the 1.0. should come that means there was a trustix and all services that were not configured as packages and the problem that we now have which is already in version version 2.10 is that we have environment environment in which Cypux is to be found so it will be different Cypux will now be available with other words I can not say which Cypux is to be found and that means I can not control and correct all errors and that means the error ending has to be different because it has to be different because the admin knows that because nothing has to be corrected and that's why the error ending has to be new and that's decided and I'm pretty happy with the things but it also means that we will now see errors in the testing phase that we have seen before or that we have not seen before it also means that we have the same chance to detect where the errors are or if they are not or if they have to be fixed a lot of errors are probably but it is good to know that they will not be corrected so the configuration of the errors has changed I do not know how many people have developed Cypux before now there are a lot more errors and you can quite a lot of errors to confirm and in this case I would be happy and those who do not want to confirm will come with the configuration and in this case you do not have to but you can for example pretty easy for different user groups different defaults that you can use for example just defaults you could say the user system does not have five defaults and now you can use five defaults so that is in this case more configuration in this case the configuration will be changed furthermore the admin will be able to develop custom cardboards that we will talk a little more about how well it has changed probably most of the time but it has changed furthermore the way how new cards will be implemented has changed the new group is much more friendly and I think in this case it is divided from the year 2000 to 2003 and when we did it in 2007 maybe a few years later it will be the big day and the expansion through this work of the month the new group has changed also in the future from the good reviews we have now a complete style guide and that means that it has previously been a style guide but this style guide that exists is in any case important for the maintenance so it is ready yes, it is ready yes, it is ready so in this case who is there is very friendly and I think he focuses on the for example on the arrow handling and spring management and that is a big part of the organization the number of users is increasing that was a concept from the design to change the code style so there is more to it we have my object concept then I will write what it is and the number of user attributes has also increased that was my goal and because some objects are being implemented that was important to get the representation that is why the user has to see nothing so what is happening between August and November that is a concept about what has been done that means the 5-man work are not really productive and that is what I have been doing for months and I am not interested in the first game but we have more data in the new version than in the old one that means but the other two games programs and games that is what is important you can see that the number of programmers has increased from 43 to 32 that means some of these developments have been the program that you have to implement to get a better visibility that is why we have to simply to make sure that the performance stays the same and that is what we have been doing that means we have counted the tasks from 171 but now they are not in the new version so they are in the new version but we have to try to make sure that what you can see is that the numbers in the program are also less and I think there is more possibilities but the reduction is not that much you just have to see that the documentation is in the same program that means if I write hundreds of codes then I add 50 documents of course if the code is more efficient I have to document it better so that you can understand it that is the nature of the code the libraries we have the documentation of the libraries but 2,000 numbers are less that is a huge difference that means you have to see that the last 148 numbers are not exactly the same and I think that at least they have been published within 4 months it is already a huge change on the base of the code and in my opinion it is also a little better and you can also see that the number of codes in the whole project is relatively large so that is the area that will certainly grow because other libraries will be published in the SVN that does not mean that at the moment there is no license to write libraries what does the code look like in the 3.2x version there was a request from the user, for example Apache in CUT CUT has a new version 3 2 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3