<?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>117266</bug_id>
          
          <creation_ts>2013-06-05 11:22:33 -0700</creation_ts>
          <short_desc>[WK2] Looping for EINTR on close() is incorrect for Linux, at least</short_desc>
          <delta_ts>2013-06-21 16:00:24 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Sergio Correia (qrwteyrutiyoup)">sergio</reporter>
          <assigned_to name="Sergio Correia (qrwteyrutiyoup)">sergio</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>hausmann</cc>
    
    <cc>kling</cc>
    
    <cc>lauro.neto</cc>
    
    <cc>menard</cc>
    
    <cc>nick.diego</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>897484</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-05 11:22:33 -0700</bug_when>
    <thetext>[WK2]: Do not loop for EINTR on close()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897488</commentid>
    <comment_count>1</comment_count>
      <attachid>203869</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-05 11:26:23 -0700</bug_when>
    <thetext>Created attachment 203869
Patch

RFC patch, not yet for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897539</commentid>
    <comment_count>2</comment_count>
      <attachid>203869</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-05 13:56:48 -0700</bug_when>
    <thetext>Comment on attachment 203869
Patch

Given the discussion in the change log it sounds like this change is wrong. On platforms that have “the HPUX behavior” these file descriptors will be left open. And once the recommendation of the Austin group is implemented, the code will be correct on the other platforms too.

If we need to work around the current Linux behavior, it seems to me we should call through a helper function that does the right thing for Linux. Changing all the call sites to ignore the issue and leave the file descriptors open if interrupted seems clearly the wrong thing to do.

Am I missing something? There’s all that data about what the situation is, and then a change that seems to ignore the data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897547</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-05 14:08:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 203869 [details])
&gt; Given the discussion in the change log it sounds like this change is wrong. On platforms that have “the HPUX behavior” these file descriptors will be left open. And once the recommendation of the Austin group is implemented, the code will be correct on the other platforms too.
&gt; 
&gt; If we need to work around the current Linux behavior, it seems to me we should call through a helper function that does the right thing for Linux. Changing all the call sites to ignore the issue and leave the file descriptors open if interrupted seems clearly the wrong thing to do.
&gt; 
&gt; Am I missing something? There’s all that data about what the situation is, and then a change that seems to ignore the data.

Nope, you are not missing anything. This first patch was mostly to bring attention to the issue. 

I also agree that having a helper take care of it seems better, as we can centralize any quirks some platforms might need, and we could provide also some background on the situation. Any ideas on where we could define such helper?

Thanks for the feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897606</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-05 17:40:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I also agree that having a helper take care of it seems better, as we can centralize any quirks some platforms might need, and we could provide also some background on the situation. Any ideas on where we could define such helper?

Somewhere in WTF might be OK. Maybe a file named &lt;wtf/UniStdExtras.h&gt;? Or in WebKit2/Platform. Not sure what file name I’d use there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>899555</commentid>
    <comment_count>5</comment_count>
      <attachid>204442</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-12 08:06:43 -0700</bug_when>
    <thetext>Created attachment 204442
Patch

Added a UniStdExtras class with a wrapper around close(), to handle EINTR correctly for Linux and use this new function in several call sites across WK2 code where we were looping for EINTR on close().)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901147</commentid>
    <comment_count>6</comment_count>
      <attachid>204849</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-17 12:49:52 -0700</bug_when>
    <thetext>Created attachment 204849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901460</commentid>
    <comment_count>7</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-18 11:41:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I also agree that having a helper take care of it seems better, as we can centralize any quirks some platforms might need, and we could provide also some background on the situation. Any ideas on where we could define such helper?
&gt; 
&gt; Somewhere in WTF might be OK. Maybe a file named &lt;wtf/UniStdExtras.h&gt;? Or in WebKit2/Platform. Not sure what file name I’d use there.

I have created a UniStdExtras.h in WTF, as per your suggestion, and added a wrapper around the close() call. Could you take a look at the current patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901619</commentid>
    <comment_count>8</comment_count>
      <attachid>204849</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-18 18:26:03 -0700</bug_when>
    <thetext>Comment on attachment 204849
Patch

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

Looks OK, needs to not be a class, though.

&gt; Source/WTF/wtf/UniStdExtras.h:34
&gt; +class UniStdExtras {

This should not be a class.

&gt; Source/WTF/wtf/UniStdExtras.h:36
&gt; +    static int close(int fileDescriptor)

Should just have a global function with a descriptive name. Something like closeWithRetry maybe.

&gt; Source/WTF/wtf/UniStdExtras.h:53
&gt; +} // namespace WTF

Need the using that we do in WTF. Like this:

    using WTF::closeWithRetry;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901634</commentid>
    <comment_count>9</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-18 19:31:39 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 204849 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=204849&amp;action=review
&gt; 
&gt; Looks OK, needs to not be a class, though.
&gt; 
&gt; &gt; Source/WTF/wtf/UniStdExtras.h:34
&gt; &gt; +class UniStdExtras {
&gt; 
&gt; This should not be a class.
&gt; 
&gt; &gt; Source/WTF/wtf/UniStdExtras.h:36
&gt; &gt; +    static int close(int fileDescriptor)
&gt; 
&gt; Should just have a global function with a descriptive name. 

OK, I will update it.

&gt; Something like closeWithRetry maybe.

How about something even more descriptive like closeHandlingEINTR? It might be more obvious to people reading the code. closeWithRetry seems much better than just close, anyway, so if you feel strongly about it, we can use closeWithRetry.

&gt; 
&gt; &gt; Source/WTF/wtf/UniStdExtras.h:53
&gt; &gt; +} // namespace WTF
&gt; 
&gt; Need the using that we do in WTF. Like this:
&gt; 
&gt;     using WTF::closeWithRetry;

Noted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901667</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-18 21:20:34 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 204849 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=204849&amp;action=review
&gt; 
&gt; Looks OK, needs to not be a class, though.
&gt; 
&gt; &gt; Source/WTF/wtf/UniStdExtras.h:34
&gt; &gt; +class UniStdExtras {
&gt; 
&gt; This should not be a class.
&gt; 
&gt; &gt; Source/WTF/wtf/UniStdExtras.h:36
&gt; &gt; +    static int close(int fileDescriptor)
&gt; 
&gt; Should just have a global function with a descriptive name. Something like closeWithRetry maybe.
&gt; 

Oh, and a last question: to avoid having the function being redefined, would you prefer this global function to keep being static, to be marked inline or to be defined in a source cpp file?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901784</commentid>
    <comment_count>11</comment_count>
      <attachid>205002</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-19 07:05:08 -0700</bug_when>
    <thetext>Created attachment 205002
Patch

Using closeWithRetry() as a more descriptive name and not creating a class anymore, as per Darin&apos;s suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902375</commentid>
    <comment_count>12</comment_count>
      <attachid>205002</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-20 18:15:08 -0700</bug_when>
    <thetext>Comment on attachment 205002
Patch

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

&gt; Source/WebKit2/ChangeLog:44
&gt; +        POSIX says the following for close():
&gt; +
&gt; +        If close() is interrupted by a signal that is to be caught, it shall
&gt; +        return -1 with errno set to [EINTR] and the state of fildes is
&gt; +        unspecified.
&gt; +
&gt; +        Different implementations do different things when close() is interrupted
&gt; +        by a signal: HP-UX leaves the file descriptor open while returning EINTR,
&gt; +        while Linux and AIX, for instance, close the descriptor unconditionally.
&gt; +
&gt; +        As someone pointed out in the discussion in [1], the actual problem with
&gt; +        this behavior is not knowing how to safely proceed when getting EINTR
&gt; +        during a close() call. In single-threaded applications, there&apos;s not much of
&gt; +        a problem, since one could just call close() again and get EBADF if the
&gt; +        descriptor had been closed the first time; however, in multithreaded
&gt; +        applications it becomes dangerous to call close() again, since it&apos;s
&gt; +        possible s subsequent call could close a descriptor just obtained by
&gt; +        another thread.
&gt; +
&gt; +        As noted in [5], the Austin Group resolved the issue [6] by requiring
&gt; +        the HPUX behavior if close returns with EINTR, but allowing implementations
&gt; +        which want to deallocate the file descriptor even if interrupted by a
&gt; +        signal to return with the EINPROGRESS error instead of EINTR.
&gt; +
&gt; +        The ``while (close(fd) == -1 &amp;&amp; errno == EINTR) { }&apos;&apos; idiom seems to be
&gt; +        very popular, especially in WK2 code, and since it&apos;s the wrong thing to do
&gt; +        at least on Linux, this patch is changing these sites to use a new function
&gt; +        closeWithRetry() added in this commit, which currently works around the
&gt; +        described Linux behavior.
&gt; +
&gt; +        Some links for reference:
&gt; +        [1] https://news.ycombinator.com/item?id=3363819
&gt; +        [2] http://lkml.indiana.edu/hypermail/linux/kernel/0509.1/0877.html
&gt; +        [3] https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain
&gt; +        [4] http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR
&gt; +        [5] http://ewontfix.com/4/
&gt; +        [6] http://austingroupbugs.net/view.php?id=529

Comment is too big. The comment in WTF/ChangeLog is better. Just use something like that. “Call closeWithRetry to work around a difference in how the retry needs to be done on Linux.”

&gt; Source/WTF/wtf/UniStdExtras.h:2
&gt; +#ifndef UniStdExtras_h
&gt; +#define UniStdExtras_h

These header guards go after the comment in the WebKit coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902410</commentid>
    <comment_count>13</comment_count>
      <attachid>205142</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-20 20:27:03 -0700</bug_when>
    <thetext>Created attachment 205142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902414</commentid>
    <comment_count>14</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-06-20 20:37:21 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 205002 [details])
&gt; 
&gt; Comment is too big. The comment in WTF/ChangeLog is better. Just use something like that. “Call closeWithRetry to work around a difference in how the retry needs to be done on Linux.”
&gt; 
&gt; &gt; Source/WTF/wtf/UniStdExtras.h:2
&gt; &gt; +#ifndef UniStdExtras_h
&gt; &gt; +#define UniStdExtras_h
&gt; 
&gt; These header guards go after the comment in the WebKit coding style.

Thanks for the review. I have updated the comment in the WebKit2/ChangeLog and the header guards to conform with the WebKit coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902448</commentid>
    <comment_count>15</comment_count>
      <attachid>205142</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 23:03:24 -0700</bug_when>
    <thetext>Comment on attachment 205142
Patch

Clearing flags on attachment: 205142

Committed r151825: &lt;http://trac.webkit.org/changeset/151825&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203869</attachid>
            <date>2013-06-05 11:26:23 -0700</date>
            <delta_ts>2013-06-12 08:06:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117266-20130605142451.patch</filename>
            <type>text/plain</type>
            <size>10040</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxMjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYThjNWVjZTM3YWQ3MThi
