Re: OpenExr 2.3 - slower write speeds for Uncompressed and Zip1

Peter Hillman <[email protected]> Wed, 3 Apr 2019 06:30:48 +0000
Newsgroups gmane.comp.video.openexr.devel
Message-ID <SY2PR01MB3113BC27724EEDBE5505123CE5570@SY2PR01MB3113.ausprd01.prod.outlook.com>
--_007_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: multipart/related;
	boundary="_006_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_";
	type="multipart/alternative"

--_006_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: multipart/alternative;
	boundary="_000_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_"

--_000_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

I've just been running tests myself along the same lines.
I tried comparing writing various schemes with EXR-2.2.1, EXR-2.3.0 and EXR=
-2.3.0 using an IlmBase build with ILMBASE_FORCE_CXX03 (passing --enable-st=
dcxx=3D03 to ./configure)
This attempts to use the API in a similar way to the Nuke exrWriter example=
 (my code attached)

Conclusions:

I don't think ILMBASE_FORCE_CXX03 has a difference in my test.
I find no reliable speed difference between 2.2.1 and 2.3.0 where no thread=
pool is used (so running the attached test using testEXR zips none 1 /tmp/t=
est.exr) or the number of threads is close to the number of CPU cores regar=
dless of compression scheme (e.g. with 4 cores try testEXR zips 4 20 /tmp/t=
est.exr) .
I did manage to make 2.3.0 go slower than 2.2.1, by running testEXR zips 10=
0 10 /tmp/test.exr which means there are 100 threads allocated, but only a =
(random?) 10 of those have anything to do each time, since only 10 scanline=
s are written at once, and those 10 are fighting for (in my case) 4 cores. =
Both 2.2.1 and 2.3.0 run slower with excessive threadpools, but the effect =
is significantly more in 2.3.0.

I wonder if somehow Nuke's other threads are interfering with EXRs threadpo=
ol operation in 2.3.0 in a way they aren't in 2.2.1? It might be interestin=
g to implement a test like the attached as a self-contained method triggere=
d from a button press in a Nuke node, so it runs within Nuke's existing fra=
mework but doesn't use any Nuke functionality at all, and see if there's a =
difference between that and running the function as a standalone binary out=
side of Nuke.

I'm intrigued that, according to the graph, the compression schemes that wr=
ite single scanlines at once have slowed down, and the ones that write many=
 scanlines at once have sped up. Schemes that write multiple scanlines per =
block have lower overhead through IlmThread. In my case I didn't see any si=
gnificant speedups with 2.3.0 in any scheme.

Peter

________________________________
From: Openexr-devel <[email protected]=
> on behalf of Nick Porcino <[email protected]>
Sent: Wednesday, 3 April 2019 5:05 PM
To: Tony Micilotta; [email protected]
Subject: Re: [Openexr-devel] OpenExr 2.3 - slower write speeds for Uncompre=
ssed and Zip1



One of the big differences between 2.2 and 2.3 is that we moved from pthrea=
d to std::thread, and made a number of corrections for thread safety.



e.g.



https://github.com/openexr/openexr/commit/eea1e607177e339e05daa1a2ec969a9dd=
12f2497



https://github.com/openexr/openexr/commit/bf0cb8cdce32fce36017107c9982e1e5d=
b2fb3fa



The old pthread/windows native implementation can be re-enabled by setting =
the preprocessor define ILMBASE_FORCE_CXX03. I am wondering if you might be=
 able to benchmark against that version of the code as an experiment to get=
 more information?





________________________________
From: Openexr-devel <[email protected]=
> on behalf of Tony Micilotta <[email protected]>
Sent: Monday, April 1, 2019 8:27:29 AM
To: [email protected]
Subject: [Openexr-devel] OpenExr 2.3 - slower write speeds for Uncompressed=
 and Zip1


Hi,



At Foundry we=92ve started testing the read performance of OpenExr 2.3 with=
 Boost 1.66 as we move Nuke towards conforming to VFX Reference Platform 20=
19. Although the release notes don=92t mention any changes to file writing,=
 we have charted (see graphic below) OpenExr 2.3 write performance against =
OpenExr 2.2 as we noticed a slowdown in our playback cache generation which=
 uses OpenExr.



From Nuke, a checkerboard/colourwheel combination is generated and animated=
 over 100 frames in order to eliminate file reading from the measurements. =
These 100 frames are written to disk using each compression type, and the t=
imings are averaged over 10 test runs. Certain compression types show an im=
provement which is great, however we=92re concerned that Uncompressed and Z=
ip1 are 13% and 9% slower respectively:



[/var/folders/40/8tkm41ts6pl0g3qvshsrrnpc0001xc/T/com.microsoft.Outlook/Con=
tent.MSO/515C417.tmp]



Have you benchmarked this on your side too, and have you noticed similar me=
trics?



Regards,

Tony





Tony Micilotta

Senior Technical Product Manager - Nuke Family

[https://lh6.googleusercontent.com/x8JxqXcMjULW_8dLygamrZxWcjpFchCVThRNxLrF=
SEsE_i1aMPBED6FYrUWu6lT54vMN4z1x3D59uPxzh1ughmlVxH5-6yflHx_SZlGAUZV3NA3FatI=
rHplrrBasCyGa3MhHz8Ti]

Tel: +44 (0)20 7479 4350

Web: www.foundry.com<https://www.foundry.com/>

The Foundry Visionmongers Ltd.  -  Registered in England and Wales No: 4642=
027  -  Address: 5 Golden Square, London, W1F 9HT  -  VAT No: 672742224



--_000_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
I've just been running tests myself along the same lines. <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
I tried comparing writing various schemes with EXR-2.2.1, EXR-2.3.0 and EXR=
-2.3.0 using an IlmBase build with
<span>ILMBASE_FORCE_CXX03</span> (passing --enable-stdcxx=3D03 to ./configu=
re)</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
This attempts to use the API in a similar way to the Nuke exrWriter example=
 (my code attached)</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Conclusions:<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
