WEBVTT

00:00.000 --> 00:05.000
Okay.

00:05.000 --> 00:06.000
Okay.

00:06.000 --> 00:07.000
Great.

00:07.000 --> 00:08.000
All right.

00:08.000 --> 00:11.000
Our first speaker of today, that's not an organizer.

00:11.000 --> 00:14.000
We'll be David, and he's going to tell us about his project,

00:14.000 --> 00:17.000
Fafu-ti, and as you'll probably know this, or you know already,

00:17.000 --> 00:20.000
that basically every quantum project has to have a cue in the name.

00:20.000 --> 00:23.000
This one is no different.

00:23.000 --> 00:26.000
Otherwise, we lose our license to do quantum computing.

00:27.000 --> 00:31.000
And yeah, we'll be telling us about compiling to not just analog computers,

00:31.000 --> 00:34.000
but analog quantum computers.

00:34.000 --> 00:36.000
So, hi, I'm David.

00:36.000 --> 00:40.000
I'm a little bit scared because there are way more people than I expected,

00:40.000 --> 00:44.000
plus I'm speaking first, and I was hoping to have the opportunity to learn many

00:44.000 --> 00:46.000
things from other people who spoke before me.

00:46.000 --> 00:48.000
So, yeah.

00:48.000 --> 00:51.000
And thank you for today, all you about FFu-ti.

00:51.000 --> 00:54.000
So, FFu-ti is an ongoing experiment, more details in a second.

00:54.000 --> 00:56.000
I work for Pascal.

00:56.000 --> 01:00.000
Pascal is a hardware company that deals and deploys QPUs.

01:00.000 --> 01:02.000
We are based in France.

01:02.000 --> 01:04.000
We have offices all over the world.

01:04.000 --> 01:10.000
And we also make open source software for tools, programming languages, libraries, etc.

01:10.000 --> 01:13.000
Oh, pretty good at it, hopefully.

01:13.000 --> 01:17.000
And I need to tell you that we have a community portal,

01:17.000 --> 01:20.000
and we're launching it in a few days.

01:20.000 --> 01:22.000
Thanks for me.

01:22.000 --> 01:23.000
Hi.

01:23.000 --> 01:26.000
I'm officially the open source coordinator for Pascal,

01:26.000 --> 01:31.000
which means that I get to work on many libraries on topics that I do not necessarily understand.

01:31.000 --> 01:32.000
Lots of fun.

01:32.000 --> 01:35.000
Actually, it is. Lots of fun.

01:35.000 --> 01:39.000
But as background, I'm not a quantum computing guy,

01:39.000 --> 01:44.000
which is one more reason where I'm completely afraid and scared that I'm going to make a fool of myself.

01:44.000 --> 01:47.000
That, and I forgot to read my mask.

01:47.000 --> 01:50.000
I'm a system guy, a system programming,

01:50.000 --> 01:52.000
a distributed programming, and a compiler guy.

01:52.000 --> 01:56.000
So I've been contributing to open source for 20 plus years.

01:56.000 --> 02:02.000
I have left a few tracks in a few programming languages, protocols, and open source software.

02:02.000 --> 02:05.000
And so, yeah.

02:05.000 --> 02:09.000
I am going to tell you about some quantum computing things.

02:09.000 --> 02:12.000
Hopefully, I'm going to change your,

02:12.000 --> 02:14.000
the way you view some problems.

02:14.000 --> 02:18.000
I'm not going to introduce you to new quantum concepts

02:18.000 --> 02:21.000
if you are already familiar with quantum computing.

02:22.000 --> 02:25.000
So, what is this all about?

02:25.000 --> 02:26.000
It's about difficulty.

02:26.000 --> 02:28.000
It's an early stage experiment.

02:28.000 --> 02:30.000
It's about compiling.

02:30.000 --> 02:32.000
And it's about some of the lessons learned

02:32.000 --> 02:39.000
trying to develop this compiler for analog quantum computing architectures.

02:39.000 --> 02:44.000
Which means that I'm going to talk about quantum computing at some point.

02:44.000 --> 02:47.000
I think I'm in the right room for that.

02:47.000 --> 02:52.000
So, say hello to the Ising Hamiltonian.

02:52.000 --> 02:55.000
Thank you.

02:55.000 --> 03:01.000
This is, I mean, there are plenty of ways to look at what quantum computing,

