So, let's go. Time is up. I guess we can start. OK. Hello, once again. Next topic is going to be GStreamer. So we have, again, Sebastian here. Last year, he was already here talking about that. So some more features, some more stuff. GeoObjects are classing. OK. Thank you very much. Round of applause. Yeah. Hello. Thank you for coming. Today, it's not actually going to be about GStreamer, but about the object subclassing in Rust for extending GTK and GStreamer or other libraries. But what exactly that means, we will see in a second. So first of all, some words about me. I'm Sebastian Dröger. You saw it in the schedule. I'm a GStreamer developer and maintainer since a few years. Also working on GNOME since quite some years. I'm also the maintainer of the GStreamer Rust bindings and working together with Geom and others on the GTK, GLIP, et cetera bindings. I'm currently working at Centicular. I'm one of the founders. And we do consulting around GStreamer and other stuff. And some of our work is also involving Rust nowadays, fortunately. But that's enough about me. So what are we going to talk about today? So today, the topic is going to be subclassing or how to do inheritance in Rust, like known from other object-oriented languages. Like, I don't know, C++, Java, Objective-C, you name it. And specifically, we look at that today from a GTK-RS point of view. But many of the ideas can also be transferred to other systems. And most importantly, the main topic today will be why is it useful? How is it implemented? And how can it actually be used? So some of you are probably then going to say, but Rust does not support this. Well, that's true. Rust does not support inheritance. And generally, not what people think about when they hear object-oriented programming. But that doesn't really matter, because Rust has a very powerful type system. And we can implement something that looks very closely to inheritance to object-oriented programming in other languages. And we can make it quite nice in Rust. It's a very powerful language, fortunately.  We don't really want to do that. But I think that's a bit short-sighted, because it's a nice tool to have in some cases. It's something that you probably don't want to use in normal Rust code. But it's a tool that you might have to use in some specific contexts. And generally, in Rust, things like the traditional object-oriented programming paradigm doesn't really fit into the language that well. There are nicer patterns and paradigms to write, well, nicer code. But as I said, it's a tool that can be useful to have. So why are we talking about this specifically? First of all, OOP is everywhere. Almost every major language out there is based on traditional OOP. There's very few languages that are not based on that. I think from the modern ones, it's mostly Go that doesn't really follow that paradigm. But apart from that, and Rust, of course, but I mentioned that before. And it would really be a shame if we couldn't use all this code that is already out there that was written over the last decades. Because it would mean we would have to really reinvent the universe. We have to write everything again from scratch. And it would slow us down quite a lot. Like developing, for example, a UI toolkit is not something you do during a weekend. It's going to take a while. So it might be useful to be able to use a UI toolkit that is written in another language. And most likely, that's going to use OOP paradigms. So why exactly? I said interoperability with other platforms. So in our case, GNOME, GTK, Gstreamer, we talked about that before. Well, also other things like the HTML DOM. So there are multiple points of view that we have to consider here. Either we only want to make use of existing libraries like what we saw before with GTK RS. There's already something out there that is making use of OOP paradigms. We want to be able to somehow make use of that from Rust. But maybe from the other side, we also want to be able to extend these libraries. We want to, I don't know, write a new GTK widget, write a new fancy button that is doing whatever kind of thing, or write some kind of view widget that is showing things in a way that GTK couldn't do by itself. Or maybe things like what Jordan mentioned in the beginning. Maybe we really want to rewrite some library completely in Rust, but somehow we need to be able to export or to provide an API from this Rust code that can be used from other languages nicely. Or in the case of R SVG, it even has to be completely compatible with the old C API and ABI. So those are all cases where you probably, even if you don't like normal OOP, you probably want to look into it nonetheless. And in this case, Rust is really ideal for interoperability with other platforms. There's no garbage collection by default. There's no big runtime. There's basically no overhead.  But that's something that makes it very interesting to be able to express all these things that are available in other languages in Rust. Because, well, in the end, ideally we would like to have everything written in Rust, but out there there is still a lot of other stuff that still is in other languages and needs to be able to somehow use all our things. So some words about the object because that's the main thing we are going to talk about today. It's a C library for doing traditional OOP. Well, as you all probably know, a C doesn't have any language support for OOP, basically the same thing as Rust.  It has some kind of runtime type introspection. It basically provides you an object system that is very close to what Objective-C is doing and all that in C. And because C doesn't have support for all of this, you have to write a lot of things yourself that like in C++, the compiler would do for you. You explicitly have to handle things like a Vtable for virtual methods and stuff like that. You explicitly have to register types. So it's in C at least a lot of manual work to do. But in the end you get something like an object system that you also know from other languages. And the object, well, it's used by GNOME, GTK, GStreamer, and lots of other stuff out there. And at least personally, one thing that is very, very useful with the object is a project called object introspection. Guillaume mentioned it shortly. It's a project that allows you to get API description as an XML file that contains like what kind of classes do we have, what interfaces do we have, what's the base class of this, what methods are available, what are the parameters of these methods and stuff like that. And it allows you to automatically generate bindings for all kinds of languages like Rust, but the same thing for Python, JavaScript, C++, Go, and well, you name it. And the other nice thing with Geoptic is well, it's providing a stable OP-based API API. Something that Rust does not have. The only thing with Rust that you have is a stable ABI right now as well, the C ABI. But by exporting something like a Geoptic API ABI from a Rust library, you still can provide a more rich API to users from other languages. And thanks to the object introspection, make it really, really easy to, well, I don't know, use your Rust code from some Python application while at the same time having some Go application using the same library. And you never wrote any Python or Go code yourself. It's just automatically generated for you. So first topic is going to be how to actually use Geoptic from Rust. That's all old stuff, all stuff that you already could do in the last year and the last two years. I will show quite some type definitions, quite some code on the slides, how it actually works. And basically what we're going to do here, we are going to use types that are already existing in, like GTK, like the existing button class, for example. And how does that look in Rust and how does it actually work? So first some example code. I hope it's big enough. So at the very top, we just create a little window. Then we create a button. We set a label on the button. It's just saying to test. Then we are adding this button to a window and tell the window that it should show all the things. So generally all this code that looks like more or less normal Rust code, if you don't look too closely. Well, one thing that might look a bit weird is we have this button set label thing and we never declared the button as mutable. Okay, but that's just interior mutability. That's nothing too fancy in Rust. It's not very different to like using ref cell or using a mutex or things like that. So okay, that's maybe a little bit weird. But on the other hand, if you then take a look at the types, you will notice that here adding the button to a window where it's not actually a function that is on the window type. It's something that is provided by the base class of the window by GTK container. But nonetheless, you can directly call it on the window. Similar, the show all is something that is provided by GTK widget. So already here, it looks like normal Rust code, but in the end, we already make use of virtual methods or we make use of, in this case, inheritance by calling methods that are defined on the parent classes of the types that we have here. So how does it look under the hood? First of all, all this information, it's probably also quite useful to understand the type, well, generally the API documentation of GTK RS and other bindings because some of the types might look a bit weird and you might not be able to find the methods that you're actually looking for directly. So knowing how this works a bit under the hood is quite useful. So first of all, how do objects actually look like? So conceptually, you have something like a struct that just contains a pointer to the C object, to the C type. It's really just a little wrapper around the pointer that we got from C. On top of that, things like clone and dropper implemented, which are then providing things like reference counting. So whenever you clone the button, you don't actually get a copy of the button, but instead it's increasing the reference count. Whenever it's going out of scope, well, the reference count is decreased again. Once it reaches zero, it will go away. And basically, all these objects, they are behaving like as if they are an RC, like the Rust reference counting wrapper, containing a ref cell and then the actual things in there. So you have reference counting as said before, you have things like weak references. And for the actual state in there, you have interior mutability because this is OP after all. It's all about objects containing state that is somehow mutated. So that's what we have here. And on top of all these little structs, there's lots of infrastructure via traits that allows you to transform raw C pointers to the corresponding Rust types and back. But I'm not going too much into details there. But basically, what Glib defines is some kind of ownership system for pointers. So basically, if you have a function that is returning your pointer, it's going to, you will have in the API description that the pointer that you get returned, it's something you have to free or something that you don't own. And well, all this translation infrastructure, it's based around these ideas. So you can say, I call this C function and the pointer that comes back, I will take ownership of that or I will not take ownership of that and that's the basic idea behind of all that. Then if you look a bit closer in the documentation, you will go to the input blocks for the different types and you will notice there's almost nothing. So the only thing that you will see in the input blocks are constructors and static functions. You don't have anything in there that is taking self as a first parameter except for something called final types, types that don't and can't have any further subclasses anymore. And yeah, then if you go into the Rust documentation, click on the source link, the only thing that you will see and for example, the constructor for the bottom is just a single line. It's calling directly into the C code. There's not much wrapping around it. It's really just taking the pointer from C, wrapping it into the struct we saw before and that's it. And most of this code, like the one that I showed here, it's completely auto-generated from the API description. And right, so here we also see that that comes later. Never mind. So now you might wonder where are all the methods. So all the methods that you might want to call on actual instances and for that there are traits defined. So for example, for GTK container, what I mentioned before where we had the window and we were putting the button into the window, you will find a trait called container Xt and all the traits they are called, well the type name and then Xt and that's where all the methods of these types are then available. Well, if you see a trait that is just called Xt, it's going to be completely auto-generated. If you find a trait that is Xt manual, then it's manually written because that's still necessary for some things, but yeah, that's details. All these traits they are implemented generically over all types that are a subclass of these specific types or in our case of GTK container, there are subclasses like a GTK bin or also in the end the GTK window. And what will happen is we have a generic implementation for the container Xt for all types T that are a container and similarly here the add method. It's taking a parameter, a widget that you add to something and that's also generically implemented for everything that is a widget. So you can put a button in there, you can put, I don't know, a label in there, whatever is a widget. And then if you again look at the code that is actually generated, it's also relatively short. It's just calling the C function below it, then there's some relatively long function chains for actually getting the pointer out of it. So what happens here is basically that by calling SRF, so everything that implements the is add trade, it also requires you to have SRF for getting a pointer, for getting a reference to a widget again. So at this point here, we would have a reference to a widget and from the widget, we can then get a raw pointer that we then pass to the C function. And generally all the traits from GTK RS, all these extension traits, they are then something you can import via the prelude module. So each of these traits, they have a prelude module that you can just with a wildcard include and then you have access to all the traits. Then we saw before this is a trade, it's really just a marker trade and the thing that it's telling the type system is whatever is implementing is something, it's a subclass of something or it's implementing the something interface. And that's really the core thing that allows us to model the class hierarchies with a Rust type system. And yeah, as I mentioned shortly before, it's also implying that the type is implementing SRF P so you always are able to get a reference to a P. And yeah, you also in functions always use it in a generic way like this so that if you have a function that can accept anything that implements a specific interface or it's a subclass of something, you would use this trade. And yeah, if you look at the documentation a bit, it's also implying another trade, the object type trade and that's really the core of everything. So every object type, well, that's why it's called like that, is implementing this trade and it's basically the type system mapping between the Rust types that we saw before, the struct that contains just a pointer and the corresponding FFI types, the corresponding C types, provides you things to convert from and to a raw pointer. It gives you access to the type ID of the thing that you have there and it also gives you access to all kinds of convenience trades. So everything that is implementing the object type trade is also implementing clones so you can always clone them. It's implementing equality trade, debug trade and all those things. So whenever you have something that's an object type, you know you can use them like all the others. Then, well, it's not so spectacular to be able to call methods of your parent classes but generally if you have things like type hierarchy, you also want to be able to cast in the other direction. So in the G-Lib bindings, there's a trade called cast for that. So for upcasting, like for going from a button to its base classes to make it, I don't know, a widget for example, that's completely zero cost. It's something that also can't fail so you call it, it's basically for free but it's also something, at least if you call methods, you don't really have to do the upcasting. And on the other side of the downcasting, say you have a widget but you actually know that it is a button, you might want to cast it to a button. That's also something that is almost for free. The only thing that's happening is that during runtime, there are some checks that this pointer is actually a button and that it's safe to actually cast it to a button. And well, in the end, everything in there is done via transmute or via casting pointers because all the rust representations of these objects, they are really just a little struct around the pointer so they all have the same memory representation. So it's safe to convert between the different types as long as you ensure that the pointer that is behind it is really your target type. And the way you use it is basically like this. If you have a button, you can upcast it to a widget. As you can see, this can never fails. You don't get a result or something back. And if you want to downcast it, well, that's something that gives you a result back and it can fail if it's not actually a button in this case. So for wrapping up the first part, we have the extension traits that are for all the methods on the instances of our objects. We have the input blocks that are mostly for constructions and static functions. Almost everything is auto-generated at this point. All the usage from your point of view is completely safe rust. If you are able to somehow crash your application by using these bindings, then that's a bug. That's not a bug in your application. That's something you should tell us about. But I hope it's not possible at this point. Well, upcasting can be done implicitly. Downcasting, of course, has to be explicit like in C++, Java, other languages. And most of the things that I mentioned on the slides before, they are actually auto-generated also from a macro. So like the actual struct type is auto-generated. And it's this little macro. You just give it the different types, the FFI types, the names, what base classes it has and what interfaces it's implementing. So there's a lot of automation inside the bindings. And one thing I didn't really mention before, but basically if you write an application using GTK-RS or using the GISMA bindings, in the end, it's compiling down to assembly that looks very close to what a C compiler would output for exactly the same code. So there's really not much happening in there. It's mostly stuff that happens on the type system side and at compile time. So if you want to look at the code yourself, well, you can find it there. Basically inside the GTK repository, you will find files like SRC slash button RS that's going to be the manual code. And then there's SRC auto button dot RS, which is all the auto-generated code. G-Lib bindings, you can find them here. And most of the stuff I was talking about so far is going to be in this file here, which is all the basic infrastructure. Now let's get to the new topic. So as the other two talks before I mentioned already, currently a big problem is it's not possible or not easily possible to create subclasses of objects from Rust. And you generally need to do that when interfacing with the object-based libraries to be able to extend the existing API. I don't know to implement a new kind of widget, as mentioned before, or to implement a custom model for like a tree view for a list box or things like that. It's also something that you need for like extending GStreamer by new codecs, new filters, et cetera. You also need to be able to somehow create subclasses then. And generally you need this whenever there's whenever you want to do some Rust code that is in the end exporting some API that is object-based. And yeah, this is all new stuff. It's in Git. It's going to be in the next release, hopefully in the next few weeks. So generally it's all in the subclass module of Glib and all the other crates compared to C. Well in C it's quite some boilerplate that you have to write. You still have to write quite some boilerplate to do it in Rust. It's going to be more than like in Vala especially or in Python, but it's a little bit less than in C. Generally it's all a little bit safer than in C because most of the relationships between things are expressed in the type system. And overhead-wise, as I said before, it's compiling down more or less to the same assembly. And yeah, it's going to be lots of traits in generic functions again. And some parts on your site might also still require writing unsafe code, but most things fortunately not. So let's dive in. First we have again a very central trait which is the object subclass trait. And this would be something that you would implement to say, okay, I want to define a new G object. You would say this is the parent type, the one I'm inheriting from. You also have to give some type mappings for the corresponding FFI structs, for the corresponding structs that would be seen on the C side. It's also the thing that is providing you the registration of this type, initialization of the class and the instance, and all these things. We see that in a little bit, what that is, how that looks like. And it also provides you a weight from, like if you're implementing a button, you would implement what you would implement that on, yeah, on your implementation of the button, but you would still have the rust wrapper type on the other side, but somehow inside your implementation, you want to get to your private state. Like you know, if you implement something in, say in Java or C++, you always have some private state assigned to your classes, and somehow from the public object, you still need to get to your private state, and that's also something that is implemented in this straight here, or implemented via this straight here. So basically, the way how it looks like is like this. You say, I want to implement my object. You have to give it a name. You have to say, okay, in this case, it should be direct subclass of glib object. Then you have to give it to the FFI structs that are corresponding to the instance and to the class struct. The class struct is basically something like the V table. It contains function pointers for the virtual methods, but more about that later. And yeah, for the default cases, where you don't really have to extend anything, there are some generic ones that you can always use as long as you don't have to define new virtual methods. Then, of course, some macros that create some boilerplate, and then, as mentioned before, you have functions for initializing the class and for creating an actual instance of your new subclass. And yeah, so in the class initialization, you would then do things like saying, okay, my class, it also has this and that property of that type with that description and things like that. So in there, you would be able to configure your type, what kind of additional API it provides.  But you are able to convert it back in both directions. Yeah, so that I already mentioned before. So one thing where you currently need, still need to write unsafe code is if you want to define your own virtual methods, because there you still need to provide some kind of functions that are converting from C to Rust and back. That's something that can't be auto-generated yet, but it's usually quite mechanical and there's not much you could do wrong. Yeah, that part I will just skip for now. So that would be one of these examples of the functions that are converting a virtual method from the C side to the Rust side. And yeah, as you can see here, well, it's an unsafe external C function, so you can pass it as a pointer to C API. In this case, it would be stored in the V table. And well, it's a generic function, so that's something that I didn't know before starting with this, that you can even define generic external C functions and have function pointers to that, so that's very, very useful here. And basically what happens here is you get from the object, the instance passed in as a pointer, and from the instance, we are then able to get the actual implementation, the private part of your implementation, and on that we are then calling the constructed method, the Rust method. And as you can see, it's really very mechanical, there's not much you could do wrong, but currently we don't have a way to auto-generate this. And yeah, it's really not doing much, it's more or less just translation. And yeah, on the Rust side, there's no boxing happening anywhere, there's no additional heap allocations happening anywhere, there's no dynamic dispatch, there are no trade objects or something. It's all really combined on to exactly the code that you would have written in C. Then for each class that you want to implement, there are class-specific input traits. So there's something like a button, there would be something like button-imple, that doesn't exist yet, but there's something like object-imple for direct subclass of the object. And in there are all the Vitto methods. 15 minutes, okay. There are all the Vitto methods that you could implement. And usually what is also provided is default implementations. So you don't really have to implement all of them, but only the ones that you really want to. And what it also provides you is a way for calling into the implementation of the parent class. So like what you have in C++ or Java with base or with super, you can call the implementation of a Vitto method that is defined by the parent class. And generally, like if you have, for example, a GTK widget-imple, it would also depend or require the GLIP object-imple. So by that, you also have the subclass in relationship enforced in this point. So you have to implement all the traits that are on your path in the class hierarchy where you want to extend. And this is really where all the interesting things are then happening. And an example of that is the object-imple trait. So it basically looks like this. This would be the Vitto method that you overwrite. As you can see by default, it's just calling the parent implementation. But in here, if you implement the trait, you can then do whatever you want to do. And the parent one, as you can see, is a little bit more involved. Basically, it's these two lines, they are then getting the Vtable of the parent class of yours and then calling the corresponding C function pointer that is behind this virtual method. And then it's calling back into the parent implementation of this. So currently, all these things are something that have to be written manually. And you would have to write one of these for every possible class that you might want to extend. So there has to be one for GTK buttons, one for GTK widgets, one for, I don't know, G-streamer elements and stuff like that. There is a branch for the code generator that allows to generate these, but that still has to be updated to the latest reality. So there's still some more work to be done. And generally, it's not easily possible to generate all these things for all the classes because some types that are provided by GTK, they are simply unsaved by design from a Rust point of view. So we still have to figure out some things there for doing it more automatically. Yeah, so some more remarks about the memory layout. So as we saw, where was it? Here you have to provide also the FFI types that are then in the end passed to the C functions. And so in the case of the instance struct, what you have is in the beginning, it always needs to have the instance struct of the parent class as a first element, but that also means this instance struct you have to put the wrapper attribute in it, say it should have a C representation. And the interesting part about that is then that as the parent instance is at the very beginning of it, you can simply cast to it, it's behaving exactly as if it would be of the parent type and that's basically how all this works internally. And the other thing is your private data, the actual implementation of your subclasses, that's something that is stored directly before this pointer, it's exactly the same allocation. So what you then have is first all the memory of your parent classes, then the memory of your own subclass, and right before this pointer you then have all the private data. And that also includes your, from your subclass, the thing that is implementing the object subclass trade. It's also just stored inside the same allocation and it's all something that the object is taking care of for you. And as said before from the Rust side, there are no additional heap allocations, there is no dynamic dispatch or anything, it's really exactly the same thing that would have happened if you were writing the same thing in C. Yeah, so now we had all the little pieces for actually defining a subclass. Then somehow you need to be able to actually create instances of that. So basically the object subclass trade, it's giving you a method call to get type, which on the first call will register your type and on the future calls will just give you the type ID and you can generically then create objects like this. That gives you a generic Glib object and then you can cast that to whatever subtype you want to have it to be. Yeah, and another thing I mentioned before is that whatever, the thing that you're actually implementing that's not really a Glib object or it's not a Rust wrapper type around your Glib object yet it's just the private part of it. So whenever you want to use it like a real GDK-RS object thingy, then you still have to use the Glib wrapper macro that I mentioned before. So that might sound a bit confusing, but so if you want to look at the code, there are quite a few examples and especially so GDK-RS has a repository with lots of examples in the pending branch. There's an example that is creating a list box model based on all this and that's showing you in detail all the little steps with lots of comments that explain what is done there, how all of this is then actually used. Yeah, similarly for GSTMR, there's a repository that contains 16, 17 different GSTMR elements at this point that allow you to extend GSTMR with new filters, with capabilities for supporting new formats and stuff like that. So those would be also other examples that you could take a look at and they are a bit more involved than the list box example. And another thing that you can take a look at is lib-rsvg, it has now a branch called subclass and in there, there's basically no C code left anymore in that branch, it's all written in Rust and it's making use of this to provide a G object to C or to other languages and it's completely ABI compatible with the previous C code. So what else is possible, didn't really fit into the talk with lots of details but you can also define the object properties and signals like, I don't know, the buttons for example have a clicked signal but if you implement your own button you could implement, you could give it its own clicked signal, you can define your own written methods, you can define class methods since two days ago it's also possible to define your own interfaces if you want to do that and it's also possible to define boxed types which are just flat types without a type hierarchy but in a way that you can pass them around through Glib-based APIs that there's a defined way of how to handle the memory management. So that would allow you to pass around normal Rust struct in any way you want. So for the future, as I mentioned, we want to auto-generate more code, a lot exists already but there's still for the sub-classing quite some stuff that should be auto-generated, it will come. Then support for more classes because I'm mostly working on GStreamer for sub-classing there's only the GStreamer side of things done mostly so someone who really cares about GTK and uses GTK would be useful if we would get some help there to also do the same thing for all the GTK types. Then what was also mentioned before is there's a procedural macro in the works called the object class which provides you a way of writing something that looks a little bit like I don't know C sharp mixed with Rust inside it and that allows you to write new sub-classes of the objects and that would also allow you to write safely new virtual methods and stuff like that but it's not really ready yet and it will take a while but in the end I hope it's going to make all this even more nice that you really don't have to worry about any boilerplate code anymore and just write down the things that you want to have implemented. And of course we want to make use of all of this to write more things in Rust, to write more things in Rust that previously only C was really an option and like lib-isvg started to rewrite more GNOME libraries in Rust even gradually just replacing a few functions, replacing a few types or writing new types in Rust so there's lots of stuff that you can now do that was not really possible before. So it's really your chance to get involved. You could help with lib-isvg, you could help writing new gSIMA plugins, you could help replacing parts of other libraries with Rust code, first talk to the maintainers if they really want that or whatever other ideas you have and that's it for today. Do you have any questions? Yeah, that exists. So the question was if there exists types save wrappers for properties and signals so for existing types, yes they are auto-generated and you directly use the corresponding types that are behind that. For other things, if you define your own properties and signals on your own subclass of the object you can then pass around things that are called a glib value and in there you can store anything, you can store integer, strings, objects, whatever but you have then at runtime to check if it really contains what you're expecting and then you can get the thing out of there and that exists for signals and also for properties. So the question was how to ensure that we don't have the vTable on the Rust side from the trade objects and on the GeoObject side for the virtual methods and as long as you don't really try hard to get the Rust vTable, you'd never have a Rust vTable so you would really have to explicitly create a trade object out of your things or store actual trade objects in your private state and then make use of that. It's not really different to other Rust code, you really have to do it explicitly. Okay, I guess then we are done for today.


