Photoshop CS5 HDR Pro

Photoshop CS5 HDR Pro

Posted on 08. May, 2010 by Terry Reinert in Photography, Software

I spent the last few days playing with the new HDR Pro feature in Adobe Photoshop CS5 to see if my initial thoughts were correct. I also wanted to see how it compares with Photomatix Pro and HDR PhotoStudio 2. What I found was pretty interesting in some ways and a bit of a let down in others.

Merge to HDR

I ran the Merge to HDR feature of all three applications on the same set of files and timed it from start to finish. For both a 3 image merge and a 9 image merge, Photomatix Pro STOMPED the other two applications. HDR PhotoStudio 2 came in second place with Photoshop CS5 coming in third. The numbers below are averages across three sets of three images and three sets of nine images. Also, I used all the merge settings in Photomatix (reduce noise, reduce chromatic aberrations, and remove ghosting) except for align images. I did not use align images for any of the applications.

  • 3 Image Merge
    • Photomatix Pro = 15 seconds
    • HDR PhotoStudio 2 = 35 seconds
    • Photoshop CS5 = 53 seconds
  • 9 Image Merge
    • Photomatix Pro = 59 seconds
    • HDR PhotoStudio 2 = 107 seconds
    • Photoshop CS5 = 245 seconds

When examining the images after the merge for artifacts I found the images merged by Photomatix and Photoshop CS5 to be pretty close except Photomatix had slightly less aberrations. HDR PhotoStudio 2 had some noise and lots of ghosting. But Photoshop CS5 had a lot of the same ghosting but using the Remove Ghosts features (see below) I was able to correct a little of that. So for merge quality, Photoshop CS5 and Photomatix tied and HDR PhotoStudio 2 came in last.

Remove Ghosts

I think this feature has potential but it is not prime time just yet. It allows you to select one image that it uses as a baseline for removing ghosts. In one set of images there were multiple palm trees and all had ghosting in the branches. I could get the ghosting to be removed, very well I might add, from one of the trees but not all of them. I would have to process the image many times and manually mask them together. As I said… it is a great feature and works awesome for small areas of the image but doesn’t do the complete job just yet.

Merge and Tone Map in Photoshop CS5 – No Additional Editing

As for what I wrote in my initial thoughts about this feature and it affecting the whole image instead of just the ghosted area, I didn’t see much of that with my images. It must have been an issue with certain image sets like the one I saw the video of. I didn’t notice any major global changes to the image by selecting different baseline images. So my initial thought was unfounded.

Halo Reduction

In my initial thoughts I mentioned that I wish they had implemented some form of halo reduction like what HDR PhotoStudio 2 has. I still wish they would. There are two sliders in the Edge Glow section of the tone mapping dialog (Radius and Strength) but they aren’t nearly as useful. I cannot push Photoshop CS5 enough to give me the same grungy look that I can get from Photomatix that I like. Don’t get me wrong… HDR Pro in Photoshop CS5 will get you the same result as Photomatix depending on what your Photomatix settings are. But for the real grungy and edgy look… couldn’t do it without getting bad halo’s. But then I cannot get the grungy look I like from HDR PhotoStudio 2 either so its not a short coming of Photoshop CS5.

Color & Tone Curves

The adjustable tone curves in HDR Pro are pretty awesome. It lets you drop more contrast into the image during the tone mapping process instead of having to do it with an adjustment layer afterward. The color controls are still extremely basic and mostly useless though. HDR PhotoStudio 2 still reigns when it comes to color quality.

Overall Opinion

My overall opinion of HDR Pro has changed quite a bit from my initial opinion. I can admit when I am wrong. HDR Pro in Photoshop CS5 is not bad at all. I think Adobe has done a great thing by drastically improving their HDR processing features. I believe it will get a lot more people into doing HDR photography and set the stage for the next big advances in technology. But it is not a replacement for Photomatix or HDR PhotoStudio 2 yet.