MzQzM2ZiNzYwZGM5YWFjNTU5MWVmZjBhOC4uYzA4OGEzM2NmYjc5NzgzMGY5ZjAwZDAzYTVlMDI5
MTg3NjdmYzdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA2LTA1ICBTZXJn
aW8gQ29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1dL
Ml06IERvIG5vdCBsb29wIGZvciBFSU5UUiBvbiBjbG9zZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcyNjYKKworICAgICAgICAqKiBSRkM6IE5P
VCBZRVQgRk9SIFJFVklFVywgVEhJUyBQQVRDSCBJUyBNT1JFIEZPUiBESVNDVVNTSU9OICoqCisK
KyAgICAgICAgUE9TSVggc2F5cyB0aGUgZm9sbG93aW5nIGZvciBjbG9zZSgpOgorCisgICAgICAg
IElmIGNsb3NlKCkgaXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwgdGhhdCBpcyB0byBiZSBjYXVn
aHQsIGl0IHNoYWxsCisgICAgICAgIHJldHVybiAtMSB3aXRoIGVycm5vIHNldCB0byBbRUlOVFJd
IGFuZCB0aGUgc3RhdGUgb2YgZmlsZGVzIGlzCisgICAgICAgIHVuc3BlY2lmaWVkLgorCisgICAg
ICAgIERpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgZG8gZGlmZmVyZW50IHRoaW5ncyB3aGVuIGNs
b3NlKCkgaXMgaW50ZXJydXB0ZWQKKyAgICAgICAgYnkgYSBzaWduYWw6IEhQLVVYIGxlYXZlcyB0
aGUgZmlsZSBkZXNjcmlwdG9yIG9wZW4gd2hpbGUgcmV0dXJuaW5nIEVJTlRSLAorICAgICAgICB3
aGlsZSBMaW51eCBhbmQgQUlYLCBmb3IgaW5zdGFuY2UsIGNsb3NlIHRoZSBkZXNjcmlwdG9yIHVu
Y29uZGl0aW9uYWxseS4KKworICAgICAgICBBcyBzb21lb25lIHBvaW50ZWQgb3V0IGluIHRoZSBk
aXNjdXNzaW9uIGluIFsxXSwgdGhlIGFjdHVhbCBwcm9ibGVtIHdpdGgKKyAgICAgICAgdGhpcyBi
ZWhhdmlvciBpcyBub3Qga25vd2luZyBob3cgdG8gc2FmZWx5IHByb2NlZWQgd2hlbiBnZXR0aW5n
IEVJTlRSCisgICAgICAgIGR1cmluZyBhIGNsb3NlKCkgY2FsbC4gSW4gc2luZ2xlLXRocmVhZGVk
IGFwcGxpY2F0aW9ucywgdGhlcmUncyBub3QgbXVjaCBvZgorICAgICAgICBhIHByb2JsZW0sIHNp
bmNlIG9uZSBjb3VsZCBqdXN0IGNhbGwgY2xvc2UoKSBhZ2FpbiBhbmQgZ2V0IEVCQURGIGlmIHRo
ZQorICAgICAgICBkZXNjcmlwdG9yIGhhZCBiZWVuIGNsb3NlZCB0aGUgZmlyc3QgdGltZTsgaG93
ZXZlciwgaW4gbXVsdGl0aHJlYWRlZAorICAgICAgICBhcHBsaWNhdGlvbnMgaXQgYmVjb21lcyBk
YW5nZXJvdXMgdG8gY2FsbCBjbG9zZSgpIGFnYWluLCBzaW5jZSBpdCdzCisgICAgICAgIHBvc3Np
YmxlIHMgc3Vic2VxdWVudCBjYWxsIGNvdWxkIGNsb3NlIGEgZGVzY3JpcHRvciBqdXN0IG9idGFp
bmVkIGJ5CisgICAgICAgIGFub3RoZXIgdGhyZWFkLgorCisgICAgICAgIEFzIG5vdGVkIGluIFs1
XSwgdGhlIEF1c3RpbiBHcm91cCByZXNvbHZlZCB0aGUgaXNzdWUgWzZdIGJ5IHJlcXVpcmluZwor
ICAgICAgICB0aGUgSFBVWCBiZWhhdmlvciBpZiBjbG9zZSByZXR1cm5zIHdpdGggRUlOVFIsIGJ1
dCBhbGxvd2luZyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgd2hpY2ggd2FudCB0byBkZWFsbG9j
YXRlIHRoZSBmaWxlIGRlc2NyaXB0b3IgZXZlbiBpZiBpbnRlcnJ1cHRlZCBieSBhCisgICAgICAg
IHNpZ25hbCB0byByZXR1cm4gd2l0aCB0aGUgRUlOUFJPR1JFU1MgZXJyb3IgaW5zdGVhZCBvZiBF
SU5UUi4KKworICAgICAgICBUaGUgYGB3aGlsZSAoY2xvc2UoZmQpID09IC0xICYmIChlcnJubyA9
PSBFSU5UUikpIHsgfScnIGlkaW9tIHNlZW1zIHRvIGJlCisgICAgICAgIHZlcnkgcG9wdWxhciwg
ZXNwZWNpYWxseSBpbiBXSzIgY29kZSwgYW5kIHNpbmNlIGl0J3MgdGhlIHdyb25nIHRoaW5nIHRv
IGRvCisgICAgICAgIGluIHNvbWUgcGxhdGZvcm1zLCBzdWNoIGFzIExpbnV4LCB0aGlzIHBhdGNo
IGlzIGNoYW5naW5nIHRoZW0gdG8gc2ltcGxlCisgICAgICAgIGBgY2xvc2UoZmQpJycgY2FsbHMu
CisKKyAgICAgICAgU29tZSBsaW5rcyBmb3IgcmVmZXJlbmNlOgorICAgICAgICBbMV0gaHR0cHM6
Ly9uZXdzLnljb21iaW5hdG9yLmNvbS9pdGVtP2lkPTMzNjM4MTkKKyAgICAgICAgWzJdIGh0dHA6
Ly9sa21sLmluZGlhbmEuZWR1L2h5cGVybWFpbC9saW51eC9rZXJuZWwvMDUwOS4xLzA4NzcuaHRt
bAorICAgICAgICBbM10gaHR0cHM6Ly9zaXRlcy5nb29nbGUuY29tL3NpdGUvbWljaGFlbHNhZnlh
bi9zb2Z0d2FyZS1lbmdpbmVlcmluZy9jaGVja2ZvcmVpbnRyd2hlbmludm9raW5nY2xvc2V0aGlu
a2FnYWluCisgICAgICAgIFs0XSBodHRwOi8vdXRjYy51dG9yb250by5jYS9+Y2tzL3NwYWNlL2Js
b2cvdW5peC9DbG9zZUVJTlRSCisgICAgICAgIFs1XSBodHRwOi8vZXdvbnRmaXguY29tLzQvCisg
ICAgICAgIFs2XSBodHRwOi8vYXVzdGluZ3JvdXBidWdzLm5ldC92aWV3LnBocD9pZD01MjkKKwor
ICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHA6CisgICAg
ICAgIChDb3JlSVBDOjpBdHRhY2htZW50OjpkaXNwb3NlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVj
dGlvbjo6cGxhdGZvcm1JbnZhbGlkYXRlKToKKyAgICAgICAgKiBQbGF0Zm9ybS91bml4L1NoYXJl
ZE1lbW9yeVVuaXguY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
fkhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5KToKKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OmNyZWF0
ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL1No
YXJlZFdvcmtlclByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRXb3JrZXJQcm9j
ZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKwogMjAxMy0wNi0wNSAgR3dhbmcgWW9vbiBId2Fu
ZyAgPHJ5dW1pZWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVkIEdyYXBo
aWNzXSBQcmV2ZW50IGEgcmVjdXJzaXZlIHBhaW50aW5nIGluIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0
dGFjaG1lbnRVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9B
dHRhY2htZW50VW5peC5jcHAKaW5kZXggYThjMDI2OTRmMzAwOWZjZDllMWZhZTE3YmU2MWI1NzNh
YWZmZjNhMC4uZDQ1MTc4YzYzYWNlYTViYmY0MzFhOGZiYTc0MzUwZjExNDYyNzAyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1lbnRVbml4
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNobWVu
dFVuaXguY3BwCkBAIC00OSw3ICs0OSw3IEBAIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZp
bGVEZXNjcmlwdG9yKQogdm9pZCBBdHRhY2htZW50OjpkaXNwb3NlKCkKIHsKICAgICBpZiAobV9m
aWxlRGVzY3JpcHRvciAhPSAtMSkKLSAgICAgICAgd2hpbGUgKGNsb3NlKG1fZmlsZURlc2NyaXB0
b3IpID09IC0xICYmIChlcnJubyA9PSBFSU5UUikpIHsgfQorICAgICAgICBjbG9zZShtX2ZpbGVE
ZXNjcmlwdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5k
ZXggZTAxYzIxMTI2YTcwODFkNmM2ZTRjMmM1NDQ4NDNkMGI2ZDRhN2I4YS4uYjQyMGIwZjgxODhm
MmU2MzA3ZjVlYjczNWM1NjhlZGIzYmMwZGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCkBAIC0xMzYsNyAr
MTM2LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogICAgIC8vIElu
IEdUSysgcGxhdGZvcm0gdGhlIHNvY2tldCBpcyBjbG9zZWQgYnkgdGhlIHdvcmsgcXVldWUuCiAj
aWYgIVBMQVRGT1JNKEdUSykKICAgICBpZiAobV9zb2NrZXREZXNjcmlwdG9yICE9IC0xKQotICAg
ICAgICB3aGlsZSAoY2xvc2UobV9zb2NrZXREZXNjcmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBF
SU5UUikgeyB9CisgICAgICAgIGNsb3NlKG1fc29ja2V0RGVzY3JpcHRvcik7CiAjZW5kaWYKIAog
ICAgIGlmICghbV9pc0Nvbm5lY3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91
bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmluZGV4IDY0MzBhZTIxNjEzOTE3YWMzZjBkNjFmYWE4
ZDZhOGQ2MTFjM2RiOTMuLjM0NzkyYTQ5MzA4MWMzMzM0Y2QzMDYxYmNmZTU3YTdmMzVhNzYyNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5p
eC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcApAQCAtNTQsNyArNTQsNyBAQCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6SGFuZGxlKCkKIFNo
YXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKCkKIHsKICAgICBpZiAoIWlzTnVsbCgpKQotICAg
ICAgICB3aGlsZSAoY2xvc2UobV9maWxlRGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlO
VFIpIHsgfQorICAgICAgICBjbG9zZShtX2ZpbGVEZXNjcmlwdG9yKTsKIH0KIAogYm9vbCBTaGFy
ZWRNZW1vcnk6OkhhbmRsZTo6aXNOdWxsKCkgY29uc3QKQEAgLTExNCw3ICsxMTQsNyBAQCBQYXNz
UmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCiAK
ICAgICB3aGlsZSAoZnRydW5jYXRlKGZpbGVEZXNjcmlwdG9yLCBzaXplKSA9PSAtMSkgewogICAg
ICAgICBpZiAoZXJybm8gIT0gRUlOVFIpIHsKLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShmaWxl
RGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgY2xv
c2UoZmlsZURlc2NyaXB0b3IpOwogICAgICAgICAgICAgc2htX3VubGluayh0ZW1wTmFtZS5kYXRh
KCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KQEAgLTEyMiw3ICsxMjIsNyBA
QCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNp
emUpCiAKICAgICB2b2lkKiBkYXRhID0gbW1hcCgwLCBzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dS
SVRFLCBNQVBfU0hBUkVELCBmaWxlRGVzY3JpcHRvciwgMCk7CiAgICAgaWYgKGRhdGEgPT0gTUFQ
X0ZBSUxFRCkgewotICAgICAgICB3aGlsZSAoY2xvc2UoZmlsZURlc2NyaXB0b3IpID09IC0xICYm
IGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgY2xvc2UoZmlsZURlc2NyaXB0b3IpOwogICAg
ICAgICBzaG1fdW5saW5rKHRlbXBOYW1lLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KQEAgLTE2OCw3ICsxNjgsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVt
b3J5OjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcAogU2hhcmVkTWVt
b3J5Ojp+U2hhcmVkTWVtb3J5KCkKIHsKICAgICBtdW5tYXAobV9kYXRhLCBtX3NpemUpOwotICAg
IHdoaWxlIChjbG9zZShtX2ZpbGVEZXNjcmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikg
eyB9CisgICAgY2xvc2UobV9maWxlRGVzY3JpcHRvcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50
IGFjY2Vzc01vZGVGaWxlKFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBwcm90ZWN0aW9uKQpAQCAt
MjAwLDcgKzIwMCw3IEBAIGJvb2wgU2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUoSGFuZGxlJiBo
YW5kbGUsIFByb3RlY3Rpb24gcHJvdGVjdGlvbikKICAgICB3aGlsZSAoKGZjbnRsKGR1cGxpY2F0
ZWRIYW5kbGUsIEZfU0VURkQsIEZEX0NMT0VYRUMgfCBhY2Nlc3NNb2RlRmlsZShwcm90ZWN0aW9u
KSkgPT0gLTEpKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2UoZHVwbGljYXRl
ZEhhbmRsZSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgY2xvc2Uo
ZHVwbGljYXRlZEhhbmRsZSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cAppbmRleCAxYTFhZWQ2ZWNjNDA2YTg3ZmFmMTM4MzNlN2ExZmRjZjFkMTg5MGE0Li4zMjM5ZGRl
NjczNTEwNThhYjM2ZDgzY2YwOTc2N2FkMWI4OTAwNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTE5Miw4ICsxOTIsOCBAQCB2b2lk
IFBsdWdpblByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAo
ZmNudGwoc29ja2V0c1sxXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgID09IC0xKSB7CiAgICAgICAg
IGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0g
RUlOVFIpIHsgfQotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYm
IGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIGNsb3NlKHNvY2tldHNbMF0pOworICAg
ICAgICAgICAgY2xvc2Uoc29ja2V0c1sxXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CkBAIC0yMDIsOCArMjAyLDggQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbigpCiAgICAgd2hpbGUgKGZjbnRsKHNvY2tldHNbMF0sIEZfU0VU
RkQsIEZEX0NMT0VYRUMpID09IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xv
c2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAg
d2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAg
ICAgICAgICAgIGNsb3NlKHNvY2tldHNbMF0pOworICAgICAgICAgICAgY2xvc2Uoc29ja2V0c1sx
XSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNz
LmNwcAppbmRleCBkNDJhYjRlN2UxYTYyYmUwYWZhMzhjZWMwYzEwZjE0NDU4NGY2ZjVkLi44Njdi
YzZkZGVjYWRlZTJjYjRjMTE4MGRiZTBlNzE1MmIzOTQ2ZDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5j
cHAKQEAgLTEzOSw4ICsxMzksOCBAQCB2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAoZmNudGwoc29ja2V0c1sxXSwgRl9TRVRG
RCwgRkRfQ0xPRVhFQykgID09IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xv
c2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAg
d2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAg
ICAgICAgICAgIGNsb3NlKHNvY2tldHNbMF0pOworICAgICAgICAgICAgY2xvc2Uoc29ja2V0c1sx
XSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xNDksOCArMTQ5
LDggQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlv
bigpCiAgICAgd2hpbGUgKGZjbnRsKHNvY2tldHNbMF0sIEZfU0VURkQsIEZEX0NMT0VYRUMpID09
IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0g
LTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tl
dHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIGNsb3NlKHNv
Y2tldHNbMF0pOworICAgICAgICAgICAgY2xvc2Uoc29ja2V0c1sxXSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAppbmRleCAzYWZjNjZk
NDYwZDQ2ZTllZTgzZWNmZDFkNTM5ZjMzN2JhZGMxZDI3Li42NTYyZTExMWM3ZmNiNTBkOTQ0ZTIx
YTVkZDY3M2RhNmZmYWI4OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTE2Miw4ICsxNjIs
OCBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgd2hpbGUgKGZj
bnRsKHNvY2tldHNbMV0sIEZfU0VURkQsIEZEX0NMT0VYRUMpICA9PSAtMSkgewogICAgICAgICBp
ZiAoZXJybm8gIT0gRUlOVFIpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMF0pID09IC0xICYmIGVycm5vID09IEVJ
TlRSKSB7IH0KLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzFdKSA9PSAtMSAmJiBl
cnJubyA9PSBFSU5UUikgeyB9CisgICAgICAgICAgICBjbG9zZShzb2NrZXRzWzBdKTsKKyAgICAg
ICAgICAgIGNsb3NlKHNvY2tldHNbMV0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204442</attachid>
            <date>2013-06-12 08:06:43 -0700</date>
            <delta_ts>2013-06-17 12:49:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117266-20130612110502.patch</filename>
            <type>text/plain</type>
            <size>15099</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY2MWM1MjU1ZjUwNzUwNjBmZmZmN2Ux