03:01.000 --> 03:03.000
including many ways I've not been exposed to,

03:03.000 --> 03:06.000
but that's the way I look at it at the moment.

03:06.000 --> 03:08.000
This is a pretty large matrix.

03:08.000 --> 03:14.000
If you have any cubits, this is a two to the power of n squared matrix.

03:14.000 --> 03:18.000
And it has very interesting properties.

03:18.000 --> 03:23.000
The main interesting property, as far as I'm concerned for this presentation,

03:23.000 --> 03:27.000
is that on a classical computer,

03:27.000 --> 03:29.000
most of the interesting operations,

03:29.000 --> 03:33.000
much all of the interesting operations on this matrix.

03:33.000 --> 03:37.000
I have a time cost that is at least exponential in the number of cubits,

03:37.000 --> 03:40.000
which means that too many cubits,

03:40.000 --> 03:43.000
your computer just cannot execute them.

03:44.000 --> 03:48.000
On the quantum computer, many operations, not all of them,

03:48.000 --> 03:54.000
have a time cost that is polynomial in the number of cubits, probably,

03:54.000 --> 03:55.000
strictly.

03:55.000 --> 04:01.000
Which means that if you have a problem that you can quickly and

04:01.000 --> 04:04.000
realistically encode as this kind of matrix,

04:04.000 --> 04:08.000
you have the ability to run it theoretically,

04:08.000 --> 04:12.000
much faster on the quantum computer than on a computer.

04:12.000 --> 04:15.000
One on a classical computer,

04:15.000 --> 04:18.000
at least if your number n is large.

04:18.000 --> 04:21.000
That is the promise of quantum computing,

04:21.000 --> 04:22.000
one of them.

04:22.000 --> 04:25.000
That's the one I'm interested in at the moment.

04:25.000 --> 04:29.000
But that's why quantum computing might change the world.

04:29.000 --> 04:33.000
So there are two religions,

04:33.000 --> 04:36.000
two schools of thought, at least on quantum computing.

04:36.000 --> 04:38.000
One of them is the digital one,

04:38.000 --> 04:41.000
all the illustrations on the previous presentation,

04:41.000 --> 04:44.000
were about digital quantum computing.

04:44.000 --> 04:46.000
So you have these big matrix,

04:46.000 --> 04:48.000
and you take it by turning it into gates,

04:48.000 --> 04:51.000
gates that are simple transformations.

04:51.000 --> 04:54.000
I'm a compiler guy, I see those gates, I see,

04:54.000 --> 04:58.000
oh well, that's what we call an intermediate representation.

04:58.000 --> 05:01.000
When you compile, you start with source code,

05:01.000 --> 05:04.000
at some point you end up with a machine code.

05:04.000 --> 05:08.000
These gates are one way to simplify the work.

05:08.000 --> 05:12.000
So an intermediate representation between this surface level

05:12.000 --> 05:16.000
language and this machine language.

05:16.000 --> 05:19.000
If you have been following a little bit,

05:19.000 --> 05:21.000
actually, about quantum computing,

05:21.000 --> 05:24.000
there are, there have been many,

05:24.000 --> 05:27.000
a huge number of claims, but quite a few interesting discoveries

05:27.000 --> 05:30.000
related to gates recently.

05:30.000 --> 05:34.000
But one of the difficult gates is,

05:34.000 --> 05:39.000
we're still in this noisy intermediate state quantum stage

05:39.000 --> 05:43.000
at the moment, not all of these hypotheses

05:43.000 --> 05:46.000
have been proven yet in practice.

05:46.000 --> 05:51.000
There is, well, there is the hypothesis

05:51.000 --> 05:54.000
that quantum gates are good for logical

05:54.000 --> 05:56.000
or integer related algorithms,

05:56.000 --> 05:59.000
and possibly not good for other applications.

05:59.000 --> 06:02.000
Again, it's a possibility to hypothesis.

06:02.000 --> 06:05.000
And then you have the other school,

06:05.000 --> 06:07.000
which is analog quantum computing,

06:07.000 --> 06:12.000
in which, basically, instead of going to the gates,

06:12.000 --> 06:16.000
you embrace the fact that everything is noisy,

06:16.000 --> 06:18.000
that you have these big, weird metrics,

06:18.000 --> 06:20.000
and you go for these metrics,

06:20.000 --> 06:23.000
so you have waves, your hypothesis,