While the HDR Pro features are not going to change my HDR work flow at all, the other new and improved features in Photoshop CS5 (like content-aware fill) will. I am very happy with Photoshop CS5 despite my feelings about the HDR Pro feature. It is definitely worth the upgrade!

Related posts:

  1. Initial Thoughts on HDR in Photoshop CS5
  2. HDR Merge Challenge
  3. HDR Expose Review
  4. Photoshop CS5 Learning Center : The Conspiracy Evolves…
  5. HDR Photography FAQ

Tags: , , , , ,

5 Tweets

7 Responses to “Photoshop CS5 HDR Pro”

  1. tkrphoto

    08. May, 2010

    Photoshop CS5 HDR Pro – http://tinyurl.com/2dbcoms

    This comment was originally posted on Twitter

    Reply to this comment   More from author
  2. Photoshop_PSD

    08. May, 2010

    Photoshop CS5 HDR Pro | Terry Reinert Photography: Terry Reinert put the new HDR Pro feature in Adobe Photoshop CS… http://bit.ly/cc7Ge5

    This comment was originally posted on Twitter

    Reply to this comment   More from author
  3. BrianMatiash

    08. May, 2010

    RT @tkrphoto Photoshop CS5 HDR Pro – http://tinyurl.com/2dbcoms ^Really enjoyed your writeup, Terry.

    This comment was originally posted on Twitter

    Reply to this comment   More from author
  4. Hali

    08. May, 2010

    Thanks for the write-up Terry, I have yet to put it to the test but I’m glad it isn’t as underpowered as you thought it was originally.

    Reply to this comment
  5. WenataBabkowski

    08. May, 2010

    RT @BrianMatiash: RT @tkrphoto Photoshop CS5 HDR Pro – http://tinyurl.com/2dbcoms ^Really enjoyed your writeup, Terry.

    This comment was originally posted on Twitter

    Reply to this comment   More from author
  6. PaulLomaxPhoto

    08. May, 2010

    RT @BrianMatiash: RT @tkrphoto Photoshop CS5 HDR Pro – http://tinyurl.com/2dbcoms ^Really enjoyed your writeup, Terry.

    This comment was originally posted on Twitter

    Reply to this comment   More from author
  7. Getting That Shot

    06. Aug, 2010

    [...] a very rainy day, filled with shooting HDR to tame the mid-day contrasts.  As a matter of interest Adobe PS CS5 has a greatly improved HDR feature, but I still find I can be more creative with Photomatix. Every [...]

    Reply to this comment   More from author

Leave a Reply