Y2VhNDJkNjNlYWYzOWFiNDYuLmIzMGU2ZjQ5ZGZhYzI4ZTA3M2E2OTE4MTUzMjQwMjliNDgyZGJj
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDYtMTEgIFNlcmdpbyBDb3JyZWlhICA8c2Vy
Z2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXSBMb29waW5nIGZvciBF
SU5UUiBvbiBjbG9zZSgpIGlzIGluY29ycmVjdCBmb3IgTGludXgsIGF0IGxlYXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcyNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV1RGOjpVbmlTdGRF
eHRyYXMgY2xhc3Mgd2l0aCBhIGNsb3NlKCkgZnVuY3Rpb24gYXMgYSB3cmFwcGVyIHRvCisgICAg
ICAgIHRoZSB1bmRlcmx5aW5nIFBPU0lYIGNsb3NlKCkgY2FsbCwgc28gdGhhdCBpdCBjYW4gd29y
ayBhcm91bmQgdGhlCisgICAgICAgIEVJTlRSIGJlaGF2b3Igb24gbGludXgsIHdoaWNoIGNsb3Nl
cyB0aGUgZGVzY3JpcHRvciB1bmNvbmRpdGlvbmFsbHkKKyAgICAgICAgZXZlbiB3aGVuIGludGVy
dXB0ZWQgKEVJTlRSKS4KKworICAgICAgICBXZSBhbHNvIHJlcGxhY2Ugc2V2ZXJhbCBgYHdoaWxl
IChjbG9zZShmZCkgPT0gLTEgJiYgZXJybm8gPSBFSU5UUikpIHsgfScnCisgICAgICAgIGNhbGwg
c2l0ZXMgaW4gV0syIHdpdGggdGhlIG5ldyBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2UoZmQpLgor
CisgICAgICAgICogd3RmL1VuaVN0ZEV4dHJhcy5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6VW5p
U3RkRXh0cmFzOjpjbG9zZSk6IFdyYXBwZXIgdG8gUE9TSVggY2xvc2UoKSB0aGF0IG91Z2h0IHRv
IGhhbmRsZQorICAgICAgICBFSU5UUiBjb3JyZWN0bHkuCisKIDIwMTMtMDYtMDcgIFJvZ2VyIEZv
bmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBNYWtlZmls
ZSBmaXguIENvcHkgV1RGLmRsbCBvdmVyIGFzIHdlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDFiYTc3ODY3
MWI1NzQxMzI4NDFkZGJiYzcwODI3MTM5OWU2YjRjNC4uYmE2MjViNzY0MzVmMmM1NjIwYWY3ODhh
M2Q1OTkzMzkxMDNmZTZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTA2LTEx
ICBTZXJnaW8gQ29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgW1dLMl0gTG9vcGluZyBmb3IgRUlOVFIgb24gY2xvc2UoKSBpcyBpbmNvcnJlY3QgZm9yIExp
bnV4LCBhdCBsZWFzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE3MjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUE9TSVggc2F5cyB0aGUgZm9sbG93aW5nIGZvciBjbG9zZSgpOgorCisgICAgICAgIElm
IGNsb3NlKCkgaXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwgdGhhdCBpcyB0byBiZSBjYXVnaHQs
IGl0IHNoYWxsCisgICAgICAgIHJldHVybiAtMSB3aXRoIGVycm5vIHNldCB0byBbRUlOVFJdIGFu
ZCB0aGUgc3RhdGUgb2YgZmlsZGVzIGlzCisgICAgICAgIHVuc3BlY2lmaWVkLgorCisgICAgICAg
IERpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgZG8gZGlmZmVyZW50IHRoaW5ncyB3aGVuIGNsb3Nl
KCkgaXMgaW50ZXJydXB0ZWQKKyAgICAgICAgYnkgYSBzaWduYWw6IEhQLVVYIGxlYXZlcyB0aGUg
ZmlsZSBkZXNjcmlwdG9yIG9wZW4gd2hpbGUgcmV0dXJuaW5nIEVJTlRSLAorICAgICAgICB3aGls
ZSBMaW51eCBhbmQgQUlYLCBmb3IgaW5zdGFuY2UsIGNsb3NlIHRoZSBkZXNjcmlwdG9yIHVuY29u
ZGl0aW9uYWxseS4KKworICAgICAgICBBcyBzb21lb25lIHBvaW50ZWQgb3V0IGluIHRoZSBkaXNj
dXNzaW9uIGluIFsxXSwgdGhlIGFjdHVhbCBwcm9ibGVtIHdpdGgKKyAgICAgICAgdGhpcyBiZWhh
dmlvciBpcyBub3Qga25vd2luZyBob3cgdG8gc2FmZWx5IHByb2NlZWQgd2hlbiBnZXR0aW5nIEVJ
TlRSCisgICAgICAgIGR1cmluZyBhIGNsb3NlKCkgY2FsbC4gSW4gc2luZ2xlLXRocmVhZGVkIGFw
cGxpY2F0aW9ucywgdGhlcmUncyBub3QgbXVjaCBvZgorICAgICAgICBhIHByb2JsZW0sIHNpbmNl
IG9uZSBjb3VsZCBqdXN0IGNhbGwgY2xvc2UoKSBhZ2FpbiBhbmQgZ2V0IEVCQURGIGlmIHRoZQor
ICAgICAgICBkZXNjcmlwdG9yIGhhZCBiZWVuIGNsb3NlZCB0aGUgZmlyc3QgdGltZTsgaG93ZXZl
ciwgaW4gbXVsdGl0aHJlYWRlZAorICAgICAgICBhcHBsaWNhdGlvbnMgaXQgYmVjb21lcyBkYW5n
ZXJvdXMgdG8gY2FsbCBjbG9zZSgpIGFnYWluLCBzaW5jZSBpdCdzCisgICAgICAgIHBvc3NpYmxl
IHMgc3Vic2VxdWVudCBjYWxsIGNvdWxkIGNsb3NlIGEgZGVzY3JpcHRvciBqdXN0IG9idGFpbmVk
IGJ5CisgICAgICAgIGFub3RoZXIgdGhyZWFkLgorCisgICAgICAgIEFzIG5vdGVkIGluIFs1XSwg
dGhlIEF1c3RpbiBHcm91cCByZXNvbHZlZCB0aGUgaXNzdWUgWzZdIGJ5IHJlcXVpcmluZworICAg
ICAgICB0aGUgSFBVWCBiZWhhdmlvciBpZiBjbG9zZSByZXR1cm5zIHdpdGggRUlOVFIsIGJ1dCBh
bGxvd2luZyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgd2hpY2ggd2FudCB0byBkZWFsbG9jYXRl
IHRoZSBmaWxlIGRlc2NyaXB0b3IgZXZlbiBpZiBpbnRlcnJ1cHRlZCBieSBhCisgICAgICAgIHNp
Z25hbCB0byByZXR1cm4gd2l0aCB0aGUgRUlOUFJPR1JFU1MgZXJyb3IgaW5zdGVhZCBvZiBFSU5U
Ui4KKworICAgICAgICBUaGUgYGB3aGlsZSAoY2xvc2UoZmQpID09IC0xICYmIGVycm5vID09IEVJ
TlRSKSB7IH0nJyBpZGlvbSBzZWVtcyB0byBiZQorICAgICAgICB2ZXJ5IHBvcHVsYXIsIGVzcGVj
aWFsbHkgaW4gV0syIGNvZGUsIGFuZCBzaW5jZSBpdCdzIHRoZSB3cm9uZyB0aGluZyB0byBkbwor
ICAgICAgICBhdCBsZWFzdCBvbiBMaW51eCwgdGhpcyBwYXRjaCBpcyBjaGFuZ2luZyB0aGVzZSBz
aXRlcyB0byB1c2UgYSB3cmFwcGVyIG9uCisgICAgICAgIGNsb3NlKCkgdGhhdCBjdXJyZW50bHkg
d29ya3MgYXJvdW5kIHRoZSBMaW51eCBiZWhhdmlvci4KKworICAgICAgICBTb21lIGxpbmtzIGZv
ciByZWZlcmVuY2U6CisgICAgICAgIFsxXSBodHRwczovL25ld3MueWNvbWJpbmF0b3IuY29tL2l0
ZW0/aWQ9MzM2MzgxOQorICAgICAgICBbMl0gaHR0cDovL2xrbWwuaW5kaWFuYS5lZHUvaHlwZXJt
YWlsL2xpbnV4L2tlcm5lbC8wNTA5LjEvMDg3Ny5odG1sCisgICAgICAgIFszXSBodHRwczovL3Np
dGVzLmdvb2dsZS5jb20vc2l0ZS9taWNoYWVsc2FmeWFuL3NvZnR3YXJlLWVuZ2luZWVyaW5nL2No
ZWNrZm9yZWludHJ3aGVuaW52b2tpbmdjbG9zZXRoaW5rYWdhaW4KKyAgICAgICAgWzRdIGh0dHA6
Ly91dGNjLnV0b3JvbnRvLmNhL35ja3Mvc3BhY2UvYmxvZy91bml4L0Nsb3NlRUlOVFIKKyAgICAg
ICAgWzVdIGh0dHA6Ly9ld29udGZpeC5jb20vNC8KKyAgICAgICAgWzZdIGh0dHA6Ly9hdXN0aW5n
cm91cGJ1Z3MubmV0L3ZpZXcucGhwP2lkPTUyOQorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQ
Qy91bml4L0F0dGFjaG1lbnRVbml4LmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkF0dGFjaG1lbnQ6
OmRpc3Bvc2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5p
eC5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUp
OgorICAgICAgICAqIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKToKKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6
On5TaGFyZWRNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhh
bmRsZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25u
ZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVy
UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3Mp
OiBBbGwgdGhlc2UgcGxhY2VzIGhhZAorICAgICAgICBgYHdoaWxlIChjbG9zZShmZCkgPT0gLTEg
JiYgKGVycm5vID09IEVJTlRSKSkgeyB9JycgcmVwbGFjZWQgd2l0aAorICAgICAgICB0aGUgbmV3
IFdURjo6VW5pU3RkRXh0cmFzOjpjbG9zZSgpIGNhbGwgYWRkZWQgaW4gdGhpcyBjb21taXQuCisK
IDIwMTMtMDYtMTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIFJlbW92ZSB0aGUgV2ViQ29yZUxheWVyKEd0azIpLmEgYXJjaGl2ZXMgYmVmb3Jl
IHJlZ2VuZXJhdGluZyB0aGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VbmlTdGRFeHRy
YXMuaCBiL1NvdXJjZS9XVEYvd3RmL1VuaVN0ZEV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMjk1ZWFh
YjZiY2I4YzQwZDdkNzczMmVjYzMzMTRhMGNhZDg2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9VbmlTdGRFeHRyYXMuaApAQCAtMCwwICsxLDU1IEBACisjaWZuZGVmIFVuaVN0
ZEV4dHJhc19oCisjZGVmaW5lIFVuaVN0ZEV4dHJhc19oCisKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK25hbWVzcGFj
ZSBXVEYgeworCitjbGFzcyBVbmlTdGRFeHRyYXMgeworcHVibGljOgorICAgIHN0YXRpYyBpbnQg
Y2xvc2UoaW50IGZpbGVEZXNjcmlwdG9yKQorICAgIHsKKyAgICAgICAgaW50IHJldDsKKyNpZiBP
UyhMSU5VWCkKKyAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgdGhlIExpbnV4IGJlaGF2aW9yIG9m
IGNsb3NpbmcgdGhlIGRlc2NyaXB0b3IKKyAgICAgICAgLy8gdW5jb25kaXRpb25hbGx5LCBldmVu
IGlmIGl0IGlzIGludGVycnVwdGVkLgorICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzI2NiBmb3IgbW9yZQorICAgICAgICAvLyBkZXRhaWxz
LgorICAgICAgICBpZiAoKHJldCA9IGNsb3NlKGZpbGVEZXNjcmlwdG9yKSkgPT0gLTEgJiYgZXJy
bm8gPT0gRUlOVFIpCisgICAgICAgICAgICByZXR1cm4gMDsKKyNlbHNlCisgICAgICAgIHdoaWxl
ICgocmV0ID0gY2xvc2UoZmlsZURlc2NyaXB0b3IpKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikg
eyB9CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIFVuaVN0ZEV4dHJhc19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAppbmRleCBh
OGMwMjY5NGYzMDA5ZmNkOWUxZmFlMTdiZTYxYjU3M2FhZmZmM2EwLi5jN2Y5ZDE1MzIzMGFjZjgz
YjJjZTI4MzZlMjAwY2Y5ZDAxOTViYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKQEAgLTI3LDggKzI3LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBdHRhY2htZW50LmgiCiAKLSNpbmNs
dWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHd0Zi9VbmlTdGRF
eHRyYXMuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC00OSw3ICs0OCw3IEBAIEF0dGFj
aG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZpbGVEZXNjcmlwdG9yKQogdm9pZCBBdHRhY2htZW50Ojpk
aXNwb3NlKCkKIHsKICAgICBpZiAobV9maWxlRGVzY3JpcHRvciAhPSAtMSkKLSAgICAgICAgd2hp
bGUgKGNsb3NlKG1fZmlsZURlc2NyaXB0b3IpID09IC0xICYmIChlcnJubyA9PSBFSU5UUikpIHsg
fQorICAgICAgICBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2UobV9maWxlRGVzY3JpcHRvcik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IGUwMWMyMTEyNmE3
MDgxZDZjNmU0YzJjNTQ0ODQzZDBiNmQ0YTdiOGEuLmFiMzgyZDBiZmMwYzMzZTFhNDA2ZDMxMmJh
YTI2NGI4ZGY5YThjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFzLmg+CiAK
ICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRUG9pbnRlcj4KQEAgLTEzNiw3ICsxMzcsNyBA
QCB2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgLy8gSW4gR1RLKyBw
bGF0Zm9ybSB0aGUgc29ja2V0IGlzIGNsb3NlZCBieSB0aGUgd29yayBxdWV1ZS4KICNpZiAhUExB
VEZPUk0oR1RLKQogICAgIGlmIChtX3NvY2tldERlc2NyaXB0b3IgIT0gLTEpCi0gICAgICAgIHdo
aWxlIChjbG9zZShtX3NvY2tldERlc2NyaXB0b3IpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7
IH0KKyAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKG1fc29ja2V0RGVzY3JpcHRvcik7
CiAjZW5kaWYKIAogICAgIGlmICghbV9pc0Nvbm5lY3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmluZGV4IGFmMTkxNTE3ZWQ3MWY5
YTlmMzQwMDY3NDEyN2ZlNWMyNGE3MDRjZTQuLjYzZDhhNmZkYmI1ODc0OTc4Njk3YThkMzYzODJm
ZWJhNDIwYjYxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hh
cmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFy
ZWRNZW1vcnlVbml4LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmRv
bU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTQsNyArNTUsNyBAQCBT
aGFyZWRNZW1vcnk6OkhhbmRsZTo6SGFuZGxlKCkKIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFu
ZGxlKCkKIHsKICAgICBpZiAoIWlzTnVsbCgpKQotICAgICAgICB3aGlsZSAoY2xvc2UobV9maWxl
RGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICBXVEY6OlVu
aVN0ZEV4dHJhczo6Y2xvc2UobV9maWxlRGVzY3JpcHRvcik7CiB9CiAKIGJvb2wgU2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CkBAIC0xMTYsNyArMTE3LDcgQEAgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKHNpemVfdCBzaXplKQogCiAgICAg
d2hpbGUgKGZ0cnVuY2F0ZShmaWxlRGVzY3JpcHRvciwgc2l6ZSkgPT0gLTEpIHsKICAgICAgICAg
aWYgKGVycm5vICE9IEVJTlRSKSB7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2UoZmlsZURlc2Ny
aXB0b3IpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIFdURjo6VW5p
U3RkRXh0cmFzOjpjbG9zZShmaWxlRGVzY3JpcHRvcik7CiAgICAgICAgICAgICBzaG1fdW5saW5r
KHRlbXBOYW1lLmRhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAt
MTI0LDcgKzEyNSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNy
ZWF0ZShzaXplX3Qgc2l6ZSkKIAogICAgIHZvaWQqIGRhdGEgPSBtbWFwKDAsIHNpemUsIFBST1Rf
UkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZpbGVEZXNjcmlwdG9yLCAwKTsKICAgICBp
ZiAoZGF0YSA9PSBNQVBfRkFJTEVEKSB7Ci0gICAgICAgIHdoaWxlIChjbG9zZShmaWxlRGVzY3Jp
cHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICBXVEY6OlVuaVN0ZEV4
dHJhczo6Y2xvc2UoZmlsZURlc2NyaXB0b3IpOwogICAgICAgICBzaG1fdW5saW5rKHRlbXBOYW1l
LmRhdGEoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE3MCw3ICsxNzEsNyBAQCBQ
YXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoY29uc3QgSGFuZGxl
JiBoYW5kbGUsIFByb3RlY3Rpb24gcAogU2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5KCkKIHsK
ICAgICBtdW5tYXAobV9kYXRhLCBtX3NpemUpOwotICAgIHdoaWxlIChjbG9zZShtX2ZpbGVEZXNj
cmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgV1RGOjpVbmlTdGRFeHRy
YXM6OmNsb3NlKG1fZmlsZURlc2NyaXB0b3IpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBhY2Nl
c3NNb2RlRmlsZShTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKQEAgLTIwMiw3
ICsyMDMsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxl
LCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiAgICAgd2hpbGUgKChmY250bChkdXBsaWNhdGVkSGFu
ZGxlLCBGX1NFVEZELCBGRF9DTE9FWEVDIHwgYWNjZXNzTW9kZUZpbGUocHJvdGVjdGlvbikpID09
IC0xKSkgewogICAgICAgICBpZiAoZXJybm8gIT0gRUlOVFIpIHsKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKGR1cGxpY2F0ZWRIYW5k
bGUpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIFdURjo6VW5pU3Rk
RXh0cmFzOjpjbG9zZShkdXBsaWNhdGVkSGFuZGxlKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuY3BwCmluZGV4IDFhMWFlZDZlY2M0MDZhODdmYWYxMzgzM2U3YTFmZGNmMWQx
ODkwYTQuLmFlMTFhMjczMjA5ZjM2ZmJhOGM4ODc3MDQxZTQwYWMxMTBlZDBkOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcApAQCAtNTAsNiAr
NTAsNyBAQAogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQu
aD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFzLmg+CiAK
ICNpZmRlZiBTT0NLX1NFUVBBQ0tFVAogI2RlZmluZSBTT0NLRVRfVFlQRSBTT0NLX1NFUVBBQ0tF
VApAQCAtMTkyLDggKzE5Myw4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oKQogICAgIHdoaWxlIChmY250bChzb2NrZXRzWzFdLCBGX1NFVEZELCBGRF9D
TE9FWEVDKSAgPT0gLTEpIHsKICAgICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2Nr
ZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9Ci0gICAgICAgICAgICB3aGlsZSAo
Y2xvc2Uoc29ja2V0c1sxXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAg
ICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNvY2tldHNbMF0pOworICAgICAgICAgICAgV1RG
OjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNvY2tldHNbMV0pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjAyLDggKzIwMyw4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6
Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgIHdoaWxlIChmY250bChzb2NrZXRzWzBd
LCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkgewogICAgICAgICBpZiAoZXJybm8gIT0gRUlO
VFIpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgd2hp
bGUgKGNsb3NlKHNvY2tldHNbMF0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KLSAgICAg
ICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzFdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikg
eyB9CisgICAgICAgICAgICBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2Uoc29ja2V0c1swXSk7Cisg
ICAgICAgICAgICBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2Uoc29ja2V0c1sxXSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcAppbmRleCBk
NDJhYjRlN2UxYTYyYmUwYWZhMzhjZWMwYzEwZjE0NDU4NGY2ZjVkLi5iODQ1MTk5NDlkNzcyZjEy
ZmVhOTlhMzMwMmUwZTAzNTQwYmYzNTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAKQEAgLTQ2LDYg
KzQ2LDcgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0
Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgog
CiAjaWZkZWYgU09DS19TRVFQQUNLRVQKICNkZWZpbmUgU09DS0VUX1RZUEUgU09DS19TRVFQQUNL
RVQKQEAgLTEzOSw4ICsxNDAsOCBAQCB2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAoZmNudGwoc29ja2V0c1sxXSwgRl9TRVRG
RCwgRkRfQ0xPRVhFQykgID09IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xv
c2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAg
d2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAg
ICAgICAgICAgIFdURjo6VW5pU3RkRXh0cmFzOjpjbG9zZShzb2NrZXRzWzBdKTsKKyAgICAgICAg
ICAgIFdURjo6VW5pU3RkRXh0cmFzOjpjbG9zZShzb2NrZXRzWzFdKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE0OSw4ICsxNTAsOCBAQCB2b2lkIFNoYXJlZFdv
cmtlclByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAoZmNu
dGwoc29ja2V0c1swXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpIHsKICAgICAgICAgaWYg
KGVycm5vICE9IEVJTlRSKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5U
UikgeyB9Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkgPT0gLTEgJiYgZXJy
bm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNv
Y2tldHNbMF0pOworICAgICAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNvY2tldHNb
MV0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJR
dC5jcHAKaW5kZXggM2FmYzY2ZDQ2MGQ0NmU5ZWU4M2VjZmQxZDUzOWYzMzdiYWRjMWQyNy4uZDFh
NjQ2Yjc3ZmVjMjUyMTEyZTI5NjExNzIyOTBkNTNmMDBhMDEzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQu
Y3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiAjaW5jbHVk
ZSA8c3lzL3NvY2tldC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlT
dGRFeHRyYXMuaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChRX09TX0xJTlVYKQpAQCAtMTYyLDgg
KzE2Myw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICB3aGls
ZSAoZmNudGwoc29ja2V0c1sxXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgID09IC0xKSB7CiAgICAg
ICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8g
PT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0x
ICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIFdURjo6VW5pU3RkRXh0cmFzOjpj
bG9zZShzb2NrZXRzWzBdKTsKKyAgICAgICAgICAgIFdURjo6VW5pU3RkRXh0cmFzOjpjbG9zZShz
b2NrZXRzWzFdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204849</attachid>
            <date>2013-06-17 12:49:52 -0700</date>
            <delta_ts>2013-06-19 07:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117266-20130617154804.patch</filename>
            <type>text/plain</type>
            <size>15105</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAyZWZkOTI5YzYyM2IxOWU5ZmQzNzEz