06:23.000 --> 06:26.000
but you have a way of a system to deal with.

06:26.000 --> 06:29.000
And there is the hypothesis that maybe this is better

06:29.000 --> 06:31.000
for simulations, machine learning,

06:31.000 --> 06:35.000
and things that do not need exact arithmetics.

06:35.000 --> 06:39.000
But by using analog,

06:39.000 --> 06:42.000
we have a much more complex system.

06:42.000 --> 06:44.000
So the question I'm trying to answer,

06:44.000 --> 06:47.000
and I do not have a definite answer for from it.

06:47.000 --> 06:49.000
The question I'm trying to answer is,

06:49.000 --> 06:51.000
we find a good intermediate representation

06:51.000 --> 06:54.000
that works nicely for analog.

06:55.000 --> 06:58.000
A few limitations about quantum computing.

06:58.000 --> 07:01.000
So first, I mentioned the word probabilistic.

07:01.000 --> 07:03.000
I'm going to mention it again.

07:03.000 --> 07:05.000
This makes things weird,

07:05.000 --> 07:08.000
at least if you come from classical computing.

07:08.000 --> 07:09.000
As I do,

07:09.000 --> 07:13.000
you are never quite sure what you're observing at the end.

07:13.000 --> 07:19.000
Was it, was it just luck or bad luck

07:19.000 --> 07:21.000
that your experiment failed?

07:22.000 --> 07:24.000
And clear.

07:24.000 --> 07:29.000
Also, if you look at how things work,

07:29.000 --> 07:31.000
at the moment we don't know how to do

07:31.000 --> 07:34.000
an if or while or a jump or anything

07:34.000 --> 07:38.000
like a conditional control element

07:38.000 --> 07:40.000
in any kind of circuit,

07:40.000 --> 07:44.000
at least not without wasting most of our students.

07:44.000 --> 07:48.000
And also in classical computing,

07:48.000 --> 07:51.000
there is a circuit called the flip-flop,

07:51.000 --> 07:52.000
which is very convenient,

07:52.000 --> 07:54.000
because you can store one and then you can change it

07:54.000 --> 07:56.000
and store zero, etc.

07:56.000 --> 08:00.000
It's the basics of how you have memory on computers.

08:00.000 --> 08:02.000
To this day, as far as I know,

08:02.000 --> 08:04.000
there is nothing that looks remotely

08:04.000 --> 08:06.000
like that in quantum computing.

08:06.000 --> 08:09.000
So it's a very different universe.

08:09.000 --> 08:11.000
So in a way,

08:11.000 --> 08:14.000
I have a few friends who do low-level GPU programming,

08:14.000 --> 08:17.000
those limitations are not completely

08:17.000 --> 08:20.000
dissimilar to what they have been dealing with

08:20.000 --> 08:24.000
for GPU programming, just weather.

08:24.000 --> 08:26.000
On the other hand,

08:26.000 --> 08:29.000
their most applications,

08:29.000 --> 08:30.000
most interesting applications,

08:30.000 --> 08:32.000
are hybrid applications,

08:32.000 --> 08:34.000
which combine CPU,

08:34.000 --> 08:37.000
CPU, possibly several phases of CPU,

08:37.000 --> 08:38.000
CPU, CPU, CPU, etc.

08:38.000 --> 08:40.000
And of course your CPU,

08:40.000 --> 08:42.000
your CPU has all the loops, has the memory

08:42.000 --> 08:44.000
and is not probabilistic.

08:45.000 --> 08:47.000
If you're a compiler guy,

08:47.000 --> 08:49.000
this is not called hybrid computing.

08:49.000 --> 08:51.000
This is called multi-tier compilation.

08:51.000 --> 08:53.000
Multi-tier compilation is fun.

08:53.000 --> 08:55.000
Yeah.

08:55.000 --> 08:57.000
So,

08:57.000 --> 08:58.000
clefty,

08:58.000 --> 09:00.000
not finished.

09:00.000 --> 09:02.000
Why do we want a compiler?

09:02.000 --> 09:04.000
Because that's the alternative.

09:04.000 --> 09:06.000
This is,

09:06.000 --> 09:09.000
this is machine code as far as I'm concerned.

09:09.000 --> 09:11.000
This is something running on some of the machine.

09:11.000 --> 09:14.000
It's part of the integration test,

09:14.000 --> 09:16.000
because it does our logo,

09:16.000 --> 09:19.000
and I have no clue what it does.

