<?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>41462</bug_id>
          
          <creation_ts>2010-07-01 06:45:02 -0700</creation_ts>
          <short_desc>Move parseDataUrl() from CURL into ResourceHandle</short_desc>
          <delta_ts>2010-10-06 10:19:22 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>41510</dependson>
          <blocked>47165</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>skyul</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>245315</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-01 06:45:02 -0700</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245316</commentid>
    <comment_count>1</comment_count>
      <attachid>60240</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-01 06:46:12 -0700</bug_when>
    <thetext>Created attachment 60240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245318</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 06:46:45 -0700</bug_when>
    <thetext>Attachment 60240 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/network/ResourceHandle.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 4 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>245441</commentid>
    <comment_count>3</comment_count>
      <attachid>60240</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-01 11:27:10 -0700</bug_when>
    <thetext>Comment on attachment 60240
Patch

I’m not so comfortable with putting this function into the cross platform file because it&apos;s used by two back ends. There are many other back ends that don&apos;t use it. Should the other back ends be using it too? Is there any other place we could put it?

Naming the function &quot;parse&quot; seems wrong. Parsing is part of what it does, but it actually performs the loading as well. I think the name should be loadDataURL or handleDataURL. The word &quot;parse&quot; gives the sense of something that would output a parsed result, not something that would make actual loading-related calls to the client.

The parseDataURL function should not have a return value. Callers don&apos;t look at it.

It should be parseDataURL, not parseDataUrl.

Calling latin1() twice on the same string seems like a mistake. That ends up allocating a CString twice.

Does latin1() handle non-ASCII characters in the way that&apos;s correct for this function? Failing as it should? Is there a test case covering that?

I&apos;m surprised that the reinterpret_cast works reliably. What makes the endianness always work out correctly?

The assertion about the URL&apos;s scheme should be a protocolIs assertion, not a custom startsWith call.

What data URL test cases do we have?

The ResourceResponse be populated with more, including the URL and the content length as expectedContentLength.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245822</commentid>
    <comment_count>4</comment_count>
      <attachid>60351</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-02 01:40:37 -0700</bug_when>
    <thetext>Created attachment 60351
Patch

(In reply to comment #3)
&gt; (From update of attachment 60240 [details])
&gt; I’m not so comfortable with putting this function into the cross platform file because it&apos;s used by two back ends. There are many other back ends that don&apos;t use it. Should the other back ends be using it too? Is there any other place we could put it?
It can be used by other backends too.
Maybe it can be used at http://trac.webkit.org/browser/trunk/WebCore/page/Page.cpp#L574 too?

&gt; Naming the function &quot;parse&quot; seems wrong. Parsing is part of what it does, but it actually performs the loading as well. I think the name should be loadDataURL or handleDataURL. The word &quot;parse&quot; gives the sense of something that would output a parsed result, not something that would make actual loading-related calls to the client.
I didn&apos;t liked the name too. ;-)

&gt; Calling latin1() twice on the same string seems like a mistake. That ends up allocating a CString twice.
I created an overload for base64Decode at bug 41510.

&gt; What data URL test cases do we have?
DataURLs are tested indirect, because other test use it (e.g. embedding images).

Addressd the other points too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245823</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-02 01:43:43 -0700</bug_when>
    <thetext>Attachment 60351 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/network/ResourceHandle.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 4 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>245828</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-02 01:47:07 -0700</bug_when>
    <thetext>Attachment 60351 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3412059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245912</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-02 07:53:04 -0700</bug_when>
    <thetext>Attachment 60351 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3389113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245965</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-02 10:40:34 -0700</bug_when>
    <thetext>Attachment 60351 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3410088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267371</commentid>
    <comment_count>9</comment_count>
      <attachid>60351</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-20 13:18:50 -0700</bug_when>
    <thetext>Comment on attachment 60351
Patch

I do not think this is so useful as parseDataUrl in the soup backend is soon going to diverge greatly from the one in the cURL backend (see https://bugs.webkit.org/show_bug.cgi?id=44261 ). Feel free to CC me on a patch renaming this poorly-named method though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289518</commentid>
    <comment_count>10</comment_count>
      <attachid>69766</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-05 03:16:47 -0700</bug_when>
    <thetext>Created attachment 69766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289519</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-05 03:23:37 -0700</bug_when>
    <thetext>Attachment 69766 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/network/ResourceHandle.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 4 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>289534</commentid>
    <comment_count>12</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-05 04:34:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 60351 [details])