I don't think <span>ILMBASE_FORCE_CXX03</span> has a difference in my test.=
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
I find no reliable speed difference between 2.2.1 and 2.3.0 where no thread=
pool is used (so running the attached test using
<b>testEXR zips none 1 /tmp/test.exr</b>) or the number of threads is close=
 to the number of CPU cores regardless of compression scheme (e.g. with 4 c=
ores try
<b>testEXR zips 4 20 /tmp/test.exr</b>) .<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
I <i>did</i> manage to make 2.3.0 go slower than 2.2.1, by running <b>testE=
XR zips 100 10 /tmp/test.exr</b> which means there are 100 threads allocate=
d, but only a (random?) 10 of those have anything to do each time, since on=
ly 10 scanlines are written at once,
 and those 10 are fighting for (in my case) 4 cores. Both 2.2.1 and 2.3.0 r=
un slower with excessive threadpools, but the effect is significantly more =
in 2.3.0.</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
I wonder if somehow Nuke's other threads are interfering with EXRs threadpo=
ol operation in 2.3.0 in a way they aren't in 2.2.1? It might be interestin=
g to implement a test like the attached as a self-contained method triggere=
d from a button press in a Nuke
 node, so it runs within Nuke's existing framework but doesn't use any Nuke=
 functionality at all, and see if there's a difference between that and run=
ning the function as a standalone binary outside of Nuke.</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
I'm intrigued that, according to the graph, the compression schemes that wr=
ite single scanlines at once have slowed down, and the ones that write many=
 scanlines at once have sped up. Schemes that write multiple scanlines per =
block have lower overhead through
 IlmThread. In my case I didn't see any significant speedups with 2.3.0 in =
any scheme.</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Peter</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" face=
=3D"Calibri, sans-serif" color=3D"#000000"><b>From:</b> Openexr-devel &lt;o=
penexr-devel-bounces&#43;[email protected]&gt; on behalf of =
Nick Porcino &lt;[email protected]&gt;<br>
<b>Sent:</b> Wednesday, 3 April 2019 5:05 PM<br>
<b>To:</b> Tony Micilotta; [email protected]<br>
<b>Subject:</b> Re: [Openexr-devel] OpenExr 2.3 - slower write speeds for U=
ncompressed and Zip1</font>
<div>&nbsp;</div>
</div>
<br>
<div lang=3D"EN-GB">
<div>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<div class=3D"x_WordSection1">
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
One of the big differences between 2.2 and 2.3 is that we moved from pthrea=
d to std::thread, and made a number of corrections for thread safety.</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
&nbsp;</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
e.g.</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
&nbsp;</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<a href=3D"https://github.com/openexr/openexr/commit/eea1e607177e339e05daa1=
a2ec969a9dd12f2497">https://github.com/openexr/openexr/commit/eea1e607177e3=
39e05daa1a2ec969a9dd12f2497</a></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
&nbsp;</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
https://github.com/openexr/openexr/commit/bf0cb8cdce32fce36017107c9982e1e5d=
b2fb3fa</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
&nbsp;</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
The old pthread/windows native implementation can be re-enabled by setting =
the preprocessor define
<span class=3D"x_blob-code-inner">ILMBASE_FORCE_CXX03. I am wondering if yo=
u might be able to benchmark against that version of the code as an experim=
ent to get more information?</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
&nbsp;</p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
&nbsp;</p>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" face=
=3D"Calibri, sans-serif" color=3D"#000000"><b>From:</b> Openexr-devel &lt;o=
penexr-devel-bounces&#43;[email protected]&gt; on behalf of =
Tony Micilotta &lt;[email protected]&gt;<br>
<b>Sent:</b> Monday, April 1, 2019 8:27:29 AM<br>
<b>To:</b> [email protected]<br>
<b>Subject:</b> [Openexr-devel] OpenExr 2.3 - slower write speeds for Uncom=
pressed and Zip1</font>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_WordSection1">
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">Hi,</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">At Foundry we=92ve started testing the rea=
d performance of OpenExr 2.3 with Boost 1.66 as we move Nuke towards confor=
ming to VFX Reference Platform 2019. Although the release notes don=92t men=
tion any changes to file writing, we have
 charted (see graphic below) OpenExr 2.3 write performance against OpenExr =
2.2 as we noticed a slowdown in our playback cache generation which uses Op=
enExr.</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">From Nuke, a checkerboard/colourwheel comb=
ination is generated and animated over 100 frames in order to eliminate fil=
e reading from the measurements. These 100 frames are written to disk using=
 each compression type, and the timings
 are averaged over 10 test runs. Certain compression types show an improvem=