09:19.000 --> 09:21.000
In this materializes an algorithm,

09:21.000 --> 09:24.000
what does it do? Who knows?

09:24.000 --> 09:25.000
But as far as I'm concerned,

09:25.000 --> 09:26.000
that's machine code.

09:26.000 --> 09:30.000
So, we want to get away from machine code as much as possible.

09:30.000 --> 09:33.000
We want to move from source code to machine code,

09:33.000 --> 09:35.000
and usually when you're writing a compiler,

09:35.000 --> 09:37.000
quite often you have a runtime,

09:37.000 --> 09:39.000
for instance, if you're using Python or Java,

09:39.000 --> 09:41.000
you have the garbage collector,

09:41.000 --> 09:43.000
that is part of your runtime,

09:43.000 --> 09:45.000
and ideally you have a machine.

09:45.000 --> 09:49.000
So, not all the work that's done in quantum computing

09:49.000 --> 09:51.000
field has a machine.

09:51.000 --> 09:52.000
As it turns out, we have a machine.

09:52.000 --> 09:54.000
We have actual QPUs, physical ones,

09:54.000 --> 09:57.000
but this computer is running an emulator

09:57.000 --> 09:59.000
that is going to simulate things.

09:59.000 --> 10:02.000
The slides are not running on the emulator.

10:04.000 --> 10:07.000
Compiling, you have your source code.

10:07.000 --> 10:11.000
You're going to go through several intermediate representations.

10:13.000 --> 10:15.000
So, let's start with the source code.

10:15.000 --> 10:19.000
I did not pick the most sophisticated language to start with.

10:19.000 --> 10:22.000
This is just a logical formula.

10:22.000 --> 10:26.000
If I know that A and if I know that A implies B is B true,

10:26.000 --> 10:28.000
I want to be able to compile this

10:28.000 --> 10:31.000
to run it on a quantum architecture.

10:31.000 --> 10:36.000
So, again, not the most sophisticated language in existence,

10:36.000 --> 10:40.000
but there is at least one dev room this morning.

10:40.000 --> 10:42.000
That's dedicated in part to these kind of languages.

10:42.000 --> 10:45.000
So, it's not completely indigloable.

10:45.000 --> 10:48.000
Also, importantly, we have to start somewhere,

10:48.000 --> 10:51.000
and if we can find a good IR for this language,

10:51.000 --> 10:54.000
we can start working towards more complicated languages.

10:54.000 --> 10:59.000
If I have an IR for this, I actually know how to run more complicated things.

10:59.000 --> 11:02.000
So, we're going to transform it.

11:02.000 --> 11:04.000
First, we're going to get rid of the implications

11:04.000 --> 11:06.000
to just have ends, ors, and negations,

11:06.000 --> 11:10.000
and to have an idea of what we want to observe.

11:10.000 --> 11:14.000
Then, second IR, we're going to get rid of the end

11:14.000 --> 11:16.000
and turn it into a system.

11:16.000 --> 11:19.000
We're going to go through this formulation.

11:19.000 --> 11:26.000
It's called three sets. You can find it in every text book on a logical program.

11:26.000 --> 11:31.000
I'm going to use a few variables to fill the scheme,

11:31.000 --> 11:35.000
which may or may not be a good idea, but again, it's an experiment.

11:35.000 --> 11:43.000
Then, you turn it quantum effect, sometimes it's observable.

11:43.000 --> 11:47.000
Then, you turn it into another system,

11:47.000 --> 11:49.000
which basically means the same thing,

11:49.000 --> 11:54.000
but instead of having booleans, you have equality checks.

11:54.000 --> 11:57.000
Then, you turn it into another system,

11:57.000 --> 12:01.000
in which you have maximization instead of solving these equations.

12:01.000 --> 12:04.000
That's the beginning of something called cubo,

12:04.000 --> 12:09.000
if you're involved in quantum computing, you probably have heard of it.

12:09.000 --> 12:11.000
And we want maximization, why?

12:11.000 --> 12:15.000
Because maximization is something that our machine does it pretty well.

12:15.000 --> 12:18.000
This cubo, this is the exact same thing,

12:18.000 --> 12:21.000
but formulated as linear algebra,

12:21.000 --> 12:26.000
which we can then turn by a process that is semi-magical,

12:26.000 --> 12:30.000
basically, proved force at the moment, at least in my experiment.