&gt; I do not think this is so useful as parseDataUrl in the soup backend is soon going to diverge greatly from the one in the cURL backend (see https://bugs.webkit.org/show_bug.cgi?id=44261 ). Feel free to CC me on a patch renaming this poorly-named method though.
The main reason for this change is that I need the same code in ResourceHandleWin.cpp, so I moved it to ResourceHandle.cpp. Even if you won&apos;t use it, ResourceHandleWin will use it (see bug 47165).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289685</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-05 10:02:17 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; The main reason for this change is that I need the same code in ResourceHandleWin.cpp, so I moved it to ResourceHandle.cpp. Even if you won&apos;t use it, ResourceHandleWin will use it (see bug 47165).

Oh! Sharing here seems more appropriate than copy and paste. It probably makes sense to do this as one patch though. I think Darin is right that this should go somewhere else than the cross platform file though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289741</commentid>
    <comment_count>14</comment_count>
      <attachid>69809</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-05 10:49:14 -0700</bug_when>
    <thetext>Created attachment 69809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289747</commentid>
    <comment_count>15</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-05 11:04:30 -0700</bug_when>
    <thetext>@Darin: Can you have a look a the filename and say if it&apos;s ok to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289910</commentid>
    <comment_count>16</comment_count>
      <attachid>69809</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-05 15:01:14 -0700</bug_when>
    <thetext>Comment on attachment 69809
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=69809&amp;action=review

I didn’t set commit-queue+ yet because I have some comments you may wish to address.

&gt; WebCore/platform/network/DataURL.cpp:82
&gt; +        if (data.length() &gt; 0) {

Is this check really needed? Doesn’t TextEncoding::encode already handle a length of 0 correctly?

&gt; WebCore/platform/network/DataURL.h:33
&gt; +void handleDataURL(ResourceHandle* handle);

No need for the argument name “handle” here.

&gt; WebCore/platform/network/win/ResourceHandleWin.cpp:353
&gt; +    if (firstRequest().url().protocolIs(&quot;data&quot;)) {

It seems a shame that we have protocolIs(&quot;data&quot;) in so many places. Maybe protocolIsData should be added to KURL.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289929</commentid>
    <comment_count>17</comment_count>
      <attachid>69853</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-05 15:37:54 -0700</bug_when>
    <thetext>Created attachment 69853
Patch

(In reply to comment #16)
&gt; Is this check really needed? Doesn’t TextEncoding::encode already handle a length of 0 correctly?
I removed the check.

&gt; &gt; WebCore/platform/network/DataURL.h:33
&gt; &gt; +void handleDataURL(ResourceHandle* handle);
&gt; 
&gt; No need for the argument name “handle” here.
Removed.

&gt; &gt; WebCore/platform/network/win/ResourceHandleWin.cpp:353
&gt; &gt; +    if (firstRequest().url().protocolIs(&quot;data&quot;)) {
&gt; 
&gt; It seems a shame that we have protocolIs(&quot;data&quot;) in so many places. Maybe protocolIsData should be added to KURL.h.
I&apos;ve created bug 47219 for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289931</commentid>
    <comment_count>18</comment_count>
      <attachid>69853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 15:40:49 -0700</bug_when>
    <thetext>Comment on attachment 69853
Patch

Rejecting patch 69853 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 69853]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=69853&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=41462&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 69853 from bug 41462.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4247051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289944</commentid>
    <comment_count>19</comment_count>
      <attachid>69853</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-05 15:53:36 -0700</bug_when>
    <thetext>Comment on attachment 69853
Patch

(In reply to comment #18)
&gt; (From update of attachment 69853 [details])
&gt; Rejecting patch 69853 from commit-queue.
Patch works on my machine. Try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290056</commentid>
    <comment_count>20</comment_count>
      <attachid>69853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 20:05:07 -0700</bug_when>
    <thetext>Comment on attachment 69853
Patch

Rejecting patch 69853 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 69853]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=69853&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=41462&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 69853 from bug 41462.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4173092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290165</commentid>
    <comment_count>21</comment_count>
      <attachid>69911</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-06 03:09:32 -0700</bug_when>
    <thetext>Created attachment 69911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290167</commentid>
    <comment_count>22</comment_count>
      <attachid>69911</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-06 03:11:58 -0700</bug_when>
    <thetext>Comment on attachment 69911
Patch

Rejecting patch 69911 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 69911]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=69911&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=41462&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 69911 from bug 41462.
Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4142110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290182</commentid>
    <comment_count>23</comment_count>
      <attachid>69911</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-06 04:02:10 -0700</bug_when>
    <thetext>Comment on attachment 69911
Patch

Clearing flags on attachment: 69911

Manually committed r69183: &lt;http://trac.webkit.org/changeset/69183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290183</commentid>
    <comment_count>24</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-06 04:02:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290412</commentid>
    <comment_count>25</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-10-06 10:19:22 -0700</bug_when>
    <thetext>*** Bug 47189 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60240</attachid>
            <date>2010-07-01 06:46:12 -0700</date>
            <delta_ts>2010-07-02 01:40:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41462.patch</filename>
            <type>text/plain</type>
            <size>6686</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYyMjU2KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQorMjAxMC0wNy0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIHBhcnNlRGF0YVVybCgpIGZyb20gQ1VSTCBpbnRvIFJlc291cmNlSGFuZGxl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjIK
KworICAgICAgICBOb3cgcGFyc2VEYXRhVXJsKCkgY2FuIGJlIHVzZWQgZnJvbSBvdGhlciBpbXBs
ZW1lbnRhdGlvbnMgdG9vLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGFyc2VEYXRhVXJs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRpc3BhdGNoU3luY2hyb25vdXNK
b2IpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFydEpvYik6
CisKIDIwMTAtMDctMDEgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtpLmZpPgogCiAgICAg
ICAgIFJldmVydCBhY2NpZGVudGFsIGNvbW1pdC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHANCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCShyZXZp
c2lvbiA2MjI1MikNCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzQsMTQgKzM0LDEyIEBADQogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlTWFuYWdlci5oIgogCi0j
aW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCi0jaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAK
ICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC01NzIsNjYgKzU3MCwx
MiBAQA0KICAgICByZXR1cm4gc3RhcnRlZDsKIH0KIAotc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJs
KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCi17Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0KLSAgICBBU1NFUlQoY2xpZW50KTsKLSAgICBpZiAo
IWNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU3RyaW5nIHVybCA9IGhhbmRsZS0+cmVx
dWVzdCgpLnVybCgpLnN0cmluZygpOwotICAgIEFTU0VSVCh1cmwuc3RhcnRzV2l0aCgiZGF0YToi
LCBmYWxzZSkpOwotCi0gICAgaW50IGluZGV4ID0gdXJsLmZpbmQoJywnKTsKLSAgICBpZiAoaW5k
ZXggPT0gLTEpIHsKLSAgICAgICAgY2xpZW50LT5jYW5ub3RTaG93VVJMKGhhbmRsZSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBTdHJpbmcgbWVkaWFUeXBlID0gdXJsLnN1YnN0cmlu
Zyg1LCBpbmRleCAtIDUpOwotICAgIFN0cmluZyBkYXRhID0gdXJsLnN1YnN0cmluZyhpbmRleCAr
IDEpOwotCi0gICAgYm9vbCBiYXNlNjQgPSBtZWRpYVR5cGUuZW5kc1dpdGgoIjtiYXNlNjQiLCBm
YWxzZSk7Ci0gICAgaWYgKGJhc2U2NCkKLSAgICAgICAgbWVkaWFUeXBlID0gbWVkaWFUeXBlLmxl
ZnQobWVkaWFUeXBlLmxlbmd0aCgpIC0gNyk7Ci0KLSAgICBpZiAobWVkaWFUeXBlLmlzRW1wdHko
KSkKLSAgICAgICAgbWVkaWFUeXBlID0gInRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSSI7Ci0K
LSAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1lZGlh
VHlwZSk7Ci0gICAgU3RyaW5nIGNoYXJzZXQgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUo
bWVkaWFUeXBlKTsKLQotICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7Ci0gICAgcmVzcG9u
c2Uuc2V0TWltZVR5cGUobWltZVR5cGUpOwotCi0gICAgaWYgKGJhc2U2NCkgewotICAgICAgICBk
YXRhID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEpOwotICAgICAgICByZXNwb25zZS5z
ZXRUZXh0RW5jb2RpbmdOYW1lKGNoYXJzZXQpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVS
ZXNwb25zZShoYW5kbGUsIHJlc3BvbnNlKTsKLQotICAgICAgICAvLyBXZWJDb3JlJ3MgZGVjb2Rl
ciBmYWlscyBvbiBBY2lkMyB0ZXN0IDk3ICh3aGl0ZXNwYWNlKS4KLSAgICAgICAgVmVjdG9yPGNo
YXI+IG91dDsKLSAgICAgICAgaWYgKGJhc2U2NERlY29kZShkYXRhLmxhdGluMSgpLmRhdGEoKSwg
ZGF0YS5sYXRpbjEoKS5sZW5ndGgoKSwgb3V0KSAmJiBvdXQuc2l6ZSgpID4gMCkKLSAgICAgICAg
ICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBvdXQuZGF0YSgpLCBvdXQuc2l6ZSgp
LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBXZSBoYXZlIHRvIGNvbnZlcnQgdG8gVVRG
LTE2IGVhcmx5IGR1ZSB0byBsaW1pdGF0aW9ucyBpbiBLVVJMCi0gICAgICAgIGRhdGEgPSBkZWNv
ZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSwgVGV4dEVuY29kaW5nKGNoYXJzZXQpKTsKLSAgICAg
ICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZSgiVVRGLTE2Iik7Ci0gICAgICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwotICAgICAgICBpZiAoZGF0
YS5sZW5ndGgoKSA+IDApCi0gICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRs
ZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5jaGFyYWN0ZXJzKCkpLCBkYXRh
Lmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSwgMCk7Ci0gICAgfQotCi0gICAgY2xpZW50LT5kaWRG
aW5pc2hMb2FkaW5nKGhhbmRsZSk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpk
aXNwYXRjaFN5bmNocm9ub3VzSm9iKFJlc291cmNlSGFuZGxlKiBqb2IpCiB7CiAgICAgS1VSTCBr
dXJsID0gam9iLT5yZXF1ZXN0KCkudXJsKCk7CiAKICAgICBpZiAoa3VybC5wcm90b2NvbElzKCJk
YXRhIikpIHsKLSAgICAgICAgcGFyc2VEYXRhVXJsKGpvYik7CisgICAgICAgIGpvYi0+cGFyc2VE
YXRhVXJsKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY2Miw3ICs2MDYsNyBAQA0K
ICAgICBLVVJMIGt1cmwgPSBqb2ItPnJlcXVlc3QoKS51cmwoKTsKIAogICAgIGlmIChrdXJsLnBy
b3RvY29sSXMoImRhdGEiKSkgewotICAgICAgICBwYXJzZURhdGFVcmwoam9iKTsKKyAgICAgICAg
am9iLT5wYXJzZURhdGFVcmwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHJldmlzaW9uIDYy
MjUyKQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHdv
cmtpbmcgY29weSkNCkBAIC0yNyw5ICsyNywxMiBAQA0KICNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKIAorI2luY2x1ZGUgIkJh
c2U2NC5oIgogI2luY2x1ZGUgIkROUy5oIgorI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCisjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxhbGdv
cml0aG0+CiAKQEAgLTE3NCw0ICsxNzcsNTUgQEANCiAgICAgLy8gT3B0aW9uYWxseSBpbXBsZW1l
bnRlZCBieSBwbGF0Zm9ybS4KIH0KIAorI2lmIFVTRShDVVJMKSB8fCBVU0UoV0lOSU5FVCkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnBhcnNlRGF0YVVybCgpCit7CisgICAgU3RyaW5nIHVybCA9IHJl
cXVlc3QoKS51cmwoKS5zdHJpbmcoKTsKKyAgICBBU1NFUlQodXJsLnN0YXJ0c1dpdGgoImRhdGE6
IiwgZmFsc2UpKTsKKworICAgIGludCBpbmRleCA9IHVybC5maW5kKCcsJyk7CisgICAgaWYgKGlu
ZGV4ID09IC0xKSB7CisgICAgICAgIGNsaWVudCgpLT5jYW5ub3RTaG93VVJMKHRoaXMpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgU3RyaW5nIG1lZGlhVHlwZSA9IHVybC5z
dWJzdHJpbmcoNSwgaW5kZXggLSA1KTsKKyAgICBTdHJpbmcgZGF0YSA9IHVybC5zdWJzdHJpbmco
aW5kZXggKyAxKTsKKworICAgIGJvb2wgYmFzZTY0ID0gbWVkaWFUeXBlLmVuZHNXaXRoKCI7YmFz
ZTY0IiwgZmFsc2UpOworICAgIGlmIChiYXNlNjQpCisgICAgICAgIG1lZGlhVHlwZSA9IG1lZGlh
VHlwZS5sZWZ0KG1lZGlhVHlwZS5sZW5ndGgoKSAtIDcpOworCisgICAgaWYgKG1lZGlhVHlwZS5p
c0VtcHR5KCkpCisgICAgICAgIG1lZGlhVHlwZSA9ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVMtQVND
SUkiOworCisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlw
ZShtZWRpYVR5cGUpOworICAgIFN0cmluZyBjaGFyc2V0ID0gZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKG1lZGlhVHlwZSk7CisKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOworICAg
IHJlc3BvbnNlLnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKKworICAgIGlmIChiYXNlNjQpIHsKKyAg
ICAgICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKKyAgICAgICAgcmVz
cG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShjaGFyc2V0KTsKKyAgICAgICAgY2xpZW50KCktPmRp
ZFJlY2VpdmVSZXNwb25zZSh0aGlzLCByZXNwb25zZSk7CisKKyAgICAgICAgLy8gV2ViQ29yZSdz
IGRlY29kZXIgZmFpbHMgb24gQWNpZDMgdGVzdCA5NyAod2hpdGVzcGFjZSkuCisgICAgICAgIFZl
Y3RvcjxjaGFyPiBvdXQ7CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGF0YS5sYXRpbjEoKS5k
YXRhKCksIGRhdGEubGF0aW4xKCkubGVuZ3RoKCksIG91dCkgJiYgb3V0LnNpemUoKSA+IDApCisg
ICAgICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywgb3V0LmRhdGEoKSwgb3V0
LnNpemUoKSwgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gV2UgaGF2ZSB0byBjb252ZXJ0
IHRvIFVURi0xNiBlYXJseSBkdWUgdG8gbGltaXRhdGlvbnMgaW4gS1VSTAorICAgICAgICBkYXRh
ID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEsIFRleHRFbmNvZGluZyhjaGFyc2V0KSk7
CisgICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoIlVURi0xNiIpOworICAgICAg
ICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHRoaXMsIHJlc3BvbnNlKTsKKyAgICAgICAg
aWYgKGRhdGEubGVuZ3RoKCkgPiAwKQorICAgICAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVE
YXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuY2hhcmFjdGVycygp
KSwgZGF0YS5sZW5ndGgoKSAqIHNpemVvZihVQ2hhciksIDApOworICAgIH0KKworICAgIGNsaWVu
dCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDYyMjUyKQ0KKysrIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTU4LDYgKzE1
OCwxMCBAQA0KICAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJp
bmcmIGhvc3QsIENGRGF0YVJlZik7CiAjZW5kaWYKIAorI2lmIFVTRShDVVJMKSB8fCBVU0UoV0lO
SU5FVCkKKyAgICBib29sIHBhcnNlRGF0YVVybCgpOworI2VuZGlmCisKICAgICBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyZWREYXRhKCk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNC
dWZmZXJlZERhdGEoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60351</attachid>
            <date>2010-07-02 01:40:37 -0700</date>
            <delta_ts>2010-10-05 03:16:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41462.patch</filename>
            <type>text/plain</type>
            <size>6679</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYyMzY5KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE3IEBADQorMjAxMC0wNy0wMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIHBhcnNlRGF0YVVybCgpIGZyb20gQ1VSTCBpbnRvIFJlc291cmNlSGFuZGxl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjIg
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRpc3BhdGNoU3luY2hyb25vdXNKb2IpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFydEpvYik6CisKIDIwMTAtMDctMDIg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBF
cmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCShyZXZpc2lvbiA2MjM2OCkNCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCSh3
b3JraW5nIGNvcHkpDQpAQCAtMzQsMTQgKzM0LDEyIEBADQogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlTWFuYWdlci5oIgogCi0jaW5jbHVkZSAiQmFzZTY0Lmgi
CiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgiCi0jaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKICNpbmNsdWRlIDxlcnJuby5o
PgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC01NzIsNjYgKzU3MCwxMiBAQA0KICAgICByZXR1cm4g
c3RhcnRlZDsKIH0KIAotc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUpCi17Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xp
ZW50KCk7Ci0KLSAgICBBU1NFUlQoY2xpZW50KTsKLSAgICBpZiAoIWNsaWVudCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgU3RyaW5nIHVybCA9IGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpLnN0cmlu
ZygpOwotICAgIEFTU0VSVCh1cmwuc3RhcnRzV2l0aCgiZGF0YToiLCBmYWxzZSkpOwotCi0gICAg
aW50IGluZGV4ID0gdXJsLmZpbmQoJywnKTsKLSAgICBpZiAoaW5kZXggPT0gLTEpIHsKLSAgICAg
ICAgY2xpZW50LT5jYW5ub3RTaG93VVJMKGhhbmRsZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBTdHJpbmcgbWVkaWFUeXBlID0gdXJsLnN1YnN0cmluZyg1LCBpbmRleCAtIDUpOwot
ICAgIFN0cmluZyBkYXRhID0gdXJsLnN1YnN0cmluZyhpbmRleCArIDEpOwotCi0gICAgYm9vbCBi
YXNlNjQgPSBtZWRpYVR5cGUuZW5kc1dpdGgoIjtiYXNlNjQiLCBmYWxzZSk7Ci0gICAgaWYgKGJh
c2U2NCkKLSAgICAgICAgbWVkaWFUeXBlID0gbWVkaWFUeXBlLmxlZnQobWVkaWFUeXBlLmxlbmd0
aCgpIC0gNyk7Ci0KLSAgICBpZiAobWVkaWFUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgbWVkaWFU
eXBlID0gInRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSSI7Ci0KLSAgICBTdHJpbmcgbWltZVR5
cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1lZGlhVHlwZSk7Ci0gICAgU3RyaW5n
IGNoYXJzZXQgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUobWVkaWFUeXBlKTsKLQotICAg
IFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7Ci0gICAgcmVzcG9uc2Uuc2V0TWltZVR5cGUobWlt
ZVR5cGUpOwotCi0gICAgaWYgKGJhc2U2NCkgewotICAgICAgICBkYXRhID0gZGVjb2RlVVJMRXNj
YXBlU2VxdWVuY2VzKGRhdGEpOwotICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1l
KGNoYXJzZXQpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIHJl
c3BvbnNlKTsKLQotICAgICAgICAvLyBXZWJDb3JlJ3MgZGVjb2RlciBmYWlscyBvbiBBY2lkMyB0
ZXN0IDk3ICh3aGl0ZXNwYWNlKS4KLSAgICAgICAgVmVjdG9yPGNoYXI+IG91dDsKLSAgICAgICAg
aWYgKGJhc2U2NERlY29kZShkYXRhLmxhdGluMSgpLmRhdGEoKSwgZGF0YS5sYXRpbjEoKS5sZW5n
dGgoKSwgb3V0KSAmJiBvdXQuc2l6ZSgpID4gMCkKLSAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEoaGFuZGxlLCBvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpLCAwKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICAvLyBXZSBoYXZlIHRvIGNvbnZlcnQgdG8gVVRGLTE2IGVhcmx5IGR1ZSB0byBs
aW1pdGF0aW9ucyBpbiBLVVJMCi0gICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5j
ZXMoZGF0YSwgVGV4dEVuY29kaW5nKGNoYXJzZXQpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0VGV4
dEVuY29kaW5nTmFtZSgiVVRGLTE2Iik7Ci0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGhhbmRsZSwgcmVzcG9uc2UpOwotICAgICAgICBpZiAoZGF0YS5sZW5ndGgoKSA+IDApCi0g
ICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YS5jaGFyYWN0ZXJzKCkpLCBkYXRhLmxlbmd0aCgpICogc2l6ZW9m
KFVDaGFyKSwgMCk7Ci0gICAgfQotCi0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRs
ZSk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkaXNwYXRjaFN5bmNocm9ub3Vz
Sm9iKFJlc291cmNlSGFuZGxlKiBqb2IpCiB7CiAgICAgS1VSTCBrdXJsID0gam9iLT5yZXF1ZXN0
KCkudXJsKCk7CiAKICAgICBpZiAoa3VybC5wcm90b2NvbElzKCJkYXRhIikpIHsKLSAgICAgICAg
cGFyc2VEYXRhVXJsKGpvYik7CisgICAgICAgIGpvYi0+aGFuZGxlRGF0YVVSTCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC02NjIsNyArNjA2LDcgQEANCiAgICAgS1VSTCBrdXJsID0g
am9iLT5yZXF1ZXN0KCkudXJsKCk7CiAKICAgICBpZiAoa3VybC5wcm90b2NvbElzKCJkYXRhIikp
IHsKLSAgICAgICAgcGFyc2VEYXRhVXJsKGpvYik7CisgICAgICAgIGpvYi0+aGFuZGxlRGF0YVVS
TCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gNjIzNjgpDQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQ0KQEAg
LTI3LDkgKzI3LDEyIEBADQogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogCisjaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVk
ZSAiRE5TLmgiCisjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2Rp
bmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KIApAQCAtMTc0
LDQgKzE3Nyw2MCBAQA0KICAgICAvLyBPcHRpb25hbGx5IGltcGxlbWVudGVkIGJ5IHBsYXRmb3Jt
LgogfQogCit2b2lkIFJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhVVJMKCkKK3sKKyAgICBBU1NF
UlQocmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMoImRhdGEiKSk7CisgICAgU3RyaW5nIHVybCA9
IHJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKTsKKworICAgIGludCBpbmRleCA9IHVybC5maW5kKCcs
Jyk7CisgICAgaWYgKGluZGV4ID09IC0xKSB7CisgICAgICAgIGNsaWVudCgpLT5jYW5ub3RTaG93
VVJMKHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG1lZGlhVHlw
ZSA9IHVybC5zdWJzdHJpbmcoNSwgaW5kZXggLSA1KTsKKyAgICBTdHJpbmcgZGF0YSA9IHVybC5z
dWJzdHJpbmcoaW5kZXggKyAxKTsKKworICAgIGJvb2wgYmFzZTY0ID0gbWVkaWFUeXBlLmVuZHNX
aXRoKCI7YmFzZTY0IiwgZmFsc2UpOworICAgIGlmIChiYXNlNjQpCisgICAgICAgIG1lZGlhVHlw
ZSA9IG1lZGlhVHlwZS5sZWZ0KG1lZGlhVHlwZS5sZW5ndGgoKSAtIDcpOworCisgICAgaWYgKG1l
ZGlhVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIG1lZGlhVHlwZSA9ICJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9VVMtQVNDSUkiOworCisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJv
bU1lZGlhVHlwZShtZWRpYVR5cGUpOworICAgIFN0cmluZyBjaGFyc2V0ID0gZXh0cmFjdENoYXJz
ZXRGcm9tTWVkaWFUeXBlKG1lZGlhVHlwZSk7CisKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlOworICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKKyAgICByZXNwb25zZS5z
ZXRVUkwocmVxdWVzdCgpLnVybCgpKTsKKworICAgIGlmIChiYXNlNjQpIHsKKyAgICAgICAgcmVz
cG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShjaGFyc2V0KTsKKyAgICAgICAgZGF0YSA9IGRlY29k
ZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKKyAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVS
ZXNwb25zZSh0aGlzLCByZXNwb25zZSk7CisKKyAgICAgICAgVmVjdG9yPGNoYXI+IG91dDsKKyAg
ICAgICAgaWYgKGJhc2U2NERlY29kZShkYXRhLCBvdXQpICYmIG91dC5zaXplKCkgPiAwKSB7Cisg
ICAgICAgICAgICByZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgob3V0LnNpemUoKSk7
CisgICAgICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywgb3V0LmRhdGEoKSwg
b3V0LnNpemUoKSwgMCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworI2lmZGVmIFdURl9DUFVf
QklHX0VORElBTgorICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKCJVVEYtMTZC
RSIpOworI2Vsc2UKKyAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZSgiVVRGLTE2
TEUiKTsKKyNlbmRpZgorCisgICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMo
ZGF0YSwgVGV4dEVuY29kaW5nKGNoYXJzZXQpKTsKKyAgICAgICAgY2xpZW50KCktPmRpZFJlY2Vp
dmVSZXNwb25zZSh0aGlzLCByZXNwb25zZSk7CisgICAgICAgIGlmIChkYXRhLmxlbmd0aCgpID4g
MCkgeworICAgICAgICAgICAgcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKGRhdGEu
bGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5kaWRSZWNl
aXZlRGF0YSh0aGlzLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmNoYXJhY3Rl
cnMoKSksIGRhdGEubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLCAwKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oCShyZXZpc2lvbiA2MjM2OCkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5KQ0KQEAgLTE5MSw2ICsxOTEsOCBAQA0KICAg
ICB2b2lkIGNsZWFyQXV0aGVudGljYXRpb24oKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCisgICAg
dm9pZCBoYW5kbGVEYXRhVVJMKCk7CisKICAgICAvLyBUaGUgY2xpZW50IG1heSBiZSAwLCBpbiB3
aGljaCBjYXNlIG5vIGNhbGxiYWNrcyB3aWxsIGJlIG1hZGUuCiAgICAgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxl
Q2xpZW50Kik7Cg==
</data>
<flag name="review"
          id="47793"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69766</attachid>
            <date>2010-10-05 03:16:47 -0700</date>
            <delta_ts>2010-10-05 10:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41462b.patch</filename>
            <type>text/plain</type>
            <size>6988</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTMxMmRkNy4uMmU5N2YxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMC0wNSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZlIHBhcnNlRGF0YVVybCgpIGZyb20gQ1VSTCBpbnRvIFJl
c291cmNlSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MTQ2MgorCisgICAgICAgIEFsc28gdXNlIHRoZSBJZ25vcmVXaGl0ZXNwYWNlIG9wdGlv
biBmb3IgYmFzZTY0IGRlY29kaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6aGFuZGxl
RGF0YVVSTCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkaXNwYXRjaFN5bmNo
cm9ub3VzSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFuYWdlcjo6c3Rh
cnRKb2IpOgorCiAyMDEwLTEwLTA1ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggOTkxMGFjMS4uMzAxYzEzOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0yNywxMiAr
MjcsMTYgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCIKIAorI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkJsb2JS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIkROUy5oIgorI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCisj
aW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxh
bGdvcml0aG0+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTE4NSw0ICsxODksNTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FjaGVN
ZXRhZGF0YShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgVmVjdG9yPGNoYXI+JikKICAg
ICAvLyBPcHRpb25hbGx5IGltcGxlbWVudGVkIGJ5IHBsYXRmb3JtLgogfQogCit2b2lkIFJlc291
cmNlSGFuZGxlOjpoYW5kbGVEYXRhVVJMKCkKK3sKKyAgICBBU1NFUlQoZmlyc3RSZXF1ZXN0KCku
dXJsKCkucHJvdG9jb2xJcygiZGF0YSIpKTsKKyAgICBTdHJpbmcgdXJsID0gZmlyc3RSZXF1ZXN0
KCkudXJsKCkuc3RyaW5nKCk7CisKKyAgICBpbnQgaW5kZXggPSB1cmwuZmluZCgnLCcpOworICAg
IGlmIChpbmRleCA9PSAtMSkgeworICAgICAgICBjbGllbnQoKS0+Y2Fubm90U2hvd1VSTCh0aGlz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmluZyBtZWRpYVR5cGUgPSB1cmwu
c3Vic3RyaW5nKDUsIGluZGV4IC0gNSk7CisgICAgU3RyaW5nIGRhdGEgPSB1cmwuc3Vic3RyaW5n
KGluZGV4ICsgMSk7CisKKyAgICBib29sIGJhc2U2NCA9IG1lZGlhVHlwZS5lbmRzV2l0aCgiO2Jh
c2U2NCIsIGZhbHNlKTsKKyAgICBpZiAoYmFzZTY0KQorICAgICAgICBtZWRpYVR5cGUgPSBtZWRp
YVR5cGUubGVmdChtZWRpYVR5cGUubGVuZ3RoKCkgLSA3KTsKKworICAgIGlmIChtZWRpYVR5cGUu
aXNFbXB0eSgpKQorICAgICAgICBtZWRpYVR5cGUgPSAidGV4dC9wbGFpbjtjaGFyc2V0PVVTLUFT
Q0lJIjsKKworICAgIFN0cmluZyBtaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5
cGUobWVkaWFUeXBlKTsKKyAgICBTdHJpbmcgY2hhcnNldCA9IGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShtZWRpYVR5cGUpOworCisgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAg
ICByZXNwb25zZS5zZXRNaW1lVHlwZShtaW1lVHlwZSk7CisgICAgcmVzcG9uc2Uuc2V0VGV4dEVu
Y29kaW5nTmFtZShjaGFyc2V0KTsKKyAgICByZXNwb25zZS5zZXRVUkwoZmlyc3RSZXF1ZXN0KCku
dXJsKCkpOworCisgICAgaWYgKGJhc2U2NCkgeworICAgICAgICBkYXRhID0gZGVjb2RlVVJMRXNj
YXBlU2VxdWVuY2VzKGRhdGEpOworICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KHRoaXMsIHJlc3BvbnNlKTsKKworICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0OworICAgICAgICBp
ZiAoYmFzZTY0RGVjb2RlKGRhdGEsIG91dCwgSWdub3JlV2hpdGVzcGFjZSkgJiYgb3V0LnNpemUo
KSA+IDApIHsKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aChv
dXQuc2l6ZSgpKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBv
dXQuZGF0YSgpLCBvdXQuc2l6ZSgpLCAwKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSwgVGV4dEVuY29kaW5nKGNo
YXJzZXQpKTsKKyAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCByZXNw
b25zZSk7CisgICAgICAgIGlmIChkYXRhLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgQ1N0
cmluZyBlbmNvZGVkRGF0YSA9IFRleHRFbmNvZGluZygpLmVuY29kZShkYXRhLmNoYXJhY3RlcnMo
KSwgZGF0YS5sZW5ndGgoKSwgVVJMRW5jb2RlZEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKKyAg
ICAgICAgICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aChlbmNvZGVkRGF0YS5s
ZW5ndGgoKSk7CisgICAgICAgICAgICBpZiAoZW5jb2RlZERhdGEubGVuZ3RoKCkpCisgICAgICAg
ICAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGVuY29kZWREYXRhLmRhdGEo
KSwgZW5jb2RlZERhdGEubGVuZ3RoKCksIDApOworICAgICAgICB9CisgICAgfQorCisgICAgY2xp
ZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcywgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggZDUx
OGQ4Ny4uZDUwZWViNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgKQEAgLTE3NSw2ICsxNzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckF1dGhlbnRpY2F0
aW9uKCk7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAorICAgIHZvaWQgaGFuZGxlRGF0YVVSTCgpOwor
CiAgICAgLy8gVGhlIGNsaWVudCBtYXkgYmUgMCwgaW4gd2hpY2ggY2FzZSBubyBjYWxsYmFja3Mg
d2lsbCBiZSBtYWRlLgogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdDsK
ICAgICB2b2lkIHNldENsaWVudChSZXNvdXJjZUhhbmRsZUNsaWVudCopOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAK
aW5kZXggMmNjODdhZS4uMmVkMzEzMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC0zNCwxNCArMzQsMTIg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZU1hbmFnZXIu
aCIKIAotI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5j
bHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgotI2luY2x1ZGUgIlRleHRFbmNvZGlu
Zy5oIgogCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNTczLDY3
ICs1NzEsMTIgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnN0YXJ0U2NoZWR1bGVkSm9i
cygpCiAgICAgcmV0dXJuIHN0YXJ0ZWQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKQotewotICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQgPSBoYW5kbGUtPmNsaWVudCgpOwotCi0gICAgQVNTRVJUKGNsaWVudCk7Ci0gICAgaWYgKCFj
bGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyB1cmwgPSBoYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLnVybCgpLnN0cmluZygpOwotICAgIEFTU0VSVCh1cmwuc3RhcnRzV2l0aCgiZGF0
YToiLCBmYWxzZSkpOwotCi0gICAgaW50IGluZGV4ID0gdXJsLmZpbmQoJywnKTsKLSAgICBpZiAo
aW5kZXggPT0gLTEpIHsKLSAgICAgICAgY2xpZW50LT5jYW5ub3RTaG93VVJMKGhhbmRsZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBTdHJpbmcgbWVkaWFUeXBlID0gdXJsLnN1YnN0
cmluZyg1LCBpbmRleCAtIDUpOwotICAgIFN0cmluZyBkYXRhID0gdXJsLnN1YnN0cmluZyhpbmRl
eCArIDEpOwotCi0gICAgYm9vbCBiYXNlNjQgPSBtZWRpYVR5cGUuZW5kc1dpdGgoIjtiYXNlNjQi
LCBmYWxzZSk7Ci0gICAgaWYgKGJhc2U2NCkKLSAgICAgICAgbWVkaWFUeXBlID0gbWVkaWFUeXBl
LmxlZnQobWVkaWFUeXBlLmxlbmd0aCgpIC0gNyk7Ci0KLSAgICBpZiAobWVkaWFUeXBlLmlzRW1w
dHkoKSkKLSAgICAgICAgbWVkaWFUeXBlID0gInRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSSI7
Ci0KLSAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1l
ZGlhVHlwZSk7Ci0gICAgU3RyaW5nIGNoYXJzZXQgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5
cGUobWVkaWFUeXBlKTsKLQotICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7Ci0gICAgcmVz
cG9uc2Uuc2V0TWltZVR5cGUobWltZVR5cGUpOwotCi0gICAgaWYgKGJhc2U2NCkgewotICAgICAg
ICBkYXRhID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEpOwotICAgICAgICByZXNwb25z
ZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGNoYXJzZXQpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2Vp
dmVSZXNwb25zZShoYW5kbGUsIHJlc3BvbnNlKTsKLQotICAgICAgICAvLyBXZWJDb3JlJ3MgZGVj
b2RlciBmYWlscyBvbiBBY2lkMyB0ZXN0IDk3ICh3aGl0ZXNwYWNlKS4KLSAgICAgICAgVmVjdG9y
PGNoYXI+IG91dDsKLSAgICAgICAgQ1N0cmluZyBsYXRpbjEgPSBkYXRhLmxhdGluMSgpOwotICAg
ICAgICBpZiAoYmFzZTY0RGVjb2RlKGxhdGluMS5kYXRhKCksIGxhdGluMS5sZW5ndGgoKSwgb3V0
KSAmJiBvdXQuc2l6ZSgpID4gMCkKLSAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLCBvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpLCAwKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICAvLyBXZSBoYXZlIHRvIGNvbnZlcnQgdG8gVVRGLTE2IGVhcmx5IGR1ZSB0byBsaW1pdGF0aW9u
cyBpbiBLVVJMCi0gICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSwg
VGV4dEVuY29kaW5nKGNoYXJzZXQpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5n
TmFtZSgiVVRGLTE2Iik7Ci0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRs
ZSwgcmVzcG9uc2UpOwotICAgICAgICBpZiAoZGF0YS5sZW5ndGgoKSA+IDApCi0gICAgICAgICAg
ICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oZGF0YS5jaGFyYWN0ZXJzKCkpLCBkYXRhLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSwg
MCk7Ci0gICAgfQotCi0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSwgMCk7Ci19
Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkaXNwYXRjaFN5bmNocm9ub3VzSm9iKFJl
c291cmNlSGFuZGxlKiBqb2IpCiB7CiAgICAgS1VSTCBrdXJsID0gam9iLT5maXJzdFJlcXVlc3Qo
KS51cmwoKTsKIAogICAgIGlmIChrdXJsLnByb3RvY29sSXMoImRhdGEiKSkgewotICAgICAgICBw
YXJzZURhdGFVcmwoam9iKTsKKyAgICAgICAgam9iLT5oYW5kbGVEYXRhVVJMKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTY2NCw3ICs2MDcsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
TWFuYWdlcjo6c3RhcnRKb2IoUmVzb3VyY2VIYW5kbGUqIGpvYikKICAgICBLVVJMIGt1cmwgPSBq
b2ItPmZpcnN0UmVxdWVzdCgpLnVybCgpOwogCiAgICAgaWYgKGt1cmwucHJvdG9jb2xJcygiZGF0
YSIpKSB7Ci0gICAgICAgIHBhcnNlRGF0YVVybChqb2IpOworICAgICAgICBqb2ItPmhhbmRsZURh
dGFVUkwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69809</attachid>
            <date>2010-10-05 10:49:14 -0700</date>
            <delta_ts>2010-10-05 15:37:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41462c.patch</filename>
            <type>text/plain</type>
            <size>12608</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDQ0NzYxMTYuLjRmNDVjNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTMzOCw2ICsxMzM4LDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmNwcAogICAgIHBs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVh
ZGVyTWFwLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA1MzEyZGQ3Li42ZjIxMmJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEwLTEwLTA1ICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgcGFyc2VEYXRhVXJsKCkgZnJvbSBD
VVJMIGludG8gb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNDYyCisKKyAgICAgICAgTW92ZSB0aGUgZGF0YSBVUkwgcGFyc2luZyBhbGdv
cml0aG0gaW50byBhIG5ldyBmaWxlIHRvIHVzZSBpdCBpbiBSZXNvdXJjZUhhbmRsZVdpbiB0b28u
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9EYXRhVVJMLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVE
YXRhVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRpc3BhdGNoU3luY2hy
b25vdXNKb2IpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFy
dEpvYik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKwogMjAxMC0xMC0wNSAg
U2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTI4OTUwNy4uNGI2MzRhOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5NzgsNiAr
Mjk3OCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL25ldHdvcmsvRE5TLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdv
cmsvRGF0YVVSTC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTC5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL0Zvcm1EYXRhQnVpbGRlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggZmVkNTkxMy4uYmY3NDE5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0yNzMyMiw2ICsyNzMyMiwxNCBAQAogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xE
YXRhVVJMLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXERhdGFVUkwuaCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3
b3JrXEZvcm1EYXRhLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9EYXRhVVJMLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzFj
ZmEzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwu
Y3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2Vy
IDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0ZXJl
ciA8cGFyb2dhQHBhcm9nYS5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJEYXRhVVJMLmgiCisKKyNpbmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJIVFRQ
UGFyc2Vycy5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCisjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgaGFu
ZGxlRGF0YVVSTChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQoreworICAgIEFTU0VSVChoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMoImRhdGEiKSk7CisgICAgU3RyaW5nIHVy
bCA9IGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7CisKKyAgICBpbnQgaW5k
ZXggPSB1cmwuZmluZCgnLCcpOworICAgIGlmIChpbmRleCA9PSAtMSkgeworICAgICAgICBoYW5k
bGUtPmNsaWVudCgpLT5jYW5ub3RTaG93VVJMKGhhbmRsZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBTdHJpbmcgbWVkaWFUeXBlID0gdXJsLnN1YnN0cmluZyg1LCBpbmRleCAtIDUp
OworICAgIFN0cmluZyBkYXRhID0gdXJsLnN1YnN0cmluZyhpbmRleCArIDEpOworCisgICAgYm9v
bCBiYXNlNjQgPSBtZWRpYVR5cGUuZW5kc1dpdGgoIjtiYXNlNjQiLCBmYWxzZSk7CisgICAgaWYg
KGJhc2U2NCkKKyAgICAgICAgbWVkaWFUeXBlID0gbWVkaWFUeXBlLmxlZnQobWVkaWFUeXBlLmxl
bmd0aCgpIC0gNyk7CisKKyAgICBpZiAobWVkaWFUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgbWVk
aWFUeXBlID0gInRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSSI7CisKKyAgICBTdHJpbmcgbWlt
ZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1lZGlhVHlwZSk7CisgICAgU3Ry
aW5nIGNoYXJzZXQgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUobWVkaWFUeXBlKTsKKwor
ICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7CisgICAgcmVzcG9uc2Uuc2V0TWltZVR5cGUo
bWltZVR5cGUpOworICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoY2hhcnNldCk7Cisg
ICAgcmVzcG9uc2Uuc2V0VVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpOworCisgICAg
aWYgKGJhc2U2NCkgeworICAgICAgICBkYXRhID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRh
dGEpOworICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxl
LCByZXNwb25zZSk7CisKKyAgICAgICAgVmVjdG9yPGNoYXI+IG91dDsKKyAgICAgICAgaWYgKGJh
c2U2NERlY29kZShkYXRhLCBvdXQsIElnbm9yZVdoaXRlc3BhY2UpICYmIG91dC5zaXplKCkgPiAw
KSB7CisgICAgICAgICAgICByZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgob3V0LnNp
emUoKSk7CisgICAgICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShoYW5k
bGUsIG91dC5kYXRhKCksIG91dC5zaXplKCksIDApOworICAgICAgICB9CisgICAgfSBlbHNlIHsK
KyAgICAgICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhLCBUZXh0RW5jb2Rp
bmcoY2hhcnNldCkpOworICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9u
c2UoaGFuZGxlLCByZXNwb25zZSk7CisgICAgICAgIGlmIChkYXRhLmxlbmd0aCgpID4gMCkgewor
ICAgICAgICAgICAgQ1N0cmluZyBlbmNvZGVkRGF0YSA9IFRleHRFbmNvZGluZygpLmVuY29kZShk
YXRhLmNoYXJhY3RlcnMoKSwgZGF0YS5sZW5ndGgoKSwgVVJMRW5jb2RlZEVudGl0aWVzRm9yVW5l
bmNvZGFibGVzKTsKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0
aChlbmNvZGVkRGF0YS5sZW5ndGgoKSk7CisgICAgICAgICAgICBpZiAoZW5jb2RlZERhdGEubGVu
Z3RoKCkpCisgICAgICAgICAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLCBlbmNvZGVkRGF0YS5kYXRhKCksIGVuY29kZWREYXRhLmxlbmd0aCgpLCAwKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmco
aGFuZGxlLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9EYXRhVVJMLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RiNGJmZgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMLmgKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0ZXJl
ciA8cGFyb2dhQHBhcm9nYS5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVVSTF9oCisjZGVm
aW5lIERhdGFVUkxfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlc291cmNlSGFu
ZGxlOworCit2b2lkIGhhbmRsZURhdGFVUkwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSk7CisKK30K
KworI2VuZGlmIC8vIERhdGFVUkxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKaW5kZXggMmNjODdhZS4uZjBkZTIz
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC0zNCwxNCArMzQsMTMgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZU1hbmFnZXIuaCIKIAotI2luY2x1ZGUgIkJhc2U2
NC5oIgorI2luY2x1ZGUgIkRhdGFVUkwuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKLSNpbmNsdWRlICJUZXh0RW5jb2Rp
bmcuaCIKIAogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTU3Myw2
NyArNTcyLDEyIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFydFNjaGVkdWxlZEpv
YnMoKQogICAgIHJldHVybiBzdGFydGVkOwogfQogCi1zdGF0aWMgdm9pZCBwYXJzZURhdGFVcmwo
UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKLXsKLSAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xp
ZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKLQotICAgIEFTU0VSVChjbGllbnQpOwotICAgIGlmICgh
Y2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgdXJsID0gaGFuZGxlLT5maXJz
dFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKTsKLSAgICBBU1NFUlQodXJsLnN0YXJ0c1dpdGgoImRh
dGE6IiwgZmFsc2UpKTsKLQotICAgIGludCBpbmRleCA9IHVybC5maW5kKCcsJyk7Ci0gICAgaWYg
KGluZGV4ID09IC0xKSB7Ci0gICAgICAgIGNsaWVudC0+Y2Fubm90U2hvd1VSTChoYW5kbGUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU3RyaW5nIG1lZGlhVHlwZSA9IHVybC5zdWJz
dHJpbmcoNSwgaW5kZXggLSA1KTsKLSAgICBTdHJpbmcgZGF0YSA9IHVybC5zdWJzdHJpbmcoaW5k
ZXggKyAxKTsKLQotICAgIGJvb2wgYmFzZTY0ID0gbWVkaWFUeXBlLmVuZHNXaXRoKCI7YmFzZTY0
IiwgZmFsc2UpOwotICAgIGlmIChiYXNlNjQpCi0gICAgICAgIG1lZGlhVHlwZSA9IG1lZGlhVHlw
ZS5sZWZ0KG1lZGlhVHlwZS5sZW5ndGgoKSAtIDcpOwotCi0gICAgaWYgKG1lZGlhVHlwZS5pc0Vt
cHR5KCkpCi0gICAgICAgIG1lZGlhVHlwZSA9ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVMtQVNDSUki
OwotCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZSht
ZWRpYVR5cGUpOwotICAgIFN0cmluZyBjaGFyc2V0ID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFU
eXBlKG1lZGlhVHlwZSk7Ci0KLSAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwotICAgIHJl
c3BvbnNlLnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKLQotICAgIGlmIChiYXNlNjQpIHsKLSAgICAg
ICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKLSAgICAgICAgcmVzcG9u
c2Uuc2V0VGV4dEVuY29kaW5nTmFtZShjaGFyc2V0KTsKLSAgICAgICAgY2xpZW50LT5kaWRSZWNl
aXZlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7Ci0KLSAgICAgICAgLy8gV2ViQ29yZSdzIGRl
Y29kZXIgZmFpbHMgb24gQWNpZDMgdGVzdCA5NyAod2hpdGVzcGFjZSkuCi0gICAgICAgIFZlY3Rv
cjxjaGFyPiBvdXQ7Ci0gICAgICAgIENTdHJpbmcgbGF0aW4xID0gZGF0YS5sYXRpbjEoKTsKLSAg
ICAgICAgaWYgKGJhc2U2NERlY29kZShsYXRpbjEuZGF0YSgpLCBsYXRpbjEubGVuZ3RoKCksIG91
dCkgJiYgb3V0LnNpemUoKSA+IDApCi0gICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGhhbmRsZSwgb3V0LmRhdGEoKSwgb3V0LnNpemUoKSwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgLy8gV2UgaGF2ZSB0byBjb252ZXJ0IHRvIFVURi0xNiBlYXJseSBkdWUgdG8gbGltaXRhdGlv
bnMgaW4gS1VSTAotICAgICAgICBkYXRhID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEs
IFRleHRFbmNvZGluZyhjaGFyc2V0KSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGlu
Z05hbWUoIlVURi0xNiIpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5k
bGUsIHJlc3BvbnNlKTsKLSAgICAgICAgaWYgKGRhdGEubGVuZ3RoKCkgPiAwKQotICAgICAgICAg
ICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGRhdGEuY2hhcmFjdGVycygpKSwgZGF0YS5sZW5ndGgoKSAqIHNpemVvZihVQ2hhciks
IDApOwotICAgIH0KLQotICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUsIDApOwot
fQotCiB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6ZGlzcGF0Y2hTeW5jaHJvbm91c0pvYihS
ZXNvdXJjZUhhbmRsZSogam9iKQogewogICAgIEtVUkwga3VybCA9IGpvYi0+Zmlyc3RSZXF1ZXN0
KCkudXJsKCk7CiAKICAgICBpZiAoa3VybC5wcm90b2NvbElzKCJkYXRhIikpIHsKLSAgICAgICAg
cGFyc2VEYXRhVXJsKGpvYik7CisgICAgICAgIGhhbmRsZURhdGFVUkwoam9iKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtNjY0LDcgKzYwOCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyOjpzdGFydEpvYihSZXNvdXJjZUhhbmRsZSogam9iKQogICAgIEtVUkwga3VybCA9IGpv
Yi0+Zmlyc3RSZXF1ZXN0KCkudXJsKCk7CiAKICAgICBpZiAoa3VybC5wcm90b2NvbElzKCJkYXRh
IikpIHsKLSAgICAgICAgcGFyc2VEYXRhVXJsKGpvYik7CisgICAgICAgIGhhbmRsZURhdGFVUkwo
am9iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA1ZGUyZTFiLi41MTFkYTg4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlJlc291cmNlSGFuZGxlLmgiCiAKKyNpbmNsdWRlICJEYXRhVVJMLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWFp
blRocmVhZC5oIgpAQCAtMjU5LDcgKzI2MCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6Om9uUmVx
dWVzdENvbXBsZXRlKCkKIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCiB7Ci0gICAgaWYgKHJlcXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgp
KSB7CisgICAgaWYgKGZpcnN0UmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxlKCkgfHwgZmlyc3RS
ZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJcygiZGF0YSIpKSB7CiAgICAgICAgIHJlZigpOyAvLyBi
YWxhbmNlZCBieSBkZXJlZiBpbiBmaWxlTG9hZFRpbWVyCiAgICAgICAgIGlmIChkLT5tX2xvYWRT
eW5jaHJvbm91c2x5KQogICAgICAgICAgICAgZmlsZUxvYWRUaW1lcigwKTsKQEAgLTM0OSw2ICsz
NTAsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcihUaW1lcjxSZXNvdXJj
ZUhhbmRsZT4qKQogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gcHJvdGVjdG9yKHRoaXMpOwog
ICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBzdGFydAogCisgICAgaWYgKGZpcnN0UmVx
dWVzdCgpLnVybCgpLnByb3RvY29sSXMoImRhdGEiKSkgeworICAgICAgICBoYW5kbGVEYXRhVVJM
KHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgU3RyaW5nIGZpbGVOYW1lID0g
Zmlyc3RSZXF1ZXN0KCkudXJsKCkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICBIQU5ETEUgZmlsZUhh
bmRsZSA9IENyZWF0ZUZpbGVXKGZpbGVOYW1lLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9u
KCksIEdFTkVSSUNfUkVBRCwgMCwgMCwgT1BFTl9FWElTVElORywgRklMRV9BVFRSSUJVVEVfTk9S
TUFMLCAwKTsKIAo=
</data>
<flag name="review"
          id="59547"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69853</attachid>
            <date>2010-10-05 15:37:54 -0700</date>
            <delta_ts>2010-10-06 03:09:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41462d.patch</filename>
            <type>text/plain</type>
            <size>12525</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDQ0NzYxMTYuLjRmNDVjNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTMzOCw2ICsxMzM4LDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmNwcAogICAgIHBs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVh
ZGVyTWFwLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA1MzEyZGQ3Li42ZjIxMmJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEwLTEwLTA1ICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE1vdmUgcGFyc2VEYXRhVXJsKCkgZnJvbSBDVVJM
IGludG8gb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQxNDYyCisKKyAgICAgICAgTW92ZSB0aGUgZGF0YSBVUkwgcGFyc2luZyBhbGdvcml0
aG0gaW50byBhIG5ldyBmaWxlIHRvIHVzZSBpdCBpbiBSZXNvdXJjZUhhbmRsZVdpbiB0b28uCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9EYXRhVVJMLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVEYXRh
VVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRpc3BhdGNoU3luY2hyb25v
dXNKb2IpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFydEpv
Yik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKwogMjAxMC0xMC0wNSAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggMTI4OTUwNy4uNGI2MzRhOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5NzgsNiArMjk3
OCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvRE5TLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsv
RGF0YVVSTC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTC5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhQnVpbGRlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZmVkNTkxMy4uYmY3NDE5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yNzMyMiw2ICsyNzMyMiwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xEYXRhVVJM
LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXG5ldHdvcmtcRGF0YVVSTC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xGb3JtRGF0YS5j
cHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRGF0YVVSTC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRlMWIzNAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMLmNwcApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YVVSTC5o
IgorCisjaW5jbHVkZSAiQmFzZTY0LmgiCisjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50Lmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGhhbmRsZURhdGFVUkwoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSkKK3sKKyAgICBBU1NFUlQoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzKCJkYXRhIikpOworICAgIFN0cmluZyB1cmwgPSBoYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLnVybCgpLnN0cmluZygpOworCisgICAgaW50IGluZGV4ID0gdXJsLmZpbmQoJywn
KTsKKyAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+Y2Fu
bm90U2hvd1VSTChoYW5kbGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5n
IG1lZGlhVHlwZSA9IHVybC5zdWJzdHJpbmcoNSwgaW5kZXggLSA1KTsKKyAgICBTdHJpbmcgZGF0
YSA9IHVybC5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKworICAgIGJvb2wgYmFzZTY0ID0gbWVkaWFU
eXBlLmVuZHNXaXRoKCI7YmFzZTY0IiwgZmFsc2UpOworICAgIGlmIChiYXNlNjQpCisgICAgICAg
IG1lZGlhVHlwZSA9IG1lZGlhVHlwZS5sZWZ0KG1lZGlhVHlwZS5sZW5ndGgoKSAtIDcpOworCisg
ICAgaWYgKG1lZGlhVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIG1lZGlhVHlwZSA9ICJ0ZXh0L3Bs
YWluO2NoYXJzZXQ9VVMtQVNDSUkiOworCisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShtZWRpYVR5cGUpOworICAgIFN0cmluZyBjaGFyc2V0ID0gZXh0
cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1lZGlhVHlwZSk7CisKKyAgICBSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlOworICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKKyAgICBy
ZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGNoYXJzZXQpOworICAgIHJlc3BvbnNlLnNldFVS
TChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKKworICAgIGlmIChiYXNlNjQpIHsKKyAg
ICAgICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKKyAgICAgICAgaGFu
ZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOworCisg
ICAgICAgIFZlY3RvcjxjaGFyPiBvdXQ7CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGF0YSwg
b3V0LCBJZ25vcmVXaGl0ZXNwYWNlKSAmJiBvdXQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAg
cmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKG91dC5zaXplKCkpOworICAgICAgICAg
ICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBvdXQuZGF0YSgpLCBv
dXQuc2l6ZSgpLCAwKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRhdGEgPSBk
ZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSwgVGV4dEVuY29kaW5nKGNoYXJzZXQpKTsKKyAg
ICAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9u
c2UpOworCisgICAgICAgIENTdHJpbmcgZW5jb2RlZERhdGEgPSBUZXh0RW5jb2RpbmcoKS5lbmNv
ZGUoZGF0YS5jaGFyYWN0ZXJzKCksIGRhdGEubGVuZ3RoKCksIFVSTEVuY29kZWRFbnRpdGllc0Zv
clVuZW5jb2RhYmxlcyk7CisgICAgICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0
aChlbmNvZGVkRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChlbmNvZGVkRGF0YS5sZW5ndGgo
KSkKKyAgICAgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwg
ZW5jb2RlZERhdGEuZGF0YSgpLCBlbmNvZGVkRGF0YS5sZW5ndGgoKSwgMCk7CisgICAgfQorCisg
ICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUsIDApOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRGF0YVVSTC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGI0YmZmCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaApAQCAtMCwwICsxLDM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNv
bT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVVJMX2gKKyNkZWZpbmUgRGF0YVVSTF9oCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVzb3VyY2VIYW5kbGU7CisKK3ZvaWQgaGFuZGxl
RGF0YVVSTChSZXNvdXJjZUhhbmRsZSopOworCit9CisKKyNlbmRpZiAvLyBEYXRhVVJMX2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFu
YWdlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCmluZGV4IDJjYzg3YWUuLmYwZGUyM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtMzQs
MTQgKzM0LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJEYXRhVVJMLmgi
CiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgiCi0jaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKICNpbmNsdWRlIDxlcnJuby5o
PgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC01NzMsNjcgKzU3MiwxMiBAQCBib29sIFJlc291cmNl
SGFuZGxlTWFuYWdlcjo6c3RhcnRTY2hlZHVsZWRKb2JzKCkKICAgICByZXR1cm4gc3RhcnRlZDsK
IH0KIAotc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCi17
Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0K
LSAgICBBU1NFUlQoY2xpZW50KTsKLSAgICBpZiAoIWNsaWVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgU3RyaW5nIHVybCA9IGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7
Ci0gICAgQVNTRVJUKHVybC5zdGFydHNXaXRoKCJkYXRhOiIsIGZhbHNlKSk7Ci0KLSAgICBpbnQg
aW5kZXggPSB1cmwuZmluZCgnLCcpOwotICAgIGlmIChpbmRleCA9PSAtMSkgewotICAgICAgICBj
bGllbnQtPmNhbm5vdFNob3dVUkwoaGFuZGxlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIFN0cmluZyBtZWRpYVR5cGUgPSB1cmwuc3Vic3RyaW5nKDUsIGluZGV4IC0gNSk7Ci0gICAg
U3RyaW5nIGRhdGEgPSB1cmwuc3Vic3RyaW5nKGluZGV4ICsgMSk7Ci0KLSAgICBib29sIGJhc2U2
NCA9IG1lZGlhVHlwZS5lbmRzV2l0aCgiO2Jhc2U2NCIsIGZhbHNlKTsKLSAgICBpZiAoYmFzZTY0
KQotICAgICAgICBtZWRpYVR5cGUgPSBtZWRpYVR5cGUubGVmdChtZWRpYVR5cGUubGVuZ3RoKCkg
LSA3KTsKLQotICAgIGlmIChtZWRpYVR5cGUuaXNFbXB0eSgpKQotICAgICAgICBtZWRpYVR5cGUg
PSAidGV4dC9wbGFpbjtjaGFyc2V0PVVTLUFTQ0lJIjsKLQotICAgIFN0cmluZyBtaW1lVHlwZSA9
IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobWVkaWFUeXBlKTsKLSAgICBTdHJpbmcgY2hh
cnNldCA9IGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShtZWRpYVR5cGUpOwotCi0gICAgUmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZTsKLSAgICByZXNwb25zZS5zZXRNaW1lVHlwZShtaW1lVHlw
ZSk7Ci0KLSAgICBpZiAoYmFzZTY0KSB7Ci0gICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVT
ZXF1ZW5jZXMoZGF0YSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoY2hh
cnNldCk7Ci0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9u
c2UpOwotCi0gICAgICAgIC8vIFdlYkNvcmUncyBkZWNvZGVyIGZhaWxzIG9uIEFjaWQzIHRlc3Qg
OTcgKHdoaXRlc3BhY2UpLgotICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0OwotICAgICAgICBDU3Ry
aW5nIGxhdGluMSA9IGRhdGEubGF0aW4xKCk7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUobGF0
aW4xLmRhdGEoKSwgbGF0aW4xLmxlbmd0aCgpLCBvdXQpICYmIG91dC5zaXplKCkgPiAwKQotICAg
ICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIG91dC5kYXRhKCksIG91dC5z
aXplKCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIGhhdmUgdG8gY29udmVydCB0
byBVVEYtMTYgZWFybHkgZHVlIHRvIGxpbWl0YXRpb25zIGluIEtVUkwKLSAgICAgICAgZGF0YSA9
IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhLCBUZXh0RW5jb2RpbmcoY2hhcnNldCkpOwot
ICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKCJVVEYtMTYiKTsKLSAgICAgICAg
Y2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7Ci0gICAgICAgIGlm
IChkYXRhLmxlbmd0aCgpID4gMCkKLSAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmNoYXJhY3RlcnMoKSks
IGRhdGEubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLCAwKTsKLSAgICB9Ci0KLSAgICBjbGllbnQt
PmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZU1h
bmFnZXI6OmRpc3BhdGNoU3luY2hyb25vdXNKb2IoUmVzb3VyY2VIYW5kbGUqIGpvYikKIHsKICAg
ICBLVVJMIGt1cmwgPSBqb2ItPmZpcnN0UmVxdWVzdCgpLnVybCgpOwogCiAgICAgaWYgKGt1cmwu
cHJvdG9jb2xJcygiZGF0YSIpKSB7Ci0gICAgICAgIHBhcnNlRGF0YVVybChqb2IpOworICAgICAg
ICBoYW5kbGVEYXRhVVJMKGpvYik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY2NCw3
ICs2MDgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c3RhcnRKb2IoUmVzb3VyY2VI
YW5kbGUqIGpvYikKICAgICBLVVJMIGt1cmwgPSBqb2ItPmZpcnN0UmVxdWVzdCgpLnVybCgpOwog
CiAgICAgaWYgKGt1cmwucHJvdG9jb2xJcygiZGF0YSIpKSB7Ci0gICAgICAgIHBhcnNlRGF0YVVy
bChqb2IpOworICAgICAgICBoYW5kbGVEYXRhVVJMKGpvYik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRs
ZVdpbi5jcHAKaW5kZXggNWRlMmUxYi4uNTExZGE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogCisjaW5j
bHVkZSAiRGF0YVVSTC5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTUlN
RVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKQEAgLTI1OSw3ICsyNjAs
NyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSgpCiAKIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlm
IChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgeworICAgIGlmIChmaXJzdFJlcXVlc3Qo
KS51cmwoKS5pc0xvY2FsRmlsZSgpIHx8IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMo
ImRhdGEiKSkgewogICAgICAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxv
YWRUaW1lcgogICAgICAgICBpZiAoZC0+bV9sb2FkU3luY2hyb25vdXNseSkKICAgICAgICAgICAg
IGZpbGVMb2FkVGltZXIoMCk7CkBAIC0zNDksNiArMzUwLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmZpbGVMb2FkVGltZXIoVGltZXI8UmVzb3VyY2VIYW5kbGU+KikKICAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IHByb3RlY3Rvcih0aGlzKTsKICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyBy
ZWYgaW4gc3RhcnQKIAorICAgIGlmIChmaXJzdFJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzKCJk
YXRhIikpIHsKKyAgICAgICAgaGFuZGxlRGF0YVVSTCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIFN0cmluZyBmaWxlTmFtZSA9IGZpcnN0UmVxdWVzdCgpLnVybCgpLmZpbGVT
eXN0ZW1QYXRoKCk7CiAgICAgSEFORExFIGZpbGVIYW5kbGUgPSBDcmVhdGVGaWxlVyhmaWxlTmFt
ZS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLCBHRU5FUklDX1JFQUQsIDAsIDAsIE9Q
RU5fRVhJU1RJTkcsIEZJTEVfQVRUUklCVVRFX05PUk1BTCwgMCk7CiAK
</data>
<flag name="commit-queue"
          id="59595"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69911</attachid>
            <date>2010-10-06 03:09:32 -0700</date>
            <delta_ts>2010-10-06 04:02:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41462e.patch</filename>
            <type>text/plain</type>
            <size>12525</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDQ0NzYxMTYuLjRmNDVjNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTMzOCw2ICsxMzM4LDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmNwcAogICAgIHBs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVh
ZGVyTWFwLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA1MzEyZGQ3Li42ZjIxMmJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEwLTEwLTA1ICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE1vdmUgcGFyc2VEYXRhVXJsKCkgZnJvbSBDVVJM
IGludG8gb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQxNDYyCisKKyAgICAgICAgTW92ZSB0aGUgZGF0YSBVUkwgcGFyc2luZyBhbGdvcml0
aG0gaW50byBhIG5ldyBmaWxlIHRvIHVzZSBpdCBpbiBSZXNvdXJjZUhhbmRsZVdpbiB0b28uCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9EYXRhVVJMLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVEYXRh
VVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRpc3BhdGNoU3luY2hyb25v
dXNKb2IpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFydEpv
Yik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKwogMjAxMC0xMC0wNSAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggMTI4OTUwNy4uNGI2MzRhOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5NzgsNiArMjk3
OCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvRE5TLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsv
RGF0YVVSTC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTC5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhQnVpbGRlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZmVkNTkxMy4uYmY3NDE5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yNzMyMiw2ICsyNzMyMiwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xEYXRhVVJM
LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXG5ldHdvcmtcRGF0YVVSTC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xGb3JtRGF0YS5j
cHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRGF0YVVSTC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRlMWIzNAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMLmNwcApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YVVSTC5o
IgorCisjaW5jbHVkZSAiQmFzZTY0LmgiCisjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50Lmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGhhbmRsZURhdGFVUkwoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSkKK3sKKyAgICBBU1NFUlQoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzKCJkYXRhIikpOworICAgIFN0cmluZyB1cmwgPSBoYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLnVybCgpLnN0cmluZygpOworCisgICAgaW50IGluZGV4ID0gdXJsLmZpbmQoJywn
KTsKKyAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+Y2Fu
bm90U2hvd1VSTChoYW5kbGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5n
IG1lZGlhVHlwZSA9IHVybC5zdWJzdHJpbmcoNSwgaW5kZXggLSA1KTsKKyAgICBTdHJpbmcgZGF0
YSA9IHVybC5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKworICAgIGJvb2wgYmFzZTY0ID0gbWVkaWFU
eXBlLmVuZHNXaXRoKCI7YmFzZTY0IiwgZmFsc2UpOworICAgIGlmIChiYXNlNjQpCisgICAgICAg
IG1lZGlhVHlwZSA9IG1lZGlhVHlwZS5sZWZ0KG1lZGlhVHlwZS5sZW5ndGgoKSAtIDcpOworCisg
ICAgaWYgKG1lZGlhVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIG1lZGlhVHlwZSA9ICJ0ZXh0L3Bs
YWluO2NoYXJzZXQ9VVMtQVNDSUkiOworCisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShtZWRpYVR5cGUpOworICAgIFN0cmluZyBjaGFyc2V0ID0gZXh0
cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1lZGlhVHlwZSk7CisKKyAgICBSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlOworICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKKyAgICBy
ZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGNoYXJzZXQpOworICAgIHJlc3BvbnNlLnNldFVS
TChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKKworICAgIGlmIChiYXNlNjQpIHsKKyAg
ICAgICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKKyAgICAgICAgaGFu
ZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOworCisg
ICAgICAgIFZlY3RvcjxjaGFyPiBvdXQ7CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGF0YSwg
b3V0LCBJZ25vcmVXaGl0ZXNwYWNlKSAmJiBvdXQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAg
cmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKG91dC5zaXplKCkpOworICAgICAgICAg
ICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBvdXQuZGF0YSgpLCBv
dXQuc2l6ZSgpLCAwKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRhdGEgPSBk
ZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSwgVGV4dEVuY29kaW5nKGNoYXJzZXQpKTsKKyAg
ICAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9u
c2UpOworCisgICAgICAgIENTdHJpbmcgZW5jb2RlZERhdGEgPSBUZXh0RW5jb2RpbmcoKS5lbmNv
ZGUoZGF0YS5jaGFyYWN0ZXJzKCksIGRhdGEubGVuZ3RoKCksIFVSTEVuY29kZWRFbnRpdGllc0Zv
clVuZW5jb2RhYmxlcyk7CisgICAgICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0
aChlbmNvZGVkRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChlbmNvZGVkRGF0YS5sZW5ndGgo
KSkKKyAgICAgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwg
ZW5jb2RlZERhdGEuZGF0YSgpLCBlbmNvZGVkRGF0YS5sZW5ndGgoKSwgMCk7CisgICAgfQorCisg
ICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUsIDApOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRGF0YVVSTC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGI0YmZmCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuaApAQCAtMCwwICsxLDM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNv
bT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVVJMX2gKKyNkZWZpbmUgRGF0YVVSTF9oCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVzb3VyY2VIYW5kbGU7CisKK3ZvaWQgaGFuZGxl
RGF0YVVSTChSZXNvdXJjZUhhbmRsZSopOworCit9CisKKyNlbmRpZiAvLyBEYXRhVVJMX2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFu
YWdlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCmluZGV4IDJjYzg3YWUuLmYwZGUyM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtMzQs
MTQgKzM0LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJEYXRhVVJMLmgi
CiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgiCi0jaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKICNpbmNsdWRlIDxlcnJuby5o
PgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC01NzMsNjcgKzU3MiwxMiBAQCBib29sIFJlc291cmNl
SGFuZGxlTWFuYWdlcjo6c3RhcnRTY2hlZHVsZWRKb2JzKCkKICAgICByZXR1cm4gc3RhcnRlZDsK
IH0KIAotc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCi17
Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0K
LSAgICBBU1NFUlQoY2xpZW50KTsKLSAgICBpZiAoIWNsaWVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgU3RyaW5nIHVybCA9IGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7
Ci0gICAgQVNTRVJUKHVybC5zdGFydHNXaXRoKCJkYXRhOiIsIGZhbHNlKSk7Ci0KLSAgICBpbnQg
aW5kZXggPSB1cmwuZmluZCgnLCcpOwotICAgIGlmIChpbmRleCA9PSAtMSkgewotICAgICAgICBj
bGllbnQtPmNhbm5vdFNob3dVUkwoaGFuZGxlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIFN0cmluZyBtZWRpYVR5cGUgPSB1cmwuc3Vic3RyaW5nKDUsIGluZGV4IC0gNSk7Ci0gICAg
U3RyaW5nIGRhdGEgPSB1cmwuc3Vic3RyaW5nKGluZGV4ICsgMSk7Ci0KLSAgICBib29sIGJhc2U2
NCA9IG1lZGlhVHlwZS5lbmRzV2l0aCgiO2Jhc2U2NCIsIGZhbHNlKTsKLSAgICBpZiAoYmFzZTY0
KQotICAgICAgICBtZWRpYVR5cGUgPSBtZWRpYVR5cGUubGVmdChtZWRpYVR5cGUubGVuZ3RoKCkg
LSA3KTsKLQotICAgIGlmIChtZWRpYVR5cGUuaXNFbXB0eSgpKQotICAgICAgICBtZWRpYVR5cGUg
PSAidGV4dC9wbGFpbjtjaGFyc2V0PVVTLUFTQ0lJIjsKLQotICAgIFN0cmluZyBtaW1lVHlwZSA9
IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobWVkaWFUeXBlKTsKLSAgICBTdHJpbmcgY2hh
cnNldCA9IGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShtZWRpYVR5cGUpOwotCi0gICAgUmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZTsKLSAgICByZXNwb25zZS5zZXRNaW1lVHlwZShtaW1lVHlw
ZSk7Ci0KLSAgICBpZiAoYmFzZTY0KSB7Ci0gICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVT
ZXF1ZW5jZXMoZGF0YSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoY2hh
cnNldCk7Ci0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9u
c2UpOwotCi0gICAgICAgIC8vIFdlYkNvcmUncyBkZWNvZGVyIGZhaWxzIG9uIEFjaWQzIHRlc3Qg
OTcgKHdoaXRlc3BhY2UpLgotICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0OwotICAgICAgICBDU3Ry
aW5nIGxhdGluMSA9IGRhdGEubGF0aW4xKCk7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUobGF0
aW4xLmRhdGEoKSwgbGF0aW4xLmxlbmd0aCgpLCBvdXQpICYmIG91dC5zaXplKCkgPiAwKQotICAg
ICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIG91dC5kYXRhKCksIG91dC5z
aXplKCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIGhhdmUgdG8gY29udmVydCB0
byBVVEYtMTYgZWFybHkgZHVlIHRvIGxpbWl0YXRpb25zIGluIEtVUkwKLSAgICAgICAgZGF0YSA9
IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhLCBUZXh0RW5jb2RpbmcoY2hhcnNldCkpOwot
ICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKCJVVEYtMTYiKTsKLSAgICAgICAg
Y2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7Ci0gICAgICAgIGlm
IChkYXRhLmxlbmd0aCgpID4gMCkKLSAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmNoYXJhY3RlcnMoKSks
IGRhdGEubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLCAwKTsKLSAgICB9Ci0KLSAgICBjbGllbnQt
PmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZU1h
bmFnZXI6OmRpc3BhdGNoU3luY2hyb25vdXNKb2IoUmVzb3VyY2VIYW5kbGUqIGpvYikKIHsKICAg
ICBLVVJMIGt1cmwgPSBqb2ItPmZpcnN0UmVxdWVzdCgpLnVybCgpOwogCiAgICAgaWYgKGt1cmwu
cHJvdG9jb2xJcygiZGF0YSIpKSB7Ci0gICAgICAgIHBhcnNlRGF0YVVybChqb2IpOworICAgICAg
ICBoYW5kbGVEYXRhVVJMKGpvYik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY2NCw3
ICs2MDgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c3RhcnRKb2IoUmVzb3VyY2VI
YW5kbGUqIGpvYikKICAgICBLVVJMIGt1cmwgPSBqb2ItPmZpcnN0UmVxdWVzdCgpLnVybCgpOwog
CiAgICAgaWYgKGt1cmwucHJvdG9jb2xJcygiZGF0YSIpKSB7Ci0gICAgICAgIHBhcnNlRGF0YVVy
bChqb2IpOworICAgICAgICBoYW5kbGVEYXRhVVJMKGpvYik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRs
ZVdpbi5jcHAKaW5kZXggNWRlMmUxYi4uNTExZGE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogCisjaW5j
bHVkZSAiRGF0YVVSTC5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTUlN
RVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKQEAgLTI1OSw3ICsyNjAs
NyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSgpCiAKIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlm
IChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgeworICAgIGlmIChmaXJzdFJlcXVlc3Qo
KS51cmwoKS5pc0xvY2FsRmlsZSgpIHx8IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMo
ImRhdGEiKSkgewogICAgICAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxv
YWRUaW1lcgogICAgICAgICBpZiAoZC0+bV9sb2FkU3luY2hyb25vdXNseSkKICAgICAgICAgICAg
IGZpbGVMb2FkVGltZXIoMCk7CkBAIC0zNDksNiArMzUwLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmZpbGVMb2FkVGltZXIoVGltZXI8UmVzb3VyY2VIYW5kbGU+KikKICAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IHByb3RlY3Rvcih0aGlzKTsKICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyBy
ZWYgaW4gc3RhcnQKIAorICAgIGlmIChmaXJzdFJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzKCJk
YXRhIikpIHsKKyAgICAgICAgaGFuZGxlRGF0YVVSTCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIFN0cmluZyBmaWxlTmFtZSA9IGZpcnN0UmVxdWVzdCgpLnVybCgpLmZpbGVT
eXN0ZW1QYXRoKCk7CiAgICAgSEFORExFIGZpbGVIYW5kbGUgPSBDcmVhdGVGaWxlVyhmaWxlTmFt
ZS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLCBHRU5FUklDX1JFQUQsIDAsIDAsIE9Q
RU5fRVhJU1RJTkcsIEZJTEVfQVRUUklCVVRFX05PUk1BTCwgMCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>