Additional comments powered by BackType

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dF9idXR0b248L3N0cm9uZz4gLSBSZWFkIE1vcmUuLi48L2xpPjxsaT48c3Ryb25nPndvb19hYm91dF9oZWFkZXI8L3N0cm9uZz4gLSBBYm91dCBUZXJyeSBSZWluZXJ0PC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfcGhvdG88L3N0cm9uZz4gLSBodHRwOi8vZmFybTUuc3RhdGljLmZsaWNrci5jb20vNDA0Ni80MjUyMjAyODY1XzdkZGEyNzNhMTJfcy5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hYm91dF90ZXh0PC9zdHJvbmc+IC0gVGVycnkgUmVpbmVydCBpcyBhIHBob3RvZ3JhcGhlciBiYXNlZCBvdXQgb2YgTWVsYm91cm5lLCBGbG9yaWRhLiBIZSBzaG9vdHMgYSB3aWRlIHZhcmlldHkgb2YgcGhvdG9ncmFwaGljIHN0eWxlcyBhbmQgaXMgYXZhaWxhYmxlIG9uIGEgbGltaXRlZCBiYXNpcyBmb3IgbW9kZWwgcG9ydGZvbGlvIGRldmVsb3BtZW50LCBjb21tZXJjaWFsIHByb2plY3RzLCBhbmQgZW5nYWdlbWVudCAmIHdlZGRpbmcgZXZlbnRzLjwvbGk+PGxpPjxzdHJvbmc+d29vX2Fkc19yb3RhdGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF8yNTBfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0yNTB4MjUwLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfYWRzZW5zZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzMwMF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cucGhvdG9zaG9wdXNlci5jb20vbWVtYmVycy9kb3dubG9hZHMvbmFwcC1yZWZlcnJhbC1iYW5uZXJzL25hcHAtMTYweDYwMC0wNDA4LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzMwMF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3LnBob3Rvc2hvcHVzZXIuY29tLz9haWQ9cm14dHp0PC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF9hZHNlbnNlPC9zdHJvbmc+IC0gPGEgaHJlZj1cImh0dHA6Ly93d3cucGhvdG9zaG9wdXNlci5jb20vP2FpZD1ybXh0enRcIiB0aXRsZT1cIk15IGxpbmsgdG8gdGhlIE5hdGlvbmFsIEFzc29jaWF0aW9uIG9mIFBob3Rvc2hvcCBQcm9mZXNzaW9uYWxzXCI+PGltZyBzcmM9XCJodHRwOi8vd3d3LnBob3Rvc2hvcHVzZXIuY29tL21lbWJlcnMvZG93bmxvYWRzL25hcHAtcmVmZXJyYWwtYmFubmVycy83Mjh4OTAtcm9ja2V0bWFuLmpwZ1wiIGFsdD1cIldoZXJlIGV2ZXJ5b25lIGxlYXJucyBQaG90b3Nob3AgLSBOYXRpb25hbCBBc3NvY2lhdGlvbiBvZiBQaG90b3Nob3AgUHJvZmVzc2lvbmFsc1wiIC8+PC9hPjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfZGlzYWJsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5waG90b3Nob3B1c2VyLmNvbS9tZW1iZXJzL2Rvd25sb2Fkcy9uYXBwLXJlZmVycmFsLWJhbm5lcnMvNzI4eDkwLXJvY2tldG1hbi5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cucGhvdG9zaG9wdXNlci5jb20vP2FpZD1ybXh0enQ8L2xpPjxsaT48c3Ryb25nPndvb19hZF9oZWFkZXI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2hlYWRlcl9jb2RlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfaGVhZGVyX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy80Njh4NjBhLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2hlYWRlcl91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0xLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMy5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzU8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3A8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2Rpc2FibGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5waG90b3Nob3B1c2VyLmNvbS9tZW1iZXJzL2Rvd25sb2Fkcy9uYXBwLXJlZmVycmFsLWJhbm5lcnMvNzI4eDkwLXJvY2tldG1hbi5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5waG90b3Nob3B1c2VyLmNvbS8/YWlkPXJteHR6dDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gZ3JleS5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX2NhdDwvc3Ryb25nPiAtIDM3NzwvbGk+PGxpPjxzdHJvbmc+d29vX2Jsb2dfbmF2aWdhdGlvbjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX3Blcm1hbGluazwvc3Ryb25nPiAtIC9jYXRlZ29yeS9ibG9nLzwvbGk+PGxpPjxzdHJvbmc+d29vX2Jsb2dfc3VibmF2aWdhdGlvbjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19idXR0b25fbGluazwvc3Ryb25nPiAtIGh0dHA6Ly93d3cudGtycGhvdG8uY29tL2Fib3V0PC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8xPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMTIzPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMTIzX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8xMjY8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8xMjZfaW1hZ2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzE5PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMTk2PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMTk2X2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8xOV9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMV9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMjE2PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMjE2X2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8yNTg8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8yNThfaW1hZ2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzI2Mjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzI2Ml9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzM0MDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzM0MF9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMzcwPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMzcwX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8zNzc8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8zNzdfaW1hZ2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzM4MTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzM4MV9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMzgzPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfMzgzX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF8zX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF80PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfNDE0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzQxNF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNi1TdGFjaWEtMTkuanBnPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF80MTU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfNDE1X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LUJvc3Rvbi0zNTAtMzUyLUZpbmFsLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfNDE2PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzQxNl9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1EYW5pZWwtUG9ydHJhaXRzLVdlYi04LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfNDE3PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfYm94XzQxN19pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOS1NR18xNjIyX0xvUmVzLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfNDQxPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfNDQxX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF80X2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2JveF84PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9ib3hfOF9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9leDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbW1lbnRfcG9zdHM8L3N0cm9uZz4gLSBTZWxlY3QgYSBudW1iZXI6PC9saT48bGk+PHN0cm9uZz53b29fY29udGVudDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2FyY2hpdmVzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2ZlYXQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1VU0ZsYWcuaWNvPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfcG9zdHM8L3N0cm9uZz4gLSBTZWxlY3QgYSBudW1iZXI6PC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl9pZDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPg0KdmFyIGdhSnNIb3N0ID0gKChcImh0dHBzOlwiID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/IFwiaHR0cHM6Ly9zc2wuXCIgOiBcImh0dHA6Ly93d3cuXCIpOw0KZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoXCIlM0NzY3JpcHQgc3JjPVwnXCIgKyBnYUpzSG9zdCArIFwiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanNcJyB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCclM0UlM0Mvc2NyaXB0JTNFXCIpKTsNCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+DQp0cnkgew0KdmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcihcIlVBLTkyNjkyMDMtMVwiKTsNCnBhZ2VUcmFja2VyLl90cmFja1BhZ2V2aWV3KCk7DQp9IGNhdGNoKGVycikge308L3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2FyYzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xpbms8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rX2Rlc2M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xpbmtfdGV4dDwvc3Ryb25nPiAtIEhvbWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDkyPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl93aWR0aDwvc3Ryb25nPiAtIDI0NzwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX2hlaWdodDwvc3Ryb25nPiAtIDIxMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3NpbmdsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2Vfd2lkdGg8L3N0cm9uZz4gLSA1NDA8L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMS1TaXRlLUxvZ28tMi5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL2J1c3ktYmVlLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdl9leGNsdWRlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fcG9wdWxhcl9wb3N0czwvc3Ryb25nPiAtIFNlbGVjdCBhIG51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19yZXNpemU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2Nyb2xsZXJfcG9zdHM8L3N0cm9uZz4gLSAxMDwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxMjA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfd2lkdGg8L3N0cm9uZz4gLSAxODA8L2xpPjxsaT48c3Ryb25nPndvb190YWJzPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIEJ1c3kgQmVlPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gODg8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDg4PC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcjwvc3Ryb25nPiAtIHRrcnBob3RvPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGE6OTp7aTowO3M6NjU6Imh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTEtU2l0ZS1Mb2dvLTIucG5nIjtpOjE7czo2MzoiaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMC1TaXRlLUxvZ28ucG5nIjtpOjI7czo2NjoiaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy85LU1HXzE2MjJfTG9SZXMuanBnIjtpOjM7czo3MzoiaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LUJvc3Rvbi0zNTAtMzUyLUZpbmFsLmpwZyI7aTo0O3M6NzU6Imh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1EYW5pZWwtUG9ydHJhaXRzLVdlYi04LmpwZyI7aTo1O3M6NjI6Imh0dHA6Ly93d3cudGtycGhvdG8uY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNi1TdGFjaWEtMTkuanBnIjtpOjY7czo2NjoiaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LU1HXzE3MTRfTG9SZXMuanBnIjtpOjc7czo1OToiaHR0cDovL3d3dy50a3JwaG90by5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LVVTRmxhZy5pY28iO2k6ODtzOjY1OiJodHRwOi8vd3d3LnRrcnBob3RvLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtTG9nb19XaGl0ZV8yLnBuZyI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48L3VsPg==