China's outbound direct investment has been increasing steadily for the past 14 years, and in 2015 surpassed foreign direct investment for the first time. It now ranks second in the world for investment, next only to the United States. Largely fueled by a surge in overseas mergers and acquisitions by Chinese companies, China's outbound direct investment covers more industry sectors and business destinations than ever before. While the country continues to adjust its economic structure and open up further, Chinese firms are looking to develop and upgrade their business models to make the most of global markets and their resources. What does China's outbound direct investment mean for the world economy? What strategies should businesses adopt to become more competitive and agile? With investments growing at 20 per cent per year, how are Chinese companies' global investments transforming industries and markets? Why and how should companies take advantage of this trend and reap the benefits from adopting a global perspective? China's Pivot to World Markets Good evening, ladies and gentlemen. It's exciting to see many old and new friends, the sightseeing debate in Davos. Throughout the years, we have discussed the transition of China's economy and its overseas investment. Last year, China's overseas direct investment was increasing and surpassed the investment coming into China. This morning, President Xi Jinping also said that over the coming years, five years, China expects to make 750 billion U.S. dollars of outbound investment. So there is indeed a pivot of China to the world markets. I will host this very important session, mainly in Chinese, so please pick up your translation devices. Good afternoon. Welcome to Tai Xing debate on China's pivot to world markets. I am editor-in-chief of Tai Xing Media, who should lead. We will be talking about China's overseas direct investment, and these investments are growing at 20 per cent per year. And this morning, President Xi said China is expecting to invest 750 billion dollars more in the next five years. How will these investments from China transform industries and markets in the world? We will be discussing with five important guests together today. First one, Zhang Yichen, Chairman of City Capital, Nouriel Rubini, New York University, Li Xiaopeng, Vice Chairman and Group President of China Merchants Group, United Nations Economic Commission, Latin American Caribbean region, Executive Secretary. Liu Liehong, President of China Electronics Corporation, let's start with one first question. Everyone replies to this question, please. So China benefit from globalization and has contributed to global economic growth in the past years. Now China is not only an exporting country, it also invests overseas, and this grows at very fast speed. So these overseas investment from China, how do they transform industries and markets all over the world? And this year, we are at a critical juncture of the political, politics and economy of the world. Will these represent difficulties or opportunities to China's overseas investment? So Mr. Liu, you start, please. Economic globalization drives the result of productivity growth, and economic globalization has also driven the overall growth of the global economy. China has been starting its economic reform more than 30 years ago and has integrated into the global economy, and China has changed a lot. Now Chinese started to invest overseas, and this has increased at a very fast pace in the past two years. In the past two years, like you just said, China's overseas investment abroad has surpassed the FDI in China, and this trend will continue in the coming years. And this indeed is an opportunity for Chinese companies to better integrate themselves in the world. For example, in my industry, the electronics industry, in the past we only export our products abroad, but now companies in our industry started to go abroad. We started to manufacturing abroad, for example, Guang Jie technology, one of our branches who manufacture monitors used to make in China, but now this company already set up four factories abroad, so they are manufacturing abroad and selling abroad. China's electronics corporation has been going abroad, also in terms of IT technology, in Latin America or in Africa, we invest in important major IT projects locally, for example in Ecuador, we help them to set up a emergency management center. This center covers major cities of Ecuador in terms of security, emergency management. So it can in the future help Ecuador to better manage their security, and this already produced positive effect. Their security situation has greatly improved, and also last year this system that we helped build has also helped them to manage the relief activities after their earthquake last year. President Xi also visited this center when he was in Ecuador last year. So from our perspective, we think not only traditional companies from mining industries are going abroad, even a company like us in the electronics industry, which is more a new industry, we are also going out of China to invest. So this is indeed a change in recent years. Thank you very much. I wanted to quickly give you an overview of what is the relationship between China and Latin America. First of all, we had the visit of Xi Jinping. Precisely, he came to Latin America, he came to APEC, Ecuador, he came to Chile, he came to my organization, and we produced this book in Chinese, in Mandarin, and in English. So it's available. But the thing is, what's happening? Since 2000, the trade between Latin America and China has expanded 23 times the exchange of goods. On the other hand, foreign direct investment has expanded twice, from $6 billion, let's say, in one decade, the 90s, to almost $10 billion per year, which is not much yet. We want more. But the thing is that, unfortunately, the relationship with China has concentrated basically on five products, soybeans, copper, or mineral hydrocarbons. So we have to expand and diversify. So this is what we discussed with Xi Jinping when he was in Latin America and the Caribbean. And he proposed a formula that is 1 plus 3 plus 6, which means let's come together once, because of course Latin America is far from China. Come on.  But now you're coming, and you're coming, I think, to this 1 plus 3 plus 6, which is to base our relationship on trade, of course, investment, financing, and overall cooperation, of course. Six sectors, infrastructure, transport, energy, and natural resources, agriculture, industry, and science, and technology. Now, where does we feel that Latin America has a huge opportunity in agriculture? I mean, you have 1.3 billion people, right, to feed.  And you are going to the cities. Your urbanization process in China is over already 50%. So your people are changing. And we can become really a very important partner on this, because China only has 6% of its land is arable, only 6%. And you have very little water, fresh water. So we believe we can build a strategic partnership in energy, in infrastructure, in agriculture, and go beyond commodities. And of course, on culture. We are, and let me just finish by saying that Celac, the community of Latin American states, is building a very strategic relationship with China. We already had a meeting in China of the ministers of foreign affairs in February two years ago. Now, next January 2018 is going to be the second meeting. It's going to be in Chile. And this is going to be very important, because China has been so pragmatic that regardless that many countries in the region, out of the 33, many of them do not have diplomatic relations with China. They have them with Taiwan. But regardless of that, the countries of the region want to be a trade partner and an economic partner with China. So they are really coming together to establish this relationship. Now, of course, the only way to do this is in an integrated fashion. If we really put our act together in Latin America, we can probably progress. We have had already the visit of Wenjiabao, or Li Keqiang, and of Xi Jinping. That is the level of relationship that they want to establish with Latin America. Now, Latin America needs to get its act together and prepare ourselves for a more, I would say, powerful relationship with China. Thank you. Please. OK. Thank you, Mr. Lin. I would like to talk about China's ODI. Recently, we found good numbers that are about China's ODI. 50% growth in 2016. 14 consecutive years' growth, the 2-2 among the number two in the world. The situation showed a news that China's economy is good. The question is how to manage the investments in a broad, independent, I think, three points I need to mention. First, we need to share benefits with local partners. We know the bigger cake we make together, more profits everybody can get. Second, we need to pay attention to localization. Recently, our company brought here many people who are 98% total employees. We set up a good training program to train the people for sustainable development. Third, we need to provide a good plan of whole package solution. The meaning is we can provide an integrated business model to local partners. We call the special business model is PPC. The meaning is port, park, and city. First step, we can construct the port. And the second step, we can develop the industry park. And finally, we can build a beautiful city behind the port and the park. Generally speaking, we can provide a good special model for local partners to achieve a win-win situation. Thank you. Thank you. Professor Vinny. Yes, I would argue that probably the economic and financial relation of China with the world have changed over time. So for a long period of time, China was mostly doing trading goods and services with the rest of the world, having large and growing trade and current account surpluses. Most of the foreign direct investment into China and until recent years, there was not as much FDI done by Chinese firms abroad. And the resulting current account surpluses implied an increase in the net foreign assets of China abroad, but those net foreign assets were essentially the accumulation of foreign reserves by the central bank. And then when there was a creation of a sovereign well-funded investment also brought by the government institution. I think that in the last few years, the changes occurred is that China has started to liberalize its attitude towards foreign direct investment, as realized that Chinese firms have become large, both private and state-owned enterprises that are national champion in China, have an important role in trying to diversify in starting to acquire foreign firms in becoming global champion and not just national champion. And therefore, there's been a proactive policy of allowing these firms to do mergers and acquisitions around the world. The first stage of it was, of course, China being very interested in making sure that the supply of natural resources would come to China, investment done in natural resource, all the energy in other sectors, from Asia to Africa to Middle East to even gradually in Latin America. But now that Chinese firms, both SOEs and private, have become also important and key and strategic in manufacturing industrial sectors now, that opening up has also led to then foreign investments in a variety of other sectors. I would say that this strategy of China is probably part of a broader economic state strategy, as we know there have been now overinvestment in China, overcapacity. China is a huge amount of foreign reserves, has a lot of natural resources like steel and cement that are in overcapacity. And therefore, China has come out with a variety of plans. One is the Silk Road. The second one is the Belt and Road Initiative. The third one is the Bricks Bank. The fourth one is the AIB. And finally, in a number of regional trade agreements that has proposed to Asia and Pacific in Latin America, is we are building greater economic and financial relations. So I think it's a part of not just an economic diversification strategy, but also building stronger economic, political, and also geopolitical relationship with Asia, with Africa, with Latin America, and many other parts of the world as well. So there's a greater, how to say, international economic statecraft strategy is behind the economic policy towards foreign direct investment of China. OK, I think everybody talked about more on the macro level. I'll probably focus more on our own experience. We started investing overseas about 12, 13 years ago. And initially, we were mostly investing in manufacturing businesses in the US or in Japan, where we can help them basically relocate their manufacturing capability to China as China was developing as a factory for the world. So the value creation is more on the cost side by lowering the cost. And that game basically changed after the 2008 after the global financial crisis. Everybody else's cost was going down, but China's cost was actually coming up. But China, at the same time, was developing increasingly as a consumer market. So then our investment focus started to change. We started to focus on buying companies that could benefit from the growth of the middle class consumers in China. For example, in Japan, we bought one of the leading tableware makers. It's called Narumi. And we introduced it into China first into the likes of the Pacific Dragon Airlines first class launch, first class cabin, then five star hotels. And to the point that they set up boutique shops. And at the same time, we also look at sectors where China is doing most its import. For example, the biggest item China imports is actually nor petroleum. It's actually semiconductor. So last year, we were investing in this company called OmniVision, which is the third largest imaging sensor maker in the world, the largest being Sony, which almost supplies exclusively to Apple. The second one is a Samsung, which more or less supplies to itself. And this company was trying to compete with Sony and Samsung. But until the China market developed, all of a sudden you have the phone makers like Huawei, like Xiaomi, like Coolpad, and so on and so forth. The company turned it up. We helped the company to break into all these vendors and to these customers. And to the point that the company over a course of one year, in 2014, majority of the market was in the US. But by 2015, 80% of the market was in China. So these are the type of investment that we see that can capitalize on China's growth. So from that perspective, from a macro level, this sort of investment, obviously, is mutually beneficial both to China as well as to the companies that we're investing. Thank you. Now I'm going to ask everybody one question I have prepared. I'd like to ask all of you a question. Can you tell our audience how Chinese investors as a whole perceived by the local people there? And we know that the public utility investment is a bright spot in Latin America. So what's your advice to Chinese public utilities companies heading to Latin America? It's a very good question. First of all, I guess that we have to know each other better. And I think this is a part of the relationship that has to come together. Chinese, it's differently perceived in different parts of Latin America. We cannot make a general point. For example, in Ecuador, the Chinese investors are very much related to technological development. So they are not related to extractive industries. On the contrary, in Peru, they are seen as very much oriented towards extractive industries, even in Chile. And in Peru, for example, the problem is how is the dialogue with the local communities? That's another of the huge problem that extractive industries do have. So little by little, the perception is changing. At the beginning, there was a lot of fear. Fear that the Chinese investors were coming to exploit our natural resources and full stop. But this has been changing over the years because we have been already in touch for more than 15 years. And these visits of Li Jinping, for example, Xi Jinping, when he came to Chile, he came to a media summit. Probably you were there. This was a media summit of 100 media reporters from China and from Latin America. And the intention was precisely to change the perception of the people between the two. I mean, we have to learn a lot about each other. So, yes, there are some parts of the region that feel that China is coming with their own workers, with their own people. There's other parts of the region that are more prepared to understand that foreign direct investment is very well received, that we can be partners, that we can do things jointly. Now, the fear that we have in Latin America in general is that China is substituting imports. It's becoming an import substitution strategy because as they are moving on to manufacturing, they are substituting many of the products that were manufactured as well. So, how is this going to have an impact on the general change?  The day that Xi Jinping arrived to Chile was the same day that Donald Trump announced that he was not going to sign the TPP, the same day. So, can you imagine the impact when he came? Xi Jinping came talking about free trade as he did this morning very openly. We want to build a relationship with that and the other. And China now is the second most important trade partner of Latin America after the U.S. Maybe this is going to change very soon. Now, you haven't yet invested in Latin America. We have invested in copper mine and power plants, but city capital as such hasn't. So, can you tell us a bit about your experiences in Latin America? Now, of course, the countries are all different, but can you tell us a bit about your experiences? Now, Mr. Li, now, China Merchant's group is one of the leaders of China's outward investment push. It's in particular in Western and Eastern Europe, and it's one of the seven top Chinese investors. Now, it's one of the seven top investors under the One Belt One Road program. What's your understanding of the One Belt One Road program? Well, this morning, President Xi Jinping reiterated Chinese support for economic globalization, and went through some of the achievements in recent years of the One Belt One Road program. Something that we have some experience of. May I cite a couple of examples? Now, we were formed in 1872 as a group starting with steamships and ports. Our business has expanded since then, including port and shipping projects abroad. Under the One Belt One Road program, this very old company has changed its focus. We've become more involved in ports and transport projects across the whole region, including even real estate in the areas where there are ports and transport projects, bringing opportunities to all countries involved. Now, I mentioned the PPC just now that started at the beginning of reform and opening up with the port of Shokou in Shenzhen 30 years ago. It started with a port then an industrial park and then city districts. That model was pioneered there. If you go to Shokou, it used to be a fishing village. It's now part of a modern city with a population of 10 million. We're trying to take that model abroad and in many places abroad, it's brought a lot of new employment. It's helped set up a fuller industrial value chain. My experience is that One Belt One Road is not just a good medium for China's openness to countries abroad. It's also a way to share Chinese experience with the countries involved. What might One Belt One Road and Chinese Albert investment do to change the world value chain? Well, if we look at One Belt One Road we have Chinese nuclear and high-speed rail technology which are world-leading and they've been taken along the One Belt One Road. So the Chinese mutual funds and roads are mutually beneficial, fair and inclusive as a national strategy and I hope to gain support of the investors present in the room for it. Thank you. I think everybody has his own or her own take on OBRR project. Thank you for sharing yours. Mr Liu, your company was relatively late in going abroad but now you are very active in investing abroad. So you have more overseas direct investment or MNA projects. That's the proportion. And in terms of technology European countries in America and U.S. they don't want China to invest in sensitive technology sector. For example, recently Accentron project has been stopped by German government. So have you ever experienced any of the these kind of situations like that of Accentron? Thank you. Our group, when we started investing abroad we have different measures and approaches. Now we focus more on direct overseas investment. For example, we will set up a branch locally. For example, I said we invest in Latin America or in Brazil, in Argentina. In these countries we already have many factories, have set up factories and it's been operating relatively well in Argentina and Brazil and less in developed countries. In developed countries we have relatively fewer investment projects but we've been doing MNA in developed country markets. For example, a couple of years ago we bought one of Philip's branches, namely colored television set sector. So now in Europe Guanjie technology, which is a branch of China, electronic cooperation bought this Philip department in Europe. So we start to roll out not only traditional television set but also smart television set. And we are gaining market share in Europe, in Asia and also in Africa. So our company has different approaches in our investment overseas including direct investment or MNA. Have you ever encountered any difficulties? Actually, in integrated circuits we have encountered some difficulties especially in MNA. But for us as a Chinese company as a Chinese IT company we think we have to transform, we have to enter into high-end segments and develop core technologies. So as a Chinese company who invests abroad such as in integrated circuit I think people should have an open attitude towards investments from China in these areas. People should be open to cooperate with Chinese companies in these areas. You should not always say no or close your door in these areas. As President Xi said this morning trade protectionism close your door. Maybe you can avoid some problems, some issues but you also shut sunshine and clean air outside. Developed economies and developing economies should have an open attitude towards China's investment overseas. Thank you for sharing with us. 2017 will be a very delicate year for US-China relationship. From your previous comments we can say that you are also very concerned about the populism America First and anti-globalization voices of the Trump team. But on the other hand it seems that Donald Trump welcomes anyone that claims to bring jobs to the US. Will that become an opportunity to Chinese investors in the US? How will all this play out? Certainly as you argue this is going to be a critical year in the relations not just economic but also political between US and China. There is a risk of course that the US is going to become protectionist. The US might brand China a currency manipulator like other countries that US might try to restrict by tariff imports trade from China given traditional kind of accusation in my view false that China is involving unfair trade in dumping its goods in having its currency being undervalued and so on and so on. So there is this dimension that creates a variety of potential for trade tensions. As you argue US wants foreign direct investment to create jobs in the United States and then the foreign direct investment relation with China is going to be complex. First of all, US unlike Europe has a system for vetting foreign direct investments in the US to check whether there is any issue about national security and so on. And even Europe where traditionally this has not been the case in recent episodes like in Germany and others either concerns about national security or about losing strategic assets or industries to Chinese firms that has been a concern. Secondly, a lot of the FDI that has been done by China in Europe but even in the United States two thirds or more of it has been done by state enterprises and by other government entities. And whether you like it or not that raises concerns in the US and Europe about whether entities that are government owned or are being supported finance subsidized by the government are having too much of a role. And the other dimension of it is a dimension of reciprocity. Chinese have done huge amount of investments in the United States and in Europe but the amount of investments done by Europe in China or even by US have been limited. And have been limited in part because there have been a series of significant restrictions today right before the speech as in she here in Davos the government in China has now signal there will be some degree of opening of foreign direct investment into China into variety of financial services even if it's not clear exactly what's going to be the timeline for this implementation. But as we know China has been restricted the amount of FDI in a variety of sectors are considered as being important or strategic or otherwise including natural resources that have come of course culture media and other aspects of manufacturing. And the final dimension of it that is also of some concern is that the US for example in the space of internet and other types of companies has been open to Chinese firms and Chinese champions like Alibaba, Tencent and he all asked about it have become first national champion in China and now growing globally but as we know Facebook has not been allowed in China and Twitter has not been allowed in China, Google has been restricted in China and so on and so on so there is an element also of reciprocity if US is allowing Chinese firms to operate and do business and investment in the United States or in Europe is there similar types of reciprocity so I think those sets of considerations are going to imply that not just the question of saying we are welcoming FTI by China in the US or in Europe because it's going to bring jobs but also whole series of other issues that are going to become sensitive so I think a broader range of negotiations are going to occur to make sure that the relations on the FTI side are also reciprocal and fair and you name it so it's a pretty complex set of issues we'll have to discuss on a bilateral basis as well. You are very complicated actually if you talk about the complex package where is the possible starting point of the complex package? Well the US has been negotiating a bilateral investment treaty with China that's going to discuss how much you know investment into China is going to be liberalized as well as investment by Chinese into the United States that's one way of achieving agreement over a set of rules about stuff and of course both sides might have some industries that are considered as being strategic or restricted or to be gradually liberalized and so on I think that's one dimension of it that is going to be important and I think the maintaining also open trading relation is going to be important because of course trading goods and services is intimately associated we've also traded in financial assets and portfolio diversification activity and foreign direct investment as well so I think that these things will have to be discussed in a broader context of the economic relations between China on one side US and Europe as well. Thank you very much Mr. Zhang I will ask you the same question your company has been doing overseas investment abroad you are very experienced in this area is 2017 going to be a good year for China's overseas investment or a bad year and your company is very prudent in investing abroad right 2017 well firstly I would say 2017 the total volume of investment will be lower than that in 2016 after more than a decade of continuous growth in particular high growth up to 2015 so if you base it on statistics from Thomson Writers then it's more than 200 billion US dollars of investment now that kind of fast growth has a couple of problematic elements now the earliest driver was the Chinese domestic market they need to upgrade for a lot of Chinese companies so they sought high technology abroad advanced manufacturing medical equipment manufacturers and high end consumer goods that was one part and another part was global asset allocation and what it meant for them particular with concerns about RMB depreciation however in 2016 very obviously a lot of this was due to the gap in valuations between capital markets in China and abroad so trying to arbitrage between China and overseas a lot of transactions were irrational in valuation terms because people simply thought that they were making a buck anyway if they bought it at 20 times and came back to China where things traded at 30 policy measures in China have aimed to bring things back to a more rational footing so a drop in 2017 should not be seen as a bad thing now you may be thinking in particular of recent acquisition of a stake of 80% 80% in McDonald's China this is not an exit by McDonald's wants to expand in the Chinese market and faster but they require a strong local partner to achieve that goal in China China now is the world's second biggest economy no longer reliant on MNC's bringing the whole set of rules that they've been working under in the US or elsewhere to China as a lock-stock barrel and that's an issue that a lot of multinationals have faced in China earlier or later the main competitors of McDonald's for example KFC which is the second biggest worldwide first in China it has 5,000 outlets in China McDonald's only 2,400 outlets why do you think that might be now if you want to do well in China you do need to have a strong local partner that understands the market and helps you to grow faster and in a more efficient manner and the backdrop that I think McDonald's investment was a very good deal in 2017 overall we are taking somewhat cautious outlook in particular with the uncertainties brought by the US transition to a new administration so we are mostly adopting a wait-and-see attitude so relatively prudent ok now if Presidency talked about 750 billion over 5 years that means 150 billion per year where has it been running at more than 200 billion per year in the last couple of years it's been growing very fast Chinese FDI abroad now before we go to the audience let me ask a brief answers from each panelist on this question has do you think globalization is more challenging or less in 2017 one word more or less more more middle and you? your question is whether 2017 2017 globalization will face more or less challenge it's going to be a huge challenge especially on jobs China wants to create 10 million jobs everybody wants to create jobs how are we going to do that just about ok thank you for your answers to that question and I'll now open to the floor for questions would anyone like to ask the panelist a question please state your name and affiliation for Mr. Zhang Yichen Professor Rubini and Mr. Li Xiaopeng so Professor Rubini mentioned China is basically doing statecraft One Belt and One Road is a prime example but a senior scholar from Chinese Academy of Social Sciences was telling me in the past two years Chinese FDI 85% is in Europe or America One Belt and One Road countries actually receive less so I'm wondering how does the profitability of projects in developing countries compared to developed countries China is doing say development in developing countries with One Belt and One Road and doing say in developed countries for commercial purpose is this transition from a statecraft model to a more market firm oriented model more sustainable going forward thanks I'm going to answer a very challenging question let me come in on this very challenging question let me talk about some figures first of all we have total assets now 7 trillion remain B and 700 billion of that is abroad about 10% of that 10% most is in non-developed countries so there's your answer yes but some of it's in developed economies a minority though most of our investment abroad is in developing countries that's my first point secondly generally we get the sense that it's harder the threshold is higher to invest in developed countries they are more reluctant to receive Chinese investment especially from state and Chinese enterprises maybe discriminatory one of the issues in the last year has been a resurgence of protectionism so we would like to call for parity in trade objectively speaking it's been easier for us to invest in developing countries but whether you accept that or not our investment in developing countries has not been exploitative it has not been straightforward single project invest what we are trying to pilot is an integrated plan under the PPC model now that's the one acronym I'd like you to remember start with a port behind that you have an industrial zone a city so what we offer you is a full package who wins from that local people for example in west Africa a country I won't name but we have gone to a city with a very old updated harbor we've moved the harbor to a new location so build them a new port and the old port area is then urbanized between new and old port areas we created an industrial zone to provide employment so local people are very happy with the results of what we did in this west African country PPC in his case was port on the left city on the right and industrial zone in the middle so that model might be an answer to your question thank you well you know there is a variety of investment that China is making abroad many of them traditionally been in emerging markets because of investment in natural resources extractive industries now becoming a huge manufacturing power the biggest in the world there is advanced economies to both acquire brands acquire technology management skills and use it either for production in Europe and US and or for building then production also in China I would say that you know while you could argue that international state craft has been more for investment relating to emerging markets there is also a broader strategy of China saying we have a number of national champions some of them are large state enterprises are becoming even larger some of them are national champions that are private sector firms like in the internet software telecom and you name it that they became very successful given the large size of the protected domestic market and now they are going international and from the Chinese point of view this national champion becoming also multinational corporation globally whether they are private or public is part of the broader strategy of creating a wide range of economic trading financial and eventually also diplomatic and political relations with many other parts of the world so I think that the Chinese have a vision of how they see the role growing in the world in a way that probably United States and Europe do not have Do you have anything to add Mr. Zhang? No I don't have anything to add Do you have anything to add Mr. Zhang? I don't have anything to add Okay yes I come from Abu Dhabi from a petroleum company and we've seen a trend in the Middle East now of look east as opposed to look west and in particularly in Abu Dhabi some of the concessions which have matured now have been given to the Asian firms I just wondered what China's approach is on one hand US is a little bit wavering in the Middle East region and the shale has become such a success so does China have a policy about expanding its presence in the Middle East region particularly in all in gas sector which is really fairly strategic for China So with whom you want to raise your question Maybe yourself Mr. Zhang Thank you for the question I'll try but I may not be the right person to answer it given that we haven't really invested much in oil and gas sector but we do have exposure in Middle East mostly through co-investment relationships we manage money for the sovereign wealth funds of Abu Dhabi Qatar as well as Kuwait so we do cooperate in terms of not only investment in China but also internationally for example we co-invested into a city football group Manchester City together with the royal family of Abu Dhabi and we also co-invested Qatar US authorities many different things including Alibaba and so on so I think Middle East is a very important region for China needless to say given the need for energy and the US as we know is getting increasingly energy independent so to China Middle East will be a lot more important from that perspective but at the same time I'm not a diplomat but I think China has always advocated non-interference type of policy so I doubt very much if China is going to get increasingly involved and build more strategic relationship with the Middle East partners thank you Yichen because this year there has been fast development of development but more recently there have been a few headaches for globalization let me ask about the long term as the last question one to two sentences each from you in 10 to 15 years what will the market be like and what role with will China have in it what are your long term predictions Mr Zhang 10 to 15 years China will be the world's biggest economy I think however I would also say in terms of its influence it may be a different story the U.S. has dominated the Asian world order since World War II but China will have more input into how the world is run long term prediction well we live in a world of uncertainty so it's hard to predict but I would say China certainly will become the largest economy in the world in terms of GDP even if on a per capita basis of course will be still catching up given the rise of China and its growing role economically trading financial and also political in Asia the U.S. and the Obama administration had a policy of pivoting to Asia and a key element of that was also TPP I think what Trump is going to do when it comes to power in January 20 is going to be to repudiate TPP and I think that gives an option to China to go not just to Asia not just to the Pacific not just even to Latin America but all the way to Mexico and even the Mexicans if U.S. doesn't want you after please come and join our own free trading agreement our own agreements about foreign direct investment so if the U.S. is going to retreat and that's still a big gift from globalization and free trade that gives an opportunity for China we heard what President Xi said today to become a champion of free trade and globalization over time President Li I would say one word diversify because with the accelerating of globalization every part of the world can share the benefits that's all Arisha well I definitely think that China will be basically mostly urbanized climate change should be one of their major objectives the energy transition the decarbonization of its economy careful about inequality very much indeed I think it's growing and finally I think that China becoming a global actor should help us think and rethink capitalism globalization and the insatisfaction people feel about these things thank you Mr. Liu for me I think innovation open and inclusion will continue to drive economic growth of the world so I am optimistic in long term and midterm economic growth of the world and China will play a very important role we have a bigger and bigger share in global economy and play an important role in global economic governance thank you thank you everyone let's give them some applause thank you