12:30.000 --> 12:37.000
Into this, which is basically the source code, and laser.

12:37.000 --> 12:40.000
Which is basically the source code for that.

12:40.000 --> 12:46.000
So, we have gone from source code, which was one logical formula.

12:46.000 --> 12:52.000
And we have layout of, in our case, atoms for different

12:52.000 --> 12:56.000
manner of implementing quantum computing, other things,

12:56.000 --> 13:02.000
but for atoms, on a plane, plus some laser stuff.

13:02.000 --> 13:05.000
So, in theory, we can run that.

13:05.000 --> 13:07.000
Can we run that?

13:07.000 --> 13:12.000
So, first step is the compiler.

13:12.000 --> 13:18.000
So, it goes through the first few steps of intermediate for presentations.

13:18.000 --> 13:21.000
And, oh, this is the same matrix we had earlier.

13:21.000 --> 13:25.000
And, I made a mistake with copy and paste.

13:25.000 --> 13:30.000
And then, it is waiting a little bit.

13:30.000 --> 13:31.000
Yes.

13:31.000 --> 13:37.000
So, when I said brute force, the entire time was spent in the brute force.

13:37.000 --> 13:38.000
Here.

13:38.000 --> 13:41.000
Oh, great, quality of 18%.

13:41.000 --> 13:44.000
That's what can go wrong.

13:44.000 --> 13:52.000
So, this is source code.

13:52.000 --> 13:56.000
It's a bit unreadable, but it's basically, sorry, the machine code.

13:56.000 --> 14:09.000
So, it's a bit unreadable, but it's basically why it showed you on the slides earlier.

14:09.000 --> 14:11.000
And, no, let's run it.

14:12.000 --> 14:14.000
So, this is non deterministic.

14:14.000 --> 14:19.000
It doesn't always show something.

14:19.000 --> 14:21.000
That is not a bug.

14:21.000 --> 14:24.000
Actually, it's not a bug in that part.

14:24.000 --> 14:29.000
It doesn't always show something, because sometimes there are just no usable results.

14:29.000 --> 14:36.000
But, if you look at it, so, it gave me, I don't know if you can read this from what you are,

14:36.000 --> 14:40.000
but it gave me solutions that are false.

14:40.000 --> 14:43.000
Which is a bit annoying.

14:43.000 --> 14:53.000
So, earlier this week, I had solutions that were right, but I found that it was a bug.

14:53.000 --> 14:56.000
Well, at this point, I'm awfully confused.

14:56.000 --> 14:57.000
Oh, gosh, what am I doing?

14:57.000 --> 14:59.000
I gave a demo that failed.

14:59.000 --> 15:02.000
What am I going to say when I get back home?

15:02.000 --> 15:03.000
No.

15:03.000 --> 15:08.000
I'm actually not showing something that works in this period of transparency.

15:08.000 --> 15:12.000
Thank you for introducing the concept, because, yeah, we need that.

15:12.000 --> 15:14.000
So, what went wrong?

15:14.000 --> 15:20.000
So, to the best of my understanding, what went wrong is that.

15:20.000 --> 15:30.000
So, this is the metrics we obtained at, I think, the fifth step of intermediate presentations,

15:30.000 --> 15:33.000
and it has 36 numbers.

15:34.000 --> 15:42.000
But, we are trying to get it to compile with six qubits, which may give us 18 parameters,

15:42.000 --> 15:44.000
and a few physical constructs.

15:44.000 --> 15:47.000
We have an impedance mismatch here.

15:47.000 --> 15:57.000
So, naively, I tried to get it to work with some theoretical results that I found in a paper.

15:57.000 --> 16:02.000
Those theoretical results are probably completely true, but don't work for me.

16:03.000 --> 16:09.000
So, we have an impedance mismatch, because we have made a cardinal scene in compiler at some point.

16:09.000 --> 16:14.000
We have an intermediate representation that is more powerful than the final representation,

16:14.000 --> 16:19.000
and we cannot always go from one step to the next step.

16:19.000 --> 16:20.000
So, what can we do?

16:20.000 --> 16:23.000
So, it's an ongoing experiment.

16:23.000 --> 16:27.000
So, there are other versions of cubo, this intermediate representation,

16:27.000 --> 16:31.000
but require more cubits, and that hopefully works better.

16:31.000 --> 16:35.000
I have started experimenting, but I haven't finished yet.