NjEzYTA3ZjU2Zjc2YzY3NzcuLjRkZDcyNTI0ZDNhNWJkZmVhN2MyODJkZWEwOGRjZjhkZDJiYWUx
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDYtMTcgIFNlcmdpbyBDb3JyZWlhICA8c2Vy
Z2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXSBMb29waW5nIGZvciBF
SU5UUiBvbiBjbG9zZSgpIGlzIGluY29ycmVjdCBmb3IgTGludXgsIGF0IGxlYXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcyNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV1RGOjpVbmlTdGRF
eHRyYXMgY2xhc3Mgd2l0aCBhIGNsb3NlKCkgZnVuY3Rpb24gYXMgYSB3cmFwcGVyIHRvCisgICAg
ICAgIHRoZSB1bmRlcmx5aW5nIFBPU0lYIGNsb3NlKCkgY2FsbCwgc28gdGhhdCBpdCBjYW4gd29y
ayBhcm91bmQgdGhlCisgICAgICAgIEVJTlRSIGJlaGF2b3Igb24gTGludXgsIHdoaWNoIGNsb3Nl
cyB0aGUgZGVzY3JpcHRvciB1bmNvbmRpdGlvbmFsbHkKKyAgICAgICAgZXZlbiB3aGVuIGludGVy
dXB0ZWQgKEVJTlRSKS4KKworICAgICAgICBXZSBhbHNvIHJlcGxhY2Ugc2V2ZXJhbCBgYHdoaWxl
IChjbG9zZShmZCkgPT0gLTEgJiYgZXJybm8gPSBFSU5UUikpIHsgfScnCisgICAgICAgIGNhbGwg
c2l0ZXMgaW4gV0syIHdpdGggdGhlIG5ldyBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2UoZmQpLgor
CisgICAgICAgICogd3RmL1VuaVN0ZEV4dHJhcy5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6VW5p
U3RkRXh0cmFzOjpjbG9zZSk6IFdyYXBwZXIgdG8gUE9TSVggY2xvc2UoKSB0aGF0IG91Z2h0IHRv
IGhhbmRsZQorICAgICAgICBFSU5UUiBjb3JyZWN0bHkuCisKIDIwMTMtMDYtMTcgIEdyemVnb3J6
IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE1MTYzMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1NTdhODIzNmRiMjliMWFi
NDk0NDYxNWY2Yzg0MTAxN2ViYWIyYTc5Li5jNWYyYjI5YTk0ZjQxMDUzMjc1MmNlNGJiNmE5YzBm
N2QwMThhNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTMtMDYtMTcgIFNlcmdp
byBDb3JyZWlhICA8c2VyZ2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0sy
XSBMb29waW5nIGZvciBFSU5UUiBvbiBjbG9zZSgpIGlzIGluY29ycmVjdCBmb3IgTGludXgsIGF0
IGxlYXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTcyNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
T1NJWCBzYXlzIHRoZSBmb2xsb3dpbmcgZm9yIGNsb3NlKCk6CisKKyAgICAgICAgSWYgY2xvc2Uo
KSBpcyBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbCB0aGF0IGlzIHRvIGJlIGNhdWdodCwgaXQgc2hh
bGwKKyAgICAgICAgcmV0dXJuIC0xIHdpdGggZXJybm8gc2V0IHRvIFtFSU5UUl0gYW5kIHRoZSBz
dGF0ZSBvZiBmaWxkZXMgaXMKKyAgICAgICAgdW5zcGVjaWZpZWQuCisKKyAgICAgICAgRGlmZmVy
ZW50IGltcGxlbWVudGF0aW9ucyBkbyBkaWZmZXJlbnQgdGhpbmdzIHdoZW4gY2xvc2UoKSBpcyBp
bnRlcnJ1cHRlZAorICAgICAgICBieSBhIHNpZ25hbDogSFAtVVggbGVhdmVzIHRoZSBmaWxlIGRl
c2NyaXB0b3Igb3BlbiB3aGlsZSByZXR1cm5pbmcgRUlOVFIsCisgICAgICAgIHdoaWxlIExpbnV4
IGFuZCBBSVgsIGZvciBpbnN0YW5jZSwgY2xvc2UgdGhlIGRlc2NyaXB0b3IgdW5jb25kaXRpb25h
bGx5LgorCisgICAgICAgIEFzIHNvbWVvbmUgcG9pbnRlZCBvdXQgaW4gdGhlIGRpc2N1c3Npb24g
aW4gWzFdLCB0aGUgYWN0dWFsIHByb2JsZW0gd2l0aAorICAgICAgICB0aGlzIGJlaGF2aW9yIGlz
IG5vdCBrbm93aW5nIGhvdyB0byBzYWZlbHkgcHJvY2VlZCB3aGVuIGdldHRpbmcgRUlOVFIKKyAg
ICAgICAgZHVyaW5nIGEgY2xvc2UoKSBjYWxsLiBJbiBzaW5nbGUtdGhyZWFkZWQgYXBwbGljYXRp
b25zLCB0aGVyZSdzIG5vdCBtdWNoIG9mCisgICAgICAgIGEgcHJvYmxlbSwgc2luY2Ugb25lIGNv
dWxkIGp1c3QgY2FsbCBjbG9zZSgpIGFnYWluIGFuZCBnZXQgRUJBREYgaWYgdGhlCisgICAgICAg
IGRlc2NyaXB0b3IgaGFkIGJlZW4gY2xvc2VkIHRoZSBmaXJzdCB0aW1lOyBob3dldmVyLCBpbiBt
dWx0aXRocmVhZGVkCisgICAgICAgIGFwcGxpY2F0aW9ucyBpdCBiZWNvbWVzIGRhbmdlcm91cyB0
byBjYWxsIGNsb3NlKCkgYWdhaW4sIHNpbmNlIGl0J3MKKyAgICAgICAgcG9zc2libGUgcyBzdWJz
ZXF1ZW50IGNhbGwgY291bGQgY2xvc2UgYSBkZXNjcmlwdG9yIGp1c3Qgb2J0YWluZWQgYnkKKyAg
ICAgICAgYW5vdGhlciB0aHJlYWQuCisKKyAgICAgICAgQXMgbm90ZWQgaW4gWzVdLCB0aGUgQXVz
dGluIEdyb3VwIHJlc29sdmVkIHRoZSBpc3N1ZSBbNl0gYnkgcmVxdWlyaW5nCisgICAgICAgIHRo
ZSBIUFVYIGJlaGF2aW9yIGlmIGNsb3NlIHJldHVybnMgd2l0aCBFSU5UUiwgYnV0IGFsbG93aW5n
IGltcGxlbWVudGF0aW9ucworICAgICAgICB3aGljaCB3YW50IHRvIGRlYWxsb2NhdGUgdGhlIGZp
bGUgZGVzY3JpcHRvciBldmVuIGlmIGludGVycnVwdGVkIGJ5IGEKKyAgICAgICAgc2lnbmFsIHRv
IHJldHVybiB3aXRoIHRoZSBFSU5QUk9HUkVTUyBlcnJvciBpbnN0ZWFkIG9mIEVJTlRSLgorCisg
ICAgICAgIFRoZSBgYHdoaWxlIChjbG9zZShmZCkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsg
fScnIGlkaW9tIHNlZW1zIHRvIGJlCisgICAgICAgIHZlcnkgcG9wdWxhciwgZXNwZWNpYWxseSBp
biBXSzIgY29kZSwgYW5kIHNpbmNlIGl0J3MgdGhlIHdyb25nIHRoaW5nIHRvIGRvCisgICAgICAg
IGF0IGxlYXN0IG9uIExpbnV4LCB0aGlzIHBhdGNoIGlzIGNoYW5naW5nIHRoZXNlIHNpdGVzIHRv
IHVzZSBhIHdyYXBwZXIgb24KKyAgICAgICAgY2xvc2UoKSB0aGF0IGN1cnJlbnRseSB3b3JrcyBh
cm91bmQgdGhlIExpbnV4IGJlaGF2aW9yLgorCisgICAgICAgIFNvbWUgbGlua3MgZm9yIHJlZmVy
ZW5jZToKKyAgICAgICAgWzFdIGh0dHBzOi8vbmV3cy55Y29tYmluYXRvci5jb20vaXRlbT9pZD0z
MzYzODE5CisgICAgICAgIFsyXSBodHRwOi8vbGttbC5pbmRpYW5hLmVkdS9oeXBlcm1haWwvbGlu
dXgva2VybmVsLzA1MDkuMS8wODc3Lmh0bWwKKyAgICAgICAgWzNdIGh0dHBzOi8vc2l0ZXMuZ29v
Z2xlLmNvbS9zaXRlL21pY2hhZWxzYWZ5YW4vc29mdHdhcmUtZW5naW5lZXJpbmcvY2hlY2tmb3Jl
aW50cndoZW5pbnZva2luZ2Nsb3NldGhpbmthZ2FpbgorICAgICAgICBbNF0gaHR0cDovL3V0Y2Mu
dXRvcm9udG8uY2EvfmNrcy9zcGFjZS9ibG9nL3VuaXgvQ2xvc2VFSU5UUgorICAgICAgICBbNV0g
aHR0cDovL2V3b250Zml4LmNvbS80LworICAgICAgICBbNl0gaHR0cDovL2F1c3Rpbmdyb3VwYnVn
cy5uZXQvdmlldy5waHA/aWQ9NTI5CisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL3VuaXgv
QXR0YWNobWVudFVuaXguY3BwOgorICAgICAgICAoQ29yZUlQQzo6QXR0YWNobWVudDo6ZGlzcG9z
ZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoK
KyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSk6CisgICAg
ICAgICogUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6flNoYXJl
ZE1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6IEFsbCB0
aGVzZSBwbGFjZXMgaGFkCisgICAgICAgIGBgd2hpbGUgKGNsb3NlKGZkKSA9PSAtMSAmJiAoZXJy
bm8gPT0gRUlOVFIpKSB7IH0nJyByZXBsYWNlZCB3aXRoCisgICAgICAgIHRoZSBuZXcgV1RGOjpV
bmlTdGRFeHRyYXM6OmNsb3NlKCkgY2FsbCBhZGRlZCBpbiB0aGlzIGNvbW1pdC4KKwogMjAxMy0w
Ni0xNyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMzE0NTAxND4gQWxsb3cgQ29yZUlQQyBtZXNzYWdlcyB0byB0cmFuc21pdCBpbXBvcnRh
bmNlIGJvb3N0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVW5pU3RkRXh0cmFzLmggYi9T
b3VyY2UvV1RGL3d0Zi9VbmlTdGRFeHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mzc1YWVmYTg3NGY1OTJh
Y2YwYTIzMjU5YTI2MjBiMmI3MjRkM2E2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvVW5pU3RkRXh0cmFzLmgKQEAgLTAsMCArMSw1NSBAQAorI2lmbmRlZiBVbmlTdGRFeHRyYXNf
aAorI2RlZmluZSBVbmlTdGRFeHRyYXNfaAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworY2xhc3MgVW5pU3RkRXh0cmFzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW50IGNsb3NlKGlu
dCBmaWxlRGVzY3JpcHRvcikKKyAgICB7CisgICAgICAgIGludCByZXQ7CisjaWYgT1MoTElOVVgp
CisgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIHRoZSBMaW51eCBiZWhhdmlvciBvZiBjbG9zaW5n
IHRoZSBkZXNjcmlwdG9yCisgICAgICAgIC8vIHVuY29uZGl0aW9uYWxseSwgZXZlbiBpZiB0aGUg
Y2xvc2UoKSBjYWxsIGlzIGludGVycnVwdGVkLgorICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzI2NiBmb3IgbW9yZQorICAgICAgICAvLyBk
ZXRhaWxzLgorICAgICAgICBpZiAoKHJldCA9IGNsb3NlKGZpbGVEZXNjcmlwdG9yKSkgPT0gLTEg
JiYgZXJybm8gPT0gRUlOVFIpCisgICAgICAgICAgICByZXR1cm4gMDsKKyNlbHNlCisgICAgICAg
IHdoaWxlICgocmV0ID0gY2xvc2UoZmlsZURlc2NyaXB0b3IpKSA9PSAtMSAmJiBlcnJubyA9PSBF
SU5UUikgeyB9CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVuaVN0ZEV4dHJhc19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcApp
bmRleCBhOGMwMjY5NGYzMDA5ZmNkOWUxZmFlMTdiZTYxYjU3M2FhZmZmM2EwLi5jN2Y5ZDE1MzIz
MGFjZjgzYjJjZTI4MzZlMjAwY2Y5ZDAxOTViYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKQEAgLTI3LDgg
KzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBdHRhY2htZW50LmgiCiAK
LSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHd0Zi9V
bmlTdGRFeHRyYXMuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC00OSw3ICs0OCw3IEBA
IEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZpbGVEZXNjcmlwdG9yKQogdm9pZCBBdHRhY2ht
ZW50OjpkaXNwb3NlKCkKIHsKICAgICBpZiAobV9maWxlRGVzY3JpcHRvciAhPSAtMSkKLSAgICAg
ICAgd2hpbGUgKGNsb3NlKG1fZmlsZURlc2NyaXB0b3IpID09IC0xICYmIChlcnJubyA9PSBFSU5U
UikpIHsgfQorICAgICAgICBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2UobV9maWxlRGVzY3JpcHRv
cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IGUwMWMy
MTEyNmE3MDgxZDZjNmU0YzJjNTQ0ODQzZDBiNmQ0YTdiOGEuLmFiMzgyZDBiZmMwYzMzZTFhNDA2
ZDMxMmJhYTI2NGI4ZGY5YThjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFz
Lmg+CiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRUG9pbnRlcj4KQEAgLTEzNiw3ICsx
MzcsNyBAQCB2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgLy8gSW4g
R1RLKyBwbGF0Zm9ybSB0aGUgc29ja2V0IGlzIGNsb3NlZCBieSB0aGUgd29yayBxdWV1ZS4KICNp
ZiAhUExBVEZPUk0oR1RLKQogICAgIGlmIChtX3NvY2tldERlc2NyaXB0b3IgIT0gLTEpCi0gICAg
ICAgIHdoaWxlIChjbG9zZShtX3NvY2tldERlc2NyaXB0b3IpID09IC0xICYmIGVycm5vID09IEVJ
TlRSKSB7IH0KKyAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKG1fc29ja2V0RGVzY3Jp
cHRvcik7CiAjZW5kaWYKIAogICAgIGlmICghbV9pc0Nvbm5lY3RlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmluZGV4IGFmMTkxNTE3
ZWQ3MWY5YTlmMzQwMDY3NDEyN2ZlNWMyNGE3MDRjZTQuLjYzZDhhNmZkYmI1ODc0OTc4Njk3YThk
MzYzODJmZWJhNDIwYjYxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3Vu
aXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5p
eC9TaGFyZWRNZW1vcnlVbml4LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L1JhbmRvbU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTQsNyArNTUs
NyBAQCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6SGFuZGxlKCkKIFNoYXJlZE1lbW9yeTo6SGFuZGxl
Ojp+SGFuZGxlKCkKIHsKICAgICBpZiAoIWlzTnVsbCgpKQotICAgICAgICB3aGlsZSAoY2xvc2Uo
bV9maWxlRGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICBX
VEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2UobV9maWxlRGVzY3JpcHRvcik7CiB9CiAKIGJvb2wgU2hh
cmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CkBAIC0xMTYsNyArMTE3LDcgQEAgUGFz
c1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKHNpemVfdCBzaXplKQog
CiAgICAgd2hpbGUgKGZ0cnVuY2F0ZShmaWxlRGVzY3JpcHRvciwgc2l6ZSkgPT0gLTEpIHsKICAg
ICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2UoZmls
ZURlc2NyaXB0b3IpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIFdU
Rjo6VW5pU3RkRXh0cmFzOjpjbG9zZShmaWxlRGVzY3JpcHRvcik7CiAgICAgICAgICAgICBzaG1f
dW5saW5rKHRlbXBOYW1lLmRhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQpAQCAtMTI0LDcgKzEyNSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1v
cnk6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKIAogICAgIHZvaWQqIGRhdGEgPSBtbWFwKDAsIHNpemUs
IFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZpbGVEZXNjcmlwdG9yLCAwKTsK
ICAgICBpZiAoZGF0YSA9PSBNQVBfRkFJTEVEKSB7Ci0gICAgICAgIHdoaWxlIChjbG9zZShmaWxl
RGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICBXVEY6OlVu
aVN0ZEV4dHJhczo6Y2xvc2UoZmlsZURlc2NyaXB0b3IpOwogICAgICAgICBzaG1fdW5saW5rKHRl
bXBOYW1lLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE3MCw3ICsxNzEs
NyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoY29uc3Qg
SGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcAogU2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5
KCkKIHsKICAgICBtdW5tYXAobV9kYXRhLCBtX3NpemUpOwotICAgIHdoaWxlIChjbG9zZShtX2Zp
bGVEZXNjcmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgV1RGOjpVbmlT
dGRFeHRyYXM6OmNsb3NlKG1fZmlsZURlc2NyaXB0b3IpOwogfQogCiBzdGF0aWMgaW5saW5lIGlu
dCBhY2Nlc3NNb2RlRmlsZShTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKQEAg
LTIwMiw3ICsyMDMsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYg
aGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiAgICAgd2hpbGUgKChmY250bChkdXBsaWNh
dGVkSGFuZGxlLCBGX1NFVEZELCBGRF9DTE9FWEVDIHwgYWNjZXNzTW9kZUZpbGUocHJvdGVjdGlv
bikpID09IC0xKSkgewogICAgICAgICBpZiAoZXJybm8gIT0gRUlOVFIpIHsKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKGR1cGxpY2F0
ZWRIYW5kbGUpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIFdURjo6
VW5pU3RkRXh0cmFzOjpjbG9zZShkdXBsaWNhdGVkSGFuZGxlKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuY3BwCmluZGV4IDFhMWFlZDZlY2M0MDZhODdmYWYxMzgzM2U3YTFm
ZGNmMWQxODkwYTQuLmFlMTFhMjczMjA5ZjM2ZmJhOGM4ODc3MDQxZTQwYWMxMTBlZDBkOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcApAQCAt
NTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgPHN5cy9z
b2NrZXQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFz
Lmg+CiAKICNpZmRlZiBTT0NLX1NFUVBBQ0tFVAogI2RlZmluZSBTT0NLRVRfVFlQRSBTT0NLX1NF
UVBBQ0tFVApAQCAtMTkyLDggKzE5Myw4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgIHdoaWxlIChmY250bChzb2NrZXRzWzFdLCBGX1NFVEZE
LCBGRF9DTE9FWEVDKSAgPT0gLTEpIHsKICAgICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHdoaWxlIChjbG9z
ZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9Ci0gICAgICAgICAgICB3
aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAg
ICAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNvY2tldHNbMF0pOworICAgICAgICAg
ICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNvY2tldHNbMV0pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjAyLDggKzIwMyw4IEBAIHZvaWQgUGx1Z2luUHJv
Y2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgIHdoaWxlIChmY250bChzb2Nr
ZXRzWzBdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkgewogICAgICAgICBpZiAoZXJybm8g
IT0gRUlOVFIpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMF0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0K
LSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzFdKSA9PSAtMSAmJiBlcnJubyA9PSBF
SU5UUikgeyB9CisgICAgICAgICAgICBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2Uoc29ja2V0c1sw
XSk7CisgICAgICAgICAgICBXVEY6OlVuaVN0ZEV4dHJhczo6Y2xvc2Uoc29ja2V0c1sxXSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcApp
bmRleCBkNDJhYjRlN2UxYTYyYmUwYWZhMzhjZWMwYzEwZjE0NDU4NGY2ZjVkLi5iODQ1MTk5NDlk
NzcyZjEyZmVhOTlhMzMwMmUwZTAzNTQwYmYzNTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAKQEAg
LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxzeXMv
c29ja2V0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJh
cy5oPgogCiAjaWZkZWYgU09DS19TRVFQQUNLRVQKICNkZWZpbmUgU09DS0VUX1RZUEUgU09DS19T
RVFQQUNLRVQKQEAgLTEzOSw4ICsxNDAsOCBAQCB2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmNy
ZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAoZmNudGwoc29ja2V0c1sxXSwg
Rl9TRVRGRCwgRkRfQ0xPRVhFQykgID09IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5U
UikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGls
ZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAg
ICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7
IH0KKyAgICAgICAgICAgIFdURjo6VW5pU3RkRXh0cmFzOjpjbG9zZShzb2NrZXRzWzBdKTsKKyAg
ICAgICAgICAgIFdURjo6VW5pU3RkRXh0cmFzOjpjbG9zZShzb2NrZXRzWzFdKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE0OSw4ICsxNTAsOCBAQCB2b2lkIFNo
YXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGls
ZSAoZmNudGwoc29ja2V0c1swXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpIHsKICAgICAg
ICAgaWYgKGVycm5vICE9IEVJTlRSKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9
PSBFSU5UUikgeyB9Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkgPT0gLTEg
JiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNs
b3NlKHNvY2tldHNbMF0pOworICAgICAgICAgICAgV1RGOjpVbmlTdGRFeHRyYXM6OmNsb3NlKHNv
Y2tldHNbMV0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hl
clF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1
bmNoZXJRdC5jcHAKaW5kZXggM2FmYzY2ZDQ2MGQ0NmU5ZWU4M2VjZmQxZDUzOWYzMzdiYWRjMWQy
Ny4uZDFhNjQ2Yjc3ZmVjMjUyMTEyZTI5NjExNzIyOTBkNTNmMDBhMDEzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5j
aGVyUXQuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiAj
aW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0
Zi9VbmlTdGRFeHRyYXMuaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChRX09TX0xJTlVYKQpAQCAt
MTYyLDggKzE2Myw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAg
ICB3aGlsZSAoZmNudGwoc29ja2V0c1sxXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgID09IC0xKSB7
CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0gLTEgJiYg
ZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMV0p
ID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIFdURjo6VW5pU3RkRXh0
cmFzOjpjbG9zZShzb2NrZXRzWzBdKTsKKyAgICAgICAgICAgIFdURjo6VW5pU3RkRXh0cmFzOjpj
bG9zZShzb2NrZXRzWzFdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205002</attachid>
            <date>2013-06-19 07:05:08 -0700</date>
            <delta_ts>2013-06-20 18:15:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117266-20130619100317.patch</filename>
            <type>text/plain</type>
            <size>14751</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlMzgxN2UwYTI5YTVmOTM1NDIxZjcw
