<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>32963</bug_id>
          
          <creation_ts>2009-12-27 10:16:34 -0800</creation_ts>
          <short_desc>buildfix for ResourceHandleWin.cpp</short_desc>
          <delta_ts>2010-06-15 06:09:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>175049</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-27 10:16:34 -0800</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175053</commentid>
    <comment_count>1</comment_count>
      <attachid>45525</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-27 10:36:01 -0800</bug_when>
    <thetext>Created attachment 45525
Buildfix for ResourceHandleWin.cpp

transferJobStatusCallback and ResourceHandleWndProc are static.
Is there a reason for the declaration in the header file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175054</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-27 10:37:59 -0800</bug_when>
    <thetext>Attachment 45525 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/network/win/ResourceHandleWin.cpp:38:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175056</commentid>
    <comment_count>3</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-27 10:44:59 -0800</bug_when>
    <thetext>In line 188 of ResourceHandleWin.cpp:
&gt; const CString&amp; headersLatin1 = headers.latin1();
&gt; String formData = request().httpBody()-&gt;flattenToString();
&gt; INTERNET_BUFFERSA buffers;
&gt; memset(&amp;buffers, 0, sizeof(buffers));
&gt; buffers.dwStructSize = sizeof(INTERNET_BUFFERSA);
&gt; buffers.lpcszHeader = headersLatin1.data();
&gt; buffers.dwHeadersLength = headers.length();
&gt; buffers.dwBufferTotal = formData.length();

- headers.latin1() returns a value and not a reference.
- buffers uses headersLatin1.data() but not headersLatin1.length().
- same problems across the file
Isn&apos;t that wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175057</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-27 10:48:12 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; WebCore/platform/network/win/ResourceHandleWin.cpp:38:  Found header this file
&gt; implements after other header. Should be: config.h, primary header, blank line,
&gt; and then alphabetically sorted.  [build/include_order] [4]
The primary header header is ResourceHandle.h. ResourceHandleWin.h is only an ugly helperfile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175060</commentid>
    <comment_count>5</comment_count>
      <attachid>45527</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-27 11:02:05 -0800</bug_when>
    <thetext>Created attachment 45527
Buildfix for ResourceHandleWin.cpp

corrected bug url</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175064</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-27 11:03:57 -0800</bug_when>
    <thetext>Attachment 45527 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/network/win/ResourceHandleWin.cpp:38:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175120</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-27 18:10:35 -0800</bug_when>
    <thetext>&gt; The primary header header is ResourceHandle.h. ResourceHandleWin.h is only an
&gt; ugly helperfile.

False positive filed: https://bugs.webkit.org/show_bug.cgi?id=32975</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175466</commentid>
    <comment_count>8</comment_count>
      <attachid>45527</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-29 00:14:54 -0800</bug_when>
    <thetext>Comment on attachment 45527
Buildfix for ResourceHandleWin.cpp

Please explain your changes in the ChangeLog.  There are too many, too complicated changes for this to be reviewed with such an empty ChangeLog.