16:35.000 --> 16:40.000
Or, invariant, perhaps we can find something non-cubo that would work.

16:40.000 --> 16:45.000
I have vague intuitions here, but nothing that even remotely looks like an experiment yet.

16:45.000 --> 16:48.000
So, we'll see next here about that.

16:48.000 --> 16:50.000
So, a few last words.

16:50.000 --> 16:52.000
Can we write a compiler?

16:53.000 --> 16:58.000
Well, all of this suggests that, yes, we can probably write a compiler.

16:58.000 --> 17:01.000
I mean, everything works right.

17:01.000 --> 17:06.000
But, we might not have the right AR, I.R. Sorry.

17:06.000 --> 17:10.000
So, maybe it's not entirely validated yet.

17:10.000 --> 17:13.000
But, we can draw a few lessons.

17:13.000 --> 17:14.000
Four one thing.

17:14.000 --> 17:17.000
So, this name I.R. was not sufficient.

17:17.000 --> 17:20.000
Despite the fact that the research papers were talking about it,

17:20.000 --> 17:25.000
were really confident about their applicability.

17:25.000 --> 17:29.000
In some of the cases, it should have worked here.

17:29.000 --> 17:31.000
That's one thing.

17:31.000 --> 17:34.000
Why did it take me so much time to understand the problem?

17:34.000 --> 17:37.000
Because testing a probabilistic system is really complicated.

17:37.000 --> 17:40.000
I don't think that we have a good solution for this yet.

17:40.000 --> 17:43.000
If someone has a good solution and is speaking later today,

17:43.000 --> 17:47.000
I would really, really learn to, I love to hear about this.

17:48.000 --> 17:51.000
Another thing is, so many I.Rs, it's really easy to get lost,

17:51.000 --> 17:56.000
especially since several of them are just numbers.

17:56.000 --> 18:00.000
And, yeah, another thing is, you've seen the big break,

18:00.000 --> 18:03.000
the big pose during compilation.

18:03.000 --> 18:06.000
I actually overdid it because usually it's quicker.

18:06.000 --> 18:10.000
I just increase the number of iterations.

18:10.000 --> 18:14.000
But, this is going to be a problem for big hybrid systems,

18:14.000 --> 18:18.000
in which you'll go from CPU to CPU to CPU to CPU.

18:18.000 --> 18:23.000
Handle the results, produce a new computation, compile again,

18:23.000 --> 18:25.000
to CPU to CPU to CPU to CPU to CPU to CPU.

18:25.000 --> 18:29.000
So this is a problem that we will need to solve as a community at some point.

18:29.000 --> 18:34.000
I have not seen anyone working on that yet, maybe I've just missed the research.

18:34.000 --> 18:39.000
On the other hand, I have good hope for competitors,

18:39.000 --> 18:43.000
because I don't think any of the problems is impossible to solve.

18:43.000 --> 18:48.000
And, having using rest for prototyping is really useful

18:48.000 --> 18:52.000
because of all the invariants that I needed to keep in mind,

18:52.000 --> 18:55.000
having a strong type system really helped.

18:55.000 --> 19:00.000
So, to do replace the cubo demonstrate other compiler frontends,

19:00.000 --> 19:03.000
so other languages than these logical language,

19:03.000 --> 19:08.000
I know how to do it for one or two languages, others I don't know yet.

19:09.000 --> 19:12.000
And, I'm pretty confident that we can use fewer cubo,

19:12.000 --> 19:16.000
or cubo, it's at some layer, maybe not all.

19:16.000 --> 19:20.000
I asked you to remind me to tell you about the community.

19:20.000 --> 19:23.000
Thank you for reminding me.

19:23.000 --> 19:31.000
So, we are launching our community portal in a few days.

19:31.000 --> 19:36.000
It's a good place to have tutorials and events course for collaboration.

19:36.000 --> 19:38.000
We have for our first open source.

19:38.000 --> 19:40.000
We definitely need to get in touch with you,

19:40.000 --> 19:42.000
literally, about that.

19:42.000 --> 19:44.000
And we also provide access to physical,

19:44.000 --> 19:46.000
cubo use and hydrophotone museum innovator.

19:46.000 --> 19:49.000
All the links are on the schedule.

19:49.000 --> 19:50.000
Thank you.

19:50.000 --> 19:51.000
Thank you.

19:51.000 --> 19:54.000
Thank you.