ent which is great, however we=92re concerned that Uncompressed and Zip1 ar=
e 13% and 9% slower respectively:</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt"><img id=3D"x_Picture_x0020_1" alt=3D"/var/=
folders/40/8tkm41ts6pl0g3qvshsrrnpc0001xc/T/com.microsoft.Outlook/Content.M=
SO/515C417.tmp" style=3D"width:6.2291in; height:3.8541in" width=3D"598" hei=
ght=3D"370" data-outlook-trace=3D"F:1|T:1" src=3D"cid:image001.png@01D4E8A7=
.CCDAA290"></span><span style=3D"font-size:11.0pt"></span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">Have you benchmarked this on your side too=
, and have you noticed similar metrics?</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">Regards,</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">Tony</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
<p style=3D"margin-top:0cm; background:white"><b><span style=3D"font-size:9=
.0pt; font-family:&quot;Helvetica Neue&quot;; color:#888888"><br>
Tony Micilotta</span></b><span style=3D"font-size:12.0pt; font-family:&quot=
;Arial&quot;,sans-serif; color:#222222"></span></p>
<p style=3D"margin-top:0cm; background:white; font-variant-ligatures:normal=
; font-variant-caps:normal; orphans:2; text-align:start; widows:2; text-dec=
oration-style:initial; text-decoration-color:initial; word-spacing:0px">
<span style=3D"font-size:9.0pt; font-family:&quot;Helvetica Neue&quot;; col=
or:#888888">Senior Technical Product Manager - Nuke Family</span><span styl=
e=3D"font-size:12.0pt; font-family:&quot;Arial&quot;,sans-serif; color:#222=
222"></span></p>
<p style=3D"margin-top:0cm; background:white; font-variant-ligatures:normal=
; font-variant-caps:normal; orphans:2; text-align:start; widows:2; text-dec=
oration-style:initial; text-decoration-color:initial; word-spacing:0px">
<span style=3D"font-size:9.5pt; font-family:&quot;Helvetica Neue&quot;; col=
or:#888888"><img id=3D"x_Picture_x0020_3" alt=3D"https://lh6.googleusercont=
ent.com/x8JxqXcMjULW_8dLygamrZxWcjpFchCVThRNxLrFSEsE_i1aMPBED6FYrUWu6lT54vM=
N4z1x3D59uPxzh1ughmlVxH5-6yflHx_SZlGAUZV3NA3FatIrHplrrBasCyGa3MhHz8Ti" styl=
e=3D"width:1.5625in; height:.2604in" width=3D"150" height=3D"25" data-outlo=
ok-trace=3D"F:1|T:1" src=3D"cid:[email protected]"></span><spa=
n style=3D"font-size:12.0pt; font-family:&quot;Arial&quot;,sans-serif; colo=
r:#222222"></span></p>
<p style=3D"margin-top:0cm; background:white; font-variant-ligatures:normal=
; font-variant-caps:normal; orphans:2; text-align:start; widows:2; text-dec=
oration-style:initial; text-decoration-color:initial; word-spacing:0px">
<b><span style=3D"font-size:9.0pt; font-family:&quot;Helvetica Neue&quot;; =
color:#888888">Tel</span></b><span style=3D"font-size:9.0pt; font-family:&q=
uot;Helvetica Neue&quot;; color:#888888">:
</span><span style=3D"font-size:9.0pt; font-family:&quot;Helvetica Neue&quo=
t;; color:#1155CC">&#43;44 (0)20 7479 4350</span><span style=3D"font-size:1=
2.0pt; font-family:&quot;Arial&quot;,sans-serif; color:#222222"></span></p>
<p style=3D"margin-top:0cm; background:white; font-variant-ligatures:normal=
; font-variant-caps:normal; orphans:2; text-align:start; widows:2; text-dec=
oration-style:initial; text-decoration-color:initial; word-spacing:0px">
<b><span style=3D"font-size:9.0pt; font-family:&quot;Helvetica Neue&quot;; =
color:#888888">Web:
</span></b><span style=3D"font-size:12.0pt; font-family:&quot;Arial&quot;,s=
ans-serif; color:#222222"><a href=3D"https://www.foundry.com/" target=3D"_b=
lank"><span style=3D"font-size:9.0pt; font-family:&quot;Helvetica Neue&quot=
;; color:#1155CC">www.foundry.com</span></a></span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-family:&quot;Arial&quot;,sans-serif; color:#222222"><br=
>
</span><span style=3D"font-size:8.0pt; font-family:&quot;Helvetica Neue&quo=
t;; color:#999999; background:white">The Foundry Visionmongers Ltd. &nbsp;-=
 &nbsp;Registered in England and Wales No: 4642027 &nbsp;- &nbsp;Address: 5=
 Golden Square, London, W1F 9HT &nbsp;- &nbsp;VAT No: 672742224</span><span=
 style=3D"font-size:11.0pt"></span></p>
<p class=3D"x_MsoNormal" style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt=
; font-family: &quot;Calibri&quot;, sans-serif;margin: 0in 0in 0.0001pt; fo=
nt-size: 11pt; font-family: &quot;Calibri&quot;, sans-serif;">
<span style=3D"font-size:11.0pt">&nbsp;</span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_--

--_006_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: image/png; name="image001.png"
Content-Description: image001.png
Content-Disposition: inline; filename="image001.png"; size=21294;
	creation-date="Mon, 01 Apr 2019 19:45:54 GMT";
	modification-date="Mon, 01 Apr 2019 19:45:54 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAlgAAAFzCAYAAADi5Xe0AAAgAElEQVR4Xu3dCZQU1b3H8f8MMOzb