For example, why this?
-        if (method() == &quot;POST&quot;) {
+        if (request().httpMethod() == &quot;POST&quot;) {

And this?
+#ifdef RESOURCE_LOADER_DEBUG
+        char buf[64];
+        _snprintf(buf, sizeof(buf), &quot;Load error: %i\n&quot;, error);
+        OutputDebugStringA(buf);
+#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175565</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-29 08:43:38 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 45527 [details])
&gt; Please explain your changes in the ChangeLog.  There are too many, too
&gt; complicated changes for this to be reviewed with such an empty ChangeLog.
This is _only_ a buildfix!

&gt; For example, why this?
&gt; -        if (method() == &quot;POST&quot;) {
&gt; +        if (request().httpMethod() == &quot;POST&quot;) {
because http://trac.webkit.org/changeset/24202 removed the url(), postData() and method() meberfunctions ;-)

&gt; And this?
&gt; +#ifdef RESOURCE_LOADER_DEBUG
&gt; +        char buf[64];
&gt; +        _snprintf(buf, sizeof(buf), &quot;Load error: %i\n&quot;, error);
&gt; +        OutputDebugStringA(buf);
&gt; +#endif
_RPTF1 also outputs a debug string and isn&apos;t supported on WinCE

Maybe i can split it into a a windows and a wince part, but i don&apos;t think that it make sense, because it doesn&apos;t work since r24204 and seams to be unuse. Real enhancements will follow in a separate bug.

I think that the points mentioned in comment #3 are also reasons for r-, but i like to get some howto feedback before i change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175586</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-29 09:17:45 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 45527 [details] [details])
&gt; &gt; Please explain your changes in the ChangeLog.  There are too many, too
&gt; &gt; complicated changes for this to be reviewed with such an empty ChangeLog.
&gt; This is _only_ a buildfix!

I believe you. :)  I just had trouble understanding the patch.  It&apos;s difficult to tell if this change is only inside WINCE blocks.  I take it this code is not used by the AppleWin port.  Is it used by the ChromiumWin port, or just the WinCE port?  What about the CairoWin port?

See http://trac.webkit.org/changeset/43259 as an example of explaining file-level changes in ChangeLogs.  The goal of the ChangeLog (in my mind) is to document what the change is doing to make the review easier, and to make any later &quot;svn blame&quot; investigation easier.
http://webkit.org/coding/contributing.html#changelogs has more thoughts on ChangeLogs and their purpose.

In this case, I just don&apos;t have enough context to understand the change, but it&apos;s possible that another reviewer would.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175822</commentid>
    <comment_count>11</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-29 23:21:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I believe you. :)  I just had trouble understanding the patch.  It&apos;s difficult
&gt; to tell if this change is only inside WINCE blocks.  I take it this code is not
&gt; used by the AppleWin port.  Is it used by the ChromiumWin port, or just the
&gt; WinCE port?  What about the CairoWin port?
As already mentioned http://trac.webkit.org/changeset/24202 made it fail! Everywhere!

@initializeOffScreenResourceH: as in attachment 45502
StringImpl constructor is now private
_RPTF1 had been already mentioned
in the remaining part in start() only the intention changed (+ .data() at strings like above)

What about the following points of comment #3?
- headers.latin1() returns a value and not a reference.
- buffers uses headersLatin1.data() but not headersLatin1.length().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210254</commentid>
    <comment_count>12</comment_count>
      <attachid>45527</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-04-08 10:15:12 -0700</bug_when>
    <thetext>Comment on attachment 45527
Buildfix for ResourceHandleWin.cpp

Setting back to r? because i didn&apos;t get a answer since last year.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210758</commentid>
    <comment_count>13</comment_count>
      <attachid>45527</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-09 09:18:59 -0700</bug_when>
    <thetext>Comment on attachment 45527
Buildfix for ResourceHandleWin.cpp

I am completely confused by this patch. This claims to &quot;fix the build everywhere&quot; that was broken three years ago. And it&apos;s a big change.

Could you clarify what build is broken? And can we keep the build fix change as small as possible and leave out other types of style changes?

It may well be that all these changes are justified, but mixing the style cleanup, refactoring, and build fix all in one patch leads to a patch that probably won&apos;t get reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210778</commentid>
    <comment_count>14</comment_count>
      <attachid>52961</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-04-09 09:54:36 -0700</bug_when>
    <thetext>Created attachment 52961
The patch (only the buildfix for Win32)

(In reply to comment #13)
&gt; Could you clarify what build is broken?
It seams nobody is using this file in the moment, but i will be used in the WinCE port.

I will post a second patch for the style issues and a third for the WinCE specific part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210781</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-09 09:59:36 -0700</bug_when>
    <thetext>Attachment 52961 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/network/win/ResourceHandleWin.cpp:334:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210791</commentid>
    <comment_count>16</comment_count>
      <attachid>52965</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-04-09 10:29:14 -0700</bug_when>
    <thetext>Created attachment 52965
The patch (buildfix for Win32 and r55542)

This patch also fixes the build after http://trac.webkit.org/changeset/55542.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210792</commentid>
    <comment_count>17</comment_count>
      <attachid>52961</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-04-09 10:29:56 -0700</bug_when>
    <thetext>Comment on attachment 52961
The patch (only the buildfix for Win32)

The second patch is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210794</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-09 10:33:16 -0700</bug_when>
    <thetext>Attachment 52965 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/network/win/ResourceHandleWin.cpp:335:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210875</commentid>
    <comment_count>19</comment_count>
      <attachid>52965</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-09 13:26:08 -0700</bug_when>
    <thetext>Comment on attachment 52965
The patch (buildfix for Win32 and r55542)

if this is only used by WinCE, seems we should rename the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211121</commentid>
    <comment_count>20</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-04-10 01:19:43 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 52965 [details])
&gt; if this is only used by WinCE, seems we should rename the file.
I don&apos;t think so. This file is not dedicaed to the WinCE platform. It is also possible to use it on Win32.
WinCE port uses many other files too, which end with &quot;Win.*&quot;.

My vision is that the WinCE port will be only some #ifdefs in a GDI port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237951</commentid>
    <comment_count>21</comment_count>
      <attachid>52965</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-06-14 11:44:19 -0700</bug_when>
    <thetext>Comment on attachment 52965
The patch (buildfix for Win32 and r55542)

Surprising how little this file is maintained.

But the patch looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238344</commentid>
    <comment_count>22</comment_count>
      <attachid>52965</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-15 06:09:04 -0700</bug_when>
    <thetext>Comment on attachment 52965
The patch (buildfix for Win32 and r55542)

Clearing flags on attachment: 52965

Committed r61183: &lt;http://trac.webkit.org/changeset/61183&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238345</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-15 06:09:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45525</attachid>
            <date>2009-12-27 10:36:01 -0800</date>
            <delta_ts>2009-12-27 11:02:05 -0800</delta_ts>
            <desc>Buildfix for ResourceHandleWin.cpp</desc>
            <filename>ResourceHandle.patch</filename>
            <type>text/plain</type>
            <size>15308</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjU4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTItMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVpbGRmaXggYWZ0ZXIgcjI0MjAyIGFuZCBzb21lIHN0eWxlIGZpeGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9WFhYCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAg
ICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVPZmZTY3JlZW5SZXNvdXJjZUhhbmRsZVdpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6b25IYW5kbGVDcmVhdGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RSZWRpcmVjdGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjp0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6ZmlsZUxvYWRUaW1lcik6CisKIDIwMDktMTItMjcgIERpcmsgU2NodWx6ZSAgPGtyaXRA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24g
NTI1ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMTY2LDggKzE2Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIG9uSGFuZGxl
Q3JlYXRlZChMUEFSQU0pOwogICAgIHZvaWQgb25SZXF1ZXN0UmVkaXJlY3RlZChMUEFSQU0pOwog
ICAgIHZvaWQgb25SZXF1ZXN0Q29tcGxldGUoTFBBUkFNKTsKLSAgICBmcmllbmQgdm9pZCBfX3N0
ZGNhbGwgdHJhbnNmZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQsIERXT1JEX1BUUiwgRFdP
UkQsIExQVk9JRCwgRFdPUkQpOwotICAgIGZyaWVuZCBMUkVTVUxUIF9fc3RkY2FsbCBSZXNvdXJj
ZUhhbmRsZVduZFByb2MoSFdORCwgdW5zaWduZWQgbWVzc2FnZSwgV1BBUkFNLCBMUEFSQU0pOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkgfHwgVVNFKENVUkwpIHx8IFVTRShTT1VQKQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdp
bi5jcHAJKHJldmlzaW9uIDUyNTgwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9S
ZXNvdXJjZUhhbmRsZVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDYgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVXaW4uaCIKIAogI2luY2x1ZGUgIkNTdHJp
bmcuaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKQEAgLTM2LDYgKzMzLDkgQEAKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVy
cm9yLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlICJSZXNv
dXJjZUhhbmRsZUludGVybmFsLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVXaW4uaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3aW5pbmV0
Lmg+CkBAIC01MCw5ICs1MCw5IEBAIGNvbnN0IExQQ1dTVFIga1Jlc291cmNlSGFuZGxlV2luZG93
Q2xhc3MKIAogLy8gTWVzc2FnZSB0eXBlcyBmb3IgaW50ZXJuYWwgdXNlIChrZWVwIGluIHN5bmMg
d2l0aCBrTWVzc2FnZUhhbmRsZXJzKQogZW51bSB7Ci0gIGhhbmRsZUNyZWF0ZWRNZXNzYWdlID0g
V01fVVNFUiwKLSAgcmVxdWVzdFJlZGlyZWN0ZWRNZXNzYWdlLAotICByZXF1ZXN0Q29tcGxldGVN
ZXNzYWdlCisgICAgaGFuZGxlQ3JlYXRlZE1lc3NhZ2UgPSBXTV9VU0VSLAorICAgIHJlcXVlc3RS
ZWRpcmVjdGVkTWVzc2FnZSwKKyAgICByZXF1ZXN0Q29tcGxldGVNZXNzYWdlCiB9OwogCiB0eXBl
ZGVmIHZvaWQgKFJlc291cmNlSGFuZGxlOjogKlJlc291cmNlSGFuZGxlRXZlbnRIYW5kbGVyKShM
UEFSQU0pOwpAQCAtMTA5LDE2ICsxMDksMjcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU9mZlNj
cmVlblJlc291cmNlSAogICAgIGlmICh0cmFuc2ZlckpvYldpbmRvd0hhbmRsZSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgSFdORCBoV25kUGFyZW50ID0gMDsKKyNpZiBQTEFURk9STShXSU5DRSkK
KyAgICBXTkRDTEFTUyB3Y2V4OworICAgIG1lbXNldCgmd2NleCwgMCwgc2l6ZW9mKFdORENMQVNT
KSk7CisjZWxzZQogICAgIFdORENMQVNTRVggd2NleDsKICAgICBtZW1zZXQoJndjZXgsIDAsIHNp
emVvZihXTkRDTEFTU0VYKSk7CiAgICAgd2NleC5jYlNpemUgPSBzaXplb2YoV05EQ0xBU1NFWCk7
CisjZW5kaWYKICAgICB3Y2V4LmxwZm5XbmRQcm9jICAgID0gUmVzb3VyY2VIYW5kbGVXbmRQcm9j
OwogICAgIHdjZXguaEluc3RhbmNlICAgICAgPSBQYWdlOjppbnN0YW5jZUhhbmRsZSgpOwogICAg
IHdjZXgubHBzekNsYXNzTmFtZSAgPSBrUmVzb3VyY2VIYW5kbGVXaW5kb3dDbGFzc05hbWU7Cisj
aWYgUExBVEZPUk0oV0lOQ0UpCisgICAgUmVnaXN0ZXJDbGFzcygmd2NleCk7CisjZWxzZQogICAg
IFJlZ2lzdGVyQ2xhc3NFeCgmd2NleCk7CisgICAgaFduZFBhcmVudCA9IEhXTkRfTUVTU0FHRTsK
KyNlbmRpZgogCiAgICAgdHJhbnNmZXJKb2JXaW5kb3dIYW5kbGUgPSBDcmVhdGVXaW5kb3coa1Jl
c291cmNlSGFuZGxlV2luZG93Q2xhc3NOYW1lLCAwLCAwLCBDV19VU0VERUZBVUxULCAwLCBDV19V
U0VERUZBVUxULCAwLAotICAgICAgICBIV05EX01FU1NBR0UsIDAsIFBhZ2U6Omluc3RhbmNlSGFu
ZGxlKCksIDApOworICAgICAgICBoV25kUGFyZW50LCAwLCBQYWdlOjppbnN0YW5jZUhhbmRsZSgp
LCAwKTsKIH0KIAogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJu
YWwoKQpAQCAtMTM3LDIzICsxNDgsMjMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6b25IYW5kbGVD
cmVhdGVkKExQQQogewogICAgIGlmICghZC0+bV9yZXNvdXJjZUhhbmRsZSkgewogICAgICAgICBk
LT5tX3Jlc291cmNlSGFuZGxlID0gSElOVEVSTkVUKGxQYXJhbSk7Ci0gICAgICAgIGlmIChkLT5z
dGF0dXMgIT0gMCkgeworICAgICAgICBpZiAoZC0+c3RhdHVzKSB7CiAgICAgICAgICAgICAvLyBX
ZSB3ZXJlIGNhbmNlbGVkIGJlZm9yZSBXaW5kb3dzIGFjdHVhbGx5IGNyZWF0ZWQgYSBoYW5kbGUg
Zm9yIHVzLCBjbG9zZSBhbmQgZGVsZXRlIG5vdy4KICAgICAgICAgICAgIEludGVybmV0Q2xvc2VI
YW5kbGUoZC0+bV9yZXNvdXJjZUhhbmRsZSk7CiAgICAgICAgICAgICBkZWxldGUgdGhpczsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtZXRob2QoKSA9PSAi
UE9TVCIpIHsKKyAgICAgICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKSB7
CiAgICAgICAgICAgICAvLyBGSVhNRTogVG9vIGxhdGUgdG8gc2V0IHJlZmVycmVyIHByb3Blcmx5
LgotICAgICAgICAgICAgU3RyaW5nIHVybFN0ciA9IHVybCgpLnBhdGgoKTsKKyAgICAgICAgICAg
IFN0cmluZyB1cmxTdHIgPSByZXF1ZXN0KCkudXJsKCkucGF0aCgpOwogICAgICAgICAgICAgaW50
IGZyYWdtZW50SW5kZXggPSB1cmxTdHIuZmluZCgnIycpOwogICAgICAgICAgICAgaWYgKGZyYWdt
ZW50SW5kZXggIT0gLTEpCiAgICAgICAgICAgICAgICAgdXJsU3RyID0gdXJsU3RyLmxlZnQoZnJh
Z21lbnRJbmRleCk7Ci0gICAgICAgICAgICBzdGF0aWMgTFBDU1RSIGFjY2VwdFsyXT17IiovKiIs
IE5VTEx9OwotICAgICAgICAgICAgSElOVEVSTkVUIHVybEhhbmRsZSA9IEh0dHBPcGVuUmVxdWVz
dEEoZC0+bV9yZXNvdXJjZUhhbmRsZSwgCisgICAgICAgICAgICBzdGF0aWMgTFBDU1RSIGFjY2Vw
dFsyXSA9IHsiKi8qIiwgMH07CisgICAgICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlID0gSHR0
cE9wZW5SZXF1ZXN0QShkLT5tX3Jlc291cmNlSGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBPU1QiLCB1cmxTdHIubGF0aW4xKCkuZGF0
YSgpLCAwLCAwLCBhY2NlcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8IAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5URVJORVRfRkxBR19L
RUVQX0NPTk5FQ1RJT04gfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSU5URVJORVRfRkxBR19GT1JNU19TVUJNSVQgfAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5URVJORVRfRkxBR19SRUxPQUQg
fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5U
RVJORVRfRkxBR19OT19DQUNIRV9XUklURSB8CkBAIC0xNjYsMjcgKzE3NywyNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpvbkhhbmRsZUNyZWF0ZWQoTFBBCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9IGVsc2UgaWYgKCFkLT5tX3NlY29uZGFyeUhhbmRsZSkgewotICAgICAgICBhc3Nl
cnQobWV0aG9kKCkgPT0gIlBPU1QiKTsKKyAgICAgICAgYXNzZXJ0KHJlcXVlc3QoKS5odHRwTWV0
aG9kKCkgPT0gIlBPU1QiKTsKICAgICAgICAgZC0+bV9zZWNvbmRhcnlIYW5kbGUgPSBISU5URVJO
RVQobFBhcmFtKTsKLSAgICAgICAgCisKICAgICAgICAgLy8gTmVlZCB0byBhY3R1YWxseSBzZW5k
IHRoZSByZXF1ZXN0IG5vdy4KICAgICAgICAgU3RyaW5nIGhlYWRlcnMgPSAiQ29udGVudC1UeXBl
OiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcbiI7CiAgICAgICAgIGhlYWRlcnMg
Kz0gIlJlZmVyZXI6ICI7CiAgICAgICAgIGhlYWRlcnMgKz0gZC0+bV9wb3N0UmVmZXJyZXI7CiAg
ICAgICAgIGhlYWRlcnMgKz0gIlxuIjsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgaGVhZGVyc0xh
dGluMSA9IGhlYWRlcnMubGF0aW4xKCk7Ci0gICAgICAgIFN0cmluZyBmb3JtRGF0YSA9IHBvc3RE
YXRhKCktPmZsYXR0ZW5Ub1N0cmluZygpOworICAgICAgICBTdHJpbmcgZm9ybURhdGEgPSByZXF1
ZXN0KCkuaHR0cEJvZHkoKS0+ZmxhdHRlblRvU3RyaW5nKCk7CiAgICAgICAgIElOVEVSTkVUX0JV
RkZFUlNBIGJ1ZmZlcnM7CiAgICAgICAgIG1lbXNldCgmYnVmZmVycywgMCwgc2l6ZW9mKGJ1ZmZl
cnMpKTsKICAgICAgICAgYnVmZmVycy5kd1N0cnVjdFNpemUgPSBzaXplb2YoSU5URVJORVRfQlVG
RkVSU0EpOwotICAgICAgICBidWZmZXJzLmxwY3N6SGVhZGVyID0gaGVhZGVyc0xhdGluMTsKKyAg
ICAgICAgYnVmZmVycy5scGNzekhlYWRlciA9IGhlYWRlcnNMYXRpbjEuZGF0YSgpOwogICAgICAg
ICBidWZmZXJzLmR3SGVhZGVyc0xlbmd0aCA9IGhlYWRlcnMubGVuZ3RoKCk7CiAgICAgICAgIGJ1
ZmZlcnMuZHdCdWZmZXJUb3RhbCA9IGZvcm1EYXRhLmxlbmd0aCgpOwotICAgICAgICAKKwogICAg
ICAgICBkLT5tX2J5dGVzUmVtYWluaW5nVG9Xcml0ZSA9IGZvcm1EYXRhLmxlbmd0aCgpOwogICAg
ICAgICBkLT5tX2Zvcm1EYXRhU3RyaW5nID0gKGNoYXIqKW1hbGxvYyhmb3JtRGF0YS5sZW5ndGgo
KSk7CiAgICAgICAgIGQtPm1fZm9ybURhdGFMZW5ndGggPSBmb3JtRGF0YS5sZW5ndGgoKTsKLSAg
ICAgICAgc3RybmNweShkLT5tX2Zvcm1EYXRhU3RyaW5nLCBmb3JtRGF0YS5sYXRpbjEoKSwgZm9y
bURhdGEubGVuZ3RoKCkpOworICAgICAgICBzdHJuY3B5KGQtPm1fZm9ybURhdGFTdHJpbmcsIGZv
cm1EYXRhLmxhdGluMSgpLmRhdGEoKSwgZm9ybURhdGEubGVuZ3RoKCkpOwogICAgICAgICBkLT5t
X3dyaXRpbmcgPSB0cnVlOwogICAgICAgICBIdHRwU2VuZFJlcXVlc3RFeEEoZC0+bV9zZWNvbmRh
cnlIYW5kbGUsICZidWZmZXJzLCAwLCAwLCAoRFdPUkRfUFRSKWQtPm1fam9iSWQpOwogICAgICAg
ICAvLyBGSVhNRTogYWRkIHByb3BlciBlcnJvciBoYW5kbGluZwpAQCAtMTk2LDcgKzIwNyw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6Om9uSGFuZGxlQ3JlYXRlZChMUEEKIHZvaWQgUmVzb3VyY2VI
YW5kbGU6Om9uUmVxdWVzdFJlZGlyZWN0ZWQoTFBBUkFNIGxQYXJhbSkKIHsKICAgICAvLyBJZiBh
bHJlYWR5IGNhbmNlbGVkLCB0aGVuIGlnbm9yZSB0aGlzIGV2ZW50LgotICAgIGlmIChkLT5zdGF0
dXMgIT0gMCkKKyAgICBpZiAoZC0+c3RhdHVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCgoU3RyaW5nSW1wbCopIGxQYXJhbSk7CkBAIC0yMjMsNyArMjM0
LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUoTAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgSElOVEVSTkVUIGhhbmRsZSA9IChtZXRob2QoKSA9PSAiUE9T
VCIpID8gZC0+bV9zZWNvbmRhcnlIYW5kbGUgOiBkLT5tX3Jlc291cmNlSGFuZGxlOworICAgIEhJ
TlRFUk5FVCBoYW5kbGUgPSAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpID8gZC0+
bV9zZWNvbmRhcnlIYW5kbGUgOiBkLT5tX3Jlc291cmNlSGFuZGxlOwogICAgIEJPT0wgb2sgPSBG
QUxTRTsKIAogICAgIHN0YXRpYyBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyNzY4OwpAQCAtMjYw
LDkgKzI3MSwxMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZShMCiAg
ICAgICAgICAgICAgICAgSW50ZXJuZXRHZXRMYXN0UmVzcG9uc2VJbmZvKCZwbGF0Zm9ybURhdGEu
ZXJyb3IsIHBsYXRmb3JtRGF0YS5lcnJvclN0cmluZywgJmVycm9yU3RyaW5nQ2hhcnMpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIF9SUFRGMShfQ1JUX1dBUk4sICJMb2FkIGVy
cm9yOiAlaVxuIiwgZXJyb3IpOworI2lmZGVmIFJFU09VUkNFX0xPQURFUl9ERUJVRworICAgICAg
ICBjaGFyIGJ1Zls2NF07CisgICAgICAgIF9zbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiTG9h
ZCBlcnJvcjogJWlcbiIsIGVycm9yKTsKKyAgICAgICAgT3V0cHV0RGVidWdTdHJpbmdBKGJ1Zik7
CisjZW5kaWYKICAgICB9Ci0gICAgCisKICAgICBpZiAoZC0+bV9zZWNvbmRhcnlIYW5kbGUpCiAg
ICAgICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9zZWNvbmRhcnlIYW5kbGUpOwogICAgIElu
dGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9yZXNvdXJjZUhhbmRsZSk7CkBAIC0zMDksOCArMzI0LDgg
QEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5zZmVySm9iU3RhdHVzQwogICAgICAgICAvLyBu
ZWVkIHRvIGJsb2NrIHRoZSByZWRpcmVjdCBhdCB0aGlzIHBvaW50IHNvIHRoZSBhcHBsaWNhdGlv
biBjYW4KICAgICAgICAgLy8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIGZvbGxvdyB0aGUgcmVk
aXJlY3QpCiAgICAgICAgIG1zZyA9IHJlcXVlc3RSZWRpcmVjdGVkTWVzc2FnZTsKLSAgICAgICAg
bFBhcmFtID0gKExQQVJBTSkgbmV3IFN0cmluZ0ltcGwoKGNvbnN0IFVDaGFyKikgc3RhdHVzSW5m
b3JtYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1
c0luZm9ybWF0aW9uTGVuZ3RoKTsKKyAgICAgICAgbFBhcmFtID0gKExQQVJBTSkgU3RyaW5nSW1w
bDo6Y3JlYXRlKChjb25zdCBVQ2hhciopIHN0YXR1c0luZm9ybWF0aW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzSW5mb3JtYXRpb25MZW5ndGgp
LnJlbGVhc2VSZWYoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJTlRFUk5FVF9TVEFUVVNf
VVNFUl9JTlBVVF9SRVFVSVJFRDoKICAgICAgICAgLy8gRklYTUU6IHByb21wdCB0aGUgdXNlciBp
ZiBuZWNlc3NhcnkKQEAgLTMyNywxMyArMzQyLDEzIEBAIHN0YXRpYyB2b2lkIF9fc3RkY2FsbCB0
cmFuc2ZlckpvYlN0YXR1c0MKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKIHsKICAgICByZWYoKTsKLSAgICBpZiAodXJsKCkuaXNMb2NhbEZpbGUoKSkgewotICAgICAg
ICBTdHJpbmcgcGF0aCA9IHVybCgpLnBhdGgoKTsKKyAgICBpZiAocmVxdWVzdCgpLnVybCgpLmlz
TG9jYWxGaWxlKCkpIHsKKyAgICAgICAgU3RyaW5nIHBhdGggPSByZXF1ZXN0KCkudXJsKCkucGF0
aCgpOwogICAgICAgICAvLyB3aW5kb3dzIGRvZXMgbm90IGVuam95IGEgbGVhZGluZyBzbGFzaCBv
biBwYXRocwogICAgICAgICBpZiAocGF0aFswXSA9PSAnLycpCiAgICAgICAgICAgICBwYXRoID0g
cGF0aC5zdWJzdHJpbmcoMSk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nLiBOZWVk
IHRvIHVzZSB3aWRlIHZlcnNpb24gb2YgdGhpcyBjYWxsLgotICAgICAgICBkLT5tX2ZpbGVIYW5k
bGUgPSBDcmVhdGVGaWxlQShwYXRoLnV0ZjgoKS5kYXRhKCksIEdFTkVSSUNfUkVBRCwgMCwgTlVM
TCwgT1BFTl9FWElTVElORywgRklMRV9BVFRSSUJVVEVfTk9STUFMLCBOVUxMKTsKKyAgICAgICAg
ZC0+bV9maWxlSGFuZGxlID0gQ3JlYXRlRmlsZUEocGF0aC51dGY4KCkuZGF0YSgpLCBHRU5FUklD
X1JFQUQsIDAsIDAsIE9QRU5fRVhJU1RJTkcsIEZJTEVfQVRUUklCVVRFX05PUk1BTCwgMCk7CiAK
ICAgICAgICAgLy8gRklYTUU6IHBlcmhhcHMgdGhpcyBlcnJvciBzaG91bGQgYmUgcmVwb3J0ZWQg
YXN5bmNocm9ub3VzbHkgZm9yCiAgICAgICAgIC8vIGNvbnNpc3RlbmN5LgpAQCAtMzQ0LDY0ICsz
NTksNjQgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogCiAgICAg
ICAgIGQtPm1fZmlsZUxvYWRUaW1lci5zdGFydE9uZVNob3QoMC4wKTsKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdGljIEhJTlRFUk5FVCBpbnRlcm5ldEhh
bmRsZSA9IDA7Ci0gICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAgIFN0
cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJBZ2VudCgpICsgU3RyaW5n
KCIiLCAxKTsKLSAgICAgICAgICAgIExQQ1dTVFIgdXNlckFnZW50ID0gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFyYWN0ZXJzKCkpOwotICAgICAgICAgICAg
Ly8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwotICAgICAgICAgICAgaW50ZXJuZXRIYW5kbGUg
PSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZUEVfUFJFQ09ORklHLCAw
LCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWludGVy
bmV0SGFuZGxlKSB7Ci0gICAgICAgICAgICBkZWxldGUgdGhpczsKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBzdGF0aWMgSU5URVJORVRfU1RBVFVTX0NBTExC
QUNLIGNhbGxiYWNrSGFuZGxlID0gCi0gICAgICAgICAgICBJbnRlcm5ldFNldFN0YXR1c0NhbGxi
YWNrKGludGVybmV0SGFuZGxlLCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKTsKKyAgICB9CiAK
LSAgICAgICAgaW5pdGlhbGl6ZU9mZlNjcmVlblJlc291cmNlSGFuZGxlV2luZG93KCk7Ci0gICAg
ICAgIGQtPm1fam9iSWQgPSBhZGRUb091dHN0YW5kaW5nSm9icyh0aGlzKTsKKyAgICBzdGF0aWMg
SElOVEVSTkVUIGludGVybmV0SGFuZGxlID0gMDsKKyAgICBpZiAoIWludGVybmV0SGFuZGxlKSB7
CisgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJBZ2Vu
dChyZXF1ZXN0KCkudXJsKCkpICsgU3RyaW5nKCIiLCAxKTsKKyAgICAgICAgTFBDV1NUUiB1c2Vy
QWdlbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFdDSEFSKj4odXNlckFnZW50U3RyLmNoYXJh
Y3RlcnMoKSk7CisgICAgICAgIC8vIGxlYWsgdGhlIEludGVybmV0IGZvciBub3cKKyAgICAgICAg
aW50ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZ
UEVfUFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKKyAgICB9CisgICAgaWYg
KCFpbnRlcm5ldEhhbmRsZSkgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICBzdGF0aWMgSU5URVJORVRfU1RBVFVTX0NBTExCQUNLIGNhbGxi
YWNrSGFuZGxlID0KKyAgICAgICAgSW50ZXJuZXRTZXRTdGF0dXNDYWxsYmFjayhpbnRlcm5ldEhh
bmRsZSwgdHJhbnNmZXJKb2JTdGF0dXNDYWxsYmFjayk7CiAKLSAgICAgICAgRFdPUkQgZmxhZ3Mg
PQotICAgICAgICAgICAgSU5URVJORVRfRkxBR19LRUVQX0NPTk5FQ1RJT04gfAotICAgICAgICAg
ICAgSU5URVJORVRfRkxBR19JR05PUkVfUkVESVJFQ1RfVE9fSFRUUFMgfAotICAgICAgICAgICAg
SU5URVJORVRfRkxBR19JR05PUkVfUkVESVJFQ1RfVE9fSFRUUDsKLQotICAgICAgICAvLyBGb3Ig
Zm9ybSBwb3N0aW5nLCB3ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAgV2UgaGF2ZSB0byB1
c2UKLSAgICAgICAgLy8gSW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0dHBTZW5kUmVxdWVz
dC4KLSAgICAgICAgSElOVEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVy
ID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOwotICAgICAgICBpZiAobWV0aG9kKCkgPT0g
IlBPU1QiKSB7Ci0gICAgICAgICAgICBkLT5tX3Bvc3RSZWZlcnJlciA9IHJlZmVycmVyOwotICAg
ICAgICAgICAgU3RyaW5nIGhvc3QgPSB1cmwoKS5ob3N0KCk7Ci0gICAgICAgICAgICB1cmxIYW5k
bGUgPSBJbnRlcm5ldENvbm5lY3RBKGludGVybmV0SGFuZGxlLCBob3N0LmxhdGluMSgpLmRhdGEo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsKCkucG9ydCgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvLyBubyB1
c2VybmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAv
LyBubyBwYXNzd29yZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
TlRFUk5FVF9TRVJWSUNFX0hUVFAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZsYWdzLCAoRFdPUkRfUFRSKWQtPm1fam9iSWQpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgU3RyaW5nIHVybFN0ciA9IHVybCgpLnN0cmluZygpOwotICAgICAgICAgICAg
aW50IGZyYWdtZW50SW5kZXggPSB1cmxTdHIuZmluZCgnIycpOwotICAgICAgICAgICAgaWYgKGZy
YWdtZW50SW5kZXggIT0gLTEpCi0gICAgICAgICAgICAgICAgdXJsU3RyID0gdXJsU3RyLmxlZnQo
ZnJhZ21lbnRJbmRleCk7Ci0gICAgICAgICAgICBTdHJpbmcgaGVhZGVyczsKLSAgICAgICAgICAg
IGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGhlYWRlcnMgKz0gU3Ry
aW5nKCJSZWZlcmVyOiAiKSArIHJlZmVycmVyICsgIlxyXG4iOwotCi0gICAgICAgICAgICB1cmxI
YW5kbGUgPSBJbnRlcm5ldE9wZW5VcmxBKGludGVybmV0SGFuZGxlLCB1cmxTdHIubGF0aW4xKCku
ZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJz
LmxhdGluMSgpLmRhdGEoKSwgaGVhZGVycy5sZW5ndGgoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIChEV09SRF9QVFIpZC0+bV9qb2JJZCk7Ci0gICAg
ICAgIH0KKyAgICBpbml0aWFsaXplT2ZmU2NyZWVuUmVzb3VyY2VIYW5kbGVXaW5kb3coKTsKKyAg
ICBkLT5tX2pvYklkID0gYWRkVG9PdXRzdGFuZGluZ0pvYnModGhpcyk7CiAKLSAgICAgICAgaWYg
KHVybEhhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgewotICAgICAgICAgICAgZGVsZXRl
IHRoaXM7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgZC0+
bV90aHJlYWRJZCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOworICAgIERXT1JEIGZsYWdzID0KKyAg
ICAgICAgSU5URVJORVRfRkxBR19LRUVQX0NPTk5FQ1RJT04gfAorICAgICAgICBJTlRFUk5FVF9G
TEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQUyB8CisgICAgICAgIElOVEVSTkVUX0ZMQUdfSUdO
T1JFX1JFRElSRUNUX1RPX0hUVFA7CisKKyAgICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3ZSBjYW4n
dCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAgV2UgaGF2ZSB0byB1c2UKKyAgICAvLyBJbnRlcm5ldENv
bm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1ZXN0LgorICAgIEhJTlRFUk5FVCB1cmxIYW5k
bGU7CisgICAgU3RyaW5nIHJlZmVycmVyID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOwor
ICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikgeworICAgICAgICBkLT5t
X3Bvc3RSZWZlcnJlciA9IHJlZmVycmVyOworICAgICAgICBTdHJpbmcgaG9zdCA9IHJlcXVlc3Qo
KS51cmwoKS5ob3N0KCk7CisgICAgICAgIHVybEhhbmRsZSA9IEludGVybmV0Q29ubmVjdEEoaW50
ZXJuZXRIYW5kbGUsIGhvc3QubGF0aW4xKCkuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QoKS51cmwoKS5wb3J0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCwgLy8gbm8gdXNlcm5hbWUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLCAvLyBubyBwYXNzd29yZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElOVEVSTkVUX1NFUlZJQ0VfSFRUUCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BUUilkLT5tX2pvYklkKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBTdHJpbmcgdXJsU3RyID0gcmVxdWVzdCgpLnVybCgpLnN0cmlu
ZygpOworICAgICAgICBpbnQgZnJhZ21lbnRJbmRleCA9IHVybFN0ci5maW5kKCcjJyk7CisgICAg
ICAgIGlmIChmcmFnbWVudEluZGV4ICE9IC0xKQorICAgICAgICAgICAgdXJsU3RyID0gdXJsU3Ry
LmxlZnQoZnJhZ21lbnRJbmRleCk7CisgICAgICAgIFN0cmluZyBoZWFkZXJzOworICAgICAgICBp
ZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGhlYWRlcnMgKz0gU3RyaW5nKCJS
ZWZlcmVyOiAiKSArIHJlZmVycmVyICsgIlxyXG4iOworCisgICAgICAgIHVybEhhbmRsZSA9IElu
dGVybmV0T3BlblVybEEoaW50ZXJuZXRIYW5kbGUsIHVybFN0ci5sYXRpbjEoKS5kYXRhKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5sYXRpbjEoKS5kYXRh
KCksIGhlYWRlcnMubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxhZ3MsIChEV09SRF9QVFIpZC0+bV9qb2JJZCk7CisgICAgfQogCi0gICAgICAgIHJldHVy
biB0cnVlOworICAgIGlmICh1cmxIYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyAg
ICAgICAgZGVsZXRlIHRoaXM7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisgICAgZC0+
bV90aHJlYWRJZCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOworCisgICAgcmV0dXJuIHRydWU7CiB9
CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmZpbGVMb2FkVGltZXIoVGltZXI8UmVzb3VyY2VIYW5k
bGU+KiB0aW1lcikKQEAgLTQxNSwxMCArNDMwLDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmZp
bGVMb2FkVGltZXIoVGltZXIKICAgICBkbyB7CiAgICAgICAgIGNvbnN0IGludCBidWZmZXJTaXpl
ID0gODE5MjsKICAgICAgICAgY2hhciBidWZmZXJbYnVmZmVyU2l6ZV07Ci0gICAgICAgIHJlc3Vs
dCA9IFJlYWRGaWxlKGQtPm1fZmlsZUhhbmRsZSwgJmJ1ZmZlciwgYnVmZmVyU2l6ZSwgJmJ5dGVz
UmVhZCwgTlVMTCk7IAorICAgICAgICByZXN1bHQgPSBSZWFkRmlsZShkLT5tX2ZpbGVIYW5kbGUs
ICZidWZmZXIsIGJ1ZmZlclNpemUsICZieXRlc1JlYWQsIDApOwogICAgICAgICBpZiAocmVzdWx0
ICYmIGJ5dGVzUmVhZCkKICAgICAgICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YSh0aGlz
LCBidWZmZXIsIGJ5dGVzUmVhZCwgMCk7Ci0gICAgICAgIC8vIENoZWNrIGZvciBlbmQgb2YgZmls
ZS4gCisgICAgICAgIC8vIENoZWNrIGZvciBlbmQgb2YgZmlsZS4KICAgICB9IHdoaWxlIChyZXN1
bHQgJiYgYnl0ZXNSZWFkKTsKIAogICAgIC8vIEZJWE1FOiBoYW5kbGUgZXJyb3JzIGJldHRlcgpA
QCAtNDM2LDcgKzQ1MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgZWxz
ZQogICAgICAgICBkLT5tX2ZpbGVMb2FkVGltZXIuc3RvcCgpOwogCi0gICAgY2xpZW50KCktPmRp
ZEZpbmlzaExvYWRpbmcodGhpcyk7IAorICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRo
aXMpOwogCiAgICAgaWYgKCFkLT5tX3Jlc291cmNlSGFuZGxlKQogICAgICAgICAvLyBBc3luYyBs
b2FkIGNhbmNlbGVkIGJlZm9yZSB3ZSBoYXZlIGEgaGFuZGxlIC0tIG1hcmsgb3Vyc2VsdmVzIGFz
IGluIGVycm9yLCB0byBiZSBkZWxldGVkIGxhdGVyLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45527</attachid>
            <date>2009-12-27 11:02:05 -0800</date>
            <delta_ts>2010-04-09 09:54:36 -0700</delta_ts>
            <desc>Buildfix for ResourceHandleWin.cpp</desc>
            <filename>ResourceHandle.patch</filename>
            <type>text/plain</type>
            <size>15310</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjU4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTItMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVpbGRmaXggYWZ0ZXIgcjI0MjAyIGFuZCBzb21lIHN0eWxlIGZpeGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5NjMKKworICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgor
ICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZU9mZlNjcmVlblJlc291cmNlSGFuZGxlV2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpvbkhhbmRsZUNyZWF0ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdFJlZGlyZWN0ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKwogMjAwOS0xMi0yNyAgRGlyayBTY2h1bHplICA8a3Jp
dEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lv
biA1MjU4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjYsOCArMTY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgb25IYW5k
bGVDcmVhdGVkKExQQVJBTSk7CiAgICAgdm9pZCBvblJlcXVlc3RSZWRpcmVjdGVkKExQQVJBTSk7
CiAgICAgdm9pZCBvblJlcXVlc3RDb21wbGV0ZShMUEFSQU0pOwotICAgIGZyaWVuZCB2b2lkIF9f
c3RkY2FsbCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKEhJTlRFUk5FVCwgRFdPUkRfUFRSLCBE
V09SRCwgTFBWT0lELCBEV09SRCk7Ci0gICAgZnJpZW5kIExSRVNVTFQgX19zdGRjYWxsIFJlc291
cmNlSGFuZGxlV25kUHJvYyhIV05ELCB1bnNpZ25lZCBtZXNzYWdlLCBXUEFSQU0sIExQQVJBTSk7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKSB8fCBVU0UoQ1VSTCkgfHwgVVNFKFNPVVApCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcAkocmV2aXNpb24gNTI1ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L1Jlc291cmNlSGFuZGxlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsNiBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50
ZXJuYWwuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZVdpbi5oIgogCiAjaW5jbHVkZSAiQ1N0
cmluZy5oIgogI2luY2x1ZGUgIkRvY0xvYWRlci5oIgpAQCAtMzYsNiArMzMsOSBAQAogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
RXJyb3IuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgorI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZVdpbi5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHdpbmlu
ZXQuaD4KQEAgLTUwLDkgKzUwLDkgQEAgY29uc3QgTFBDV1NUUiBrUmVzb3VyY2VIYW5kbGVXaW5k
b3dDbGFzcwogCiAvLyBNZXNzYWdlIHR5cGVzIGZvciBpbnRlcm5hbCB1c2UgKGtlZXAgaW4gc3lu
YyB3aXRoIGtNZXNzYWdlSGFuZGxlcnMpCiBlbnVtIHsKLSAgaGFuZGxlQ3JlYXRlZE1lc3NhZ2Ug
PSBXTV9VU0VSLAotICByZXF1ZXN0UmVkaXJlY3RlZE1lc3NhZ2UsCi0gIHJlcXVlc3RDb21wbGV0
ZU1lc3NhZ2UKKyAgICBoYW5kbGVDcmVhdGVkTWVzc2FnZSA9IFdNX1VTRVIsCisgICAgcmVxdWVz
dFJlZGlyZWN0ZWRNZXNzYWdlLAorICAgIHJlcXVlc3RDb21wbGV0ZU1lc3NhZ2UKIH07CiAKIHR5
cGVkZWYgdm9pZCAoUmVzb3VyY2VIYW5kbGU6OiAqUmVzb3VyY2VIYW5kbGVFdmVudEhhbmRsZXIp
KExQQVJBTSk7CkBAIC0xMDksMTYgKzEwOSwyNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplT2Zm
U2NyZWVuUmVzb3VyY2VICiAgICAgaWYgKHRyYW5zZmVySm9iV2luZG93SGFuZGxlKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBIV05EIGhXbmRQYXJlbnQgPSAwOworI2lmIFBMQVRGT1JNKFdJTkNF
KQorICAgIFdORENMQVNTIHdjZXg7CisgICAgbWVtc2V0KCZ3Y2V4LCAwLCBzaXplb2YoV05EQ0xB
U1MpKTsKKyNlbHNlCiAgICAgV05EQ0xBU1NFWCB3Y2V4OwogICAgIG1lbXNldCgmd2NleCwgMCwg
c2l6ZW9mKFdORENMQVNTRVgpKTsKICAgICB3Y2V4LmNiU2l6ZSA9IHNpemVvZihXTkRDTEFTU0VY
KTsKKyNlbmRpZgogICAgIHdjZXgubHBmblduZFByb2MgICAgPSBSZXNvdXJjZUhhbmRsZVduZFBy
b2M7CiAgICAgd2NleC5oSW5zdGFuY2UgICAgICA9IFBhZ2U6Omluc3RhbmNlSGFuZGxlKCk7CiAg
ICAgd2NleC5scHN6Q2xhc3NOYW1lICA9IGtSZXNvdXJjZUhhbmRsZVdpbmRvd0NsYXNzTmFtZTsK
KyNpZiBQTEFURk9STShXSU5DRSkKKyAgICBSZWdpc3RlckNsYXNzKCZ3Y2V4KTsKKyNlbHNlCiAg
ICAgUmVnaXN0ZXJDbGFzc0V4KCZ3Y2V4KTsKKyAgICBoV25kUGFyZW50ID0gSFdORF9NRVNTQUdF
OworI2VuZGlmCiAKICAgICB0cmFuc2ZlckpvYldpbmRvd0hhbmRsZSA9IENyZWF0ZVdpbmRvdyhr
UmVzb3VyY2VIYW5kbGVXaW5kb3dDbGFzc05hbWUsIDAsIDAsIENXX1VTRURFRkFVTFQsIDAsIENX
X1VTRURFRkFVTFQsIDAsCi0gICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgUGFnZTo6aW5zdGFuY2VI
YW5kbGUoKSwgMCk7CisgICAgICAgIGhXbmRQYXJlbnQsIDAsIFBhZ2U6Omluc3RhbmNlSGFuZGxl
KCksIDApOwogfQogCiBSZXNvdXJjZUhhbmRsZUludGVybmFsOjp+UmVzb3VyY2VIYW5kbGVJbnRl
cm5hbCgpCkBAIC0xMzcsMjMgKzE0OCwyMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpvbkhhbmRs
ZUNyZWF0ZWQoTFBBCiB7CiAgICAgaWYgKCFkLT5tX3Jlc291cmNlSGFuZGxlKSB7CiAgICAgICAg
IGQtPm1fcmVzb3VyY2VIYW5kbGUgPSBISU5URVJORVQobFBhcmFtKTsKLSAgICAgICAgaWYgKGQt
PnN0YXR1cyAhPSAwKSB7CisgICAgICAgIGlmIChkLT5zdGF0dXMpIHsKICAgICAgICAgICAgIC8v
IFdlIHdlcmUgY2FuY2VsZWQgYmVmb3JlIFdpbmRvd3MgYWN0dWFsbHkgY3JlYXRlZCBhIGhhbmRs
ZSBmb3IgdXMsIGNsb3NlIGFuZCBkZWxldGUgbm93LgogICAgICAgICAgICAgSW50ZXJuZXRDbG9z
ZUhhbmRsZShkLT5tX3Jlc291cmNlSGFuZGxlKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1ldGhvZCgpID09
ICJQT1NUIikgeworICAgICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIp
IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUb28gbGF0ZSB0byBzZXQgcmVmZXJyZXIgcHJvcGVy
bHkuCi0gICAgICAgICAgICBTdHJpbmcgdXJsU3RyID0gdXJsKCkucGF0aCgpOworICAgICAgICAg
ICAgU3RyaW5nIHVybFN0ciA9IHJlcXVlc3QoKS51cmwoKS5wYXRoKCk7CiAgICAgICAgICAgICBp
bnQgZnJhZ21lbnRJbmRleCA9IHVybFN0ci5maW5kKCcjJyk7CiAgICAgICAgICAgICBpZiAoZnJh
Z21lbnRJbmRleCAhPSAtMSkKICAgICAgICAgICAgICAgICB1cmxTdHIgPSB1cmxTdHIubGVmdChm
cmFnbWVudEluZGV4KTsKLSAgICAgICAgICAgIHN0YXRpYyBMUENTVFIgYWNjZXB0WzJdPXsiKi8q
IiwgTlVMTH07Ci0gICAgICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlID0gSHR0cE9wZW5SZXF1
ZXN0QShkLT5tX3Jlc291cmNlSGFuZGxlLCAKKyAgICAgICAgICAgIHN0YXRpYyBMUENTVFIgYWNj
ZXB0WzJdID0geyIqLyoiLCAwfTsKKyAgICAgICAgICAgIEhJTlRFUk5FVCB1cmxIYW5kbGUgPSBI
dHRwT3BlblJlcXVlc3RBKGQtPm1fcmVzb3VyY2VIYW5kbGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUE9TVCIsIHVybFN0ci5sYXRpbjEoKS5k
YXRhKCksIDAsIDAsIGFjY2VwdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElOVEVSTkVUX0ZMQUdfS0VFUF9DT05ORUNUSU9OIHwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFUk5FVF9GTEFH
X0tFRVBfQ09OTkVDVElPTiB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJTlRFUk5FVF9GTEFHX0ZPUk1TX1NVQk1JVCB8CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFUk5FVF9GTEFHX1JFTE9B
RCB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
TlRFUk5FVF9GTEFHX05PX0NBQ0hFX1dSSVRFIHwKQEAgLTE2NiwyNyArMTc3LDI3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6Om9uSGFuZGxlQ3JlYXRlZChMUEEKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0gZWxzZSBpZiAoIWQtPm1fc2Vjb25kYXJ5SGFuZGxlKSB7Ci0gICAgICAgIGFz
c2VydChtZXRob2QoKSA9PSAiUE9TVCIpOworICAgICAgICBhc3NlcnQocmVxdWVzdCgpLmh0dHBN
ZXRob2QoKSA9PSAiUE9TVCIpOwogICAgICAgICBkLT5tX3NlY29uZGFyeUhhbmRsZSA9IEhJTlRF
Uk5FVChsUGFyYW0pOwotICAgICAgICAKKwogICAgICAgICAvLyBOZWVkIHRvIGFjdHVhbGx5IHNl
bmQgdGhlIHJlcXVlc3Qgbm93LgogICAgICAgICBTdHJpbmcgaGVhZGVycyA9ICJDb250ZW50LVR5
cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxuIjsKICAgICAgICAgaGVhZGVy
cyArPSAiUmVmZXJlcjogIjsKICAgICAgICAgaGVhZGVycyArPSBkLT5tX3Bvc3RSZWZlcnJlcjsK
ICAgICAgICAgaGVhZGVycyArPSAiXG4iOwogICAgICAgICBjb25zdCBDU3RyaW5nJiBoZWFkZXJz
TGF0aW4xID0gaGVhZGVycy5sYXRpbjEoKTsKLSAgICAgICAgU3RyaW5nIGZvcm1EYXRhID0gcG9z
dERhdGEoKS0+ZmxhdHRlblRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBmb3JtRGF0YSA9IHJl
cXVlc3QoKS5odHRwQm9keSgpLT5mbGF0dGVuVG9TdHJpbmcoKTsKICAgICAgICAgSU5URVJORVRf
QlVGRkVSU0EgYnVmZmVyczsKICAgICAgICAgbWVtc2V0KCZidWZmZXJzLCAwLCBzaXplb2YoYnVm
ZmVycykpOwogICAgICAgICBidWZmZXJzLmR3U3RydWN0U2l6ZSA9IHNpemVvZihJTlRFUk5FVF9C
VUZGRVJTQSk7Ci0gICAgICAgIGJ1ZmZlcnMubHBjc3pIZWFkZXIgPSBoZWFkZXJzTGF0aW4xOwor
ICAgICAgICBidWZmZXJzLmxwY3N6SGVhZGVyID0gaGVhZGVyc0xhdGluMS5kYXRhKCk7CiAgICAg
ICAgIGJ1ZmZlcnMuZHdIZWFkZXJzTGVuZ3RoID0gaGVhZGVycy5sZW5ndGgoKTsKICAgICAgICAg
YnVmZmVycy5kd0J1ZmZlclRvdGFsID0gZm9ybURhdGEubGVuZ3RoKCk7Ci0gICAgICAgIAorCiAg
ICAgICAgIGQtPm1fYnl0ZXNSZW1haW5pbmdUb1dyaXRlID0gZm9ybURhdGEubGVuZ3RoKCk7CiAg
ICAgICAgIGQtPm1fZm9ybURhdGFTdHJpbmcgPSAoY2hhciopbWFsbG9jKGZvcm1EYXRhLmxlbmd0
aCgpKTsKICAgICAgICAgZC0+bV9mb3JtRGF0YUxlbmd0aCA9IGZvcm1EYXRhLmxlbmd0aCgpOwot
ICAgICAgICBzdHJuY3B5KGQtPm1fZm9ybURhdGFTdHJpbmcsIGZvcm1EYXRhLmxhdGluMSgpLCBm
b3JtRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIHN0cm5jcHkoZC0+bV9mb3JtRGF0YVN0cmluZywg
Zm9ybURhdGEubGF0aW4xKCkuZGF0YSgpLCBmb3JtRGF0YS5sZW5ndGgoKSk7CiAgICAgICAgIGQt
Pm1fd3JpdGluZyA9IHRydWU7CiAgICAgICAgIEh0dHBTZW5kUmVxdWVzdEV4QShkLT5tX3NlY29u
ZGFyeUhhbmRsZSwgJmJ1ZmZlcnMsIDAsIDAsIChEV09SRF9QVFIpZC0+bV9qb2JJZCk7CiAgICAg
ICAgIC8vIEZJWE1FOiBhZGQgcHJvcGVyIGVycm9yIGhhbmRsaW5nCkBAIC0xOTYsNyArMjA3LDcg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6b25IYW5kbGVDcmVhdGVkKExQQQogdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6b25SZXF1ZXN0UmVkaXJlY3RlZChMUEFSQU0gbFBhcmFtKQogewogICAgIC8vIElm
IGFscmVhZHkgY2FuY2VsZWQsIHRoZW4gaWdub3JlIHRoaXMgZXZlbnQuCi0gICAgaWYgKGQtPnN0
YXR1cyAhPSAwKQorICAgIGlmIChkLT5zdGF0dXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KChTdHJpbmdJbXBsKikgbFBhcmFtKTsKQEAgLTIyMyw3ICsy
MzQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZShMCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBISU5URVJORVQgaGFuZGxlID0gKG1ldGhvZCgpID09ICJQ
T1NUIikgPyBkLT5tX3NlY29uZGFyeUhhbmRsZSA6IGQtPm1fcmVzb3VyY2VIYW5kbGU7CisgICAg
SElOVEVSTkVUIGhhbmRsZSA9IChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikgPyBk
LT5tX3NlY29uZGFyeUhhbmRsZSA6IGQtPm1fcmVzb3VyY2VIYW5kbGU7CiAgICAgQk9PTCBvayA9
IEZBTFNFOwogCiAgICAgc3RhdGljIGNvbnN0IGludCBidWZmZXJTaXplID0gMzI3Njg7CkBAIC0y
NjAsOSArMjcxLDEzIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKEwK
ICAgICAgICAgICAgICAgICBJbnRlcm5ldEdldExhc3RSZXNwb25zZUluZm8oJnBsYXRmb3JtRGF0
YS5lcnJvciwgcGxhdGZvcm1EYXRhLmVycm9yU3RyaW5nLCAmZXJyb3JTdHJpbmdDaGFycyk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgX1JQVEYxKF9DUlRfV0FSTiwgIkxvYWQg
ZXJyb3I6ICVpXG4iLCBlcnJvcik7CisjaWZkZWYgUkVTT1VSQ0VfTE9BREVSX0RFQlVHCisgICAg
ICAgIGNoYXIgYnVmWzY0XTsKKyAgICAgICAgX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJM
b2FkIGVycm9yOiAlaVxuIiwgZXJyb3IpOworICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZ0EoYnVm
KTsKKyNlbmRpZgogICAgIH0KLSAgICAKKwogICAgIGlmIChkLT5tX3NlY29uZGFyeUhhbmRsZSkK
ICAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3NlY29uZGFyeUhhbmRsZSk7CiAgICAg
SW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3Jlc291cmNlSGFuZGxlKTsKQEAgLTMwOSw4ICszMjQs
OCBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0dXNDCiAgICAgICAgIC8v
IG5lZWQgdG8gYmxvY2sgdGhlIHJlZGlyZWN0IGF0IHRoaXMgcG9pbnQgc28gdGhlIGFwcGxpY2F0
aW9uIGNhbgogICAgICAgICAvLyBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gZm9sbG93IHRoZSBy
ZWRpcmVjdCkKICAgICAgICAgbXNnID0gcmVxdWVzdFJlZGlyZWN0ZWRNZXNzYWdlOwotICAgICAg
ICBsUGFyYW0gPSAoTFBBUkFNKSBuZXcgU3RyaW5nSW1wbCgoY29uc3QgVUNoYXIqKSBzdGF0dXNJ
bmZvcm1hdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dHVzSW5mb3JtYXRpb25MZW5ndGgpOworICAgICAgICBsUGFyYW0gPSAoTFBBUkFNKSBTdHJpbmdJ
bXBsOjpjcmVhdGUoKGNvbnN0IFVDaGFyKikgc3RhdHVzSW5mb3JtYXRpb24sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNJbmZvcm1hdGlvbkxlbmd0
aCkucmVsZWFzZVJlZigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIElOVEVSTkVUX1NUQVRV
U19VU0VSX0lOUFVUX1JFUVVJUkVEOgogICAgICAgICAvLyBGSVhNRTogcHJvbXB0IHRoZSB1c2Vy
IGlmIG5lY2Vzc2FyeQpAQCAtMzI3LDEzICszNDIsMTMgQEAgc3RhdGljIHZvaWQgX19zdGRjYWxs
IHRyYW5zZmVySm9iU3RhdHVzQwogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZy
YW1lKQogewogICAgIHJlZigpOwotICAgIGlmICh1cmwoKS5pc0xvY2FsRmlsZSgpKSB7Ci0gICAg
ICAgIFN0cmluZyBwYXRoID0gdXJsKCkucGF0aCgpOworICAgIGlmIChyZXF1ZXN0KCkudXJsKCku
aXNMb2NhbEZpbGUoKSkgeworICAgICAgICBTdHJpbmcgcGF0aCA9IHJlcXVlc3QoKS51cmwoKS5w
YXRoKCk7CiAgICAgICAgIC8vIHdpbmRvd3MgZG9lcyBub3QgZW5qb3kgYSBsZWFkaW5nIHNsYXNo
IG9uIHBhdGhzCiAgICAgICAgIGlmIChwYXRoWzBdID09ICcvJykKICAgICAgICAgICAgIHBhdGgg
PSBwYXRoLnN1YnN0cmluZygxKTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgd3JvbmcuIE5l
ZWQgdG8gdXNlIHdpZGUgdmVyc2lvbiBvZiB0aGlzIGNhbGwuCi0gICAgICAgIGQtPm1fZmlsZUhh
bmRsZSA9IENyZWF0ZUZpbGVBKHBhdGgudXRmOCgpLmRhdGEoKSwgR0VORVJJQ19SRUFELCAwLCBO
VUxMLCBPUEVOX0VYSVNUSU5HLCBGSUxFX0FUVFJJQlVURV9OT1JNQUwsIE5VTEwpOworICAgICAg
ICBkLT5tX2ZpbGVIYW5kbGUgPSBDcmVhdGVGaWxlQShwYXRoLnV0ZjgoKS5kYXRhKCksIEdFTkVS
SUNfUkVBRCwgMCwgMCwgT1BFTl9FWElTVElORywgRklMRV9BVFRSSUJVVEVfTk9STUFMLCAwKTsK
IAogICAgICAgICAvLyBGSVhNRTogcGVyaGFwcyB0aGlzIGVycm9yIHNob3VsZCBiZSByZXBvcnRl
ZCBhc3luY2hyb25vdXNseSBmb3IKICAgICAgICAgLy8gY29uc2lzdGVuY3kuCkBAIC0zNDQsNjQg
KzM1OSw2MyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAKICAg
ICAgICAgZC0+bV9maWxlTG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwLjApOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0
SGFuZGxlID0gMDsKLSAgICAgICAgaWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAg
U3RyaW5nIHVzZXJBZ2VudFN0ciA9IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KCkgKyBTdHJp
bmcoIiIsIDEpOwotICAgICAgICAgICAgTFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9j
YXN0PGNvbnN0IFdDSEFSKj4odXNlckFnZW50U3RyLmNoYXJhY3RlcnMoKSk7Ci0gICAgICAgICAg
ICAvLyBsZWFrIHRoZSBJbnRlcm5ldCBmb3Igbm93Ci0gICAgICAgICAgICBpbnRlcm5ldEhhbmRs
ZSA9IEludGVybmV0T3Blbih1c2VyQWdlbnQsIElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcs
IDAsIDAsIElOVEVSTkVUX0ZMQUdfQVNZTkMpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghaW50
ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBJTlRFUk5FVF9TVEFUVVNfQ0FM
TEJBQ0sgY2FsbGJhY2tIYW5kbGUgPSAKLSAgICAgICAgICAgIEludGVybmV0U2V0U3RhdHVzQ2Fs
bGJhY2soaW50ZXJuZXRIYW5kbGUsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2spOwotCi0gICAg
ICAgIGluaXRpYWxpemVPZmZTY3JlZW5SZXNvdXJjZUhhbmRsZVdpbmRvdygpOwotICAgICAgICBk
LT5tX2pvYklkID0gYWRkVG9PdXRzdGFuZGluZ0pvYnModGhpcyk7CisgICAgfQorICAgIHN0YXRp
YyBISU5URVJORVQgaW50ZXJuZXRIYW5kbGUgPSAwOworICAgIGlmICghaW50ZXJuZXRIYW5kbGUp
IHsKKyAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFn
ZW50KHJlcXVlc3QoKS51cmwoKSkgKyBTdHJpbmcoIiIsIDEpOworICAgICAgICBMUENXU1RSIHVz
ZXJBZ2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hh
cmFjdGVycygpKTsKKyAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdworICAgICAg
ICBpbnRlcm5ldEhhbmRsZSA9IEludGVybmV0T3Blbih1c2VyQWdlbnQsIElOVEVSTkVUX09QRU5f
VFlQRV9QUkVDT05GSUcsIDAsIDAsIElOVEVSTkVUX0ZMQUdfQVNZTkMpOworICAgIH0KKyAgICBp
ZiAoIWludGVybmV0SGFuZGxlKSB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIHN0YXRpYyBJTlRFUk5FVF9TVEFUVVNfQ0FMTEJBQ0sgY2Fs
bGJhY2tIYW5kbGUgPQorICAgICAgICBJbnRlcm5ldFNldFN0YXR1c0NhbGxiYWNrKGludGVybmV0
SGFuZGxlLCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKTsKIAotICAgICAgICBEV09SRCBmbGFn
cyA9Ci0gICAgICAgICAgICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8Ci0gICAgICAg
ICAgICBJTlRFUk5FVF9GTEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQUyB8Ci0gICAgICAgICAg
ICBJTlRFUk5FVF9GTEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQOwotCi0gICAgICAgIC8vIEZv
ciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRv
IHVzZQotICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1
ZXN0LgotICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJy
ZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7Ci0gICAgICAgIGlmIChtZXRob2QoKSA9
PSAiUE9TVCIpIHsKLSAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7Ci0g
ICAgICAgICAgICBTdHJpbmcgaG9zdCA9IHVybCgpLmhvc3QoKTsKLSAgICAgICAgICAgIHVybEhh
bmRsZSA9IEludGVybmV0Q29ubmVjdEEoaW50ZXJuZXRIYW5kbGUsIGhvc3QubGF0aW4xKCkuZGF0
YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwoKS5wb3J0
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8vIG5v
IHVzZXJuYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
IC8vIG5vIHBhc3N3b3JkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElOVEVSTkVUX1NFUlZJQ0VfSFRUUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhZ3MsIChEV09SRF9QVFIpZC0+bV9qb2JJZCk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBTdHJpbmcgdXJsU3RyID0gdXJsKCkuc3RyaW5nKCk7Ci0gICAgICAgICAg
ICBpbnQgZnJhZ21lbnRJbmRleCA9IHVybFN0ci5maW5kKCcjJyk7Ci0gICAgICAgICAgICBpZiAo
ZnJhZ21lbnRJbmRleCAhPSAtMSkKLSAgICAgICAgICAgICAgICB1cmxTdHIgPSB1cmxTdHIubGVm
dChmcmFnbWVudEluZGV4KTsKLSAgICAgICAgICAgIFN0cmluZyBoZWFkZXJzOwotICAgICAgICAg
ICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgaGVhZGVycyArPSBT
dHJpbmcoIlJlZmVyZXI6ICIpICsgcmVmZXJyZXIgKyAiXHJcbiI7Ci0KLSAgICAgICAgICAgIHVy
bEhhbmRsZSA9IEludGVybmV0T3BlblVybEEoaW50ZXJuZXRIYW5kbGUsIHVybFN0ci5sYXRpbjEo
KS5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRl
cnMubGF0aW4xKCkuZGF0YSgpLCBoZWFkZXJzLmxlbmd0aCgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BUUilkLT5tX2pvYklkKTsKLSAg
ICAgICAgfQorICAgIGluaXRpYWxpemVPZmZTY3JlZW5SZXNvdXJjZUhhbmRsZVdpbmRvdygpOwor
ICAgIGQtPm1fam9iSWQgPSBhZGRUb091dHN0YW5kaW5nSm9icyh0aGlzKTsKIAotICAgICAgICBp
ZiAodXJsSGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7Ci0gICAgICAgICAgICBkZWxl
dGUgdGhpczsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBk
LT5tX3RocmVhZElkID0gR2V0Q3VycmVudFRocmVhZElkKCk7CisgICAgRFdPUkQgZmxhZ3MgPQor
ICAgICAgICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8CisgICAgICAgIElOVEVSTkVU
X0ZMQUdfSUdOT1JFX1JFRElSRUNUX1RPX0hUVFBTIHwKKyAgICAgICAgSU5URVJORVRfRkxBR19J
R05PUkVfUkVESVJFQ1RfVE9fSFRUUDsKKworICAgIC8vIEZvciBmb3JtIHBvc3RpbmcsIHdlIGNh
bid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRvIHVzZQorICAgIC8vIEludGVybmV0
Q29ubmVjdCBmb2xsb3dlZCBieSBIdHRwU2VuZFJlcXVlc3QuCisgICAgSElOVEVSTkVUIHVybEhh
bmRsZTsKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7
CisgICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKSB7CisgICAgICAgIGQt
Pm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7CisgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVz
dCgpLnVybCgpLmhvc3QoKTsKKyAgICAgICAgdXJsSGFuZGxlID0gSW50ZXJuZXRDb25uZWN0QShp
bnRlcm5ldEhhbmRsZSwgaG9zdC5sYXRpbjEoKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdCgpLnVybCgpLnBvcnQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCAvLyBubyB1c2VybmFtZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsIC8vIG5vIHBhc3N3b3JkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSU5URVJORVRfU0VSVklDRV9IVFRQLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAoRFdPUkRfUFRSKWQtPm1fam9iSWQpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIFN0cmluZyB1cmxTdHIgPSByZXF1ZXN0KCkudXJsKCkuc3Ry
aW5nKCk7CisgICAgICAgIGludCBmcmFnbWVudEluZGV4ID0gdXJsU3RyLmZpbmQoJyMnKTsKKyAg
ICAgICAgaWYgKGZyYWdtZW50SW5kZXggIT0gLTEpCisgICAgICAgICAgICB1cmxTdHIgPSB1cmxT
dHIubGVmdChmcmFnbWVudEluZGV4KTsKKyAgICAgICAgU3RyaW5nIGhlYWRlcnM7CisgICAgICAg
IGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgaGVhZGVycyArPSBTdHJpbmco
IlJlZmVyZXI6ICIpICsgcmVmZXJyZXIgKyAiXHJcbiI7CisKKyAgICAgICAgdXJsSGFuZGxlID0g
SW50ZXJuZXRPcGVuVXJsQShpbnRlcm5ldEhhbmRsZSwgdXJsU3RyLmxhdGluMSgpLmRhdGEoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLmxhdGluMSgpLmRh
dGEoKSwgaGVhZGVycy5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmbGFncywgKERXT1JEX1BUUilkLT5tX2pvYklkKTsKKyAgICB9CiAKLSAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgaWYgKHVybEhhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgewor
ICAgICAgICBkZWxldGUgdGhpczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICBk
LT5tX3RocmVhZElkID0gR2V0Q3VycmVudFRocmVhZElkKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcihUaW1lcjxSZXNvdXJjZUhh
bmRsZT4qIHRpbWVyKQpAQCAtNDE1LDEwICs0MjksMTAgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
ZmlsZUxvYWRUaW1lcihUaW1lcgogICAgIGRvIHsKICAgICAgICAgY29uc3QgaW50IGJ1ZmZlclNp
emUgPSA4MTkyOwogICAgICAgICBjaGFyIGJ1ZmZlcltidWZmZXJTaXplXTsKLSAgICAgICAgcmVz
dWx0ID0gUmVhZEZpbGUoZC0+bV9maWxlSGFuZGxlLCAmYnVmZmVyLCBidWZmZXJTaXplLCAmYnl0
ZXNSZWFkLCBOVUxMKTsgCisgICAgICAgIHJlc3VsdCA9IFJlYWRGaWxlKGQtPm1fZmlsZUhhbmRs
ZSwgJmJ1ZmZlciwgYnVmZmVyU2l6ZSwgJmJ5dGVzUmVhZCwgMCk7CiAgICAgICAgIGlmIChyZXN1
bHQgJiYgYnl0ZXNSZWFkKQogICAgICAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKHRo
aXMsIGJ1ZmZlciwgYnl0ZXNSZWFkLCAwKTsKLSAgICAgICAgLy8gQ2hlY2sgZm9yIGVuZCBvZiBm
aWxlLiAKKyAgICAgICAgLy8gQ2hlY2sgZm9yIGVuZCBvZiBmaWxlLgogICAgIH0gd2hpbGUgKHJl
c3VsdCAmJiBieXRlc1JlYWQpOwogCiAgICAgLy8gRklYTUU6IGhhbmRsZSBlcnJvcnMgYmV0dGVy
CkBAIC00MzYsNyArNDUwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKCkKICAgICBl
bHNlCiAgICAgICAgIGQtPm1fZmlsZUxvYWRUaW1lci5zdG9wKCk7CiAKLSAgICBjbGllbnQoKS0+
ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsgCisgICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmco
dGhpcyk7CiAKICAgICBpZiAoIWQtPm1fcmVzb3VyY2VIYW5kbGUpCiAgICAgICAgIC8vIEFzeW5j
IGxvYWQgY2FuY2VsZWQgYmVmb3JlIHdlIGhhdmUgYSBoYW5kbGUgLS0gbWFyayBvdXJzZWx2ZXMg
YXMgaW4gZXJyb3IsIHRvIGJlIGRlbGV0ZWQgbGF0ZXIuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52961</attachid>
            <date>2010-04-09 09:54:36 -0700</date>
            <delta_ts>2010-04-09 10:29:55 -0700</delta_ts>
            <desc>The patch (only the buildfix for Win32)</desc>
            <filename>bug-32963.patch</filename>
            <type>text/plain</type>
            <size>6326</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU3MzQxKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE2IEBADQorMjAxMC0wNC0wOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBCdWlsZGZpeCBmb3IgUmVzb3VyY2VIYW5kbGVXaW4gYWZ0ZXIgcjI0MjAyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5NjMgCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6b25IYW5kbGVDcmVhdGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjp0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CisKIDIwMTAtMDQtMDggIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwCShyZXZpc2lvbiA1NzMxOSkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L1Jlc291cmNlSGFuZGxlV2luLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTE0NCw5ICsxNDQsOSBA
QA0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgIH0NCiANCi0gICAgICAgIGlmIChtZXRo
b2QoKSA9PSAiUE9TVCIpIHsNCisgICAgICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09
ICJQT1NUIikgew0KICAgICAgICAgICAgIC8vIEZJWE1FOiBUb28gbGF0ZSB0byBzZXQgcmVmZXJy
ZXIgcHJvcGVybHkuDQotICAgICAgICAgICAgU3RyaW5nIHVybFN0ciA9IHVybCgpLnBhdGgoKTsN
CisgICAgICAgICAgICBTdHJpbmcgdXJsU3RyID0gcmVxdWVzdCgpLnVybCgpLnBhdGgoKTsNCiAg
ICAgICAgICAgICBpbnQgZnJhZ21lbnRJbmRleCA9IHVybFN0ci5maW5kKCcjJyk7DQogICAgICAg
ICAgICAgaWYgKGZyYWdtZW50SW5kZXggIT0gLTEpDQogICAgICAgICAgICAgICAgIHVybFN0ciA9
IHVybFN0ci5sZWZ0KGZyYWdtZW50SW5kZXgpOw0KQEAgLTE2Niw3ICsxNjYsNyBAQA0KICAgICAg
ICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgfSBlbHNlIGlmICghZC0+bV9zZWNvbmRhcnlIYW5k
bGUpIHsNCi0gICAgICAgIGFzc2VydChtZXRob2QoKSA9PSAiUE9TVCIpOw0KKyAgICAgICAgYXNz
ZXJ0KHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKTsNCiAgICAgICAgIGQtPm1fc2Vj
b25kYXJ5SGFuZGxlID0gSElOVEVSTkVUKGxQYXJhbSk7DQogICAgICAgICANCiAgICAgICAgIC8v
IE5lZWQgdG8gYWN0dWFsbHkgc2VuZCB0aGUgcmVxdWVzdCBub3cuDQpAQCAtMTc1LDE4ICsxNzUs
MTggQEANCiAgICAgICAgIGhlYWRlcnMgKz0gZC0+bV9wb3N0UmVmZXJyZXI7DQogICAgICAgICBo
ZWFkZXJzICs9ICJcbiI7DQogICAgICAgICBjb25zdCBDU3RyaW5nJiBoZWFkZXJzTGF0aW4xID0g
aGVhZGVycy5sYXRpbjEoKTsNCi0gICAgICAgIFN0cmluZyBmb3JtRGF0YSA9IHBvc3REYXRhKCkt
PmZsYXR0ZW5Ub1N0cmluZygpOw0KKyAgICAgICAgU3RyaW5nIGZvcm1EYXRhID0gcmVxdWVzdCgp
Lmh0dHBCb2R5KCktPmZsYXR0ZW5Ub1N0cmluZygpOw0KICAgICAgICAgSU5URVJORVRfQlVGRkVS
U0EgYnVmZmVyczsNCiAgICAgICAgIG1lbXNldCgmYnVmZmVycywgMCwgc2l6ZW9mKGJ1ZmZlcnMp
KTsNCiAgICAgICAgIGJ1ZmZlcnMuZHdTdHJ1Y3RTaXplID0gc2l6ZW9mKElOVEVSTkVUX0JVRkZF
UlNBKTsNCi0gICAgICAgIGJ1ZmZlcnMubHBjc3pIZWFkZXIgPSBoZWFkZXJzTGF0aW4xOw0KKyAg
ICAgICAgYnVmZmVycy5scGNzekhlYWRlciA9IGhlYWRlcnNMYXRpbjEuZGF0YSgpOw0KICAgICAg
ICAgYnVmZmVycy5kd0hlYWRlcnNMZW5ndGggPSBoZWFkZXJzLmxlbmd0aCgpOw0KICAgICAgICAg
YnVmZmVycy5kd0J1ZmZlclRvdGFsID0gZm9ybURhdGEubGVuZ3RoKCk7DQogICAgICAgICANCiAg
ICAgICAgIGQtPm1fYnl0ZXNSZW1haW5pbmdUb1dyaXRlID0gZm9ybURhdGEubGVuZ3RoKCk7DQog
ICAgICAgICBkLT5tX2Zvcm1EYXRhU3RyaW5nID0gKGNoYXIqKW1hbGxvYyhmb3JtRGF0YS5sZW5n
dGgoKSk7DQogICAgICAgICBkLT5tX2Zvcm1EYXRhTGVuZ3RoID0gZm9ybURhdGEubGVuZ3RoKCk7
DQotICAgICAgICBzdHJuY3B5KGQtPm1fZm9ybURhdGFTdHJpbmcsIGZvcm1EYXRhLmxhdGluMSgp
LCBmb3JtRGF0YS5sZW5ndGgoKSk7DQorICAgICAgICBzdHJuY3B5KGQtPm1fZm9ybURhdGFTdHJp
bmcsIGZvcm1EYXRhLmxhdGluMSgpLmRhdGEoKSwgZm9ybURhdGEubGVuZ3RoKCkpOw0KICAgICAg
ICAgZC0+bV93cml0aW5nID0gdHJ1ZTsNCiAgICAgICAgIEh0dHBTZW5kUmVxdWVzdEV4QShkLT5t
X3NlY29uZGFyeUhhbmRsZSwgJmJ1ZmZlcnMsIDAsIDAsIChEV09SRF9QVFIpZC0+bV9qb2JJZCk7
DQogICAgICAgICAvLyBGSVhNRTogYWRkIHByb3BlciBlcnJvciBoYW5kbGluZw0KQEAgLTIyMyw3
ICsyMjMsNyBAQA0KICAgICAgICAgcmV0dXJuOw0KICAgICB9DQogDQotICAgIEhJTlRFUk5FVCBo
YW5kbGUgPSAobWV0aG9kKCkgPT0gIlBPU1QiKSA/IGQtPm1fc2Vjb25kYXJ5SGFuZGxlIDogZC0+
bV9yZXNvdXJjZUhhbmRsZTsNCisgICAgSElOVEVSTkVUIGhhbmRsZSA9IChyZXF1ZXN0KCkuaHR0
cE1ldGhvZCgpID09ICJQT1NUIikgPyBkLT5tX3NlY29uZGFyeUhhbmRsZSA6IGQtPm1fcmVzb3Vy
Y2VIYW5kbGU7DQogICAgIEJPT0wgb2sgPSBGQUxTRTsNCiANCiAgICAgc3RhdGljIGNvbnN0IGlu
dCBidWZmZXJTaXplID0gMzI3Njg7DQpAQCAtMjYwLDcgKzI2MCwxMSBAQA0KICAgICAgICAgICAg
ICAgICBJbnRlcm5ldEdldExhc3RSZXNwb25zZUluZm8oJnBsYXRmb3JtRGF0YS5lcnJvciwgcGxh
dGZvcm1EYXRhLmVycm9yU3RyaW5nLCAmZXJyb3JTdHJpbmdDaGFycyk7DQogICAgICAgICAgICAg
fQ0KICAgICAgICAgfQ0KLSAgICAgICAgX1JQVEYxKF9DUlRfV0FSTiwgIkxvYWQgZXJyb3I6ICVp
XG4iLCBlcnJvcik7DQorI2lmZGVmIFJFU09VUkNFX0xPQURFUl9ERUJVRw0KKyAgICAgICAgY2hh
ciBidWZbNjRdOw0KKyAgICAgICAgX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJMb2FkIGVy
cm9yOiAlaVxuIiwgZXJyb3IpOw0KKyAgICAgICAgT3V0cHV0RGVidWdTdHJpbmdBKGJ1Zik7DQor
I2VuZGlmIA0KICAgICB9DQogICAgIA0KICAgICBpZiAoZC0+bV9zZWNvbmRhcnlIYW5kbGUpDQpA
QCAtMzA5LDggKzMxMyw4IEBADQogICAgICAgICAvLyBuZWVkIHRvIGJsb2NrIHRoZSByZWRpcmVj
dCBhdCB0aGlzIHBvaW50IHNvIHRoZSBhcHBsaWNhdGlvbiBjYW4NCiAgICAgICAgIC8vIGRlY2lk
ZSB3aGV0aGVyIG9yIG5vdCB0byBmb2xsb3cgdGhlIHJlZGlyZWN0KQ0KICAgICAgICAgbXNnID0g
cmVxdWVzdFJlZGlyZWN0ZWRNZXNzYWdlOw0KLSAgICAgICAgbFBhcmFtID0gKExQQVJBTSkgbmV3
IFN0cmluZ0ltcGwoKGNvbnN0IFVDaGFyKikgc3RhdHVzSW5mb3JtYXRpb24sDQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNJbmZvcm1hdGlvbkxlbmd0aCk7
DQorICAgICAgICBsUGFyYW0gPSAoTFBBUkFNKSBTdHJpbmdJbXBsOjpjcmVhdGUoKGNvbnN0IFVD
aGFyKikgc3RhdHVzSW5mb3JtYXRpb24sDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdHVzSW5mb3JtYXRpb25MZW5ndGgpLnJlbGVhc2VSZWYoKTsNCiAg
ICAgICAgIGJyZWFrOw0KICAgICBjYXNlIElOVEVSTkVUX1NUQVRVU19VU0VSX0lOUFVUX1JFUVVJ
UkVEOg0KICAgICAgICAgLy8gRklYTUU6IHByb21wdCB0aGUgdXNlciBpZiBuZWNlc3NhcnkNCkBA
IC0zMjcsOCArMzMxLDggQEANCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJh
bWUpDQogew0KICAgICByZWYoKTsNCi0gICAgaWYgKHVybCgpLmlzTG9jYWxGaWxlKCkpIHsNCi0g
ICAgICAgIFN0cmluZyBwYXRoID0gdXJsKCkucGF0aCgpOw0KKyAgICBpZiAocmVxdWVzdCgpLnVy
bCgpLmlzTG9jYWxGaWxlKCkpIHsNCisgICAgICAgIFN0cmluZyBwYXRoID0gcmVxdWVzdCgpLnVy
bCgpLnBhdGgoKTsNCiAgICAgICAgIC8vIHdpbmRvd3MgZG9lcyBub3QgZW5qb3kgYSBsZWFkaW5n
IHNsYXNoIG9uIHBhdGhzDQogICAgICAgICBpZiAocGF0aFswXSA9PSAnLycpDQogICAgICAgICAg
ICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDEpOw0KQEAgLTM0Nyw3ICszNTEsNyBAQA0KICAgICB9
IGVsc2Ugew0KICAgICAgICAgc3RhdGljIEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7DQog
ICAgICAgICBpZiAoIWludGVybmV0SGFuZGxlKSB7DQotICAgICAgICAgICAgU3RyaW5nIHVzZXJB
Z2VudFN0ciA9IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KCkgKyBTdHJpbmcoIiIsIDEpOw0K
KyAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJB
Z2VudChyZXF1ZXN0KCkudXJsKCkpICsgU3RyaW5nKCIiLCAxKTsNCiAgICAgICAgICAgICBMUENX
U1RSIHVzZXJBZ2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0NIQVIqPih1c2VyQWdlbnRT
dHIuY2hhcmFjdGVycygpKTsNCiAgICAgICAgICAgICAvLyBsZWFrIHRoZSBJbnRlcm5ldCBmb3Ig
bm93DQogICAgICAgICAgICAgaW50ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50
LCBJTlRFUk5FVF9PUEVOX1RZUEVfUFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5D
KTsNCkBAIC0zNzEsMTcgKzM3NSwxNyBAQA0KICAgICAgICAgLy8gSW50ZXJuZXRDb25uZWN0IGZv
bGxvd2VkIGJ5IEh0dHBTZW5kUmVxdWVzdC4NCiAgICAgICAgIEhJTlRFUk5FVCB1cmxIYW5kbGU7
DQogICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7
DQotICAgICAgICBpZiAobWV0aG9kKCkgPT0gIlBPU1QiKSB7DQorICAgICAgICBpZiAocmVxdWVz
dCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsNCiAgICAgICAgICAgICBkLT5tX3Bvc3RSZWZl
cnJlciA9IHJlZmVycmVyOw0KLSAgICAgICAgICAgIFN0cmluZyBob3N0ID0gdXJsKCkuaG9zdCgp
Ow0KKyAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgpLmhvc3QoKTsNCiAg
ICAgICAgICAgICB1cmxIYW5kbGUgPSBJbnRlcm5ldENvbm5lY3RBKGludGVybmV0SGFuZGxlLCBo
b3N0LmxhdGluMSgpLmRhdGEoKSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVybCgpLnBvcnQoKSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QoKS51cmwoKS5wb3J0KCksDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOVUxMLCAvLyBubyB1c2VybmFtZQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLy8gbm8gcGFzc3dvcmQNCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVSTkVUX1NFUlZJQ0VfSFRUUCwNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAoRFdPUkRfUFRS
KWQtPm1fam9iSWQpOw0KICAgICAgICAgfSBlbHNlIHsNCi0gICAgICAgICAgICBTdHJpbmcgdXJs
U3RyID0gdXJsKCkuc3RyaW5nKCk7DQorICAgICAgICAgICAgU3RyaW5nIHVybFN0ciA9IHJlcXVl
c3QoKS51cmwoKS5zdHJpbmcoKTsNCiAgICAgICAgICAgICBpbnQgZnJhZ21lbnRJbmRleCA9IHVy
bFN0ci5maW5kKCcjJyk7DQogICAgICAgICAgICAgaWYgKGZyYWdtZW50SW5kZXggIT0gLTEpDQog
ICAgICAgICAgICAgICAgIHVybFN0ciA9IHVybFN0ci5sZWZ0KGZyYWdtZW50SW5kZXgpOw0KDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52965</attachid>
            <date>2010-04-09 10:29:14 -0700</date>
            <delta_ts>2010-06-15 06:09:03 -0700</delta_ts>
            <desc>The patch (buildfix for Win32 and r55542)</desc>
            <filename>bug-32963.patch</filename>
            <type>text/plain</type>
            <size>7555</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU3MzQxKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE2IEBADQorMjAxMC0wNC0wOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBCdWlsZGZpeCBmb3IgUmVzb3VyY2VIYW5kbGVXaW4gYWZ0ZXIgcjI0MjAyIGFuZCBy
NTU1NDIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
Mjk2MworCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Om9uSGFuZGxlQ3JlYXRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6dHJhbnNmZXJKb2JTdGF0dXNDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorCiAyMDEwLTA0LTA4ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdp
bi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291
cmNlSGFuZGxlV2luLmNwcAkocmV2aXNpb24gNTczMTkpDQorKysgV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yNSw5
ICsyNSw2IEBADQogDQogI2luY2x1ZGUgImNvbmZpZy5oIg0KICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZS5oIg0KLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIg0KLSNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgiDQotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlV2luLmgi
DQogDQogI2luY2x1ZGUgIkRvY0xvYWRlci5oIg0KICNpbmNsdWRlICJEb2N1bWVudC5oIg0KQEAg
LTM1LDcgKzMyLDExIEBADQogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiDQogI2luY2x1ZGUgIlBh
Z2UuaCINCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIg0KKyNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZUNsaWVudC5oIg0KKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiDQorI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlV2luLmgiDQogI2luY2x1ZGUgIlRpbWVyLmgiDQorI2luY2x1
ZGUgIldlYkNvcmVJbnN0YW5jZUhhbmRsZS5oIg0KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+DQogI2luY2x1ZGUgPHdpbmRvd3MuaD4NCiAjaW5jbHVkZSA8d2luaW5ldC5oPg0KQEAgLTEx
MywxMiArMTE0LDEyIEBADQogICAgIG1lbXNldCgmd2NleCwgMCwgc2l6ZW9mKFdORENMQVNTRVgp
KTsNCiAgICAgd2NleC5jYlNpemUgPSBzaXplb2YoV05EQ0xBU1NFWCk7DQogICAgIHdjZXgubHBm
blduZFByb2MgICAgPSBSZXNvdXJjZUhhbmRsZVduZFByb2M7DQotICAgIHdjZXguaEluc3RhbmNl
ICAgICAgPSBQYWdlOjppbnN0YW5jZUhhbmRsZSgpOw0KKyAgICB3Y2V4LmhJbnN0YW5jZSAgICAg
ID0gV2ViQ29yZTo6aW5zdGFuY2VIYW5kbGUoKTsNCiAgICAgd2NleC5scHN6Q2xhc3NOYW1lICA9
IGtSZXNvdXJjZUhhbmRsZVdpbmRvd0NsYXNzTmFtZTsNCiAgICAgUmVnaXN0ZXJDbGFzc0V4KCZ3
Y2V4KTsNCiANCiAgICAgdHJhbnNmZXJKb2JXaW5kb3dIYW5kbGUgPSBDcmVhdGVXaW5kb3coa1Jl
c291cmNlSGFuZGxlV2luZG93Q2xhc3NOYW1lLCAwLCAwLCBDV19VU0VERUZBVUxULCAwLCBDV19V
U0VERUZBVUxULCAwLA0KLSAgICAgICAgSFdORF9NRVNTQUdFLCAwLCBQYWdlOjppbnN0YW5jZUhh
bmRsZSgpLCAwKTsNCisgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgV2ViQ29yZTo6aW5zdGFuY2VI
YW5kbGUoKSwgMCk7DQogfQ0KIA0KIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhh
bmRsZUludGVybmFsKCkNCkBAIC0xNDQsOSArMTQ1LDkgQEANCiAgICAgICAgICAgICByZXR1cm47
DQogICAgICAgICB9DQogDQotICAgICAgICBpZiAobWV0aG9kKCkgPT0gIlBPU1QiKSB7DQorICAg
ICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsNCiAgICAgICAgICAg
ICAvLyBGSVhNRTogVG9vIGxhdGUgdG8gc2V0IHJlZmVycmVyIHByb3Blcmx5Lg0KLSAgICAgICAg
ICAgIFN0cmluZyB1cmxTdHIgPSB1cmwoKS5wYXRoKCk7DQorICAgICAgICAgICAgU3RyaW5nIHVy
bFN0ciA9IHJlcXVlc3QoKS51cmwoKS5wYXRoKCk7DQogICAgICAgICAgICAgaW50IGZyYWdtZW50
SW5kZXggPSB1cmxTdHIuZmluZCgnIycpOw0KICAgICAgICAgICAgIGlmIChmcmFnbWVudEluZGV4
ICE9IC0xKQ0KICAgICAgICAgICAgICAgICB1cmxTdHIgPSB1cmxTdHIubGVmdChmcmFnbWVudElu
ZGV4KTsNCkBAIC0xNjYsNyArMTY3LDcgQEANCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQog
ICAgIH0gZWxzZSBpZiAoIWQtPm1fc2Vjb25kYXJ5SGFuZGxlKSB7DQotICAgICAgICBhc3NlcnQo
bWV0aG9kKCkgPT0gIlBPU1QiKTsNCisgICAgICAgIGFzc2VydChyZXF1ZXN0KCkuaHR0cE1ldGhv
ZCgpID09ICJQT1NUIik7DQogICAgICAgICBkLT5tX3NlY29uZGFyeUhhbmRsZSA9IEhJTlRFUk5F
VChsUGFyYW0pOw0KICAgICAgICAgDQogICAgICAgICAvLyBOZWVkIHRvIGFjdHVhbGx5IHNlbmQg
dGhlIHJlcXVlc3Qgbm93Lg0KQEAgLTE3NSwxOCArMTc2LDE4IEBADQogICAgICAgICBoZWFkZXJz
ICs9IGQtPm1fcG9zdFJlZmVycmVyOw0KICAgICAgICAgaGVhZGVycyArPSAiXG4iOw0KICAgICAg
ICAgY29uc3QgQ1N0cmluZyYgaGVhZGVyc0xhdGluMSA9IGhlYWRlcnMubGF0aW4xKCk7DQotICAg
ICAgICBTdHJpbmcgZm9ybURhdGEgPSBwb3N0RGF0YSgpLT5mbGF0dGVuVG9TdHJpbmcoKTsNCisg
ICAgICAgIFN0cmluZyBmb3JtRGF0YSA9IHJlcXVlc3QoKS5odHRwQm9keSgpLT5mbGF0dGVuVG9T
dHJpbmcoKTsNCiAgICAgICAgIElOVEVSTkVUX0JVRkZFUlNBIGJ1ZmZlcnM7DQogICAgICAgICBt
ZW1zZXQoJmJ1ZmZlcnMsIDAsIHNpemVvZihidWZmZXJzKSk7DQogICAgICAgICBidWZmZXJzLmR3
U3RydWN0U2l6ZSA9IHNpemVvZihJTlRFUk5FVF9CVUZGRVJTQSk7DQotICAgICAgICBidWZmZXJz
LmxwY3N6SGVhZGVyID0gaGVhZGVyc0xhdGluMTsNCisgICAgICAgIGJ1ZmZlcnMubHBjc3pIZWFk
ZXIgPSBoZWFkZXJzTGF0aW4xLmRhdGEoKTsNCiAgICAgICAgIGJ1ZmZlcnMuZHdIZWFkZXJzTGVu
Z3RoID0gaGVhZGVycy5sZW5ndGgoKTsNCiAgICAgICAgIGJ1ZmZlcnMuZHdCdWZmZXJUb3RhbCA9
IGZvcm1EYXRhLmxlbmd0aCgpOw0KICAgICAgICAgDQogICAgICAgICBkLT5tX2J5dGVzUmVtYWlu
aW5nVG9Xcml0ZSA9IGZvcm1EYXRhLmxlbmd0aCgpOw0KICAgICAgICAgZC0+bV9mb3JtRGF0YVN0
cmluZyA9IChjaGFyKiltYWxsb2MoZm9ybURhdGEubGVuZ3RoKCkpOw0KICAgICAgICAgZC0+bV9m
b3JtRGF0YUxlbmd0aCA9IGZvcm1EYXRhLmxlbmd0aCgpOw0KLSAgICAgICAgc3RybmNweShkLT5t
X2Zvcm1EYXRhU3RyaW5nLCBmb3JtRGF0YS5sYXRpbjEoKSwgZm9ybURhdGEubGVuZ3RoKCkpOw0K
KyAgICAgICAgc3RybmNweShkLT5tX2Zvcm1EYXRhU3RyaW5nLCBmb3JtRGF0YS5sYXRpbjEoKS5k
YXRhKCksIGZvcm1EYXRhLmxlbmd0aCgpKTsNCiAgICAgICAgIGQtPm1fd3JpdGluZyA9IHRydWU7
DQogICAgICAgICBIdHRwU2VuZFJlcXVlc3RFeEEoZC0+bV9zZWNvbmRhcnlIYW5kbGUsICZidWZm
ZXJzLCAwLCAwLCAoRFdPUkRfUFRSKWQtPm1fam9iSWQpOw0KICAgICAgICAgLy8gRklYTUU6IGFk
ZCBwcm9wZXIgZXJyb3IgaGFuZGxpbmcNCkBAIC0yMjMsNyArMjI0LDcgQEANCiAgICAgICAgIHJl
dHVybjsNCiAgICAgfQ0KIA0KLSAgICBISU5URVJORVQgaGFuZGxlID0gKG1ldGhvZCgpID09ICJQ
T1NUIikgPyBkLT5tX3NlY29uZGFyeUhhbmRsZSA6IGQtPm1fcmVzb3VyY2VIYW5kbGU7DQorICAg
IEhJTlRFUk5FVCBoYW5kbGUgPSAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpID8g
ZC0+bV9zZWNvbmRhcnlIYW5kbGUgOiBkLT5tX3Jlc291cmNlSGFuZGxlOw0KICAgICBCT09MIG9r
ID0gRkFMU0U7DQogDQogICAgIHN0YXRpYyBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyNzY4Ow0K
QEAgLTI2MCw3ICsyNjEsMTEgQEANCiAgICAgICAgICAgICAgICAgSW50ZXJuZXRHZXRMYXN0UmVz
cG9uc2VJbmZvKCZwbGF0Zm9ybURhdGEuZXJyb3IsIHBsYXRmb3JtRGF0YS5lcnJvclN0cmluZywg
JmVycm9yU3RyaW5nQ2hhcnMpOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCi0gICAgICAg
IF9SUFRGMShfQ1JUX1dBUk4sICJMb2FkIGVycm9yOiAlaVxuIiwgZXJyb3IpOw0KKyNpZmRlZiBS
RVNPVVJDRV9MT0FERVJfREVCVUcNCisgICAgICAgIGNoYXIgYnVmWzY0XTsNCisgICAgICAgIF9z
bnByaW50ZihidWYsIHNpemVvZihidWYpLCAiTG9hZCBlcnJvcjogJWlcbiIsIGVycm9yKTsNCisg
ICAgICAgIE91dHB1dERlYnVnU3RyaW5nQShidWYpOw0KKyNlbmRpZiANCiAgICAgfQ0KICAgICAN
CiAgICAgaWYgKGQtPm1fc2Vjb25kYXJ5SGFuZGxlKQ0KQEAgLTMwOSw4ICszMTQsOCBAQA0KICAg
ICAgICAgLy8gbmVlZCB0byBibG9jayB0aGUgcmVkaXJlY3QgYXQgdGhpcyBwb2ludCBzbyB0aGUg
YXBwbGljYXRpb24gY2FuDQogICAgICAgICAvLyBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gZm9s
bG93IHRoZSByZWRpcmVjdCkNCiAgICAgICAgIG1zZyA9IHJlcXVlc3RSZWRpcmVjdGVkTWVzc2Fn
ZTsNCi0gICAgICAgIGxQYXJhbSA9IChMUEFSQU0pIG5ldyBTdHJpbmdJbXBsKChjb25zdCBVQ2hh
ciopIHN0YXR1c0luZm9ybWF0aW9uLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdHVzSW5mb3JtYXRpb25MZW5ndGgpOw0KKyAgICAgICAgbFBhcmFtID0gKExQ
QVJBTSkgU3RyaW5nSW1wbDo6Y3JlYXRlKChjb25zdCBVQ2hhciopIHN0YXR1c0luZm9ybWF0aW9u
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0lu
Zm9ybWF0aW9uTGVuZ3RoKS5yZWxlYXNlUmVmKCk7DQogICAgICAgICBicmVhazsNCiAgICAgY2Fz
ZSBJTlRFUk5FVF9TVEFUVVNfVVNFUl9JTlBVVF9SRVFVSVJFRDoNCiAgICAgICAgIC8vIEZJWE1F
OiBwcm9tcHQgdGhlIHVzZXIgaWYgbmVjZXNzYXJ5DQpAQCAtMzI3LDggKzMzMiw4IEBADQogYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQ0KIHsNCiAgICAgcmVmKCk7DQot
ICAgIGlmICh1cmwoKS5pc0xvY2FsRmlsZSgpKSB7DQotICAgICAgICBTdHJpbmcgcGF0aCA9IHVy
bCgpLnBhdGgoKTsNCisgICAgaWYgKHJlcXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgpKSB7DQor
ICAgICAgICBTdHJpbmcgcGF0aCA9IHJlcXVlc3QoKS51cmwoKS5wYXRoKCk7DQogICAgICAgICAv
LyB3aW5kb3dzIGRvZXMgbm90IGVuam95IGEgbGVhZGluZyBzbGFzaCBvbiBwYXRocw0KICAgICAg
ICAgaWYgKHBhdGhbMF0gPT0gJy8nKQ0KICAgICAgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmlu
ZygxKTsNCkBAIC0zNDcsNyArMzUyLDcgQEANCiAgICAgfSBlbHNlIHsNCiAgICAgICAgIHN0YXRp
YyBISU5URVJORVQgaW50ZXJuZXRIYW5kbGUgPSAwOw0KICAgICAgICAgaWYgKCFpbnRlcm5ldEhh
bmRsZSkgew0KLSAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVy
KCktPnVzZXJBZ2VudCgpICsgU3RyaW5nKCIiLCAxKTsNCisgICAgICAgICAgICBTdHJpbmcgdXNl
ckFnZW50U3RyID0gZnJhbWUtPmxvYWRlcigpLT51c2VyQWdlbnQocmVxdWVzdCgpLnVybCgpKSAr
IFN0cmluZygiIiwgMSk7DQogICAgICAgICAgICAgTFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVy
cHJldF9jYXN0PGNvbnN0IFdDSEFSKj4odXNlckFnZW50U3RyLmNoYXJhY3RlcnMoKSk7DQogICAg
ICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdw0KICAgICAgICAgICAgIGludGVy
bmV0SGFuZGxlID0gSW50ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRfT1BFTl9UWVBFX1BS
RUNPTkZJRywgMCwgMCwgSU5URVJORVRfRkxBR19BU1lOQyk7DQpAQCAtMzcxLDE3ICszNzYsMTcg
QEANCiAgICAgICAgIC8vIEludGVybmV0Q29ubmVjdCBmb2xsb3dlZCBieSBIdHRwU2VuZFJlcXVl
c3QuDQogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOw0KICAgICAgICAgU3RyaW5nIHJlZmVy
cmVyID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOw0KLSAgICAgICAgaWYgKG1ldGhvZCgp
ID09ICJQT1NUIikgew0KKyAgICAgICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBP
U1QiKSB7DQogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJyZXIgPSByZWZlcnJlcjsNCi0gICAg
ICAgICAgICBTdHJpbmcgaG9zdCA9IHVybCgpLmhvc3QoKTsNCisgICAgICAgICAgICBTdHJpbmcg
aG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0KCk7DQogICAgICAgICAgICAgdXJsSGFuZGxlID0g
SW50ZXJuZXRDb25uZWN0QShpbnRlcm5ldEhhbmRsZSwgaG9zdC5sYXRpbjEoKS5kYXRhKCksDQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwoKS5wb3J0KCksDQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KCkudXJsKCku
cG9ydCgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg
Ly8gbm8gdXNlcm5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsIC8vIG5vIHBhc3N3b3JkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJTlRFUk5FVF9TRVJWSUNFX0hUVFAsDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BUUilkLT5tX2pvYklkKTsNCiAgICAgICAg
IH0gZWxzZSB7DQotICAgICAgICAgICAgU3RyaW5nIHVybFN0ciA9IHVybCgpLnN0cmluZygpOw0K
KyAgICAgICAgICAgIFN0cmluZyB1cmxTdHIgPSByZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7DQog
ICAgICAgICAgICAgaW50IGZyYWdtZW50SW5kZXggPSB1cmxTdHIuZmluZCgnIycpOw0KICAgICAg
ICAgICAgIGlmIChmcmFnbWVudEluZGV4ICE9IC0xKQ0KICAgICAgICAgICAgICAgICB1cmxTdHIg
PSB1cmxTdHIubGVmdChmcmFnbWVudEluZGV4KTsNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>