YTQ3N2ZmYTUzYjhhNWQwZDcuLmU1MjQ0MDBmMmRiMDJkODg3MzU0ZGQxMDNjMGY5OGU1MjZlMzhi
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDYtMTkgIFNlcmdpbyBDb3JyZWlhICA8c2Vy
Z2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXSBMb29waW5nIGZvciBF
SU5UUiBvbiBjbG9zZSgpIGlzIGluY29ycmVjdCBmb3IgTGludXgsIGF0IGxlYXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcyNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBmaWxlIFVuaVN0
ZEV4dHJhcyB3aXRoIGEgY2xvc2VXaXRoUmV0cnkoKSBmdW5jdGlvbiB0aGF0IHdvcmtzIGFyb3Vu
ZAorICAgICAgICB0aGUgRUlOVFIgYmVoYXZpb3Igb24gTGludXggZHVyaW5nIGEgY2xvc2UoKSBj
YWxsOiBpdCBjbG9zZXMgdGhlIGRlc2NyaXB0b3IKKyAgICAgICAgdW5jb25kaXRpb25hbGx5IGV2
ZW4gd2hlbiB0aGUgY2FsbCBpcyBpbnRlcnJ1cHRlZC4KKworICAgICAgICAqIHd0Zi9VbmlTdGRF
eHRyYXMuaDogQWRkZWQuCisgICAgICAgIChXVEY6OmNsb3NlV2l0aFJldHJ5KTogV3JhcHBlciBh
cm91bmQgUE9TSVggY2xvc2UoKSB0aGF0IGhhbmRsZXMgRUlOVFIKKyAgICAgICAgY29ycmVjdGx5
LgorCiAyMDEzLTA2LTE4ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVwbGFjZSB0b29sczMyIGZvbGRlciB3aXRoIHRvb2xzIGFuZCB1cGRhdGUgV2ViS2l0
IFdpbmRvd3Mgc29sdXRpb24gYWNjb3JkaW5nbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2Y5ZWVkNWQ4NTY2
ZjZkNDI3ZWEzYThjZDY2MThkMzc4ZjQ1MmRkNS4uMDg1MDljOGYwZjUyZjljZjcwZDE4OWZlNzBk
NzJmMzliZWEzNDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEzLTA2LTE5ICBT
ZXJnaW8gQ29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
W1dLMl0gTG9vcGluZyBmb3IgRUlOVFIgb24gY2xvc2UoKSBpcyBpbmNvcnJlY3QgZm9yIExpbnV4
LCBhdCBsZWFzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE3MjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUE9TSVggc2F5cyB0aGUgZm9sbG93aW5nIGZvciBjbG9zZSgpOgorCisgICAgICAgIElmIGNs
b3NlKCkgaXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwgdGhhdCBpcyB0byBiZSBjYXVnaHQsIGl0
IHNoYWxsCisgICAgICAgIHJldHVybiAtMSB3aXRoIGVycm5vIHNldCB0byBbRUlOVFJdIGFuZCB0
aGUgc3RhdGUgb2YgZmlsZGVzIGlzCisgICAgICAgIHVuc3BlY2lmaWVkLgorCisgICAgICAgIERp
ZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgZG8gZGlmZmVyZW50IHRoaW5ncyB3aGVuIGNsb3NlKCkg
aXMgaW50ZXJydXB0ZWQKKyAgICAgICAgYnkgYSBzaWduYWw6IEhQLVVYIGxlYXZlcyB0aGUgZmls
ZSBkZXNjcmlwdG9yIG9wZW4gd2hpbGUgcmV0dXJuaW5nIEVJTlRSLAorICAgICAgICB3aGlsZSBM
aW51eCBhbmQgQUlYLCBmb3IgaW5zdGFuY2UsIGNsb3NlIHRoZSBkZXNjcmlwdG9yIHVuY29uZGl0
aW9uYWxseS4KKworICAgICAgICBBcyBzb21lb25lIHBvaW50ZWQgb3V0IGluIHRoZSBkaXNjdXNz
aW9uIGluIFsxXSwgdGhlIGFjdHVhbCBwcm9ibGVtIHdpdGgKKyAgICAgICAgdGhpcyBiZWhhdmlv
ciBpcyBub3Qga25vd2luZyBob3cgdG8gc2FmZWx5IHByb2NlZWQgd2hlbiBnZXR0aW5nIEVJTlRS
CisgICAgICAgIGR1cmluZyBhIGNsb3NlKCkgY2FsbC4gSW4gc2luZ2xlLXRocmVhZGVkIGFwcGxp
Y2F0aW9ucywgdGhlcmUncyBub3QgbXVjaCBvZgorICAgICAgICBhIHByb2JsZW0sIHNpbmNlIG9u
ZSBjb3VsZCBqdXN0IGNhbGwgY2xvc2UoKSBhZ2FpbiBhbmQgZ2V0IEVCQURGIGlmIHRoZQorICAg
ICAgICBkZXNjcmlwdG9yIGhhZCBiZWVuIGNsb3NlZCB0aGUgZmlyc3QgdGltZTsgaG93ZXZlciwg
aW4gbXVsdGl0aHJlYWRlZAorICAgICAgICBhcHBsaWNhdGlvbnMgaXQgYmVjb21lcyBkYW5nZXJv
dXMgdG8gY2FsbCBjbG9zZSgpIGFnYWluLCBzaW5jZSBpdCdzCisgICAgICAgIHBvc3NpYmxlIHMg
c3Vic2VxdWVudCBjYWxsIGNvdWxkIGNsb3NlIGEgZGVzY3JpcHRvciBqdXN0IG9idGFpbmVkIGJ5
CisgICAgICAgIGFub3RoZXIgdGhyZWFkLgorCisgICAgICAgIEFzIG5vdGVkIGluIFs1XSwgdGhl
IEF1c3RpbiBHcm91cCByZXNvbHZlZCB0aGUgaXNzdWUgWzZdIGJ5IHJlcXVpcmluZworICAgICAg
ICB0aGUgSFBVWCBiZWhhdmlvciBpZiBjbG9zZSByZXR1cm5zIHdpdGggRUlOVFIsIGJ1dCBhbGxv
d2luZyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgd2hpY2ggd2FudCB0byBkZWFsbG9jYXRlIHRo
ZSBmaWxlIGRlc2NyaXB0b3IgZXZlbiBpZiBpbnRlcnJ1cHRlZCBieSBhCisgICAgICAgIHNpZ25h
bCB0byByZXR1cm4gd2l0aCB0aGUgRUlOUFJPR1JFU1MgZXJyb3IgaW5zdGVhZCBvZiBFSU5UUi4K
KworICAgICAgICBUaGUgYGB3aGlsZSAoY2xvc2UoZmQpID09IC0xICYmIGVycm5vID09IEVJTlRS
KSB7IH0nJyBpZGlvbSBzZWVtcyB0byBiZQorICAgICAgICB2ZXJ5IHBvcHVsYXIsIGVzcGVjaWFs
bHkgaW4gV0syIGNvZGUsIGFuZCBzaW5jZSBpdCdzIHRoZSB3cm9uZyB0aGluZyB0byBkbworICAg
ICAgICBhdCBsZWFzdCBvbiBMaW51eCwgdGhpcyBwYXRjaCBpcyBjaGFuZ2luZyB0aGVzZSBzaXRl
cyB0byB1c2UgYSBuZXcgZnVuY3Rpb24KKyAgICAgICAgY2xvc2VXaXRoUmV0cnkoKSBhZGRlZCBp
biB0aGlzIGNvbW1pdCwgd2hpY2ggY3VycmVudGx5IHdvcmtzIGFyb3VuZCB0aGUKKyAgICAgICAg
ZGVzY3JpYmVkIExpbnV4IGJlaGF2aW9yLgorCisgICAgICAgIFNvbWUgbGlua3MgZm9yIHJlZmVy
ZW5jZToKKyAgICAgICAgWzFdIGh0dHBzOi8vbmV3cy55Y29tYmluYXRvci5jb20vaXRlbT9pZD0z
MzYzODE5CisgICAgICAgIFsyXSBodHRwOi8vbGttbC5pbmRpYW5hLmVkdS9oeXBlcm1haWwvbGlu
dXgva2VybmVsLzA1MDkuMS8wODc3Lmh0bWwKKyAgICAgICAgWzNdIGh0dHBzOi8vc2l0ZXMuZ29v
Z2xlLmNvbS9zaXRlL21pY2hhZWxzYWZ5YW4vc29mdHdhcmUtZW5naW5lZXJpbmcvY2hlY2tmb3Jl
aW50cndoZW5pbnZva2luZ2Nsb3NldGhpbmthZ2FpbgorICAgICAgICBbNF0gaHR0cDovL3V0Y2Mu
dXRvcm9udG8uY2EvfmNrcy9zcGFjZS9ibG9nL3VuaXgvQ2xvc2VFSU5UUgorICAgICAgICBbNV0g
aHR0cDovL2V3b250Zml4LmNvbS80LworICAgICAgICBbNl0gaHR0cDovL2F1c3Rpbmdyb3VwYnVn
cy5uZXQvdmlldy5waHA/aWQ9NTI5CisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL3VuaXgv
QXR0YWNobWVudFVuaXguY3BwOgorICAgICAgICAoQ29yZUlQQzo6QXR0YWNobWVudDo6ZGlzcG9z
ZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoK
KyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSk6CisgICAg
ICAgICogUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6flNoYXJl
ZE1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6IEFsbCB0
aGVzZSBwbGFjZXMgaGFkCisgICAgICAgIGBgY2xvc2UtZm9sbG93ZWQtYnktRUlOVFItaGFuZGxp
bmcnJyByZXBsYWNlZCB3aXRoIHRoZSBuZXcgY2xvc2VXaXRoUmV0cnkoKQorICAgICAgICBmdW5j
dGlvbiBhZGRlZCBpbiB0aGlzIGNvbW1pdC4KKwogMjAxMy0wNi0xOSAgS3J6eXN6dG9mIFdvbGFu
c2tpICA8ay53b2xhbnNraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEltcGxl
bWVudCB1bml0IHRlc3QgY2FsbGJhY2s6IG9uU2V0dGluZ0NoYW5nZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1VuaVN0ZEV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvVW5pU3RkRXh0cmFz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjhkN2Q2NGZhOGQ3NTJlYzEzYzY2YzczMzdiY2YzY2FiN2E4MTI4MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VuaVN0ZEV4dHJhcy5oCkBAIC0wLDAg
KzEsNTQgQEAKKyNpZm5kZWYgVW5pU3RkRXh0cmFzX2gKKyNkZWZpbmUgVW5pU3RkRXh0cmFzX2gK
KworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRl
IDx1bmlzdGQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2lubGluZSBpbnQgY2xvc2VXaXRoUmV0
cnkoaW50IGZpbGVEZXNjcmlwdG9yKQoreworICAgIGludCByZXQ7CisjaWYgT1MoTElOVVgpCisg
ICAgLy8gV29ya2Fyb3VuZCBmb3IgdGhlIExpbnV4IGJlaGF2aW9yIG9mIGNsb3NpbmcgdGhlIGRl
c2NyaXB0b3IKKyAgICAvLyB1bmNvbmRpdGlvbmFsbHksIGV2ZW4gaWYgdGhlIGNsb3NlKCkgY2Fs
bCBpcyBpbnRlcnJ1cHRlZC4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNzI2NiBmb3IgbW9yZQorICAgIC8vIGRldGFpbHMuCisgICAgaWYgKChy
ZXQgPSBjbG9zZShmaWxlRGVzY3JpcHRvcikpID09IC0xICYmIGVycm5vID09IEVJTlRSKQorICAg
ICAgICByZXR1cm4gMDsKKyNlbHNlCisgICAgd2hpbGUgKChyZXQgPSBjbG9zZShmaWxlRGVzY3Jp
cHRvcikpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyNlbmRpZgorICAgIHJldHVybiBy
ZXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OmNsb3NlV2l0aFJldHJ5
OworCisjZW5kaWYgLy8gVW5pU3RkRXh0cmFzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCmluZGV4IGE4YzAyNjk0
ZjMwMDlmY2Q5ZTFmYWUxN2JlNjFiNTczYWFmZmYzYTAuLjZiNzcwYjc3YWYwMTIzMDg2NmIyODhj
NWQ0YjE5OWYwMDJhMTRmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcApAQCAtMjcsOCArMjcsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKIAotI2luY2x1ZGUgPHVu
aXN0ZC5oPgotI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5o
PgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKQEAgLTQ5LDcgKzQ4LDcgQEAgQXR0YWNobWVudDo6
QXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IpCiB2b2lkIEF0dGFjaG1lbnQ6OmRpc3Bvc2Uo
KQogewogICAgIGlmIChtX2ZpbGVEZXNjcmlwdG9yICE9IC0xKQotICAgICAgICB3aGlsZSAoY2xv
c2UobV9maWxlRGVzY3JpcHRvcikgPT0gLTEgJiYgKGVycm5vID09IEVJTlRSKSkgeyB9CisgICAg
ICAgIGNsb3NlV2l0aFJldHJ5KG1fZmlsZURlc2NyaXB0b3IpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBDb3JlSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3Vu
aXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91
bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAppbmRleCBlMDFjMjExMjZhNzA4MWQ2YzZlNGMyYzU0NDg0
M2QwYjZkNGE3YjhhLi4wNzY1YmM5ZDcwNTE5MmZhYjFlMDA4Y2RmMDg3ZmZiY2UxYjE1NGQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlv
blVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25u
ZWN0aW9uVW5peC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogCiAjaWYgUExBVEZPUk0oUVQp
CiAjaW5jbHVkZSA8UVBvaW50ZXI+CkBAIC0xMzYsNyArMTM3LDcgQEAgdm9pZCBDb25uZWN0aW9u
OjpwbGF0Zm9ybUludmFsaWRhdGUoKQogICAgIC8vIEluIEdUSysgcGxhdGZvcm0gdGhlIHNvY2tl
dCBpcyBjbG9zZWQgYnkgdGhlIHdvcmsgcXVldWUuCiAjaWYgIVBMQVRGT1JNKEdUSykKICAgICBp
ZiAobV9zb2NrZXREZXNjcmlwdG9yICE9IC0xKQotICAgICAgICB3aGlsZSAoY2xvc2UobV9zb2Nr
ZXREZXNjcmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgICAgIGNsb3Nl
V2l0aFJldHJ5KG1fc29ja2V0RGVzY3JpcHRvcik7CiAjZW5kaWYKIAogICAgIGlmICghbV9pc0Nv
bm5lY3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVk
TWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwCmluZGV4IGFmMTkxNTE3ZWQ3MWY5YTlmMzQwMDY3NDEyN2ZlNWMyNGE3MDRjZTQu
Ljc2MGE4YWIxYzg4NjhjZDljNzIxYjBmYjRmYWZlZjQxZDhjZGNhNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9V
bmlTdGRFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtNTQsNyArNTUsNyBAQCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6SGFuZGxl
KCkKIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKCkKIHsKICAgICBpZiAoIWlzTnVsbCgp
KQotICAgICAgICB3aGlsZSAoY2xvc2UobV9maWxlRGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8g
PT0gRUlOVFIpIHsgfQorICAgICAgICBjbG9zZVdpdGhSZXRyeShtX2ZpbGVEZXNjcmlwdG9yKTsK
IH0KIAogYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6aXNOdWxsKCkgY29uc3QKQEAgLTExNiw3
ICsxMTcsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUo
c2l6ZV90IHNpemUpCiAKICAgICB3aGlsZSAoZnRydW5jYXRlKGZpbGVEZXNjcmlwdG9yLCBzaXpl
KSA9PSAtMSkgewogICAgICAgICBpZiAoZXJybm8gIT0gRUlOVFIpIHsKLSAgICAgICAgICAgIHdo
aWxlIChjbG9zZShmaWxlRGVzY3JpcHRvcikgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQor
ICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnkoZmlsZURlc2NyaXB0b3IpOwogICAgICAgICAgICAg
c2htX3VubGluayh0ZW1wTmFtZS5kYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAg
ICAgIH0KQEAgLTEyNCw3ICsxMjUsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCiAKICAgICB2b2lkKiBkYXRhID0gbW1hcCgwLCBz
aXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmaWxlRGVzY3JpcHRvciwg
MCk7CiAgICAgaWYgKGRhdGEgPT0gTUFQX0ZBSUxFRCkgewotICAgICAgICB3aGlsZSAoY2xvc2Uo
ZmlsZURlc2NyaXB0b3IpID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgY2xv
c2VXaXRoUmV0cnkoZmlsZURlc2NyaXB0b3IpOwogICAgICAgICBzaG1fdW5saW5rKHRlbXBOYW1l
LmRhdGEoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE3MCw3ICsxNzEsNyBAQCBQ
YXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoY29uc3QgSGFuZGxl
JiBoYW5kbGUsIFByb3RlY3Rpb24gcAogU2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5KCkKIHsK
ICAgICBtdW5tYXAobV9kYXRhLCBtX3NpemUpOwotICAgIHdoaWxlIChjbG9zZShtX2ZpbGVEZXNj
cmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgY2xvc2VXaXRoUmV0cnko
bV9maWxlRGVzY3JpcHRvcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGFjY2Vzc01vZGVGaWxl
KFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBwcm90ZWN0aW9uKQpAQCAtMjAyLDcgKzIwMyw3IEBA
IGJvb2wgU2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUoSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rp
b24gcHJvdGVjdGlvbikKICAgICB3aGlsZSAoKGZjbnRsKGR1cGxpY2F0ZWRIYW5kbGUsIEZfU0VU
RkQsIEZEX0NMT0VYRUMgfCBhY2Nlc3NNb2RlRmlsZShwcm90ZWN0aW9uKSkgPT0gLTEpKSB7CiAg
ICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2UoZHVwbGljYXRlZEhhbmRsZSkgPT0gLTEg
JiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnkoZHVwbGlj
YXRlZEhhbmRsZSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRl
eCAxYTFhZWQ2ZWNjNDA2YTg3ZmFmMTM4MzNlN2ExZmRjZjFkMTg5MGE0Li4zMTMwNWFhOWJiNTcx
MjZmM2EyZTIyNjI2YTljN2MxYTI5YzVhZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxz
eXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogCiAjaWZkZWYgU09DS19TRVFQQUNL
RVQKICNkZWZpbmUgU09DS0VUX1RZUEUgU09DS19TRVFQQUNLRVQKQEAgLTE5Miw4ICsxOTMsOCBA
QCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3
aGlsZSAoZmNudGwoc29ja2V0c1sxXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgID09IC0xKSB7CiAg
ICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJy
bm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09
IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIGNsb3NlV2l0aFJldHJ5KHNv
Y2tldHNbMF0pOworICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnkoc29ja2V0c1sxXSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0yMDIsOCArMjAzLDggQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCiAgICAgd2hpbGUg
KGZjbnRsKHNvY2tldHNbMF0sIEZfU0VURkQsIEZEX0NMT0VYRUMpID09IC0xKSB7CiAgICAgICAg
IGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0g
RUlOVFIpIHsgfQotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYm
IGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgICAgIGNsb3NlV2l0aFJldHJ5KHNvY2tldHNb
MF0pOworICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnkoc29ja2V0c1sxXSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcAppbmRleCBkNDJh
YjRlN2UxYTYyYmUwYWZhMzhjZWMwYzEwZjE0NDU4NGY2ZjVkLi4zNmFiMTA3NmQxOTBmZDRjODYz
NWRkMWY0OGQ0ZTcxMDI0ZGI2NzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRX
b3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAKQEAgLTQ2LDYgKzQ2
LDcgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+
CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogCiAj
aWZkZWYgU09DS19TRVFQQUNLRVQKICNkZWZpbmUgU09DS0VUX1RZUEUgU09DS19TRVFQQUNLRVQK
QEAgLTEzOSw4ICsxNDAsOCBAQCB2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAoZmNudGwoc29ja2V0c1sxXSwgRl9TRVRGRCwg
RkRfQ0xPRVhFQykgID09IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uo
c29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgd2hp
bGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAg
ICAgICAgIGNsb3NlV2l0aFJldHJ5KHNvY2tldHNbMF0pOworICAgICAgICAgICAgY2xvc2VXaXRo
UmV0cnkoc29ja2V0c1sxXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9
CkBAIC0xNDksOCArMTUwLDggQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzOjpjcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbigpCiAgICAgd2hpbGUgKGZjbnRsKHNvY2tldHNbMF0sIEZfU0VURkQs
IEZEX0NMT0VYRUMpID09IC0xKSB7CiAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uo
c29ja2V0c1swXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgd2hp
bGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAg
ICAgICAgIGNsb3NlV2l0aFJldHJ5KHNvY2tldHNbMF0pOworICAgICAgICAgICAgY2xvc2VXaXRo
UmV0cnkoc29ja2V0c1sxXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vz
c0xhdW5jaGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1By
b2Nlc3NMYXVuY2hlclF0LmNwcAppbmRleCAzYWZjNjZkNDYwZDQ2ZTllZTgzZWNmZDFkNTM5ZjMz
N2JhZGMxZDI3Li4xZGQzYTA3ZjczZjJhZWY2MDA4YTJmNjViNWE4MjQ5ZTg1NTY2YmI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5j
aGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9j
ZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3Vy
Y2UuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5j
bHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKFFfT1NfTElO
VVgpCkBAIC0xNjIsOCArMTYzLDggQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nl
c3MoKQogICAgIHdoaWxlIChmY250bChzb2NrZXRzWzFdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSAg
PT0gLTEpIHsKICAgICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7CiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzBdKSA9
PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29j
a2V0c1sxXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgY2xvc2VX
aXRoUmV0cnkoc29ja2V0c1swXSk7CisgICAgICAgICAgICBjbG9zZVdpdGhSZXRyeShzb2NrZXRz
WzFdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
</data>
<flag name="review"
          id="226431"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205142</attachid>
            <date>2013-06-20 20:27:03 -0700</date>
            <delta_ts>2013-06-20 23:03:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117266-20130620232510.patch</filename>
            <type>text/plain</type>
            <size>12677</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI2NWRhZjU4MzRkYzM5MDI2MjI3OTBi