gDDsyCIqiwqiQqJJUFEWg0Gf5ilqgODKrhkRZBFZxKAIBBDEQBQUgSgKGhFR4hIVIiCLouz7joDD
Ngwz7/yvr9ueYXq6qqequ7r7W+d4SHpu3a77uberfnWrujopJycnR1gQQAABBBBAAAEEHBNIImA5
ZklFCCCAAAIIIICAESBgMRAQQAABBBBAAAGHBQhYDoNSHQIIIIAAAgggQMBiDCCAAAIIIIAAAg4L
ELAcBqU6BBBAAAEEEECAgMUYQAABBBBAAAEEHBYgYDkMSnUIIIAAAggggAABizGAAAIIIIAAAgg4
LEDAchiU6hBAAAEEEEAAAQIWYwABBBBAAAEEEHBYgIDlMCjVIYAAAggggAACBCzGAAIIIIAAAggg
4LCA4wHr7NmzcubMGSlTpkyuTdXX9b9SpUoFbUKwMlbWddiF6hBAAAEEEEAAgbAFHA1Ys2fPlvXr
18u5c+ckLS1N+vXrZzZs+vTpkpGRYcKV/tunTx8pUqRIro0OVsbKumG3nhURQAABBBBAAAEXBBwL
WGvWrJF9+/ZJ27ZtZefOnTJx4kTp1KmTmbVavHixjBgxwoSq4cOHS4sWLaRDhw7+5ixbtizfMqVL
lw65rgsmVIkAAggggAACCBRKwLGAFbgVWVlZMmjQIHnooYfkrbfeMiErPT0912xW3759/auMGzcu
3zI5OTkh1y1U61kZAQQQQAABBBBwQcCVgPXJJ5/I0qVL5amnnpJRo0ZJyZIl/ZcLZ82aJRs2bDAz
Wr4lWBm9pBhqXRdMqBIBBBBAAAEEECiUgOMBS++/GjNmjHTp0kVq164tY8eOlezsbP8M1syZM2XH
jh0yZMgQ/4YHK6MBK9S6hWo9KyOAAAIIIIAAAi4IOB6wXnrpJWnWrJlcffXVZnNffvll2b17tz9Q
TZo0yYSmXr16+ZsTrIwGrFDrumBClQgggAACCCCAQKEEHA1Y8+fPN49ouP76682/77//vtx0000y
ZcoUE7D0pvWhQ4eam9+bN28uBw4ckK1bt0rVqlXzLZOamhp03UK1mpURQAABBBBAAAEXBRwLWMuX
LxcNWIFL3bp15eGHH5a5c+fK5s2bpUqVKubP3bt3N//qYx3WrVsno0ePDlom2LoumlA1AggggAAC
CCBQKAHHAlaordBvEuq3AlNSUvxF9VLhqVOnzMyWLvmVKej1UO/J3xFAAAEEEEAAgWgIRCxgRaNx
vCcCCCCAAAIIIBANgbgKWHv27JG9e/dGw5H3RAABBBBAAIEYF6hWrZpUr149VytOZ2bLqx/st9Sy
okWTpOvNaaZszAQs/TZhjRo1LDWQQggggAACCCCAgBMCf52zU974+IDlqtL/t7bc8dsLvBewDh48
aH67UH8sWu/JatCggWzZssU82qF///6WG0hBBBBAAAEEEECgsALPztkhcz8+aLma9D/Wkjt+V8V7
AUsfOlqpUiXp2rWreYaWfuNQn/reo0cP8zgHFgQQQAABBBBAIFICcRGwTp8+bZ6X1bt3bylXrpws
XLjQXAvVZ2V169YtUpa8DwIIIIAAAgggYATiImBpQ4YNGyaNGjUyN6vfddddMnXqVPOvPmOrWLFi
5iGlDRs2pNsRQAABBBBAAAHXBeImYGVmZsqqVaukSZMmsmjRIhOqVqxYIa1atZL27dubh5Ped999
roPyBggggAACCCCAQNwELF9XHjt2TMaPHy+tW7eWJUuWyMiRI83vEq5du1Y6duxIjyOAAAIIIIAA
Aq4LxF3Amjx5srRs2VIOHz5sZrAGDx4sM2bMkM6dO0v58uVdB+UNEEAAAQQQQACBuApYO3bskDlz
5kh6erroTNa4ceOkcuXKUr9+fWnXrh29jQACCCCAAAIIREQgrgKWhqqkpCTzTUIWBBBAAAEEEEAg
WgJxFbCihcj7IoAAAggggAACgQK2n+Tu1QeN0q0IIIAAAggggIBXBE6d0d8i3Gdpc4oVTZau7WLs
twgttYxCCCCAAAIIIICABwRi5seePWDFJiCAAAIIIIAAApYECFiWmCiEAAIIIIAAAghYFyBgWbei
JAIIIIAAAgggYEmAgGWJiUIIIIAAAggggIB1AQKWdStKIoAAAggggAAClgQIWJaYKIQAAggggAAC
CFgXIGBZt6IkAggggAACCCBgSYCAZYmJQggggAACCCCAgHUBApZ1K0oigAACCCCAAAKWBAhYlpgo
hAACCCCAAAIIWBcgYFm3oiQCCCCAAAIIIGBJgIBliYlCCCCAAAIIIICAdQEClnUrSiKAAAIIIIAA
ApYECFiWmCiEAAIIIIAAAghYFyBgWbeiJAIIIIAAAgggYEmAgGWJiUIIIIAAAggggIB1AQKWdStK
IoAAAggggAAClgQIWJaYKIQAAggggAACCFgXIGBZt6IkAggggAACCCBgSYCAZYmJQggggAACCCCA
gHUBApZ1K0oigAACCCCAAAKWBAhYlpgohAACCCCAAAIIWBcgYFm3oiQCCCCAAAIIIGBJgIBliYlC
CCCAAAIIIICAdQEClnUrSiKAAAIIIIAAApYECFiWmCiEAAIIIIAAAghYFyBgWbeiJAIIIIAAAggg
YEmAgGWJiUIIIIAAAggggIB1AQKWdStKIoAAAggggAAClgQIWJaYKIQAAggggAACCFgXIGBZt6Ik
AggggAACCCBgSYCAZYmJQggggAACCCCAgHUBApZ1K0oigAACCCCAAAKWBAhYlpgohAACCCCAAAII
WBcgYFm3oiQCCCCAAAIIIGBJgIBliYlCCCCAAAIIIICAdQEClnUrSiKAAAIIIIAAApYECFiWmCiE
AAIIIIAAAghYFyBgWbeiJAIIIIAAAgggYEmAgGWJiUIIIIAAAggggIB1AQKWdStKIoAAAggggAAC
lgQIWJaYKIQAAggggAACCFgXIGBZt6IkAggggAACCCBgSYCAZYmJQggggAACCCCAgHUBApZ1K0oi
gAACCCCAAAKWBAhYlpgohAACCCCAAAIIWBcgYFm3oiQCCCCAAAIIIGBJgIBliYlCCCCAAAIIIICA
dQEClnUrSiKAAAIIIIAAApYECFiWmCiEAAIIIIAAAghYFyBgWbeiJAIIIIAAAgggYEmAgGWJiUII
IIAAAggggIB1AQKWdStKIoAAAggggAAClgRcCVinTp2SkiVL5tqAs2fPiv5XqlSpoBsWrIyVdS21
lkIIIIAAAggggEAEBBwNWLt375YFCxbIrl27ZPTo0f7Nnz59umRkZJhwpf/26dNHihQpkqt5wcpY
WTcCTrwFAggggAACCCBgWcDRgJWZmSnLly+XhQsXypgxY8xGLFu2TBYvXiwjRowwoWr48OHSokUL
6dChg38jg5UpXbp0yHUtt5SCCCCAAAIIIIBAhAQcDVi6zV988YWZxfIFrHHjxplLg+np6aZJvhmp
vn37+psYrExOTk7IdSPkxNsggAACCCCAAAKWBVwPWKNGjTL3Y/Xr189s1KxZs2TDhg1mRsu3BCuj
lxRDrWu5pRREAAEEEEAAAQQiJOB6wBo7dqxkZ2f7Z7BmzpwpO3bskCFDhvibGKyMBqxQ60bIibdB
AAEEEEAAAQQsC7gesF5++WXRm999gWrSpEkmNPXq1cu/kcHKaMAKta7lllIQAQQQQAABBBCIkIDj
Aevzzz+Xd955x38P1rZt22TKlCkmYOlN60OHDpVOnTpJ8+bN5cCBA7J161apWrVqvmVSU1ODrhsh
H94GAQQQQAABBBCwLeBowNIw9dprr8nRo0elZcuWctttt0lycrLMnTtXNm/eLFWqVDEb2L17d/Pv
7NmzZd26deaRDsHKBHvddktZAQEEEEAAAQQQiJCAowGroG3WbxLqtwJTUlL8xfRSoT6UVGe2dMmv
TEGvR8iIt0EAAQQQQAABBGwJRCxg2dqqMAvv2bNH9u7dG+barIYAAggggAACiSxQrVo1qV69uiME
cRWwHBGhEgQQQAABBBBAoJACMROw9NuENWrUKGRzWR0BBBBAAAEEwhXYuOuUDJy+RbbtOx1uFY6t
1+TC0jLw7jrSsGbu3z527A0KWZHnAtbBgwfN097LlClj7slq0KCBbNmyxTzaoX///oVsLqsjgAAC
CCCAQLgCtw9d74lw5dv+pvVKy4zHLw63Oa6u57mApQ8drVSpknTt2lX0+Vj6jUN96nuPHj3M4xxY
EEAAAQQQ8KKAzu6MmrVd1m49EfXN0+AxsEsdaVjD2dmdKx/4Oupty7sB/53awnPbpBvkqYB1+vRp
87ys3r17S7ly5cyPRuvNZvqsrG7dunkSkI1CAAEEEEBABbqO2SBrt0Q/XLk5u0PAsj7WPRWwdLOH
DRsmjRo1Mt8GvOuuu2Tq1Knm3/nz50uxYsXMQ0obNmxovYWURAABBBBAIAICiRA+EqGNTg0VzwWs
zMxMWbVqlTRp0kQWLVpkQtWKFSukVatW0r59e/Nw0vvuu8+p9lMPAggggAACjggkQvjI20a9FHlZ
/TIya8n+Ag3v+F0VmfvxgbCd770pTdZuyZBVGzPOq4NLhDZZjx07JuPHj5fWrVvLkiVLZOTIkeZ3
CdeuXSsdO3a0WRvFEUAAAQQQcFcg0QLWS481kkvrlpLjJ85JxbJFZe6yg/L83J25kCf0bigX1y4l
P53MkgsqpMi/vjosU9/ZI+8/20ySkpJMWf0nO0fkqge/NmUn9GogRYsmS3KSyN7DmVK6RLJUTU2R
P//1+3wvwRKwbI7ryZMnm5/bOXz4sJnBGjx4sMyYMUM6d+4s5cuXt1kbxRFAAAEEEHBXINzZHd2q
ti1TpXXjcjJs5jb/Rlqd9Ynk7I6vjTUqF5e3RjSRtz87JCNnbZc5Qy6VtNQU+W3f1bmQv5rSXL7f
eUruHfWdvDOqqRQrkiRLV/4oVSqmSPqLm03ZVwZeYtZt+9g3MvvJS+TCtBLSuucqeWPopfLul0fk
f35zgew9fEbuf+6HfDuQgGVjXO/YsUPmzJkj6enpojNZ48aNk8qVK0v9+vWlXbt2NmqiKAIIIBAb
AvoNtCde8sbzheqmlZDRPep59vlCXu3RwIBlZXZH2/HYnbWkY6tKcjozW75Yf1ye+sc2Gd+rgVxz
aTkpkpwkmWezZfLbe8wlOC/M7vja2Pf2mtLlxqpm1urZ13fIsw/WlzZXVJBeEzaadviWd0Y2keqV
i8uWvael1gXFZfq7e+Xl93L/4sqnE66Qr747Lo9N2SxfTGoum/ecki4jv5P3nmkq8/59ULq3rya/
7rUqaLcTsGx8IjRU6dShfpOQBQEEEEgEAa89X0hD1vynGicCvWNttDu7M/Du2vKHay+Qf39z1IQL
XdpfnSr331LdBK2iRZJkUp+Gcuh4lrR/fI0nZncCQ+TyF1vIoWNnpcuIb+WvD9U392Ll/SalznTp
OCpWNEl2HTwjtz65Lpe3ztyN6H6h/OHJdbL70Bl595mmUiIlWc6dy5HVm0/IlY3KyvLvjpt/1WPT
7lPmUmHgQsBybAhTEQIIIBB/Aolw/0789VruFtmd3dHZmiLJIkczsuTHjCyZvGCPCVuBy2cTr5Cd
B87I/z79rSdmdwLH6bhHGkirxj9PhOj9UjkicvVDK3Nt/9/TG0mDGiXl2IlzUq1SiqzbekL+9MwG
f5mZAy6WWlWKy/X9v/G/9sz99WTDjpNSu2oJ+e3lFeTnO7VEftdvtSwc1VRuGbiWgBXvHybahwAC
CDglQMBySjJ69diZ3fn9ryrLkHvryPGT5+TLb4+bIKGzNtf2/uVS2B+urSyDutQx9zi99ekhT8zu
5DdO61UrIa8PuVS27zstdzz1ba4O+HJyc/l41VFz+fu9Mc2kQpmi0vqRX0KYXh78+oefpO/fNp3X
cfq39746LLddd4F8sOKIDJy+VRaNbiodnyBgRW+U884IIIBAjAkQsGKsw/LZXDuzOz3/UEP+dHOa
vLb0gPnmnc7a3NCiogyYtkU+/PpHU7veg7TrUKbcP/aXS2LRnt3Jb5zqzetVKhQzM1M683RFwzLy
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