A fiery horse with a speed of light, a cloud of dust and a heart of high old silver, the Lone Ranger. When government troops were sent to the frontier in the early days of the western United States, it was the mask right of the planes who taught them how to control the Indians. Without his knowledge of the country, his strength and daring, the army might never have brought peace and security to the new territory. Return with us now to those thrilling days when the West was young, from out of the past come the thundering hoofbeats of the great horse, Silver. The Lone Ranger rides again. Come on, Silver! We're heading for the port! The Colonel's sent for us! It was high noon, and an Indian, his headband bearing the eagle's crest that marked the chieftain, broke from the woods at a trot and continued across a broad clearing. As he held to his steady pace, he failed to observe the shadow cast by a great bird that hovered high overhead. Its small eyes were bright and cruel, its big curve like that of a vulture, its talons strong and sharp. Beneath its talons, two long needle-thin spikes glinted in the sun. Siding the red man below, the bird gave a horse cry. Flapped its broad wings once, then swooped toward its victim with the speed of a falling stone. Presently from far away, there came the faint sound of a horn. The great bird lifted its head, took a few short steps, then left the ground to circle slowly into the air. The command of the horn was repeated. The bird, straightening its course, grew small in the distance until at last it had completely disappeared from sight. A month later... Scout! There's the port tunnel! Head for the main gate! Get him up, Father! Where's the sentry? Right in! Oh, Scout! Oh, Silver! Where's Colonel Miles, soldier? He named his quarters straight ahead there, Stranger. He said the patient's through. He's waiting for you. Thanks. Hold on, Silver. Get him up, Scout! That must be his quarters, Hunter. Hold on, Silver. Stay with the horses, Kimosabi. If you need it, I'll call you. Colonel Miles? Right. Have a good time. We started as soon as we received your message, Colonel. Your messenger stated our camp to rest his mount. He'll likely be back tomorrow. Yes, that's fine. I suppose you're wondering why I sent for you. I could guess, sir. Yes? Do you want me to speak in front of this man? Oh, yes. I nearly forgot you, Crockett. Yes, that's all right, Colonel. This is the man I spoke of. Uh-huh. Knew that as soon as I seen his mask. This is Burt Crockett. He brought me the information that persuaded me to send for you. Crockett, huh? I think I've heard of you, Burt. You've got a trading post back in the hills. That's me, Stranger. Been trading with the engines for furs. Been doing real well, too. Least wise till lately. I see. Colonel, I believe my guess is right. What is it? The Indians. How do I have heard things? There's something odd going on. From the little we've been able to learn, there seems to be someone, there's something, that's been getting them stirred up. What it is, I don't know. The Indians are too frightened to talk, and the whites I've met have no information at all. You're right. Something has gotten into those redskins and by heavens I mean to find out what. I want you to help me. How? I can't tell you. If you will help, I'll have to leave that up to you. I can't tell you where to begin or what to look for or what to do when you find it. Whatever it is. All I can say is that trouble must be located and wiped out, or I won't answer for what happens in this territory inside the next six months. I'll do what I can, of course. Bert, what do you know about this? Colonel Miles said you had information. Well, taint much. No. What I mean is, taint much that'll help you, I'm afraid. You see, I've been trading with the engines for going on 15 years. All has got on well with them, too. Most of the engines around this part of the country you know have always been friendly with whites. There hasn't been an uprising since I came with this post. But here about two weeks ago, the engines quit trading with me. Not only that, but they started dodging me. Acted like I was poison. I'm telling you, stranger, maybe it don't sound like much now. But before I pulled stakes, things got real creepy. Couldn't sleep without dreaming some engine was yearning to lift off my top air. Couldn't leave my cabin to hunt for a game without feeling I was being watched. If it had been something I'd met up with before, I'd likely have known what to do. But it weren't. So I just packed and skedaddled. You see what I mean? It isn't just Bert's story. It's the fact that I've heard it doesn't just like it. They all tell the same thing. As far as I can see, they point one way. To what? An uprising. Wait. When I say uprising, I'm not suggesting that some chief had decided to raise a ruckus because he's angry about something or just wants the excitement. It's bigger than that and different somehow. It's as though the redskins from one end of the territory to the other are being forced to do something against their will. As though whatever they're up to, it's fear that's moving them. It's not easy to explain, but there you have it. I can't make it any clearer. You see it exactly as I do. Yes. There's trouble in the air. And like Bert says, it's not the kind of trouble we've had to meet before. Right. Can you help? I'll promise nothing, sir. But you have my word, I'll do what's possible. You're off already? The sooner we get to the bottom of this, the better. Where will you go? To the hills. I'll report when I can. We're riding, Tutor. Where are we going? To the Indian country. Come on, Silvus. Get him out of the car. Hail, Silvus! Away! Three days of hard riding found the lone ranger in his faithful companion deep in the hills. The country was wild and barren, broken by canyons and cliffs, imperfectly covered with occasional stands of stunted furs and pines. Late in the afternoon of the third day, the masked man reigned his great stallion to a slow walk, and Tonto followed suit. Should we make camp soon, Tonto? Or go on? Maybe make camp, huh? We continued. How long would it take us to reach Thunder Cloud's village? Six, seven hours. We couldn't get there much before midnight, huh? That's right. I wonder. Now, I think we'd better go on, Kimosabe. The horses had a good rest at noon. I want to see Thunder Cloud as soon as possible. Uh... Week. Wait. Who's over there? Who's over there? See that patch of trees to the right? Uh... Two horsemen just rode in there. I don't know whether they saw us or not. I didn't see them until I caught the movement of their horses. Them engines? I don't know. Unless they stay undercover, we'll see them again in a moment. They'll likely come out just above that spur of rock. They're fuller. That's one of them. That... Big Wolf. Big Wolf? He's one of Thunder Cloud's Indians. Uh... They sped up. Look. The other rider's turned north. Uh... That's a white man. Uh... That's a good-looking bae he's riding. Uh... Well, Big Wolf's the man I want. Call to him, Tando. He'll hear ya. If he knows anything, it'll save us a trip to the village. Uh... Tari! Tari, Kimosabe! He heard you. You will! He heard you, Tando, but he's breaking into a gallop. That's strange. If we could recognize him, he surely could recognize us. Uh... Look to me exactly as though he didn't want to stop. There him go. Him head him up valley. Tato, there's been too much of this. You realize Big Wolf's the first Indian we've seen since we entered the hills? Uh... They've been staying out of sight because I'm a white man. Just like they've been dodging other whites. What do? I'm going after Big Wolf. Uh... He knows I'm a friend of Thunder Cloud. He's going to talk to me whether he chooses to or not. Come along, Tato.  Let's go, Silver. Come on, Silver boy! Will you get him? Come on, Silver! Urging Silver to his utmost speed, the masked man reached the patch of trees to which Big Wolf had passed. Burst into the clear on the farther side and raced on up the valley where Big Wolf was still in plain sight. The Indian, hearing the pound of hooves behind him, beat at his pony with a like, but the willing animal was no match for the great horse Silver. For ten minutes, the masked man rapidly closed in. Then he reached out a hand and grasped the Indian's rope bridle. Hold it! Oh! Rain in, Big Wolf! Oh, Silver! Oh, Silver boy! Oh, the horse! Big Wolf, what is it? Why did you try to escape from me? You knew who I was, didn't you? Don't pretend you can't understand me, Big Wolf. We've met too many times before.  You go away. Here's Tato now. Better him go too. Oh, Tato! Whoa, Tata! Whoa! Whoa! He refuses to explain himself, Kimosabe. Big Wolf, what matter? Better you let Big Wolf go. Listen to me. You've known me for many years. You know that except for Tato, I have no closer friend among your people than your chief thunder cloud. All the people of your tribe have been my friends. You've given me help when I asked for it. You've learned that I can be trusted. Now prove that you trust me. What's happening in the hills, Big Wolf? What's behind it? And what does it mean? Me talk.  What do you mean? Up there. Up near cloud. Great medicine man live. Yes? Him white medicine man.  Him say red man stay away from pale face. Red man not do what him say. Red man die. Go on. Great bird kill red man. It come from sky. Strike like eagle. It make big thunder. It spirit brave warrior long time dead. Big Wolf. What's the matter? Me not say more. Wait, let me get him. No, let him go Tato. He said all he's going to. He won't get any more from him. White medicine man and a great bird that strikes from the sky. Himasabe, we'll see what thunder cloud can add to that. Find what Big Wolf meant and our works half done. Where thunder cloud village had been however, the mask man found evidence of a hasty departure. It was not until the next day that he and Tonto located the site of the new village. When they did, the mask man uncertain of his welcome remained outside while Tonto entered alone. While he waited, he noticed signs of excitement in the village. When at last Tonto returned. Tonto, what a thunder cloud say. What did you find out? Big Wolf, him dead. Big Wolf? We talked to him just yesterday. That's right. And he told us. I wonder if he died because he talked. Maybe. Where was he found? Not far. Me show you. Lead the way. Get on him. I'll see you over. The curtain falls on the first act of our thrilling Lone Ranger drama. Before the next exciting scenes, please permit us to pause for just a few moments. Now to continue our story. While Tonto led the way to the place where the body of Big Wolf had been found, he repeated the information he'd gathered from Chief Thunder Cloud. Thunder Cloud not seem white medicine man. No. Him live way up mountain near Cloud. Red man Frade go there. Whoever he is, he certainly got the Indians in this district frightened. Thunder Cloud told you not to bring me to the village, huh? That's right. In other words, he doesn't want a white man seen there. Well, we've been good friends, Tonto. My presence would make it dangerous for him. I'll stay away. What else did he tell you? Him tell about bird, too. The mysterious bird Big Wolf mentioned that strikes from the sky. He believes in it. If you say the bird was a spirit of a warrior who had died, but the spirit does what the medicine man tells him to do. Exactly what Big Wolf claimed. I can't understand is this. Perhaps there is a medicine man hidden somewhere high in the mountains. Perhaps even he's white. Such things have happened before. But no one has seen the fellow. How did the Indians learn of him? Old man tell him. Old man? Uh, him white man. Him tell him ancient. Him only fellow see medicine man. Then someone has seen him. Who is this old man? Does he claim to be sort of a go-between for the medicine man with the Indians? There's just a story he's been telling. Him friend medicine man. Medicine man give him him order. Him give him order red man. And those who objected to this have died. Bird kill him. I don't believe that story about a bird that can kill a man. It's trickery of some sort. This fellow, whoever he is, is using it to play on the Indian superstitions. Uh, their place. Where Big Wolf was found? Oh, so where? Oh, Oscar. Here for science, Tuddu. The braves who carried Big Wolf away haven't destroyed it all. Wait. Super old fellow. What's the matter? A shadow, Scarum. A shadow? Oh, I see what it was. Who cares, Tuddu? An eagle. A big fellow. Silver must have seen him from the corner of his eye and been startled. There he goes, heading for that cliff. Hear him, horn? Hunter's probably. Well, let's look around and see what we can find. A careful examination of the ground only added to the mystery. No hoof prints were found, except those made by the ponies that Thunder Cloud's braves had been writing. Casting them out in ever-widening circles, they still failed to discover a trace of the murder. At length, the masked man said, This is getting us nowhere, Tuddu. Yeah, it keeps strange. You're sure Big Wolf wasn't killed by a bullet? With a rifle, he could have been shot from a distance. Him stabbed. Stabbed, huh? Him got him two holes in back. Stabbed twice. Uh-huh. Tuddu, Big Wolf may have been marked for death long before we met him. Uh-huh. But if he wasn't, he was killed because he was seen talking to me, and only one man could have known that. Who that? The white man he was with when we first saw him. Remember? When Big Wolf headed up the valley, the other rode north. That's right. He could have circled back to keep an eye on us. He couldn't have got close enough to hear what was said. But watching us together, he might have thought we learned more from Big Wolf than we did. Tuddu, we're picking up that fellow's trail. It's our only lead. Come on, Silver. Come on, Silver. Before nightfall, they found the trail of Big Wolf's companion. It circled as the Lone Ranger had suspected, then veered to the north again and ascended by way a rugged trail that bordered a cliff. The masked man and Tuddu followed it till nightfall, then resumed their journey early the next morning. At noon, they'd reached a height where clouds fogged the trail. The canyon to their left had deepened until its bottom was lost in shadows. Suddenly, a distant shout greeted them. Hear that? Someone in trouble. Come on, Silver. Get him up, Scarlet. Now, too fast, Tuddu. This trail's treacherous. Loose stone and you'd find yourself over the side. Isn't that a horse up ahead? It... Tuddu. That's the bay that fellow was riding. That is all right. This fellow who called is the man we've been hunting. Give me your hand here. What's the trouble? You've got my foot caught. Hold, Silver. Hold, Scarlet. Now this happened.  Got the cannon to back in. Climb down to get it. Shouldn't know better than to walk here without watching a step. Foot slipped into the sheer crack, and now I can't get out. Let's have a look. I tried getting the foot out by unfastening the boot, but that won't work either. This is a bad place.  I'll see if I can't chip the rock away a bit. And that should do it. Mask, eh? Yes. Well, I ain't gonna ask you no questions that wouldn't be welcome.  Gosh, mister, what would have happened to me if you hadn't? You'd probably have found a way out of this. I don't know. I was trying to blame her before you showed up. Here, thanks. This piece here seems to be doing it. Think you can get it? Just a moment. Now try. No, doggone. Ankle feels like it might have been sprained. Coming? Uh-huh. Think so. Wait now. There. There she is. Good. Mister, you don't know how grateful I am to you. I go to died here. I'm glad we were able to help. Maybe so. But you ain't no way as glad as I am, I can tell you. Look here. What can I do for you? I'd like to show you I'm appreciating this. That isn't necessary. No, sir, Rhee, when a gent does something for me, I do something for him. Now name it. I don't want anything. I got it. Wait. Just wait till I get my saddlebags. I got just the very thing. But I said I didn't want any. Here it is. Here. It ain't much, but you won't mind that, I reckon. It'll serve to show you I ain't ungrateful. What is it? Don't you recognize warmth when you see it? Shucks, I strung this stuff together myself. Give it the engines. Seems to please them. Paint it bright like this and it looks real handsome. Oh, go on, take it. Here. I'll throw it around that bandana you were there. Now then, ain't that fancy? I'd rather not take it. Strangely, you can't refuse. It's just a token. Don't cost me nothing. And I'd be plum-hurt if you turned me down. So there. Very well. Into the saddle, Tonto. We're riding on. Mounting the Lone Ranger and Tonto proceeded up the trail. They'd gone scarcely a hundred yards from behind them. They heard the sound of the horn they'd heard before. There, same horn. The old fellow we just met must have blown it. Must have been him we'd heard earlier. What it for? It could be a signal. You noticed I didn't let him know we'd been on his trail. Why you do that? He answered the description of the old fellow they say works with this mysterious medicine man. If he is the same fellow, he had reason for following this trail. It may lead to the man we're after. It wouldn't have helped us any to take this fellow prisoner. I had another reason for saying nothing. What that? His foot wasn't really caught. He only pretended that it was. He was pushing with his foot, not pulling. Me, not see that. If I'd let him know I saw through his trick it would have cost me the chance to learn his motive. Maybe it was simply he knew we'd catch up to him and wanted to play innocent. And when we'd pass, signal the medicine man we were coming. As I said, that horn could have been a signal. Maybe that is. Well, if it is, we are forewarned at any rate. We should be able to handle whatever is ahead of us. We'll ride as high as we can. Look. What? There are another eagle. Circling for a height. What's that? Huh? See where the sun hits the eagle's claws? Who's over who? Can't be part of his claws. Too long for that. The way it reflects the sun, it could be steel. He could be the same bread we saw before. He's at least as powerful. Look there. He's stumped. Looks like he's just hanging in the air. He...Tonto. What matter? The horn, the bird that strikes from the air. Those stab wounds on Big Wolf. Those things that look like metal on his claws. Back, Tonto, back. I saw them out of a cave where we left that old fellow behind. I don't argue. Back, Silver. Quickly, old boy. Come on. If you value your life, Tonto, get to the cave before that eagle strikes. Here he comes. Come on, Silver. Come on. The masked man and Tonto would scarcely turn to retrace their path when the great eagle hovering overhead swooped suddenly and plunged for them with a speed of light. It cut the air like an arrow, released from a top bow aimed true to its target. The old man had come into view again, but the cave was still some distance away when the Lone Ranger realized it could not be reached in time. Oh, Silver. Oh, Silver. Oh, Silver. Oh, Silver. Oh, Silver. Oh, Silver. Oh, Silver. Oh, Silver. Oh, Silver. Look there at his claws. Steel spikes fixed to them. Ah. They had struck. One of us would have been dead. He had driven those spikes into the hilt.  Right. Got that gun.  Walk over here. All right. I'm going back to the fort as my prisoner. Light blazes, I am. Tonto, he's out of his head. He's running with the edge of the cliff. Get that man. Me get him. You're too late. I'm choosing my own way. You see now why he gave me that painted string of wampum, Tonto? It pointed me out to the eagle. He trained his eagle to strike at that lure. That's how he got rid of the others who opposed him. Whoever he wanted out of the way, he'd give them that brightly painted wampum. Release the eagle later and leave the rest to it. How him do that? It couldn't have been easy, Kimosabe, but you can see for yourself it's possible. In fact, others have done it before him.  Men were just a more difficult quarry. Ah. With those sharp metal spikes fixed to its talons and driven into a man by the full force of its plunge, any man not expecting the attack could be killed. Who that come? Oh, no, it's Colonel Miles.  Hank, haven't you both alive? Colonel, how did you get here? Why did you follow us? To warn you. Warn us? If the report I've had is correct, I know the man you're hunting. He's an old prospector who disappeared more than a year ago. He owns an eagle that he's trained, then. Is that the eagle you mean? It must be. He's just a tactis. The man you speak of is beyond your reach, sir. You'll find him at the bottom of the cliff. I don't understand. When he saw the game was up, he destroyed himself. Perhaps it was for the best. I see. He'd been playing a double role, out of a powerful white medicine man and the messenger who carried his wishes to the Indians. Sooner or later, if he hadn't died, he would have controlled every Indian in the territory. He was wanted for murder at the time he disappeared. So this is where the old fellow hid out. And as the horny used to call the eagle back after he struck Colonel, going that cave beyond and I think you'll find he kept it there. The man must have been mad. Completely. But he preferred taking his own life to facing a trial and the imprisonment he must have known would follow. He understood Indians, however. He did. He caught their imaginations, played on their fear, appealed to their love of the supernatural. And if you hadn't intervened, it might have driven every white from the territory. Come, Tutto. Washington will hear of this, lone ranger. Adios, sir. The story you have just heard is a copyrighted feature of the Lone Ranger Incorporated.