ZTg0MTE4NWU2MmRkZTNhOWMuLmI4MDNmOWYwZTU1ZDA4ZjAyNzQ2ZjY2MjU0NGM3MDUxNTI5M2Nh
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDYtMjAgIFNlcmdpbyBDb3JyZWlhICA8c2Vy
Z2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXSBMb29waW5nIGZvciBF
SU5UUiBvbiBjbG9zZSgpIGlzIGluY29ycmVjdCBmb3IgTGludXgsIGF0IGxlYXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcyNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGRlZCBmaWxlIFVuaVN0ZEV4
dHJhcyB3aXRoIGEgY2xvc2VXaXRoUmV0cnkoKSBmdW5jdGlvbiB0aGF0IHdvcmtzIGFyb3VuZAor
ICAgICAgICB0aGUgRUlOVFIgYmVoYXZpb3Igb24gTGludXggZHVyaW5nIGEgY2xvc2UoKSBjYWxs
OiBpdCBjbG9zZXMgdGhlIGRlc2NyaXB0b3IKKyAgICAgICAgdW5jb25kaXRpb25hbGx5IGV2ZW4g
d2hlbiB0aGUgY2FsbCBpcyBpbnRlcnJ1cHRlZC4KKworICAgICAgICAqIHd0Zi9VbmlTdGRFeHRy
YXMuaDogQWRkZWQuCisgICAgICAgIChXVEY6OmNsb3NlV2l0aFJldHJ5KTogV3JhcHBlciBhcm91
bmQgUE9TSVggY2xvc2UoKSB0aGF0IGhhbmRsZXMgRUlOVFIKKyAgICAgICAgY29ycmVjdGx5Lgor
CiAyMDEzLTA2LTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2luZG93c10gVW5kb2luZyByMTUwNjIxIHRvIHJvbGwgcjE1MDYwMCBiYWNrIGluIGFzIHRoZSBq
c2MgdGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDA0OWZkOTZiMzZhZDQ2MzllZmM3OTMwZWI5NjdmMmNhM2Y0
MjVjOWYuLjkzOTY1NmRhNTE1OGI0YjM0OWY5ZmI3OWVhN2M1YTc0ZWM4M2UyNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wNi0yMCAgU2VyZ2lvIENvcnJlaWEgIDxzZXJnaW8u
Y29ycmVpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtXSzJdIExvb3BpbmcgZm9yIEVJTlRS
IG9uIGNsb3NlKCkgaXMgaW5jb3JyZWN0IGZvciBMaW51eCwgYXQgbGVhc3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzI2NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIENhbGwgY2xvc2VXaXRoUmV0cnkoKSB0
byB3b3JrIGFyb3VuZCBhIGRpZmZlcmVuY2UgaW4gaG93IHRoZSByZXRyeSBuZWVkcyB0bworICAg
ICAgICBiZSBkb25lIG9uIExpbnV4LgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy91bml4
L0F0dGFjaG1lbnRVbml4LmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkF0dGFjaG1lbnQ6OmRpc3Bv
c2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6
CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUpOgorICAg
ICAgICAqIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6U2hh
cmVkTWVtb3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFy
ZWRNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZSk6
CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOiBBbGwg
dGhlc2UgcGxhY2VzIGhhZAorICAgICAgICBgYGNsb3NlLWZvbGxvd2VkLWJ5LUVJTlRSLWhhbmRs
aW5nJycgcmVwbGFjZWQgd2l0aCB0aGUgbmV3IGNsb3NlV2l0aFJldHJ5KCkKKyAgICAgICAgZnVu
Y3Rpb24gYWRkZWQgaW4gdGhpcyBjb21taXQuCisKIDIwMTMtMDYtMjAgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3MgaGFuZ3MgbG9hZGluZyBl
ZmYub3JnIChXYWl0aW5nIGZvcmV2ZXIgb24gYSBzeW5jIFhIUiwgTmV0d29ya1Byb2Nlc3MgdW5h
YmxlIHRvIHNlcnZpY2UgaXQpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVW5pU3RkRXh0
cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9VbmlTdGRFeHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGFjZmYx
ZTdhMTk1NTE4MzYwZjU2MGY4MGYzNTA5MzRmYWJkZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvVW5pU3RkRXh0cmFzLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFVuaVN0ZEV4dHJhc19oCisjZGVmaW5lIFVuaVN0ZEV4dHJh
c19oCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKworaW5saW5lIGludCBjbG9zZVdpdGhSZXRyeShpbnQgZmlsZURlc2NyaXB0b3Ip
Cit7CisgICAgaW50IHJldDsKKyNpZiBPUyhMSU5VWCkKKyAgICAvLyBXb3JrYXJvdW5kIGZvciB0
aGUgTGludXggYmVoYXZpb3Igb2YgY2xvc2luZyB0aGUgZGVzY3JpcHRvcgorICAgIC8vIHVuY29u
ZGl0aW9uYWxseSwgZXZlbiBpZiB0aGUgY2xvc2UoKSBjYWxsIGlzIGludGVycnVwdGVkLgorICAg
IC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3MjY2IGZv
ciBtb3JlCisgICAgLy8gZGV0YWlscy4KKyAgICBpZiAoKHJldCA9IGNsb3NlKGZpbGVEZXNjcmlw
dG9yKSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpCisgICAgICAgIHJldHVybiAwOworI2Vsc2UK
KyAgICB3aGlsZSAoKHJldCA9IGNsb3NlKGZpbGVEZXNjcmlwdG9yKSkgPT0gLTEgJiYgZXJybm8g
PT0gRUlOVFIpIHsgfQorI2VuZGlmCisgICAgcmV0dXJuIHJldDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKK3VzaW5nIFdURjo6Y2xvc2VXaXRoUmV0cnk7CisKKyNlbmRpZiAvLyBVbmlTdGRF
eHRyYXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4
L0F0dGFjaG1lbnRVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5p
eC9BdHRhY2htZW50VW5peC5jcHAKaW5kZXggYThjMDI2OTRmMzAwOWZjZDllMWZhZTE3YmU2MWI1
NzNhYWZmZjNhMC4uNmI3NzBiNzdhZjAxMjMwODY2YjI4OGM1ZDRiMTk5ZjAwMmExNGY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1lbnRV
bml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQXR0YWNo
bWVudFVuaXguY3BwCkBAIC0yNyw4ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQXR0YWNobWVudC5oIgogCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZXJy
bm8uaD4KKyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIApAQCAtNDksNyArNDgsNyBAQCBBdHRhY2htZW50OjpBdHRhY2htZW50KGludCBmaWxlRGVz
Y3JpcHRvcikKIHZvaWQgQXR0YWNobWVudDo6ZGlzcG9zZSgpCiB7CiAgICAgaWYgKG1fZmlsZURl
c2NyaXB0b3IgIT0gLTEpCi0gICAgICAgIHdoaWxlIChjbG9zZShtX2ZpbGVEZXNjcmlwdG9yKSA9
PSAtMSAmJiAoZXJybm8gPT0gRUlOVFIpKSB7IH0KKyAgICAgICAgY2xvc2VXaXRoUmV0cnkobV9m
aWxlRGVzY3JpcHRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3Bw
CmluZGV4IGUwMWMyMTEyNmE3MDgxZDZjNmU0YzJjNTQ0ODQzZDBiNmQ0YTdiOGEuLjA3NjViYzlk
NzA1MTkyZmFiMWUwMDhjZGYwODdmZmJjZTFiMTU0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
VW5pU3RkRXh0cmFzLmg+CiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRUG9pbnRlcj4K
QEAgLTEzNiw3ICsxMzcsNyBAQCB2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSgp
CiAgICAgLy8gSW4gR1RLKyBwbGF0Zm9ybSB0aGUgc29ja2V0IGlzIGNsb3NlZCBieSB0aGUgd29y
ayBxdWV1ZS4KICNpZiAhUExBVEZPUk0oR1RLKQogICAgIGlmIChtX3NvY2tldERlc2NyaXB0b3Ig
IT0gLTEpCi0gICAgICAgIHdoaWxlIChjbG9zZShtX3NvY2tldERlc2NyaXB0b3IpID09IC0xICYm
IGVycm5vID09IEVJTlRSKSB7IH0KKyAgICAgICAgY2xvc2VXaXRoUmV0cnkobV9zb2NrZXREZXNj
cmlwdG9yKTsKICNlbmRpZgogCiAgICAgaWYgKCFtX2lzQ29ubmVjdGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYWYxOTE1
MTdlZDcxZjlhOWYzNDAwNjc0MTI3ZmU1YzI0YTcwNGNlNC4uNzYwYThhYjFjODg2OGNkOWM3MjFi
MGZiNGZhZmVmNDFkOGNkY2E0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
dW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91
bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvUmFuZG9tTnVtYmVyLmg+CisjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw3ICs1
NSw3IEBAIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpIYW5kbGUoKQogU2hhcmVkTWVtb3J5OjpIYW5k
bGU6On5IYW5kbGUoKQogewogICAgIGlmICghaXNOdWxsKCkpCi0gICAgICAgIHdoaWxlIChjbG9z
ZShtX2ZpbGVEZXNjcmlwdG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgICAg
IGNsb3NlV2l0aFJldHJ5KG1fZmlsZURlc2NyaXB0b3IpOwogfQogCiBib29sIFNoYXJlZE1lbW9y
eTo6SGFuZGxlOjppc051bGwoKSBjb25zdApAQCAtMTE2LDcgKzExNyw3IEBAIFBhc3NSZWZQdHI8
U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKIAogICAgIHdo
aWxlIChmdHJ1bmNhdGUoZmlsZURlc2NyaXB0b3IsIHNpemUpID09IC0xKSB7CiAgICAgICAgIGlm
IChlcnJubyAhPSBFSU5UUikgewotICAgICAgICAgICAgd2hpbGUgKGNsb3NlKGZpbGVEZXNjcmlw
dG9yKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgICAgICAgICBjbG9zZVdpdGhS
ZXRyeShmaWxlRGVzY3JpcHRvcik7CiAgICAgICAgICAgICBzaG1fdW5saW5rKHRlbXBOYW1lLmRh
dGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAtMTI0LDcgKzEyNSw3
IEBAIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShzaXplX3Qg
c2l6ZSkKIAogICAgIHZvaWQqIGRhdGEgPSBtbWFwKDAsIHNpemUsIFBST1RfUkVBRCB8IFBST1Rf
V1JJVEUsIE1BUF9TSEFSRUQsIGZpbGVEZXNjcmlwdG9yLCAwKTsKICAgICBpZiAoZGF0YSA9PSBN
QVBfRkFJTEVEKSB7Ci0gICAgICAgIHdoaWxlIChjbG9zZShmaWxlRGVzY3JpcHRvcikgPT0gLTEg
JiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICBjbG9zZVdpdGhSZXRyeShmaWxlRGVzY3Jp
cHRvcik7CiAgICAgICAgIHNobV91bmxpbmsodGVtcE5hbWUuZGF0YSgpKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpAQCAtMTcwLDcgKzE3MSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5
PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBw
CiBTaGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkoKQogewogICAgIG11bm1hcChtX2RhdGEsIG1f
c2l6ZSk7Ci0gICAgd2hpbGUgKGNsb3NlKG1fZmlsZURlc2NyaXB0b3IpID09IC0xICYmIGVycm5v
ID09IEVJTlRSKSB7IH0KKyAgICBjbG9zZVdpdGhSZXRyeShtX2ZpbGVEZXNjcmlwdG9yKTsKIH0K
IAogc3RhdGljIGlubGluZSBpbnQgYWNjZXNzTW9kZUZpbGUoU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uIHByb3RlY3Rpb24pCkBAIC0yMDIsNyArMjAzLDcgQEAgYm9vbCBTaGFyZWRNZW1vcnk6OmNy
ZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQogICAgIHdo
aWxlICgoZmNudGwoZHVwbGljYXRlZEhhbmRsZSwgRl9TRVRGRCwgRkRfQ0xPRVhFQyB8IGFjY2Vz
c01vZGVGaWxlKHByb3RlY3Rpb24pKSA9PSAtMSkpIHsKICAgICAgICAgaWYgKGVycm5vICE9IEVJ
TlRSKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHdo
aWxlIChjbG9zZShkdXBsaWNhdGVkSGFuZGxlKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9
CisgICAgICAgICAgICBjbG9zZVdpdGhSZXRyeShkdXBsaWNhdGVkSGFuZGxlKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCmluZGV4IDFhMWFlZDZlY2M0MDZhODdmYWYx
MzgzM2U3YTFmZGNmMWQxODkwYTQuLjMxMzA1YWE5YmI1NzEyNmYzYTJlMjI2MjZhOWM3YzFhMjlj
NWFlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1
ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvVW5p
U3RkRXh0cmFzLmg+CiAKICNpZmRlZiBTT0NLX1NFUVBBQ0tFVAogI2RlZmluZSBTT0NLRVRfVFlQ
RSBTT0NLX1NFUVBBQ0tFVApAQCAtMTkyLDggKzE5Myw4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6
Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgIHdoaWxlIChmY250bChzb2NrZXRzWzFd
LCBGX1NFVEZELCBGRF9DTE9FWEVDKSAgPT0gLTEpIHsKICAgICAgICAgaWYgKGVycm5vICE9IEVJ
TlRSKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHdo
aWxlIChjbG9zZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9Ci0gICAg
ICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIp
IHsgfQorICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnkoc29ja2V0c1swXSk7CisgICAgICAgICAg
ICBjbG9zZVdpdGhSZXRyeShzb2NrZXRzWzFdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTIwMiw4ICsyMDMsOCBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0
ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAgICB3aGlsZSAoZmNudGwoc29ja2V0c1swXSwgRl9T
RVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpIHsKICAgICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHdoaWxlIChj
bG9zZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9Ci0gICAgICAgICAg
ICB3aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQor
ICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnkoc29ja2V0c1swXSk7CisgICAgICAgICAgICBjbG9z
ZVdpdGhSZXRyeShzb2NrZXRzWzFdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hh
cmVkV29ya2VyUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNz
L1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCmluZGV4IGQ0MmFiNGU3ZTFhNjJiZTBhZmEzOGNlYzBj
MTBmMTQ0NTg0ZjZmNWQuLjM2YWIxMDc2ZDE5MGZkNGM4NjM1ZGQxZjQ4ZDRlNzEwMjRkYjY3Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29y
a2VyUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9T
aGFyZWRXb3JrZXJQcm9jZXNzLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPHN5cy9y
ZXNvdXJjZS5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4K
KyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFzLmg+CiAKICNpZmRlZiBTT0NLX1NFUVBBQ0tFVAog
I2RlZmluZSBTT0NLRVRfVFlQRSBTT0NLX1NFUVBBQ0tFVApAQCAtMTM5LDggKzE0MCw4IEBAIHZv
aWQgU2hhcmVkV29ya2VyUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAg
IHdoaWxlIChmY250bChzb2NrZXRzWzFdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSAgPT0gLTEpIHsK
ICAgICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBl
cnJubyA9PSBFSU5UUikgeyB9Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkg
PT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnko
c29ja2V0c1swXSk7CisgICAgICAgICAgICBjbG9zZVdpdGhSZXRyeShzb2NrZXRzWzFdKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE0OSw4ICsxNTAsOCBAQCB2
b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKICAg
ICB3aGlsZSAoZmNudGwoc29ja2V0c1swXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpIHsK
ICAgICAgICAgaWYgKGVycm5vICE9IEVJTlRSKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzBdKSA9PSAtMSAmJiBl
cnJubyA9PSBFSU5UUikgeyB9Ci0gICAgICAgICAgICB3aGlsZSAoY2xvc2Uoc29ja2V0c1sxXSkg
PT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQorICAgICAgICAgICAgY2xvc2VXaXRoUmV0cnko
c29ja2V0c1swXSk7CisgICAgICAgICAgICBjbG9zZVdpdGhSZXRyeShzb2NrZXRzWzFdKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmlu
ZGV4IDNhZmM2NmQ0NjBkNDZlOWVlODNlY2ZkMWQ1MzlmMzM3YmFkYzFkMjcuLjFkZDNhMDdmNzNm
MmFlZjYwMDhhMmY2NWI1YTgyNDllODU1NjZiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcApAQCAt
NTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgPHN5cy9z
b2NrZXQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFz
Lmg+CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoUV9PU19MSU5VWCkKQEAgLTE2Miw4ICsxNjMsOCBA
QCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgd2hpbGUgKGZjbnRs
KHNvY2tldHNbMV0sIEZfU0VURkQsIEZEX0NMT0VYRUMpICA9PSAtMSkgewogICAgICAgICBpZiAo
ZXJybm8gIT0gRUlOVFIpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgd2hpbGUgKGNsb3NlKHNvY2tldHNbMF0pID09IC0xICYmIGVycm5vID09IEVJTlRS
KSB7IH0KLSAgICAgICAgICAgIHdoaWxlIChjbG9zZShzb2NrZXRzWzFdKSA9PSAtMSAmJiBlcnJu
byA9PSBFSU5UUikgeyB9CisgICAgICAgICAgICBjbG9zZVdpdGhSZXRyeShzb2NrZXRzWzBdKTsK
KyAgICAgICAgICAgIGNsb3NlV2l0aFJldHJ5KHNvY2tldHNbMV0pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>