--_006_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=1417;
	creation-date="Mon, 01 Apr 2019 19:45:54 GMT";
	modification-date="Mon, 01 Apr 2019 19:45:54 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAJYAAAAZCAYAAADT59fvAAAACXBIWXMAAAsSAAALEgHS3X78AAAF
O0lEQVRo3u1b0ZHiOBB9QvsPGUAGQwb4g19qfRHgjWC8EawngvVEsEwE6y1+qRpPBhDBmgjWBODS
fVyz5+tpW7KRYeuKrvKPLctq6an7vUYoYwzudjff9uEaH1FKTwDMa7cKY6riPv3/X1PAKAIQ9XnZ
mCqwgCkGEAJ4EJqcAGQAEhvIlNIpA+bemCru+M7GmGpTe879zo2pEkufObsVG1PtW77ZZHv6Xuaw
KbusTwkgJ19L1s8GwKze1pgqtHx7BmDDbmfGVKnDWEYJMDJ9LmMMpAsYxcCo7NBXCowmLf3lrH3e
1LblnYQ9l/wOLH22the+absKYBRZvtlnfUrB31BoF3ecw7JtnerXaIC0twHwFcC4w2uPAHKKcre0
zZXHMAXwjebMp40BfKn3S9HxB2uXUFSS1jEEsBAidOkygNEAoFr3fP3hDwDXFEByg++uBwDXud96
uouIgtQBmDbQGD6etzqV6EPeX4ROXUAVNoDqDUBa5xNK6Tnxr7UAroSe3coeldKZMVXuoa/PxKfq
duaeCwEEewf+cmiZnxjAR+FeRlGrVEonlFHO9lEpHTK+l7CMc+rBw9/l8MQlhwr5uOiRw4MGLhbc
iGPVuc/EA8cKWsYXNXCjiWWcucXvzMaFhXH+9pfWxFyKCS+pkJTLlN1+su0+igqSsoxwWxs8JVJa
+Sxwo0t9l1JbYJnfur/8/YNNLQ/JsbhsPboOhuT6C08LNwDTSUiJwcDgSgEc2e1gaEepvPMk+JsK
paFeQJc4VkB5uFU9sdpTYNs1Fks4mJTSgSee46wIaYNMmUqcuyqhnpaRKvYFrLAhM/B7CfHiB6bO
6/Zcr9NdCqyFQCy55QAKFsL58047SCl96lii8G0l7c5XIUUMKSb2QjrsQ0cmNP5Hgeyjhey/Njw7
XkIHRkPMVE+U73Fjo539fOWUWHRsv1BKG34B+MXUnjV7NPj7OwXaInW1Xc6q7TKotsvZVYDVcyHm
+DMsEXjPkIXTIet2Lw61J8nfH200pNouw2q7LAD8pIj3s9ou82q7DNpS4ZtDKisE4jtmIMk7AHF2
4zRY38UlqdzXK6nEoTbUk4uAIn8Lxi33LaBKhXR7plCv1Xb5Sa92GwlYeQ95mbPCXNyRwPPvnTwQ
98UF4MqV0s9sAh8HAkAkbGybeuULP2PAOPYpEdiMIpJtHtJqu8x8pUL+K/2UpKtr2lxb+iu67PKG
37+6chkpRfimDDHe1/9sJx72xlRB/RKU4NRB2fvYBJKNAURegEV5/CiQ3sQysWHDRCYWlTmmdNWm
di4SB0RcowFBFTak16zH/Eu1wHgAXjhz5Y0+ybu0mF+U0oVSOqo7qZQOldIZgO8Ct3oWzmdJk51K
4CIw83B97KNULarJiT8ppQN2hfSDs+T70wUHIBMhcqS4jU28nSA1psoEXnImvt/wz/EQWzcH6QAf
EUze95j6TGvRaN4gAi5JCwlFrj7i4muHtodLeBHVAl8YrVgrpROPp3VdC8WF13IDgaLvDj+gveqc
QC72jfFvUXfcU3LfLCU6+t5lE/CfpjYex+kSAU8ANt7rWASuvwQHbdK49acTehagvZIsgSry4JN0
SM6HnVx87xK1hMVf+Crw6tUuF7jcO0qkV7vyA6mltwvUU1NanJFaiRqk/5G4U+oaqmny58StYshn
6UEgSC0li65+RwLXK3sKhIIESeYAKD7OvUNUCYSxt83F3lVB69UuouJozDLEkUCVAYC61t+/6HDf
pEaKffUbCIT7blewWqW91Kvdf8Cp7v8rvNsQ9jcdsVe3hljoOQAAAABJRU5ErkJggg==

--_006_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_--

--_007_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: text/x-c++src; name="testEXR.cc"
Content-Description: testEXR.cc
Content-Disposition: attachment; filename="testEXR.cc"; size=4184;
	creation-date="Wed, 03 Apr 2019 05:41:56 GMT";
	modification-date="Wed, 03 Apr 2019 05:41:56 GMT"
Content-Transfer-Encoding: base64

Ly8KLy8gVGltaW5nIHRlc3QgZnJhbWV3b3JrIGZvciBPcGVuRVhSCi8vIEJ5IFBldGVySAovLwoK
I2luY2x1ZGUgPEltZk11bHRpUGFydE91dHB1dEZpbGUuaD4KI2luY2x1ZGUgPEltZk91dHB1dFBh
cnQuaD4KI2luY2x1ZGUgPEltZlBhcnRUeXBlLmg+CiNpbmNsdWRlIDxJbWZDaGFubmVsTGlzdC5o
PgojaW5jbHVkZSA8SW1mRnJhbWVCdWZmZXIuaD4KI2luY2x1ZGUgPHN5cy90aW1lLmg+CgojaW5j
bHVkZSA8SWxtVGhyZWFkUG9vbC5oPgoKI2luY2x1ZGUgPGhhbGYuaD4KI2luY2x1ZGUgPHZlY3Rv
cj4KCnVzaW5nIG5hbWVzcGFjZSBJbWY7CnVzaW5nIHN0ZDo6dmVjdG9yOwp1c2luZyBzdGQ6OmNl
cnI7CnVzaW5nIHN0ZDo6ZW5kbDsKdXNpbmcgc3RkOjpzdHJpbmc7CgpDb21wcmVzc2lvbiBnZXRD
b21wcmVzc2lvbiAoY29uc3Qgc3RyaW5nICZzdHIpOwoKCmludCBtYWluKGludCBhcmdjLGNoYXIq
IGFyZ3ZbXSkKewogICAgaWYoYXJnYyE9NSkKICAgIHsKICAgICAgICBjZXJyIDw8ICJzeW50YXgg
IiA8PCBhcmd2WzBdIDw8ICIgY29tcHJlc3Npb25fdHlwZSBudW1fdGhyZWFkcyBsaW5lc19wZXJf
Z3JvdXAgb3V0cHV0LmV4clxuIjsKICAgICAgICBjZXJyIDw8ICJzZXQgbnVtX3RocmVhZHMgdG8g
J25vbmUnIHRvIGRpc2FibGUgdGhyZWFkaW5nXG4iOwogICAgICAgIGV4aXQoMSk7CiAgICB9CiAg
ICAKICAgIHN0YXRpYyBjb25zdCBpbnQgd2lkdGggPSAxOTIwOwogICAgc3RhdGljIGNvbnN0IGlu
dCBoZWlnaHQgPSAxMDgwOwogICAgCiAgICBpZiggc3RyaW5nKGFyZ3ZbMV0pICE9IHN0cmluZygi
bm9uZSIpICkKICAgIHsKICAgICAgSW1mOjpzZXRHbG9iYWxUaHJlYWRDb3VudChhdG9pKGFyZ3Zb
Ml0pKTsKICAgIH0KICAgIGludCBsaW5lc1Blckdyb3VwID0gYXRvaShhcmd2WzNdKTsKICAgIAog
ICAgLy8KICAgIC8vIHBvcHVsYXRlIGFuIGltYWdlIHdpdGggUkdCIGRhdGEKICAgIC8vIGRhdGEg
aXMgUGxhbmFyIChSLEcsQiBzZXBhcmF0ZSkKICAgIC8vCiAgICB2ZWN0b3I8aGFsZj4gZGF0YVsz
XTsKICAgIAogICAgZm9yKGludCBjPSAwIDsgYyA8IDMgOyArK2MgKQogICAgewogICAgICAgIGRh
dGFbY10ucmVzaXplKHdpZHRoKmhlaWdodCk7CiAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCB3
aWR0aCpoZWlnaHQgOyBpKysgKQogICAgICAgIHsKICAgICAgICAgIGRhdGFbY11baV09MC4xODsK
ICAgICAgICB9CiAgICB9CgogICAgCiAgICB0aW1lc3BlYyB0aW1lRGlmZiwgc3RhcnRUaW1lLCBl
bmRUaW1lOwogICAgY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSwmc3RhcnRUaW1lKTsKICAg
IAogICAgLy8KICAgIC8vIHdyaXRlIGZpbGUgcmVwZWF0ZWRseQogICAgLy8KICAgIGZvcihzaXpl
X3QgaSA9IDAgOyBpIDwgMjAwIDsgaSsrKQogICAgewogICAgCiAgICAgICBIZWFkZXIgaCh3aWR0
aCxoZWlnaHQpOwogICAgICAgaC5zZXRUeXBlKFNDQU5MSU5FSU1BR0UpOwogICAgICAgaC5zZXRO
YW1lKCJyZ2IiKTsKICAgICAgIGguY29tcHJlc3Npb24oKSA9IGdldENvbXByZXNzaW9uKGFyZ3Zb
MV0pOwogICAgCiAgICAgICBoLmNoYW5uZWxzKCkuaW5zZXJ0KCJSIixDaGFubmVsKEhBTEYpKTsK
ICAgICAgIGguY2hhbm5lbHMoKS5pbnNlcnQoIkciLENoYW5uZWwoSEFMRikpOwogICAgICAgaC5j
aGFubmVscygpLmluc2VydCgiQiIsQ2hhbm5lbChIQUxGKSk7CiAgICAKICAgICAgIE11bHRpUGFy
dE91dHB1dEZpbGUgZmlsZShhcmd2WzRdLCZoLDEpOwogICAgICAgCiAgICAgICBGcmFtZUJ1ZmZl
ciBiOwogICAgICAgYi5pbnNlcnQoIlIiLFNsaWNlKEhBTEYsKGNoYXIqKSAmZGF0YVswXVswXSAs
IHNpemVvZihoYWxmKSxzaXplb2YoaGFsZikqd2lkdGgpKTsKICAgICAgIGIuaW5zZXJ0KCJHIixT
bGljZShIQUxGLChjaGFyKikgJmRhdGFbMV1bMF0gLCBzaXplb2YoaGFsZiksc2l6ZW9mKGhhbGYp
KndpZHRoKSk7CiAgICAgICBiLmluc2VydCgiQiIsU2xpY2UoSEFMRiwoY2hhciopICZkYXRhWzJd
WzBdICwgc2l6ZW9mKGhhbGYpLHNpemVvZihoYWxmKSp3aWR0aCkpOwogICAgICAgCiAgICAgICBP
dXRwdXRQYXJ0IHB0KGZpbGUsMCk7CiAgICAgICBwdC5zZXRGcmFtZUJ1ZmZlcihiKTsKICAgICAg
IAogICAgICAgLy8KICAgICAgIC8vIHdyaXRlIGFsbCBzY2FubGluZXMgaW4gc3BlY2lmaWVkIGdy
b3VwIHNpemUKICAgICAgIC8vCiAKICAgICAgIGZvcihpbnQgeSA9IDAgOyB5IDwgaGVpZ2h0IDsg
eSArPSBsaW5lc1Blckdyb3VwKQogICAgICAgewogICAgICAgICAgIGlmKHkrbGluZXNQZXJHcm91
cCA+IGhlaWdodCkKICAgICAgICAgICB7CiAgICAgICAgICAgICBwdC53cml0ZVBpeGVscyhoZWln
aHQteSk7CiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UKICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgIHB0LndyaXRlUGl4ZWxzKGxpbmVzUGVyR3JvdXApOwogICAgICAgICAgIH0KICAgICAg
IH0gIAogICAgICAgCiAgICAgICAvLwogICAgICAgLy8gZHVtcCB0aW1pbmcgaW5mb3JtYXRpb24K
ICAgICAgIC8vCiAgICAgICBjZXJyIDw8ICJcciI7CiAgICAgICBjbG9ja19nZXR0aW1lKENMT0NL
X1JFQUxUSU1FLCZlbmRUaW1lKTsKICAgICAgIHRpbWVEaWZmLnR2X3NlYyA9IGVuZFRpbWUudHZf
c2VjIC0gc3RhcnRUaW1lLnR2X3NlYzsKICAgICAgIHRpbWVEaWZmLnR2X25zZWMgPSBlbmRUaW1l
LnR2X25zZWMgLSBzdGFydFRpbWUudHZfbnNlYzsKICAgICAgIGlmICh0aW1lRGlmZi50dl9uc2Vj
IDwgMCkKICAgICAgIHsJCQkJCSAgICAgIAogICAgICAgICAgICAtLXRpbWVEaWZmLnR2X3NlYzsJ
CQkJCQkgICAgICAKICAgICAgICAgICAgdGltZURpZmYudHZfbnNlYyArPSAxMDAwMDAwMDAwOwkK
ICAgICAgIH0KICAgICAgICAKICAgICAgICBjZXJyIDw8ICJmaWxlICIgPDwgaSA8PCAiIHRpbWU6
ICIgPDwgdGltZURpZmYudHZfc2VjIDw8ICIgc2VjcywgIiA8PCB0aW1lRGlmZi50dl9uc2VjIDw8
ICIgdXNlY3MgICAgICAgIjsKICAgICAgICBjZXJyLmZsdXNoKCk7CiAgICB9CiAgICBjZXJyIDw8
IGVuZGw7CiAgICAKIAogICAgcmV0dXJuIDA7Cn0KCiAgCi8vIGludGVycHJldCBzdHJpbmcgYXMg
SW1mOjpDb21wcmVzc2lvbiBvYmplY3QKQ29tcHJlc3Npb24KZ2V0Q29tcHJlc3Npb24gKGNvbnN0
IHN0cmluZyAmc3RyKQp7CiAgICBDb21wcmVzc2lvbiBjOwoKICAgIGlmIChzdHIgPT0gIm5vIiB8
fCBzdHIgPT0gIm5vbmUiIHx8IHN0ciA9PSAiTk8iIHx8IHN0ciA9PSAiTk9ORSIpCiAgICB7CiAg
ICAgICAgYyA9IE5PX0NPTVBSRVNTSU9OOwogICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJybGUi
IHx8IHN0ciA9PSAiUkxFIikKICAgIHsKICAgICAgICBjID0gUkxFX0NPTVBSRVNTSU9OOwogICAg
fQogICAgZWxzZSBpZiAoc3RyID09ICJ6aXAiIHx8IHN0ciA9PSAiWklQIikKICAgIHsKICAgICAg
ICBjID0gWklQX0NPTVBSRVNTSU9OOwogICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJ6aXBzIiB8
fCBzdHIgPT0gIlpJUFMiKQogICAgewogICAgICAgIGMgPSBaSVBTX0NPTVBSRVNTSU9OOwogICAg
fQogICAgZWxzZSBpZiAoc3RyID09ICJwaXoiIHx8IHN0ciA9PSAiUElaIikKICAgIHsKICAgICAg
ICBjID0gUElaX0NPTVBSRVNTSU9OOwogICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJweHIyNCIg
fHwgc3RyID09ICJQWFIyNCIpCiAgICB7CiAgICAgICAgYyA9IFBYUjI0X0NPTVBSRVNTSU9OOwog
ICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJiNDQiIHx8IHN0ciA9PSAiQjQ0IikKICAgIHsKICAg
ICAgICBjID0gQjQ0X0NPTVBSRVNTSU9OOwogICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJiNDRh
IiB8fCBzdHIgPT0gIkI0NEEiKQogICAgewogICAgICAgIGMgPSBCNDRBX0NPTVBSRVNTSU9OOwog
ICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJkd2FhIiB8fCBzdHIgPT0gIkRXQUEiKQogICAgewog
ICAgICAgIGMgPSBEV0FBX0NPTVBSRVNTSU9OOwogICAgfQogICAgZWxzZSBpZiAoc3RyID09ICJk
d2FiIiB8fCBzdHIgPT0gIkRXQUIiKQogICAgewogICAgICAgIGMgPSBEV0FCX0NPTVBSRVNTSU9O
OwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGNlcnIgPDwgIlVua25vd24gY29tcHJlc3Np
b24gbWV0aG9kIFwiIiA8PCBzdHIgPDwgIlwiLiIgPDwgZW5kbDsKICAgICAgICBleGl0ICgxKTsK
ICAgIH0KCiAgICByZXR1cm4gYzsKfQo=

--_007_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Openexr-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/openexr-devel

--_007_SY2PR01MB3113BC27724EEDBE5505123CE5570SY2PR01MB3113ausp_--