<?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>73290</bug_id>
          
          <creation_ts>2011-11-29 00:44:26 -0800</creation_ts>
          <short_desc>[WebSocket] Add didUpdateBufferedAmount() callback to SocketStreamHandleClient</short_desc>
          <delta_ts>2011-11-30 06:47:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73306</blocked>
    
    <blocked>73308</blocked>
    
    <blocked>73336</blocked>
    
    <blocked>73404</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Takashi Toyoshima">toyoshim</reporter>
          <assigned_to name="Takashi Toyoshima">toyoshim</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>levin+threading</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510568</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 00:44:26 -0800</bug_when>
    <thetext>Now, WebSocketChannel is exported as WebKit::WebSocket in Chromium port.
For now, bufferedAmount property needs some latency to get from plugins.
This callback allow client side cache its value and reduce IPC turnaround time latency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510575</commentid>
    <comment_count>1</comment_count>
      <attachid>116915</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 00:54:14 -0800</bug_when>
    <thetext>Created attachment 116915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510600</commentid>
    <comment_count>2</comment_count>
      <attachid>116915</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-11-29 01:41:38 -0800</bug_when>
    <thetext>Comment on attachment 116915
Patch

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

&gt; Source/WebCore/platform/network/SocketStreamHandleBase.cpp:42
&gt; +    : m_handle(handle)

You don&apos;t have to save m_handle. As SocketStreamHandle is derived from SocketStreamHandleBase, it is safe to cast |this| to SocketStreamHandle* (i.e. static_cast&lt;SocketStreamHandle*&gt;(this) is always equal to |handle|). Compilers take care of offset adjustment.

&gt; Source/WebCore/platform/network/SocketStreamHandleClient.h:49
&gt; +        virtual void didUpdateBufferedAmount(SocketStreamHandle*, int bufferedAmount) { }

Is |int| large enough?

&gt; Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp:2
&gt; + * Copyright (C) 2011 Apple Inc.  All rights reserved.

Don&apos;t update copyright year of others.

&gt; Source/WebCore/platform/network/curl/SocketStreamHandleCurl.cpp:2
&gt; + * Copyright (C) 2011 Brent Fulgham.  All rights reserved.

Ditto.

&gt; Source/WebCore/platform/network/qt/SocketStreamHandleQt.cpp:2
&gt; + * Copyright (C) 2011 Nokia Inc. All rights reserved.

Ditto.

&gt; Source/WebCore/platform/network/win/SocketStreamHandleWin.cpp:2
&gt; + * Copyright (C) 2011 Brent Fulgham.  All rights reserved.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510609</commentid>
    <comment_count>3</comment_count>
      <attachid>116915</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 01:48:44 -0800</bug_when>
    <thetext>Comment on attachment 116915
Patch

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

&gt; Source/WebCore/websockets/WebSocket.h:109
&gt; +    virtual void didUpdateBufferedAmount(int bufferedAmount);

You had better append OVERRIDE.

&gt; Source/WebCore/websockets/WebSocketChannel.h:84
&gt; +    virtual void didUpdateBufferedAmount(SocketStreamHandle*, int bufferedAmount);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510670</commentid>
    <comment_count>4</comment_count>
      <attachid>116941</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 03:54:16 -0800</bug_when>
    <thetext>Created attachment 116941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510671</commentid>
    <comment_count>5</comment_count>
      <attachid>116915</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 03:54:58 -0800</bug_when>
    <thetext>Comment on attachment 116915
Patch

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

&gt;&gt; Source/WebCore/platform/network/SocketStreamHandleBase.cpp:42
&gt;&gt; +    : m_handle(handle)
&gt; 
&gt; You don&apos;t have to save m_handle. As SocketStreamHandle is derived from SocketStreamHandleBase, it is safe to cast |this| to SocketStreamHandle* (i.e. static_cast&lt;SocketStreamHandle*&gt;(this) is always equal to |handle|). Compilers take care of offset adjustment.

Thanks Yuta!
Now, my change is quite simpler.

&gt;&gt; Source/WebCore/platform/network/SocketStreamHandleClient.h:49
&gt;&gt; +        virtual void didUpdateBufferedAmount(SocketStreamHandle*, int bufferedAmount) { }
&gt; 
&gt; Is |int| large enough?

Originally, SocketStreamHandleBase::bufferedAmount() returns an int value.
But, size_t seems better than int because returned value comes from Vector::size() and it returns size_t.
On the other hand, I guess I must use unsigned long in WebSocketChannelClient because WebSocketChannel::bufferedAmount returns unsigned long value.

&gt;&gt; Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp:2
&gt;&gt; + * Copyright (C) 2011 Apple Inc.  All rights reserved.
&gt; 
&gt; Don&apos;t update copyright year of others.

Thanks.
But, these update will be removed in next change because I don&apos;t have to pass this pointer from them now.

&gt;&gt; Source/WebCore/websockets/WebSocket.h:109
&gt;&gt; +    virtual void didUpdateBufferedAmount(int bufferedAmount);
&gt; 
&gt; You had better append OVERRIDE.

Thanks.
I added OVERRIDE to all inherit methods in WebSocket and WebSocketChannel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510678</commentid>
    <comment_count>6</comment_count>
      <attachid>116941</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 04:12:28 -0800</bug_when>
    <thetext>Comment on attachment 116941
Patch

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

&gt; Source/WebCore/websockets/WebSocket.h:93
&gt; -    virtual const AtomicString&amp; interfaceName() const;
&gt; -    virtual ScriptExecutionContext* scriptExecutionContext() const;
&gt; +    virtual const AtomicString&amp; interfaceName() const OVERRIDE;
&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE;

We had better NOT add OVERRIDE to functions other than didUpdateBufferAmount() in this patch.

&gt; Source/WebCore/websockets/WebSocketChannelClient.h:49
&gt; +        virtual void didUpdateBufferedAmount(unsigned long bufferedAmount) { }

Why is the argument type is unsigned long instead of size_t?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510684</commentid>
    <comment_count>7</comment_count>
      <attachid>116941</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 04:24:29 -0800</bug_when>
    <thetext>Comment on attachment 116941
Patch

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

&gt;&gt; Source/WebCore/websockets/WebSocket.h:93
&gt;&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE;
&gt; 
&gt; We had better NOT add OVERRIDE to functions other than didUpdateBufferAmount() in this patch.

You mean adding OVERRIDE to other methods must be splited into another change?
If so, I&apos;ll make another change to add OVERRIDEs.

&gt;&gt; Source/WebCore/websockets/WebSocketChannelClient.h:49
&gt;&gt; +        virtual void didUpdateBufferedAmount(unsigned long bufferedAmount) { }
&gt; 
&gt; Why is the argument type is unsigned long instead of size_t?

WebSocketChannel::bufferedAmount() return unsigned long value.
That mean all interfaces exposed to WebCore::WebSocket follows the WebSocket API specification defining types.
So I decide to use unsigned long for WebSocketChannelClient to keep consistency with them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510686</commentid>
    <comment_count>8</comment_count>
      <attachid>116941</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 04:26:40 -0800</bug_when>
    <thetext>Comment on attachment 116941
Patch

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

&gt;&gt;&gt; Source/WebCore/websockets/WebSocket.h:93
&gt;&gt;&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE;
&gt;&gt; 
&gt;&gt; We had better NOT add OVERRIDE to functions other than didUpdateBufferAmount() in this patch.
&gt; 
&gt; You mean adding OVERRIDE to other methods must be splited into another change?
&gt; If so, I&apos;ll make another change to add OVERRIDEs.

Yes.

&gt;&gt;&gt; Source/WebCore/websockets/WebSocketChannelClient.h:49
&gt;&gt;&gt; +        virtual void didUpdateBufferedAmount(unsigned long bufferedAmount) { }
&gt;&gt; 
&gt;&gt; Why is the argument type is unsigned long instead of size_t?
&gt; 
&gt; WebSocketChannel::bufferedAmount() return unsigned long value.
&gt; That mean all interfaces exposed to WebCore::WebSocket follows the WebSocket API specification defining types.
&gt; So I decide to use unsigned long for WebSocketChannelClient to keep consistency with them.

Ok, I understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510688</commentid>
    <comment_count>9</comment_count>
      <attachid>116946</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 04:35:39 -0800</bug_when>
    <thetext>Created attachment 116946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510689</commentid>
    <comment_count>10</comment_count>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 04:38:00 -0800</bug_when>
    <thetext>Thank you Kent,
I uploaded revised one which remove all OVERRIDEs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510702</commentid>
    <comment_count>11</comment_count>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 05:17:50 -0800</bug_when>
    <thetext>Adding OVERRIDEs in another change, I notice that we must care for the worker version of WebSocket.
Please wait for the next patch which support the worker implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510721</commentid>
    <comment_count>12</comment_count>
      <attachid>116956</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 06:05:38 -0800</bug_when>
    <thetext>Created attachment 116956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510819</commentid>
    <comment_count>13</comment_count>
      <attachid>116956</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 09:02:19 -0800</bug_when>
    <thetext>Comment on attachment 116956
Patch

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

A few drive by comments.

&gt; Source/WebCore/platform/network/SocketStreamHandleBase.cpp:2
&gt; + * Copyright (C) 2011 Google Inc.  All rights reserved.

In WebKit typically just add the year (2009, 2011) as opposed to deleting the old year like what is done in Chromium.

&gt; Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.cpp:148
&gt; +    m_pendingTasks.append(createCallbackTask(&amp;ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback, AllowCrossThreadAccess(this), bufferedAmount));

You shouldn&apos;t use &quot;AllowCrossThreadAccess&quot; here and in fact should get rid of it throughout this file.

Here&apos;s why:
1. It was added to highlight the places where we were not doing anything to help with lifetime of the object being passed.
2. At the time it was added, ThreadSafeRefCounted* objects passed through createCallbackTask did not have the ref count increased, so AllowCrossThreadAccess needed to be added here.
3. ThreadableWebSocketChannelClientWrapper is designed to be ref counted across threads -- largely to make sure that its lifetime is preserved by this call.

So in short, putting AllowCrossThreadAccess means that ThreadableWebSocketChannelClientWrapper may get deleted before the callback is done leading to unpredictable crashes.

Feel free to create a bug that blocks: https://bugs.webkit.org/show_bug.cgi?id=67942 to get rid of AllowCrossThreadAccess in this file. (I&apos;ve been wanting to do this but I also wanted to look at the files and make sure it was the right thing to do.  In this case, the patch motivated me to do so.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510821</commentid>
    <comment_count>14</comment_count>
      <attachid>116956</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 09:03:10 -0800</bug_when>
    <thetext>Comment on attachment 116956
Patch

cq- due to my comments (specifically the ref count related one).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510912</commentid>
    <comment_count>15</comment_count>
      <attachid>116956</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 10:56:43 -0800</bug_when>
    <thetext>Comment on attachment 116956
Patch

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

&gt;&gt; Source/WebCore/platform/network/SocketStreamHandleBase.cpp:2
&gt;&gt; + * Copyright (C) 2011 Google Inc.  All rights reserved.
&gt; 
&gt; In WebKit typically just add the year (2009, 2011) as opposed to deleting the old year like what is done in Chromium.

Thanks, I fix it in the next change.

&gt;&gt; Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.cpp:148
&gt;&gt; +    m_pendingTasks.append(createCallbackTask(&amp;ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback, AllowCrossThreadAccess(this), bufferedAmount));
&gt; 
&gt; You shouldn&apos;t use &quot;AllowCrossThreadAccess&quot; here and in fact should get rid of it throughout this file.
&gt; 
&gt; Here&apos;s why:
&gt; 1. It was added to highlight the places where we were not doing anything to help with lifetime of the object being passed.
&gt; 2. At the time it was added, ThreadSafeRefCounted* objects passed through createCallbackTask did not have the ref count increased, so AllowCrossThreadAccess needed to be added here.
&gt; 3. ThreadableWebSocketChannelClientWrapper is designed to be ref counted across threads -- largely to make sure that its lifetime is preserved by this call.
&gt; 
&gt; So in short, putting AllowCrossThreadAccess means that ThreadableWebSocketChannelClientWrapper may get deleted before the callback is done leading to unpredictable crashes.
&gt; 
&gt; Feel free to create a bug that blocks: https://bugs.webkit.org/show_bug.cgi?id=67942 to get rid of AllowCrossThreadAccess in this file. (I&apos;ve been wanting to do this but I also wanted to look at the files and make sure it was the right thing to do.  In this case, the patch motivated me to do so.)

OK, I see.
I created a bug https://bugs.webkit.org/show_bug.cgi?id=73336 and set to block 67942.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510914</commentid>
    <comment_count>16</comment_count>
      <attachid>116999</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 11:01:16 -0800</bug_when>
    <thetext>Created attachment 116999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510922</commentid>
    <comment_count>17</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 11:11:46 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 116956 [details])
&gt; OK, I see.
&gt; I created a bug https://bugs.webkit.org/show_bug.cgi?id=73336 and set to block 67942.

PS Feel free to do it too :). (It should be trivial and hopefully fix some crashes for you.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511274</commentid>
    <comment_count>18</comment_count>
      <attachid>116999</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 18:13:28 -0800</bug_when>
    <thetext>Comment on attachment 116999
Patch

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

&gt; Source/WebCore/websockets/WebSocket.cpp:510
&gt; +    LOG(Network, &quot;WebSocket %p didUpdateBufferedAmount %lld&quot;, this, bufferedAmount);

Why %lld for unsigned long value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511280</commentid>
    <comment_count>19</comment_count>
      <attachid>116999</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 18:21:53 -0800</bug_when>
    <thetext>Comment on attachment 116999
Patch

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

&gt; Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.cpp:148
&gt; +    m_pendingTasks.append(createCallbackTask(&amp;ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback, AllowCrossThreadAccess(this), bufferedAmount));

Please remove AllowCrossThreadAccess :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511325</commentid>
    <comment_count>20</comment_count>
      <attachid>117104</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 20:22:34 -0800</bug_when>
    <thetext>Created attachment 117104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511326</commentid>
    <comment_count>21</comment_count>
      <attachid>116999</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 20:23:21 -0800</bug_when>
    <thetext>Comment on attachment 116999
Patch

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

&gt;&gt; Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.cpp:148
&gt;&gt; +    m_pendingTasks.append(createCallbackTask(&amp;ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback, AllowCrossThreadAccess(this), bufferedAmount));
&gt; 
&gt; Please remove AllowCrossThreadAccess :).

The change you reviewed in 73336 follows this change and will overwrite this.
I decide to split removing AllowCrossThreadAccess change to 73336.

&gt;&gt; Source/WebCore/websockets/WebSocket.cpp:510
&gt;&gt; +    LOG(Network, &quot;WebSocket %p didUpdateBufferedAmount %lld&quot;, this, bufferedAmount);
&gt; 
&gt; Why %lld for unsigned long value?

Oops, sorry for careless mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511327</commentid>
    <comment_count>22</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 20:24:46 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 116999 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116999&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.cpp:148
&gt; &gt;&gt; +    m_pendingTasks.append(createCallbackTask(&amp;ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback, AllowCrossThreadAccess(this), bufferedAmount));
&gt; &gt; 
&gt; &gt; Please remove AllowCrossThreadAccess :).
&gt; 
&gt; The change you reviewed in 73336 follows this change and will overwrite this.
&gt; I decide to split removing AllowCrossThreadAccess change to 73336.

Oh, thanks. I thought it was just for existing items.... ok, I&apos;m done here. I was just looking at some threaded related items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511367</commentid>
    <comment_count>23</comment_count>
      <attachid>117104</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 21:36:54 -0800</bug_when>
    <thetext>Comment on attachment 117104
Patch

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

&gt; Source/WebCore/websockets/WebSocket.cpp:510
&gt; +    LOG(Network, &quot;WebSocket %p didUpdateBufferedAmount %d&quot;, this, bufferedAmount);

Why %d?  I think it should be %lu.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511379</commentid>
    <comment_count>24</comment_count>
      <attachid>117104</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 21:57:22 -0800</bug_when>
    <thetext>Comment on attachment 117104
Patch

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

&gt; Source/WebCore/platform/network/SocketStreamHandleClient.h:3
&gt; + * Copyright (C) 2011 Google Inc.  All rights reserved.

Fixed.

&gt;&gt; Source/WebCore/websockets/WebSocket.cpp:510
&gt;&gt; +    LOG(Network, &quot;WebSocket %p didUpdateBufferedAmount %d&quot;, this, bufferedAmount);
&gt; 
&gt; Why %d?  I think it should be %lu.

Sorry for vague understanding on conversion specifiers.
I fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511380</commentid>
    <comment_count>25</comment_count>
      <attachid>117121</attachid>
    <who name="Takashi Toyoshima">toyoshim</who>
    <bug_when>2011-11-29 21:57:43 -0800</bug_when>
    <thetext>Created attachment 117121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511384</commentid>
    <comment_count>26</comment_count>
      <attachid>117121</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 22:02:54 -0800</bug_when>
    <thetext>Comment on attachment 117121
Patch

Looks ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511710</commentid>
    <comment_count>27</comment_count>
      <attachid>117121</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 06:47:22 -0800</bug_when>
    <thetext>Comment on attachment 117121
Patch

Clearing flags on attachment: 117121

Committed r101507: &lt;http://trac.webkit.org/changeset/101507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511711</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 06:47:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116915</attachid>
            <date>2011-11-29 00:54:14 -0800</date>
            <delta_ts>2011-11-29 03:54:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111129175412.patch</filename>
            <type>text/plain</type>
            <size>18661</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uMjg4ZThlMWRkMTg3MWUyMmY2YjRkZTAwMGUyNzRl
MGJmNjVmNTU2ZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkIGRpZFVw
ZGF0ZUJ1ZmZlcmVkQW1vdW50KCkgY2FsbGJhY2sgdG8gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
CisgICAgICAgIGFuZCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyOTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmFjYXVzZSB0aGlzIGNh
bGxiYWNrIGlzIG5vdCB1c2VkIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwOiBBZGQgY2FsbGJhY2sgaGFuZGxpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZFBlbmRpbmdE
YXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aDogQWRkIGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg6IEFkZCBjYWxsYmFjayBkZWZpbml0aW9uLgorICAgICAg
ICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OjpkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVD
Rk5ldC5jcHA6IFBhc3MgdGhpcyBwb2ludGVyIHRvIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuCisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGU6OlNvY2tldFN0cmVhbUhhbmRsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUN1cmwu
Y3BwOiBQYXNzIHRoaXMgcG9pbnRlciB0byBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLgorICAgICAg
ICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpTb2NrZXRTdHJlYW1IYW5kbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvU29ja2V0U3RyZWFtSGFuZGxlUXQuY3BwOiBQYXNz
IHRoaXMgcG9pbnRlciB0byBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLgorICAgICAgICAoV2ViQ29y
ZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpTb2NrZXRTdHJlYW1IYW5kbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNwcDogUGFzcyB0aGlz
IHBvaW50ZXIgdG8gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS4KKyAgICAgICAgKFdlYkNvcmU6OlNv
Y2tldFN0cmVhbUhhbmRsZTo6U29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5kbGVXaW4uY3BwOiBQYXNzIHRoaXMgcG9pbnRl
ciB0byBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3Ry
ZWFtSGFuZGxlOjpTb2NrZXRTdHJlYW1IYW5kbGUpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcDogQWRkIGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
U29ja2V0OjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaDogQWRkIGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAqIHdlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHA6IEFkZCBjYWxsYmFjayBoYW5kbGluZy4KKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAg
ICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDogQWRkIGNhbGxiYWNrIGhhbmRsaW5n
LgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOiBBZGQgY2Fs
bGJhY2sgZGVmaW5pdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGll
bnQ6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KToKKwogMjAxMS0xMS0yOCAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGtub3dp
bmcgd2hlbiBhIFRyZWVFbGVtZW50IGlzIGFkZGVkIG9yIGNoYW5nZWQgYW55d2hlcmUgaW4gYSBU
cmVlT3V0bGluZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzQxMzM3MjNhY2E1ZmVh
NjZlYjg4OTM5MjE3MWYzZmY5ZWZlZDc4Yi4uODBkZDJjOGE1N2FiNzEwYzYwNTgyZDQ4NTgyZDhj
MTdkZmM5ZTA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMS0xMS0yOSAgVGFrYXNoaSBUb3lvc2hpbWEgIDx0b3lvc2hpbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KCkgY2FsbGJhY2sgdG8gU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3JjL1NvY2tldFN0cmVhbUhhbmRsZS5jcHA6IFBhc3MgdGhpcyBwb2ludGVy
IHRvIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJl
YW1IYW5kbGU6OlNvY2tldFN0cmVhbUhhbmRsZSk6CisKIDIwMTEtMTEtMjggIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFBvc3NpYmxlIGZpeCBmb3IgdGVzdCBmYWlsdXJl
cyBpbiByMTAxMzA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKaW5kZXggZDdhN2U1NmMyYzIxMzgxYzBl
OTZhYTZmZWQ5MWQ2NmUwNzhiZjhjOS4uYzc3YTRmZDhjMDIxNjk5NTIxMzY2MGUwZDM4ZjkwYTFk
OTBiOWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM4LDExICszOCwxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IHVuc2lnbmVkIGludCBidWZmZXJTaXplID0gMTAwICogMTAy
NCAqIDEwMjQ7CiAKLVNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OlNvY2tldFN0cmVhbUhhbmRsZUJh
c2UoY29uc3QgS1VSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqIGNsaWVudCkKLSAg
ICA6IG1fdXJsKHVybCkKK1NvY2tldFN0cmVhbUhhbmRsZUJhc2U6OlNvY2tldFN0cmVhbUhhbmRs
ZUJhc2UoU29ja2V0U3RyZWFtSGFuZGxlKiBoYW5kbGUsIGNvbnN0IEtVUkwmIHVybCwgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAg
LCBtX3VybCh1cmwpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3N0YXRlKENvbm5l
Y3RpbmcpCiB7CisgICAgQVNTRVJUKGhhbmRsZSk7CiB9CiAKIFNvY2tldFN0cmVhbUhhbmRsZUJh
c2U6OlNvY2tldFN0cmVhbVN0YXRlIFNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnN0YXRlKCkgY29u
c3QKQEAgLTYwLDYgKzYyLDggQEAgYm9vbCBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CisgICAgICAg
IGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFt
b3VudChtX2hhbmRsZSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICBpbnQgYnl0ZXNXcml0dGVuID0gMDsKQEAgLTcxLDggKzc1LDExIEBAIGJvb2wg
U29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
KQogICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9yIHRvIGluZGljYXRlIHRoYXQgYnVmZmVy
IGhhcyBubyBtb3JlIHNwYWNlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlm
IChieXRlc1dyaXR0ZW4gPCBsZW5ndGgpCisgICAgaWYgKGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkg
ewogICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSArIGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0g
Ynl0ZXNXcml0dGVuKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGll
bnQtPmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KG1faGFuZGxlLCBidWZmZXJlZEFtb3VudCgpKTsK
KyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTExOSw2ICsxMjYsOCBAQCBib29sIFNv
Y2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSgpCiAgICAgQVNTRVJUKG1fYnVm
ZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBidWZmZXJTaXplKTsKICAgICByZW1haW5pbmdE
YXRhLmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBieXRlc1dyaXR0ZW4sIG1fYnVmZmVyLnNpemUo
KSAtIGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZmZXIuc3dhcChyZW1haW5pbmdEYXRhKTsKKyAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3Vu
dChtX2hhbmRsZSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmgKaW5kZXggMjE0YmJkMmY4NjQwMGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJh
Mi4uZjMwNWI0NmM4MmI5YThlN2U5N2ZmODc4NDBlMjg2NmQwZWQxM2I2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmgKQEAgLTEsNiArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC01NiwxMiArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNl
dENsaWVudChTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKIAogICAgIHByb3RlY3RlZDoKLSAg
ICAgICAgU29ja2V0U3RyZWFtSGFuZGxlQmFzZShjb25zdCBLVVJMJiwgU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50Kik7CisgICAgICAgIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UoU29ja2V0U3RyZWFt
SGFuZGxlKiwgY29uc3QgS1VSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCopOwogCiAgICAg
ICAgIGJvb2wgc2VuZFBlbmRpbmdEYXRhKCk7CiAgICAgICAgIHZpcnR1YWwgaW50IHBsYXRmb3Jt
U2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwbGF0Zm9ybUNsb3NlKCkgPSAwOwogCisgICAgICAgIFNvY2tldFN0cmVhbUhhbmRsZSog
bV9oYW5kbGU7CiAgICAgICAgIEtVUkwgbV91cmw7CiAgICAgICAgIFNvY2tldFN0cmVhbUhhbmRs
ZUNsaWVudCogbV9jbGllbnQ7CiAgICAgICAgIFZlY3RvcjxjaGFyPiBtX2J1ZmZlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhh
bmRsZUNsaWVudC5oCmluZGV4IDVhZmZkMzNhYWY0MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdh
MjcuLjQ1NmM5YmVhODVhODFkMWZmNGMzMzBlN2I1NWUwMmFlODJmZGRhMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkT3BlblNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKSB7IH0KICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRs
ZSopIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEo
U29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgY2hhciogLypkYXRhKi8sIGludCAvKmxlbmd0aCov
KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNvY2tl
dFN0cmVhbUhhbmRsZSosIGludCBidWZmZXJlZEFtb3VudCkgeyB9CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgU29j
a2V0U3RyZWFtRXJyb3ImKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcAppbmRleCBk
NGQwNWYxY2YzMWVlMjQwMjJhMDcxYTIxNTNhOGNlOWNlY2E4MjZlLi4xN2UzYTdjNDhlMDM0YzU1
MjY2ZjQ3MDFkNjUwNzViZjA5Zjg4ODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NTcsNyArNTcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTb2NrZXRTdHJlYW1IYW5kbGU6
OlNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBLVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudCogY2xpZW50KQotICAgIDogU29ja2V0U3RyZWFtSGFuZGxlQmFzZSh1cmwsIGNsaWVudCkK
KyAgICA6IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UodGhpcywgdXJsLCBjbGllbnQpCiAgICAgLCBt
X2Nvbm5lY3RpbmdTdWJzdGF0ZShOZXcpCiAgICAgLCBtX2Nvbm5lY3Rpb25UeXBlKFVua25vd24p
CiAgICAgLCBtX3NlbnRTdG9yZWRDcmVkZW50aWFscyhmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVDdXJsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5k
bGVDdXJsLmNwcAppbmRleCA4OTFlOTZlNTA2ZjE1MDI0NmEyZmIyMDgwZjlkMTk5NTI0NTA3NTJh
Li41ZTBkNDRmYTI2M2Y5YjRkNjQxNGQ4ODYzYWZiM2Q4ZjE5MTUzM2UzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlQ3Vy
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0
cmVhbUhhbmRsZUN1cmwuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBCcmVudCBGdWxnaGFtLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBCcmVudCBGdWxnaGFtLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogU29ja2V0U3RyZWFtSGFuZGxlOjpTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgS1VS
TCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqIGNsaWVudCkKLSAgICA6IFNvY2tldFN0
cmVhbUhhbmRsZUJhc2UodXJsLCBjbGllbnQpCisgICAgOiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNl
KHRoaXMsIHVybCwgY2xpZW50KQogewogICAgIExPRyhOZXR3b3JrLCAiU29ja2V0U3RyZWFtSGFu
ZGxlICVwIG5ldyBjbGllbnQgJXAiLCB0aGlzLCBtX2NsaWVudCk7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvU29j
a2V0U3RyZWFtSGFuZGxlUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9Tb2NrZXRTdHJlYW1IYW5kbGVRdC5jcHAKaW5kZXggZDQ2MzkwOWU3NWQwZGQwMmIxMGVlY2Iw
ZWFiYWM2MDliZTFiNWI5OS4uY2FjYzdkZTE1N2Q2ZmFmNWYzYjk2OGEyMDMyZGFmNTM3ODNhNTE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9Tb2NrZXRT
dHJlYW1IYW5kbGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9Tb2NrZXRTdHJlYW1IYW5kbGVRdC5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBTb2NrZXRTdHJl
YW1IYW5kbGVQcml2YXRlOjpzb2NrZXRTc2xFcnJvcnMoY29uc3QgUUxpc3Q8UVNzbEVycm9yPiYg
ZXJyb3IpCiAjZW5kaWYKIAogU29ja2V0U3RyZWFtSGFuZGxlOjpTb2NrZXRTdHJlYW1IYW5kbGUo
Y29uc3QgS1VSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqIGNsaWVudCkKLSAgICA6
IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UodXJsLCBjbGllbnQpCisgICAgOiBTb2NrZXRTdHJlYW1I
YW5kbGVCYXNlKHRoaXMsIHVybCwgY2xpZW50KQogewogICAgIExPRyhOZXR3b3JrLCAiU29ja2V0
U3RyZWFtSGFuZGxlICVwIG5ldyBjbGllbnQgJXAiLCB0aGlzLCBtX2NsaWVudCk7CiAgICAgbV9w
ID0gbmV3IFNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGUodGhpcywgdXJsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVT
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJl
YW1IYW5kbGVTb3VwLmNwcAppbmRleCA1MzhmM2FjYTQwNDU2MDZhOTA2OGZhZjMzM2QzMTk2YWQ4
MDQ1YzI5Li40OGIyZmM1MTYyZjIzOGYzMWM1ZDA1NjFlNTA4OWEwZGQ5YmIyNzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFu
ZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Nv
Y2tldFN0cmVhbUhhbmRsZVNvdXAuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQqIGFj
dGl2YXRlSGFuZGxlKFNvY2tldFN0cmVhbUhhbmRsZSogaGFuZGxlKQogfQogCiBTb2NrZXRTdHJl
YW1IYW5kbGU6OlNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBLVVJMJiB1cmwsIFNvY2tldFN0cmVh
bUhhbmRsZUNsaWVudCogY2xpZW50KQotICAgIDogU29ja2V0U3RyZWFtSGFuZGxlQmFzZSh1cmws
IGNsaWVudCkKKyAgICA6IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UodGhpcywgdXJsLCBjbGllbnQp
CiAgICAgLCBtX3JlYWRCdWZmZXIoMCkKIHsKICAgICB1bnNpZ25lZCBpbnQgcG9ydCA9IHVybC5o
YXNQb3J0KCkgPyB1cmwucG9ydCgpIDogKHVybC5wcm90b2NvbElzKCJ3c3MiKSA/IDQ0MyA6IDgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1NvY2tl
dFN0cmVhbUhhbmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dp
bi9Tb2NrZXRTdHJlYW1IYW5kbGVXaW4uY3BwCmluZGV4IGIyYjU0MGZiMjRjMmZhZDc2YTI4NTA5
ZGVmYjZlY2FhNmRjNzA4ZmIuLjA3YjM3MzFlNGM0MmFlYTlmYjdmOTY5ZTAyNDUyMDExMTlmY2M0
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1NvY2tl
dFN0cmVhbUhhbmRsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay93aW4vU29ja2V0U3RyZWFtSGFuZGxlV2luLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQnJlbnQgRnVsZ2hhbS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQnJlbnQgRnVsZ2hhbS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MCw3ICs0MCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNvY2tldFN0cmVhbUhhbmRsZTo6U29ja2V0U3RyZWFtSGFu
ZGxlKGNvbnN0IEtVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQpCi0g
ICAgOiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlKHVybCwgY2xpZW50KQorICAgIDogU29ja2V0U3Ry
ZWFtSGFuZGxlQmFzZSh0aGlzLCB1cmwsIGNsaWVudCkKIHsKICAgICBMT0coTmV0d29yaywgIlNv
Y2tldFN0cmVhbUhhbmRsZSAlcCBuZXcgY2xpZW50ICVwIiwgdGhpcywgbV9jbGllbnQpOwogICAg
IG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAK
aW5kZXggZTY1YzQ5NjZjMGUzOWE4OTUzNTE3NmRlM2UwOWQxMGM2ZDEzNmQwNS4uZTM5MzhhZGZh
NDU0ZTY3ZjZjYWEzMjllNDM3NGVmNDNlMDg2ZjUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcApAQCAtNTA1LDYgKzUwNSwxMSBAQCB2b2lkIFdlYlNvY2tldDo6ZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcigpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBXZWJTb2Nr
ZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KGludCBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBM
T0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCAlZCIsIHRo
aXMsIGJ1ZmZlcmVkQW1vdW50KTsKK30KKwogdm9pZCBXZWJTb2NrZXQ6OmRpZFN0YXJ0Q2xvc2lu
Z0hhbmRzaGFrZSgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkU3RhcnRD
bG9zaW5nSGFuZHNoYWtlIiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aAppbmRleCA4Zjg1NDI4YTYxNjA3MjI2MjM2MjEwOGFmY2YwNWNlZjY1MDNlNzMzLi5jNGRhODg2
MWI4MmRkMDQ2OTJlMjE1YTM1MDY3MzJkODkzOGVmMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4pOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgdmlydHVhbCB2
b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KGludCBidWZmZXJlZEFtb3VudCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFu
ZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5n
JiByZWFzb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCA5NjIyNmI3ODdlNDhhYjdmMDNlNWViMjYwZWNlNzZjYWVkODk2NGVhLi5l
N2Q4OTI5NTEwNjMyNzNjYjlmNzg4ZTQ2OTM3OTMwZjMzOGU2OGI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyNSw2ICszMjUsMTIg
QEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2Nr
ZXRTdHJlYW1IYW5kbGUqIGhhbmRsZSwgY28KICAgICAgICAgICAgIGJyZWFrOwogfQogCit2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNvY2tldFN0cmVhbUhh
bmRsZSogaGFuZGxlLCBpbnQgYnVmZmVyZWRBbW91bnQpCit7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQp
OworfQorCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0
U3RyZWFtSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBlcnJvcikKIHsK
ICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkRmFpbFNvY2tldFN0cmVh
bSIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
aAppbmRleCBlMzFiYmUzMTc3ZGFmNjZiY2U2OGRhN2IwOWQ1NmZmMTljZmU3NGQwLi45MDIzZDU4
NjZkYjVkY2ZhMWZhZjNmN2IyZTBmYjRiOTEzYjJkNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKik7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRs
ZSopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRT
dHJlYW1IYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBk
YXRlQnVmZmVyZWRBbW91bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwgaW50IGJ1ZmZlcmVkQW1vdW50
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5k
bGUqLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50LmgKaW5kZXggNDgyYzQ2ZTFlMjU1OGQyMTc0NjYyYjkxNWQxMzEyMTJj
MzJhZTE0NS4uM2IxMWQ4Yzc4MmU4ZDZjNDUxYzEzMTA0NDQxZjM3MGQwNmRiYjA0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KSB7IH0K
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KGludCBidWZmZXJlZEFtb3Vu
dCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSB7
IH0KICAgICAgICAgZW51bSBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cyB7CiAgICAg
ICAgICAgICBDbG9zaW5nSGFuZHNoYWtlSW5jb21wbGV0ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Tb2NrZXRTdHJlYW1IYW5kbGUuY3BwCmluZGV4IDhlOWVlOTc5OTE4NzI4
Yjk3M2E5NGI4OTJkYjlhZDQ5ZGYzYjk1NzkuLmM4NjQwM2RkZTExODQ5NjQxYjY0MDViMGI4ZjYx
M2M4NmViMjYyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1NvY2tl
dFN0cmVhbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU29ja2V0
U3RyZWFtSGFuZGxlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxl
SW50ZXJuYWw6OmRpZEZhaWwoV2ViU29ja2V0U3RyZWFtSGFuZGxlKiBzb2NrZXRIYW5kbGUsIGNv
CiAvLyBTb2NrZXRTdHJlYW1IYW5kbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBTb2NrZXRTdHJlYW1IYW5kbGU6OlNvY2tldFN0
cmVhbUhhbmRsZShjb25zdCBLVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCogY2xp
ZW50KQotICAgIDogU29ja2V0U3RyZWFtSGFuZGxlQmFzZSh1cmwsIGNsaWVudCkKKyAgICA6IFNv
Y2tldFN0cmVhbUhhbmRsZUJhc2UodGhpcywgdXJsLCBjbGllbnQpCiB7CiAgICAgbV9pbnRlcm5h
bCA9IFNvY2tldFN0cmVhbUhhbmRsZUludGVybmFsOjpjcmVhdGUodGhpcyk7CiAgICAgbV9pbnRl
cm5hbC0+Y29ubmVjdChtX3VybCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116941</attachid>
            <date>2011-11-29 03:54:16 -0800</date>
            <delta_ts>2011-11-29 04:35:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111129205414.patch</filename>
            <type>text/plain</type>
            <size>13603</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uZWRiZDRkMjdiYTcxMGY1YWRiOGM2MDNjYWUyYmQz
ODAzNWU5ZjlkYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoKSBjYWxsYmFjayB0byBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQKKyAgICAgICAgYW5kIFdlYlNvY2tldENoYW5uZWxDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMg
Y2FsbGJhY2sgaXMgbm90IHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA6IEFkZCBjYWxsYmFjayBoYW5kbGluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZFBlbmRpbmdEYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuaDogQWRkIGNh
bGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQmFz
ZTo6YnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlQ2xpZW50Lmg6IEFkZCBjYWxsYmFjayBkZWZpbml0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBBZGQgY2FsbGJhY2sgaGFuZGxp
bmcuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50
KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5oOiBBZGQgY2FsbGJhY2sgaGFuZGxp
bmcuCisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDogQWRkIGNhbGxi
YWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkVXBk
YXRlQnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oOiBBZGQgY2FsbGJhY2sgaGFuZGxpbmcuCisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50Lmg6IEFkZCBjYWxsYmFjayBkZWZpbml0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbENsaWVudDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgor
CiAyMDExLTExLTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Iga25vd2luZyB3aGVuIGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQg
b3IgY2hhbmdlZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAK
aW5kZXggZDdhN2U1NmMyYzIxMzgxYzBlOTZhYTZmZWQ5MWQ2NmUwNzhiZjhjOS4uYmQ1NzBiZmFk
YmQ5MjZkYmYwMTc0NTAzMWFiM2ExYTA3M2JjYTI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTYwLDYgKzYwLDggQEAgYm9vbCBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChz
dGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpbnQgYnl0ZXNXcml0dGVuID0gMDsK
QEAgLTcxLDggKzczLDExIEBAIGJvb2wgU29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9y
IHRvIGluZGljYXRlIHRoYXQgYnVmZmVyIGhhcyBubyBtb3JlIHNwYWNlLgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChieXRlc1dyaXR0ZW4gPCBsZW5ndGgpCisgICAgaWYg
KGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkgewogICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSAr
IGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0gYnl0ZXNXcml0dGVuKTsKKyAgICAgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHN0YXRp
Y19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZSo+KHRoaXMpLCBidWZmZXJlZEFtb3VudCgpKTsKKyAg
ICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTExOSw2ICsxMjQsOCBAQCBib29sIFNvY2tl
dFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSgpCiAgICAgQVNTRVJUKG1fYnVmZmVy
LnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBidWZmZXJTaXplKTsKICAgICByZW1haW5pbmdEYXRh
LmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBieXRlc1dyaXR0ZW4sIG1fYnVmZmVyLnNpemUoKSAt
IGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZmZXIuc3dhcChyZW1haW5pbmdEYXRhKTsKKyAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChz
dGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKaW5kZXggMjE0YmJkMmY4NjQw
MGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJhMi4uZWY3NjJiMjJiOThjODUyZjBmZTExYWVkZTZk
YWE0NmExNGEzZDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCk7CiAgICAgICAgIHZvaWQgY2xvc2UoKTsgLy8gRGlzY29ubmVjdCBhZnRlciBhbGwgZGF0
YSBpbiBidWZmZXIgYXJlIHNlbnQuCiAgICAgICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgICAg
ICBpbnQgYnVmZmVyZWRBbW91bnQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5zaXplKCk7IH0K
KyAgICAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIu
c2l6ZSgpOyB9CiAKICAgICAgICAgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogICAgICAgICB2b2lkIHNldENsaWVudChTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oCmluZGV4IDVhZmZkMzNhYWY0
MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdhMjcuLmIyOTI4ZDE4M2VkM2NjNmZkNGY5ZmQ1YTA2
MjA5NDYxZWI4OTEzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDYsNiArNDYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFt
KFNvY2tldFN0cmVhbUhhbmRsZSopIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VT
b2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBj
aGFyKiAvKmRhdGEqLywgaW50IC8qbGVuZ3RoKi8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZl
cmVkQW1vdW50KSB7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVh
bShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYpIHsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZTY1YzQ5NjZjMGUzOWE4
OTUzNTE3NmRlM2UwOWQxMGM2ZDEzNmQwNS4uNWQ5ODdiNGI0ZTkzMGNiN2NlNDY0YzA3ODc4MThm
M2Q5ZjliMTg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAt
NTA1LDYgKzUwNSwxMSBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigp
CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCit7CisgICAgTE9HKE5ldHdvcmss
ICJXZWJTb2NrZXQgJXAgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQgJWxsZCIsIHRoaXMsIGJ1ZmZl
cmVkQW1vdW50KTsKK30KKwogdm9pZCBXZWJTb2NrZXQ6OmRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFr
ZSgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlIiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCA4
Zjg1NDI4YTYxNjA3MjI2MjM2MjEwOGFmY2YwNWNlZjY1MDNlNzMzLi5mZGUzZDk4OGVhMzNjMDA3
ZmQzMjAyODFjNmFiN2VjMDgxYWY0OGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmgKQEAgLTg5LDI1ICs4OSwyNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihjbG9zZSk7CiAKICAgICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVz
dHJveWVkKCk7Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVzdW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKKyAgICAvLyBBY3RpdmVET01PYmpl
Y3QKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHJlc3VtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAK
ICAgICB1c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldD46OnJlZjsKICAgICB1c2luZyBSZWZDb3Vu
dGVkPFdlYlNvY2tldD46OmRlcmVmOwogCiAgICAgLy8gV2ViU29ja2V0Q2hhbm5lbENsaWVudAot
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb25uZWN0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4pOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0
Q2xvc2luZ0hhbmRzaGFrZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBs
b25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0
YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOworICAgIHZp
cnR1YWwgdm9pZCBkaWRDb25uZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxv
bmcgYnVmZmVyZWRBbW91bnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENs
b3NpbmdIYW5kc2hha2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UodW5z
aWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNvbXBs
ZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBP
VkVSUklERTsKIAogcHJpdmF0ZToKICAgICBXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggOTYyMjZiNzg3ZTQ4YWI3ZjAzZTVlYjI2MGVjZTc2Y2FlZDg5NjRlYS4uZGQ3YTQyMzVk
YzllYmUyNzBjZjI4MDVjNGZhMjQwZTk5YjEyOWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zMjUsNiArMzI1LDEyIEBAIHZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFt
SGFuZGxlKiBoYW5kbGUsIGNvCiAgICAgICAgICAgICBicmVhazsKIH0KIAordm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudChTb2NrZXRTdHJlYW1IYW5kbGUqIGhh
bmRsZSwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgbV9jbGllbnQtPmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KGJ1ZmZlcmVkQW1vdW50KTsKK30K
Kwogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVh
bUhhbmRsZSogaGFuZGxlLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgZXJyb3IpCiB7CiAgICAg
TE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZEZhaWxTb2NrZXRTdHJlYW0iLCB0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5k
ZXggZTMxYmJlMzE3N2RhZjY2YmNlNjhkYTdiMDlkNTZmZjE5Y2ZlNzRkMC4uOGJiOTdjNTBlODBl
N2Y4YTZmZTEwMDIwMWMzNmM1YzNjNGU3MmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTYyLDI4ICs2MiwzMSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQqIGNsaWVudCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlNvY2tldENoYW5uZWwoY29udGV4dCwgY2xpZW50KSk7IH0KICAg
ICB2aXJ0dWFsIH5XZWJTb2NrZXRDaGFubmVsKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgdXNlSGl4
aWU3NlByb3RvY29sKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wpOwotICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3RvY29sKCk7
Ci0gICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2VuZChjb25zdCBBcnJheUJ1ZmZlciYpOwotICAgIHZpcnR1YWwgYm9vbCBzZW5k
KGNvbnN0IEJsb2ImKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBjaGFyKiBkYXRhLCBp
bnQgbGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKTsgLy8gU3RhcnQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgdmlydHVhbCB2b2lkIGZhaWwo
Y29uc3QgU3RyaW5nJiByZWFzb24pOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KCk7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsK
KyAgICAvLyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCBmdW5jdGlvbnMuCisgICAgdmlydHVh
bCBib29sIHVzZUhpeGllNzZQcm90b2NvbCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
b25uZWN0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBzdWJwcm90b2NvbCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IHNlbmQoY29uc3QgQXJyYXlCdWZmZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Vu
ZChjb25zdCBCbG9iJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZl
cmVkQW1vdW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKGludCBj
b2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgT1ZFUlJJREU7IC8vIFN0YXJ0IGNsb3NpbmcgaGFu
ZHNoYWtlLgorICAgIHZpcnR1YWwgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpIE9WRVJSSURFOworCisgICAgdmly
dHVhbCB2b2lkIHN1c3BlbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkg
T1ZFUlJJREU7CiAKICAgICAvLyBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQgZnVuY3Rpb25zLgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSop
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5k
bGUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0
U3RyZWFtSGFuZGxlKiwgY29uc3QgY2hhciosIGludCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZh
aWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgU29ja2V0U3RyZWFtRXJy
b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0
cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAgdmlydHVh
bCB2b2lkIGRpZE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRs
ZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0
YShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwg
c2l6ZV90IGJ1ZmZlcmVkQW1vdW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJv
ciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKSBPVkVSUklERTsKIAogICAgIGVudW0gQ2xvc2VFdmVudENvZGUgewogICAgICAgICBDbG9z
ZUV2ZW50Q29kZU5vdFNwZWNpZmllZCA9IC0xLApAQCAtMTAxLDEwICsxMDQsMTAgQEAgcHVibGlj
OgogCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgLy8gRmlsZVJlYWRlckxvYWRlckNsaWVudCBmdW5j
dGlvbnMuCi0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0TG9hZGluZygpOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGVycm9yQ29kZSk7CisgICAgdmlydHVh
bCB2b2lkIGRpZFN0YXJ0TG9hZGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGVycm9yQ29kZSkgT1ZF
UlJJREU7CiAjZW5kaWYKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViU29ja2V0Q2hhbm5lbD46
OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Q2xpZW50LmgKaW5kZXggNDgyYzQ2ZTFlMjU1OGQyMTc0NjYyYjkxNWQxMzEyMTJjMzJhZTE0NS4u
Y2M3NDQ5NDY1NGNmZmM4OGFkMzBkMTgxNThhMjdkNjkzMWQ5NzA2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKQEAgLTQ2LDYg
KzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KSB7IH0KICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSB7IH0KKyAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91
bnQpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkg
eyB9CiAgICAgICAgIGVudW0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMgewogICAg
ICAgICAgICAgQ2xvc2luZ0hhbmRzaGFrZUluY29tcGxldGUsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116946</attachid>
            <date>2011-11-29 04:35:39 -0800</date>
            <delta_ts>2011-11-29 06:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111129213538.patch</filename>
            <type>text/plain</type>
            <size>9515</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uZWRiZDRkMjdiYTcxMGY1YWRiOGM2MDNjYWUyYmQz
ODAzNWU5ZjlkYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoKSBjYWxsYmFjayB0byBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQKKyAgICAgICAgYW5kIFdlYlNvY2tldENoYW5uZWxDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMg
Y2FsbGJhY2sgaXMgbm90IHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA6IEFkZCBjYWxsYmFjayBoYW5kbGluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZFBlbmRpbmdEYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuaDogQWRkIGNh
bGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQmFz
ZTo6YnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlQ2xpZW50Lmg6IEFkZCBjYWxsYmFjayBkZWZpbml0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBBZGQgY2FsbGJhY2sgaGFuZGxp
bmcuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50
KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5oOiBBZGQgY2FsbGJhY2sgaGFuZGxp
bmcuCisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDogQWRkIGNhbGxi
YWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkVXBk
YXRlQnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oOiBBZGQgY2FsbGJhY2sgaGFuZGxpbmcuCisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50Lmg6IEFkZCBjYWxsYmFjayBkZWZpbml0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbENsaWVudDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgor
CiAyMDExLTExLTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Iga25vd2luZyB3aGVuIGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQg
b3IgY2hhbmdlZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAK
aW5kZXggZDdhN2U1NmMyYzIxMzgxYzBlOTZhYTZmZWQ5MWQ2NmUwNzhiZjhjOS4uYmQ1NzBiZmFk
YmQ5MjZkYmYwMTc0NTAzMWFiM2ExYTA3M2JjYTI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTYwLDYgKzYwLDggQEAgYm9vbCBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChz
dGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpbnQgYnl0ZXNXcml0dGVuID0gMDsK
QEAgLTcxLDggKzczLDExIEBAIGJvb2wgU29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9y
IHRvIGluZGljYXRlIHRoYXQgYnVmZmVyIGhhcyBubyBtb3JlIHNwYWNlLgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChieXRlc1dyaXR0ZW4gPCBsZW5ndGgpCisgICAgaWYg
KGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkgewogICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSAr
IGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0gYnl0ZXNXcml0dGVuKTsKKyAgICAgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHN0YXRp
Y19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZSo+KHRoaXMpLCBidWZmZXJlZEFtb3VudCgpKTsKKyAg
ICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTExOSw2ICsxMjQsOCBAQCBib29sIFNvY2tl
dFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSgpCiAgICAgQVNTRVJUKG1fYnVmZmVy
LnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBidWZmZXJTaXplKTsKICAgICByZW1haW5pbmdEYXRh
LmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBieXRlc1dyaXR0ZW4sIG1fYnVmZmVyLnNpemUoKSAt
IGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZmZXIuc3dhcChyZW1haW5pbmdEYXRhKTsKKyAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChz
dGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKaW5kZXggMjE0YmJkMmY4NjQw
MGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJhMi4uZWY3NjJiMjJiOThjODUyZjBmZTExYWVkZTZk
YWE0NmExNGEzZDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCk7CiAgICAgICAgIHZvaWQgY2xvc2UoKTsgLy8gRGlzY29ubmVjdCBhZnRlciBhbGwgZGF0
YSBpbiBidWZmZXIgYXJlIHNlbnQuCiAgICAgICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgICAg
ICBpbnQgYnVmZmVyZWRBbW91bnQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5zaXplKCk7IH0K
KyAgICAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIu
c2l6ZSgpOyB9CiAKICAgICAgICAgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogICAgICAgICB2b2lkIHNldENsaWVudChTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oCmluZGV4IDVhZmZkMzNhYWY0
MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdhMjcuLmIyOTI4ZDE4M2VkM2NjNmZkNGY5ZmQ1YTA2
MjA5NDYxZWI4OTEzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDYsNiArNDYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFt
KFNvY2tldFN0cmVhbUhhbmRsZSopIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VT
b2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBj
aGFyKiAvKmRhdGEqLywgaW50IC8qbGVuZ3RoKi8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZl
cmVkQW1vdW50KSB7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVh
bShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYpIHsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZTY1YzQ5NjZjMGUzOWE4
OTUzNTE3NmRlM2UwOWQxMGM2ZDEzNmQwNS4uNWQ5ODdiNGI0ZTkzMGNiN2NlNDY0YzA3ODc4MThm
M2Q5ZjliMTg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAt
NTA1LDYgKzUwNSwxMSBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigp
CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCit7CisgICAgTE9HKE5ldHdvcmss
ICJXZWJTb2NrZXQgJXAgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQgJWxsZCIsIHRoaXMsIGJ1ZmZl
cmVkQW1vdW50KTsKK30KKwogdm9pZCBXZWJTb2NrZXQ6OmRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFr
ZSgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlIiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCA4
Zjg1NDI4YTYxNjA3MjI2MjM2MjEwOGFmY2YwNWNlZjY1MDNlNzMzLi43MGMzNjUzOWZkYTg2MjMy
MDJhODJhMzFkMTU0OWE0MDg1OGQyZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4pOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFVw
ZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2xvc2UodW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hh
bmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbC5jcHAKaW5kZXggOTYyMjZiNzg3ZTQ4YWI3ZjAzZTVlYjI2MGVjZTc2Y2FlZDg5NjRlYS4u
ZGQ3YTQyMzVkYzllYmUyNzBjZjI4MDVjNGZhMjQwZTk5YjEyOWFhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zMjUsNiArMzI1LDEy
IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29j
a2V0U3RyZWFtSGFuZGxlKiBoYW5kbGUsIGNvCiAgICAgICAgICAgICBicmVhazsKIH0KIAordm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudChTb2NrZXRTdHJlYW1I
YW5kbGUqIGhhbmRsZSwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KQoreworICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgbV9jbGllbnQtPmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KGJ1ZmZlcmVkQW1v
dW50KTsKK30KKwogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNv
Y2tldFN0cmVhbUhhbmRsZSogaGFuZGxlLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgZXJyb3Ip
CiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZEZhaWxTb2NrZXRT
dHJlYW0iLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgKaW5kZXggZTMxYmJlMzE3N2RhZjY2YmNlNjhkYTdiMDlkNTZmZjE5Y2ZlNzRkMC4uNmYx
ZWQzNGY5M2ZkN2UwNDVhZWFhNTM1Njg2MTE0NzI1ZGNkYTExMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRs
ZSopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1I
YW5kbGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29j
a2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgY2hhciosIGludCk7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNvY2tldFN0cmVhbUhhbmRsZSosIHNpemVfdCBidWZmZXJl
ZEFtb3VudCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3Ry
ZWFtSGFuZGxlKiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRsZSosIGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCmluZGV4IDQ4MmM0NmUxZTI1NThkMjE3NDY2MmI5MTVk
MTMxMjEyYzMyYWUxNDUuLmNjNzQ0OTQ2NTRjZmZjODhhZDMwZDE4MTU4YTI3ZDY5MzFkOTcwNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENs
aWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpIHsgfQogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4g
PikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgeyB9
CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBs
b25nIGJ1ZmZlcmVkQW1vdW50KSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xv
c2luZ0hhbmRzaGFrZSgpIHsgfQogICAgICAgICBlbnVtIENsb3NpbmdIYW5kc2hha2VDb21wbGV0
aW9uU3RhdHVzIHsKICAgICAgICAgICAgIENsb3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116956</attachid>
            <date>2011-11-29 06:05:38 -0800</date>
            <delta_ts>2011-11-29 11:01:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111129230537.patch</filename>
            <type>text/plain</type>
            <size>16147</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uZTk0OTY0ZDdlZTAwNGQ2ZmZhYTU3NTFiOTVkZjcx
ZmZiMTkyOTU2NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoKSBjYWxsYmFjayB0byBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQKKyAgICAgICAgYW5kIFdlYlNvY2tldENoYW5uZWxDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMg
Y2FsbGJhY2sgaXMgbm90IHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA6IEludm9rZSBuZXcgY2FsbGJhY2suCisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg6IENoYW5nZSBy
ZXR1cm5pbmcgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZUJhc2U6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNrIGRlZmluaXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFVwZGF0
ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaDogQWRkIG5ldyBjYWxsYmFjayBpbmhlcml0YW5jZSBhbmQgaXRzIGhlbHBlciBtZXRob2Qu
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBBZGQgbmV3IGNhbGxiYWNrIGhh
bmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaDogQWRkIG5ldyBjYWxsYmFj
ayBpbmhlcml0YW5jZS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OiBBZGQgbmV3IGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHdlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oOiBBZGQgbmV3IGNhbGxiYWNrIGluaGVyaXRhY25lLgorICAgICAg
ICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNr
IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsQ2xpZW50Ojpk
aWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisg
ICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6IEFkZCBuZXcgY2FsbGJhY2sgaW5oZXJpdGFuY2Ug
YW5kIGl0cyBoZWxwZXIgbWV0aG9kLgorCiAyMDExLTExLTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0
aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Iga25vd2luZyB3aGVu
IGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQgb3IgY2hhbmdlZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRs
aW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKaW5kZXggZDdhN2U1NmMyYzIxMzgxYzBlOTZhYTZmZWQ5
MWQ2NmUwNzhiZjhjOS4uYmQ1NzBiZmFkYmQ5MjZkYmYwMTc0NTAzMWFiM2ExYTA3M2JjYTI2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTYwLDYgKzYwLDggQEAgYm9vbCBTb2NrZXRTdHJlYW1I
YW5kbGVCYXNlOjpzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEs
IGxlbmd0aCk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5k
aWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGUqPih0
aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg
ICBpbnQgYnl0ZXNXcml0dGVuID0gMDsKQEAgLTcxLDggKzczLDExIEBAIGJvb2wgU29ja2V0U3Ry
ZWFtSGFuZGxlQmFzZTo6c2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgICAg
ICAvLyBGSVhNRTogcmVwb3J0IGVycm9yIHRvIGluZGljYXRlIHRoYXQgYnVmZmVyIGhhcyBubyBt
b3JlIHNwYWNlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChieXRlc1dy
aXR0ZW4gPCBsZW5ndGgpCisgICAgaWYgKGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkgewogICAgICAg
ICBtX2J1ZmZlci5hcHBlbmQoZGF0YSArIGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0gYnl0ZXNXcml0
dGVuKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZFVw
ZGF0ZUJ1ZmZlcmVkQW1vdW50KHN0YXRpY19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZSo+KHRoaXMp
LCBidWZmZXJlZEFtb3VudCgpKTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEx
OSw2ICsxMjQsOCBAQCBib29sIFNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0
YSgpCiAgICAgQVNTRVJUKG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBidWZmZXJT
aXplKTsKICAgICByZW1haW5pbmdEYXRhLmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBieXRlc1dy
aXR0ZW4sIG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZmZXIuc3dh
cChyZW1haW5pbmdEYXRhKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5k
aWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGUqPih0
aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmgKaW5kZXggMjE0YmJkMmY4NjQwMGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJhMi4uZWY3
NjJiMjJiOThjODUyZjBmZTExYWVkZTZkYWE0NmExNGEzZDE1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgK
QEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHNlbmQo
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CiAgICAgICAgIHZvaWQgY2xvc2UoKTsgLy8g
RGlzY29ubmVjdCBhZnRlciBhbGwgZGF0YSBpbiBidWZmZXIgYXJlIHNlbnQuCiAgICAgICAgIHZv
aWQgZGlzY29ubmVjdCgpOwotICAgICAgICBpbnQgYnVmZmVyZWRBbW91bnQoKSBjb25zdCB7IHJl
dHVybiBtX2J1ZmZlci5zaXplKCk7IH0KKyAgICAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9idWZmZXIuc2l6ZSgpOyB9CiAKICAgICAgICAgU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogICAgICAg
ICB2b2lkIHNldENsaWVudChTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUNs
aWVudC5oCmluZGV4IDVhZmZkMzNhYWY0MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdhMjcuLmIy
OTI4ZDE4M2VkM2NjNmZkNGY5ZmQ1YTA2MjA5NDYxZWI4OTEzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopIHsgfQogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikg
eyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2Nr
ZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBjaGFyKiAvKmRhdGEqLywgaW50IC8qbGVuZ3RoKi8pIHsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29ja2V0U3Ry
ZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KSB7IH0KIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBTb2Nr
ZXRTdHJlYW1FcnJvciYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5jcHAKaW5kZXggMGRlOWY0MTU4MjZkNWQ1NmU1NWRiZmUzNWNkNzI3YjZkNGM0YjNkYy4uZjM4
ZDJkNjFkYTYwODIyYzgyNDhjNTk3YTdkODg2ODlkZDU2NDNmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTQzLDYgKzE0MywxMyBAQCB2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
UGFzc093blB0cjxWZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKK3ZvaWQg
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRVcGRhdGVCdWZmZXJl
ZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KQoreworICAgIG1fcGVuZGluZ1Rh
c2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2soJlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjaywgQWxsb3dDcm9z
c1RocmVhZEFjY2Vzcyh0aGlzKSwgYnVmZmVyZWRBbW91bnQpKTsKKyAgICBpZiAoIW1fc3VzcGVu
ZGVkKQorICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7Cit9CisKIHZvaWQgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRTdGFydENsb3NpbmdIYW5kc2hha2Uo
KQogewogICAgIG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2soJlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNo
YWtlQ2FsbGJhY2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsKQEAgLTE5OCw2ICsy
MDUsMTMgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhQ2FsbGJhY2soU2NyaXAKICAgICAgICAgd3JhcHBlci0+bV9jbGll
bnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKGJpbmFyeURhdGEpOwogfQogCit2b2lkIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRD
YWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIHdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRB
bW91bnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCAhY29udGV4dCk7CisgICAgaWYg
KHdyYXBwZXItPm1fY2xpZW50KQorICAgICAgICB3cmFwcGVyLT5tX2NsaWVudC0+ZGlkVXBkYXRl
QnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOworfQorCiB2b2lkIFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlQ2FsbGJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyKiB3cmFwcGVyKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4
dCwgIWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKaW5kZXgg
YTIzYTVkZGJmOTQ2OGI4ZjIwYWU1Y2YyZGVmYTljMTQ4NDU3ZGIzNy4uMjg2MWUyYTBhMmI1MmNh
NWFjZjYyZDk4ZDZlZDA2ZjUyYjlhZjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlci5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENvbm5lY3Qo
KTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KTsK
KyAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRB
bW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAgdm9pZCBk
aWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBXZWJTb2NrZXRD
aGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5zaWduZWQg
c2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogCkBAIC04Nyw2ICs4OCw3IEBAIHBy
b3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkaWRDb25uZWN0Q2FsbGJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciopOwog
ICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciosIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGFD
YWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyKiwgUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CisgICAgc3RhdGlj
IHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiwgdW5zaWduZWQg
bG9uZyBidWZmZXJlZEFtb3VudCk7CiAgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlciopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsb3NlQ2FsbGJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlciosIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNp
Z25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBlNjVjNDk2NmMwZTM5YTg5NTM1MTc2ZGUzZTA5
ZDEwYzZkMTM2ZDA1Li41ZDk4N2I0YjRlOTMwY2I3Y2U0NjRjMDc4NzgxOGYzZDlmOWIxODQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01MDUsNiArNTA1LDEx
IEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKICAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOwogfQogCit2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWdu
ZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAl
cCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCAlbGxkIiwgdGhpcywgYnVmZmVyZWRBbW91bnQpOwor
fQorCiB2b2lkIFdlYlNvY2tldDo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkKIHsKICAgICBM
T0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UiLCB0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDhmODU0MjhhNjE2MDcy
MjYyMzYyMTA4YWZjZjA1Y2VmNjUwM2U3MzMuLjcwYzM2NTM5ZmRhODYyMzIwMmE4MmEzMWQxNTQ5
YTQwODU4ZDJkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtMTA2
LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFy
eURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRB
bW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSh1bnNp
Z25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtlQ29tcGxl
dGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCA5NjIyNmI3ODdlNDhhYjdmMDNlNWViMjYwZWNlNzZjYWVkODk2NGVhLi5kZDdhNDIzNWRjOWVi
ZTI3MGNmMjgwNWM0ZmEyNDBlOTliMTI5YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyNSw2ICszMjUsMTIgQEAgdm9pZCBXZWJT
b2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5k
bGUqIGhhbmRsZSwgY28KICAgICAgICAgICAgIGJyZWFrOwogfQogCit2b2lkIFdlYlNvY2tldENo
YW5uZWw6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNvY2tldFN0cmVhbUhhbmRsZSogaGFuZGxl
LCBzaXplX3QgYnVmZmVyZWRBbW91bnQpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBt
X2NsaWVudC0+ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOworfQorCiB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFu
ZGxlKiBoYW5kbGUsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBlcnJvcikKIHsKICAgICBMT0co
TmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkRmFpbFNvY2tldFN0cmVhbSIsIHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCBl
MzFiYmUzMTc3ZGFmNjZiY2U2OGRhN2IwOWQ1NmZmMTljZmU3NGQwLi42ZjFlZDM0ZjkzZmQ3ZTA0
NWFlYWE1MzU2ODYxMTQ3MjVkY2RhMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaApAQCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKik7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5k
bGUqLCBjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVy
ZWRBbW91bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqLCBj
b25zdCBTb2NrZXRTdHJlYW1FcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsQ2xpZW50LmgKaW5kZXggNDgyYzQ2ZTFlMjU1OGQyMTc0NjYyYjkxNWQxMzEyMTJjMzJhZTE0
NS4uY2M3NDQ5NDY1NGNmZmM4OGFkMzBkMTgxNThhMjdkNjkzMWQ5NzA2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KSB7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSB7IH0KKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRB
bW91bnQpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtl
KCkgeyB9CiAgICAgICAgIGVudW0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMgewog
ICAgICAgICAgICAgQ2xvc2luZ0hhbmRzaGFrZUluY29tcGxldGUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCmluZGV4IDFlMjRjZmJiYTUwNmVmNzZiNjA0MjExOGY3MTg4NDhlZGY0YjNmZTgu
LmYwZTYzZTEyNTI1NDk5NGI1YzViNjI2MGI1MTA1YTNmN2VhODIyNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCkBAIC0yOTksNiArMjk5LDE4IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8
VmVjCiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkUmVjZWl2ZUJpbmFyeURhdGEsIG1fd29y
a2VyQ2xpZW50V3JhcHBlciwgYmluYXJ5RGF0YSksIG1fdGFza01vZGUpOwogfQogCitzdGF0aWMg
dm9pZCB3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRB
bW91bnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtlckNv
bnRleHQoKSk7CisgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkVXBkYXRlQnVmZmVyZWRBbW91
bnQoYnVmZmVyZWRBbW91bnQpOworfQorCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpQZWVyOjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZl
cmVkQW1vdW50KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9sb2FkZXJQ
cm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3
b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQsIG1fd29ya2VyQ2xpZW50V3JhcHBl
ciwgYnVmZmVyZWRBbW91bnQpLCBtX3Rhc2tNb2RlKTsKK30KKwogc3RhdGljIHZvaWQgd29ya2Vy
Q29udGV4dERpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4gd29ya2VyQ2xpZW50V3JhcHBlcikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNv
bnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCA0
ZDlhYTg5NjEyYTEzOTQ1MGMxN2VkMjRkZTAyMzM3NWQxY2IzNjcyLi41NTMzYjJiM2JhMmFiY2E2
NjAyNmUzZmZjY2U3OGZlYTgwZGE1MjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0x
MDcsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENvbm5lY3Qo
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNz
T3duUHRyPFZlY3RvcjxjaGFyPiA+KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1
ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5n
SGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3Ry
aW5nJiByZWFzb24pOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116999</attachid>
            <date>2011-11-29 11:01:16 -0800</date>
            <delta_ts>2011-11-29 20:23:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111130040115.patch</filename>
            <type>text/plain</type>
            <size>16153</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uZTk0OTY0ZDdlZTAwNGQ2ZmZhYTU3NTFiOTVkZjcx
ZmZiMTkyOTU2NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoKSBjYWxsYmFjayB0byBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQKKyAgICAgICAgYW5kIFdlYlNvY2tldENoYW5uZWxDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMg
Y2FsbGJhY2sgaXMgbm90IHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA6IEludm9rZSBuZXcgY2FsbGJhY2suCisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg6IENoYW5nZSBy
ZXR1cm5pbmcgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZUJhc2U6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNrIGRlZmluaXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFVwZGF0
ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaDogQWRkIG5ldyBjYWxsYmFjayBpbmhlcml0YW5jZSBhbmQgaXRzIGhlbHBlciBtZXRob2Qu
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBBZGQgbmV3IGNhbGxiYWNrIGhh
bmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaDogQWRkIG5ldyBjYWxsYmFj
ayBpbmhlcml0YW5jZS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OiBBZGQgbmV3IGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHdlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oOiBBZGQgbmV3IGNhbGxiYWNrIGluaGVyaXRhY25lLgorICAgICAg
ICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNr
IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsQ2xpZW50Ojpk
aWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisg
ICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6IEFkZCBuZXcgY2FsbGJhY2sgaW5oZXJpdGFuY2Ug
YW5kIGl0cyBoZWxwZXIgbWV0aG9kLgorCiAyMDExLTExLTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0
aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Iga25vd2luZyB3aGVu
IGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQgb3IgY2hhbmdlZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRs
aW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKaW5kZXggZDdhN2U1NmMyYzIxMzgxYzBlOTZhYTZmZWQ5
MWQ2NmUwNzhiZjhjOS4uM2JhMzNmMzhkYjY5OTEzYTBkOTMyN2JkZWRlNmJmYjVhZTQyNjBhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTYwLDYgKzYwLDggQEAgYm9vbCBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlOjpzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5k
KGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5k
bGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICBpbnQgYnl0ZXNXcml0dGVuID0gMDsKQEAgLTcxLDggKzczLDExIEBAIGJvb2wgU29j
a2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9yIHRvIGluZGljYXRlIHRoYXQgYnVmZmVyIGhh
cyBubyBtb3JlIHNwYWNlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChi
eXRlc1dyaXR0ZW4gPCBsZW5ndGgpCisgICAgaWYgKGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkgewog
ICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSArIGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0gYnl0
ZXNXcml0dGVuKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQt
PmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHN0YXRpY19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZSo+
KHRoaXMpLCBidWZmZXJlZEFtb3VudCgpKTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTExOSw2ICsxMjQsOCBAQCBib29sIFNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5k
aW5nRGF0YSgpCiAgICAgQVNTRVJUKG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBi
dWZmZXJTaXplKTsKICAgICByZW1haW5pbmdEYXRhLmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBi
eXRlc1dyaXR0ZW4sIG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZm
ZXIuc3dhcChyZW1haW5pbmdEYXRhKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xp
ZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5k
bGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmgKaW5kZXggMjE0YmJkMmY4NjQwMGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJh
Mi4uZWY3NjJiMjJiOThjODUyZjBmZTExYWVkZTZkYWE0NmExNGEzZDE1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CiAgICAgICAgIHZvaWQgY2xvc2Uo
KTsgLy8gRGlzY29ubmVjdCBhZnRlciBhbGwgZGF0YSBpbiBidWZmZXIgYXJlIHNlbnQuCiAgICAg
ICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgICAgICBpbnQgYnVmZmVyZWRBbW91bnQoKSBjb25z
dCB7IHJldHVybiBtX2J1ZmZlci5zaXplKCk7IH0KKyAgICAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1v
dW50KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIuc2l6ZSgpOyB9CiAKICAgICAgICAgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQog
ICAgICAgICB2b2lkIHNldENsaWVudChTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhh
bmRsZUNsaWVudC5oCmluZGV4IDVhZmZkMzNhYWY0MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdh
MjcuLmIyOTI4ZDE4M2VkM2NjNmZkNGY5ZmQ1YTA2MjA5NDYxZWI4OTEzNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopIHsgfQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFu
ZGxlKikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0
YShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBjaGFyKiAvKmRhdGEqLywgaW50IC8qbGVuZ3Ro
Ki8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29j
a2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KSB7IH0KIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25z
dCBTb2NrZXRTdHJlYW1FcnJvciYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlci5jcHAKaW5kZXggMGRlOWY0MTU4MjZkNWQ1NmU1NWRiZmUzNWNkNzI3YjZkNGM0YjNk
Yy4uZjM4ZDJkNjFkYTYwODIyYzgyNDhjNTk3YTdkODg2ODlkZDU2NDNmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTQzLDYgKzE0MywxMyBAQCB2b2lk
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUJpbmFy
eURhdGEoUGFzc093blB0cjxWZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAK
K3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRVcGRhdGVC
dWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KQoreworICAgIG1fcGVu
ZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2soJlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjaywgQWxs
b3dDcm9zc1RocmVhZEFjY2Vzcyh0aGlzKSwgYnVmZmVyZWRBbW91bnQpKTsKKyAgICBpZiAoIW1f
c3VzcGVuZGVkKQorICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7Cit9CisKIHZvaWQgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRTdGFydENsb3NpbmdIYW5k
c2hha2UoKQogewogICAgIG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2so
JlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5n
SGFuZHNoYWtlQ2FsbGJhY2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsKQEAgLTE5
OCw2ICsyMDUsMTMgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhQ2FsbGJhY2soU2NyaXAKICAgICAgICAgd3JhcHBlci0+
bV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKGJpbmFyeURhdGEpOwogfQogCit2b2lkIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRB
bW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIHdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgYnVm
ZmVyZWRBbW91bnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCAhY29udGV4dCk7Cisg
ICAgaWYgKHdyYXBwZXItPm1fY2xpZW50KQorICAgICAgICB3cmFwcGVyLT5tX2NsaWVudC0+ZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOworfQorCiB2b2lkIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtl
Q2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiB3cmFwcGVyKQogewogICAgIEFTU0VSVF9VTlVTRUQo
Y29udGV4dCwgIWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
aW5kZXggYTIzYTVkZGJmOTQ2OGI4ZjIwYWU1Y2YyZGVmYTljMTQ4NDU3ZGIzNy4uMjg2MWUyYTBh
MmI1MmNhNWFjZjYyZDk4ZDZlZDA2ZjUyYjlhZjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENv
bm5lY3QoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFy
PiA+KTsKKyAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVm
ZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAg
dm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBXZWJT
b2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5z
aWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogCkBAIC04Nyw2ICs4OCw3
IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkaWRDb25uZWN0Q2FsbGJhY2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ciopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcios
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUJpbmFy
eURhdGFDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyKiwgUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CisgICAg
c3RhdGljIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiwgdW5z
aWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCk7CiAgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRDbG9z
aW5nSGFuZHNoYWtlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsb3Nl
Q2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlciosIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQs
IFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
LCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBlNjVjNDk2NmMwZTM5YTg5NTM1MTc2
ZGUzZTA5ZDEwYzZkMTM2ZDA1Li41ZDk4N2I0YjRlOTMwY2I3Y2U0NjRjMDc4NzgxOGYzZDlmOWIx
ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01MDUsNiAr
NTA1LDExIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKICAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNl
LCBmYWxzZSkpOwogfQogCit2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQo
dW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlNv
Y2tldCAlcCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCAlbGxkIiwgdGhpcywgYnVmZmVyZWRBbW91
bnQpOworfQorCiB2b2lkIFdlYlNvY2tldDo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkKIHsK
ICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2Ui
LCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDhmODU0Mjhh
NjE2MDcyMjYyMzYyMTA4YWZjZjA1Y2VmNjUwM2U3MzMuLjcwYzM2NTM5ZmRhODYyMzIwMmE4MmEz
MWQxNTQ5YTQwODU4ZDJkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApA
QCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVm
ZmVyZWRBbW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtl
Q29tcGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNw
cAppbmRleCA5NjIyNmI3ODdlNDhhYjdmMDNlNWViMjYwZWNlNzZjYWVkODk2NGVhLi5kZDdhNDIz
NWRjOWViZTI3MGNmMjgwNWM0ZmEyNDBlOTliMTI5YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyNSw2ICszMjUsMTIgQEAgdm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJl
YW1IYW5kbGUqIGhhbmRsZSwgY28KICAgICAgICAgICAgIGJyZWFrOwogfQogCit2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNvY2tldFN0cmVhbUhhbmRsZSog
aGFuZGxlLCBzaXplX3QgYnVmZmVyZWRBbW91bnQpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAg
ICAgICBtX2NsaWVudC0+ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOwor
fQorCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3Ry
ZWFtSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBlcnJvcikKIHsKICAg
ICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkRmFpbFNvY2tldFN0cmVhbSIs
IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApp
bmRleCBlMzFiYmUzMTc3ZGFmNjZiY2U2OGRhN2IwOWQ1NmZmMTljZmU3NGQwLi42ZjFlZDM0Zjkz
ZmQ3ZTA0NWFlYWE1MzU2ODYxMTQ3MjVkY2RhMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpZE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSop
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJl
YW1IYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRl
QnVmZmVyZWRBbW91bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5k
bGUqLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50LmgKaW5kZXggNDgyYzQ2ZTFlMjU1OGQyMTc0NjYyYjkxNWQxMzEyMTJj
MzJhZTE0NS4uY2M3NDQ5NDY1NGNmZmM4OGFkMzBkMTgxNThhMjdkNjkzMWQ5NzA2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KSB7IH0K
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVm
ZmVyZWRBbW91bnQpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlKCkgeyB9CiAgICAgICAgIGVudW0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0
dXMgewogICAgICAgICAgICAgQ2xvc2luZ0hhbmRzaGFrZUluY29tcGxldGUsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCmluZGV4IDFlMjRjZmJiYTUwNmVmNzZiNjA0MjExOGY3MTg4NDhlZGY0
YjNmZTguLmYwZTYzZTEyNTI1NDk5NGI1YzViNjI2MGI1MTA1YTNmN2VhODIyNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yOTksNiArMjk5LDE4IEBAIHZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NP
d25QdHI8VmVjCiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRl
eHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkUmVjZWl2ZUJpbmFyeURhdGEs
IG1fd29ya2VyQ2xpZW50V3JhcHBlciwgYmluYXJ5RGF0YSksIG1fdGFza01vZGUpOwogfQogCitz
dGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgYnVm
ZmVyZWRBbW91bnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dv
cmtlckNvbnRleHQoKSk7CisgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkVXBkYXRlQnVmZmVy
ZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOworfQorCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpQZWVyOjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25n
IGJ1ZmZlcmVkQW1vdW50KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9s
b2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tU
YXNrKCZ3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQsIG1fd29ya2VyQ2xpZW50
V3JhcHBlciwgYnVmZmVyZWRBbW91bnQpLCBtX3Rhc2tNb2RlKTsKK30KKwogc3RhdGljIHZvaWQg
d29ya2VyQ29udGV4dERpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlcikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbnRl
eHQsIGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCA0ZDlhYTg5NjEyYTEzOTQ1MGMxN2VkMjRkZTAyMzM3NWQxY2IzNjcyLi41NTMzYjJiM2Jh
MmFiY2E2NjAyNmUzZmZjY2U3OGZlYTgwZGE1MjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
CkBAIC0xMDcsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENv
bm5lY3QoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0
YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVw
ZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBD
bG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29u
c3QgU3RyaW5nJiByZWFzb24pOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117104</attachid>
            <date>2011-11-29 20:22:34 -0800</date>
            <delta_ts>2011-11-29 21:57:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111130132232.patch</filename>
            <type>text/plain</type>
            <size>16151</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uZTk0OTY0ZDdlZTAwNGQ2ZmZhYTU3NTFiOTVkZjcx
ZmZiMTkyOTU2NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoKSBjYWxsYmFjayB0byBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQKKyAgICAgICAgYW5kIFdlYlNvY2tldENoYW5uZWxDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMg
Y2FsbGJhY2sgaXMgbm90IHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA6IEludm9rZSBuZXcgY2FsbGJhY2suCisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg6IENoYW5nZSBy
ZXR1cm5pbmcgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZUJhc2U6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNrIGRlZmluaXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFVwZGF0
ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaDogQWRkIG5ldyBjYWxsYmFjayBpbmhlcml0YW5jZSBhbmQgaXRzIGhlbHBlciBtZXRob2Qu
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBBZGQgbmV3IGNhbGxiYWNrIGhh
bmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaDogQWRkIG5ldyBjYWxsYmFj
ayBpbmhlcml0YW5jZS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OiBBZGQgbmV3IGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHdlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oOiBBZGQgbmV3IGNhbGxiYWNrIGluaGVyaXRhY25lLgorICAgICAg
ICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNr
IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsQ2xpZW50Ojpk
aWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisg
ICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6IEFkZCBuZXcgY2FsbGJhY2sgaW5oZXJpdGFuY2Ug
YW5kIGl0cyBoZWxwZXIgbWV0aG9kLgorCiAyMDExLTExLTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0
aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Iga25vd2luZyB3aGVu
IGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQgb3IgY2hhbmdlZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRs
aW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKaW5kZXggZDdhN2U1NmMyYzIxMzgxYzBlOTZhYTZmZWQ5
MWQ2NmUwNzhiZjhjOS4uM2JhMzNmMzhkYjY5OTEzYTBkOTMyN2JkZWRlNmJmYjVhZTQyNjBhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTYwLDYgKzYwLDggQEAgYm9vbCBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlOjpzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5k
KGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5k
bGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICBpbnQgYnl0ZXNXcml0dGVuID0gMDsKQEAgLTcxLDggKzczLDExIEBAIGJvb2wgU29j
a2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9yIHRvIGluZGljYXRlIHRoYXQgYnVmZmVyIGhh
cyBubyBtb3JlIHNwYWNlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChi
eXRlc1dyaXR0ZW4gPCBsZW5ndGgpCisgICAgaWYgKGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkgewog
ICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSArIGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0gYnl0
ZXNXcml0dGVuKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQt
PmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHN0YXRpY19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZSo+
KHRoaXMpLCBidWZmZXJlZEFtb3VudCgpKTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTExOSw2ICsxMjQsOCBAQCBib29sIFNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5k
aW5nRGF0YSgpCiAgICAgQVNTRVJUKG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBi
dWZmZXJTaXplKTsKICAgICByZW1haW5pbmdEYXRhLmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBi
eXRlc1dyaXR0ZW4sIG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZm
ZXIuc3dhcChyZW1haW5pbmdEYXRhKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xp
ZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5k
bGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmgKaW5kZXggMjE0YmJkMmY4NjQwMGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJh
Mi4uZWY3NjJiMjJiOThjODUyZjBmZTExYWVkZTZkYWE0NmExNGEzZDE1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CiAgICAgICAgIHZvaWQgY2xvc2Uo
KTsgLy8gRGlzY29ubmVjdCBhZnRlciBhbGwgZGF0YSBpbiBidWZmZXIgYXJlIHNlbnQuCiAgICAg
ICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgICAgICBpbnQgYnVmZmVyZWRBbW91bnQoKSBjb25z
dCB7IHJldHVybiBtX2J1ZmZlci5zaXplKCk7IH0KKyAgICAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1v
dW50KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIuc2l6ZSgpOyB9CiAKICAgICAgICAgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQog
ICAgICAgICB2b2lkIHNldENsaWVudChTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhh
bmRsZUNsaWVudC5oCmluZGV4IDVhZmZkMzNhYWY0MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdh
MjcuLmIyOTI4ZDE4M2VkM2NjNmZkNGY5ZmQ1YTA2MjA5NDYxZWI4OTEzNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopIHsgfQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFu
ZGxlKikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0
YShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBjaGFyKiAvKmRhdGEqLywgaW50IC8qbGVuZ3Ro
Ki8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29j
a2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KSB7IH0KIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25z
dCBTb2NrZXRTdHJlYW1FcnJvciYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlci5jcHAKaW5kZXggMGRlOWY0MTU4MjZkNWQ1NmU1NWRiZmUzNWNkNzI3YjZkNGM0YjNk
Yy4uZjM4ZDJkNjFkYTYwODIyYzgyNDhjNTk3YTdkODg2ODlkZDU2NDNmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTQzLDYgKzE0MywxMyBAQCB2b2lk
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUJpbmFy
eURhdGEoUGFzc093blB0cjxWZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAK
K3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRVcGRhdGVC
dWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KQoreworICAgIG1fcGVu
ZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2soJlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjaywgQWxs
b3dDcm9zc1RocmVhZEFjY2Vzcyh0aGlzKSwgYnVmZmVyZWRBbW91bnQpKTsKKyAgICBpZiAoIW1f
c3VzcGVuZGVkKQorICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7Cit9CisKIHZvaWQgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRTdGFydENsb3NpbmdIYW5k
c2hha2UoKQogewogICAgIG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2so
JlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5n
SGFuZHNoYWtlQ2FsbGJhY2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsKQEAgLTE5
OCw2ICsyMDUsMTMgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhQ2FsbGJhY2soU2NyaXAKICAgICAgICAgd3JhcHBlci0+
bV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKGJpbmFyeURhdGEpOwogfQogCit2b2lkIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRB
bW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIHdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgYnVm
ZmVyZWRBbW91bnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCAhY29udGV4dCk7Cisg
ICAgaWYgKHdyYXBwZXItPm1fY2xpZW50KQorICAgICAgICB3cmFwcGVyLT5tX2NsaWVudC0+ZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOworfQorCiB2b2lkIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtl
Q2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiB3cmFwcGVyKQogewogICAgIEFTU0VSVF9VTlVTRUQo
Y29udGV4dCwgIWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
aW5kZXggYTIzYTVkZGJmOTQ2OGI4ZjIwYWU1Y2YyZGVmYTljMTQ4NDU3ZGIzNy4uMjg2MWUyYTBh
MmI1MmNhNWFjZjYyZDk4ZDZlZDA2ZjUyYjlhZjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENv
bm5lY3QoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFy
PiA+KTsKKyAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVm
ZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAg
dm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBXZWJT
b2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5z
aWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogCkBAIC04Nyw2ICs4OCw3
IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkaWRDb25uZWN0Q2FsbGJhY2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ciopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcios
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUJpbmFy
eURhdGFDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyKiwgUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CisgICAg
c3RhdGljIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiwgdW5z
aWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCk7CiAgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRDbG9z
aW5nSGFuZHNoYWtlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsb3Nl
Q2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlciosIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQs
IFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
LCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBlNjVjNDk2NmMwZTM5YTg5NTM1MTc2
ZGUzZTA5ZDEwYzZkMTM2ZDA1Li45YzJjYzVkNjllZWMyNDljZGNiODQ2NGY2MDYyODcxN2Q5MTdh
NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01MDUsNiAr
NTA1LDExIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKICAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNl
LCBmYWxzZSkpOwogfQogCit2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQo
dW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlNv
Y2tldCAlcCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCAlZCIsIHRoaXMsIGJ1ZmZlcmVkQW1vdW50
KTsKK30KKwogdm9pZCBXZWJTb2NrZXQ6OmRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlIiwg
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5o
IGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCA4Zjg1NDI4YTYx
NjA3MjI2MjM2MjEwOGFmY2YwNWNlZjY1MDNlNzMzLi43MGMzNjUzOWZkYTg2MjMyMDJhODJhMzFk
MTU0OWE0MDg1OGQyZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAg
LTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVC
aW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4pOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZl
cmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2Uo
dW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNv
bXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggOTYyMjZiNzg3ZTQ4YWI3ZjAzZTVlYjI2MGVjZTc2Y2FlZDg5NjRlYS4uZGQ3YTQyMzVk
YzllYmUyNzBjZjI4MDVjNGZhMjQwZTk5YjEyOWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zMjUsNiArMzI1LDEyIEBAIHZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFt
SGFuZGxlKiBoYW5kbGUsIGNvCiAgICAgICAgICAgICBicmVhazsKIH0KIAordm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudChTb2NrZXRTdHJlYW1IYW5kbGUqIGhh
bmRsZSwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgbV9jbGllbnQtPmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KGJ1ZmZlcmVkQW1vdW50KTsKK30K
Kwogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVh
bUhhbmRsZSogaGFuZGxlLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgZXJyb3IpCiB7CiAgICAg
TE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZEZhaWxTb2NrZXRTdHJlYW0iLCB0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5k
ZXggZTMxYmJlMzE3N2RhZjY2YmNlNjhkYTdiMDlkNTZmZjE5Y2ZlNzRkMC4uNmYxZWQzNGY5M2Zk
N2UwNDVhZWFhNTM1Njg2MTE0NzI1ZGNkYTExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFt
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1
ZmZlcmVkQW1vdW50KFNvY2tldFN0cmVhbUhhbmRsZSosIHNpemVfdCBidWZmZXJlZEFtb3VudCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxl
KiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbENsaWVudC5oCmluZGV4IDQ4MmM0NmUxZTI1NThkMjE3NDY2MmI5MTVkMTMxMjEyYzMy
YWUxNDUuLmNjNzQ0OTQ2NTRjZmZjODhhZDMwZDE4MTU4YTI3ZDY5MzFkOTcwNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCkBA
IC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPikgeyB9CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgeyB9CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZl
cmVkQW1vdW50KSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRz
aGFrZSgpIHsgfQogICAgICAgICBlbnVtIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
IHsKICAgICAgICAgICAgIENsb3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCAxZTI0Y2ZiYmE1MDZlZjc2YjYwNDIxMThmNzE4ODQ4ZWRmNGIz
ZmU4Li5mMGU2M2UxMjUyNTQ5OTRiNWM1YjYyNjBiNTEwNWEzZjdlYTgyMjY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjk5LDYgKzI5OSwxOCBAQCB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3du
UHRyPFZlYwogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0
KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZFJlY2VpdmVCaW5hcnlEYXRhLCBt
X3dvcmtlckNsaWVudFdyYXBwZXIsIGJpbmFyeURhdGEpLCBtX3Rhc2tNb2RlKTsKIH0KIAorc3Rh
dGljIHZvaWQgd29ya2VyQ29udGV4dERpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCB1bnNpZ25lZCBsb25nIGJ1ZmZl
cmVkQW1vdW50KQoreworICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC0+aXNXb3Jr
ZXJDb250ZXh0KCkpOworICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KGJ1ZmZlcmVkQW1vdW50KTsKK30KKwordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6UGVlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgbG9uZyBi
dWZmZXJlZEFtb3VudCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fbG9h
ZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFz
aygmd29ya2VyQ29udGV4dERpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50LCBtX3dvcmtlckNsaWVudFdy
YXBwZXIsIGJ1ZmZlcmVkQW1vdW50KSwgbV90YXNrTW9kZSk7Cit9CisKIHN0YXRpYyB2b2lkIHdv
cmtlckNvbnRleHREaWRTdGFydENsb3NpbmdIYW5kc2hha2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0
LCBjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKaW5k
ZXggNGQ5YWE4OTYxMmExMzk0NTBjMTdlZDI0ZGUwMjMzNzVkMWNiMzY3Mi4uNTUzM2IyYjNiYTJh
YmNhNjYwMjZlM2ZmY2NlNzhmZWE4MGRhNTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApA
QCAtMTA3LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDb25u
ZWN0KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEo
UGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xv
c2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117121</attachid>
            <date>2011-11-29 21:57:43 -0800</date>
            <delta_ts>2011-11-30 06:47:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73290-20111130145741.patch</filename>
            <type>text/plain</type>
            <size>16158</size>
            <attacher name="Takashi Toyoshima">toyoshim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uZTk0OTY0ZDdlZTAwNGQ2ZmZhYTU3NTFiOTVkZjcx
ZmZiMTkyOTU2NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTI5ICBUYWth
c2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQoKSBjYWxsYmFjayB0byBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQKKyAgICAgICAgYW5kIFdlYlNvY2tldENoYW5uZWxDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMg
Y2FsbGJhY2sgaXMgbm90IHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA6IEludm9rZSBuZXcgY2FsbGJhY2suCisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5kaW5nRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg6IENoYW5nZSBy
ZXR1cm5pbmcgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZUJhc2U6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNrIGRlZmluaXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFVwZGF0
ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaDogQWRkIG5ldyBjYWxsYmFjayBpbmhlcml0YW5jZSBhbmQgaXRzIGhlbHBlciBtZXRob2Qu
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBBZGQgbmV3IGNhbGxiYWNrIGhh
bmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaDogQWRkIG5ldyBjYWxsYmFj
ayBpbmhlcml0YW5jZS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OiBBZGQgbmV3IGNhbGxiYWNrIGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgorICAgICAgICAqIHdlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oOiBBZGQgbmV3IGNhbGxiYWNrIGluaGVyaXRhY25lLgorICAgICAg
ICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOiBBZGQgbmV3IGNhbGxiYWNr
IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsQ2xpZW50Ojpk
aWRVcGRhdGVCdWZmZXJlZEFtb3VudCk6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6IEFkZCBuZXcgY2FsbGJhY2sgaGFuZGxpbmcuCisg
ICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkVXBkYXRlQnVmZmVyZWRBbW91bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6IEFkZCBuZXcgY2FsbGJhY2sgaW5oZXJpdGFuY2Ug
YW5kIGl0cyBoZWxwZXIgbWV0aG9kLgorCiAyMDExLTExLTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0
aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Iga25vd2luZyB3aGVu
IGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQgb3IgY2hhbmdlZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRs
aW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKaW5kZXggZDdhN2U1NmMyYzIxMzgxYzBlOTZhYTZmZWQ5
MWQ2NmUwNzhiZjhjOS4uM2JhMzNmMzhkYjY5OTEzYTBkOTMyN2JkZWRlNmJmYjVhZTQyNjBhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTYwLDYgKzYwLDggQEAgYm9vbCBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlOjpzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbV9idWZmZXIuYXBwZW5k
KGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5k
bGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICBpbnQgYnl0ZXNXcml0dGVuID0gMDsKQEAgLTcxLDggKzczLDExIEBAIGJvb2wgU29j
a2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9yIHRvIGluZGljYXRlIHRoYXQgYnVmZmVyIGhh
cyBubyBtb3JlIHNwYWNlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChi
eXRlc1dyaXR0ZW4gPCBsZW5ndGgpCisgICAgaWYgKGJ5dGVzV3JpdHRlbiA8IGxlbmd0aCkgewog
ICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSArIGJ5dGVzV3JpdHRlbiwgbGVuZ3RoIC0gYnl0
ZXNXcml0dGVuKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQt
PmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHN0YXRpY19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZSo+
KHRoaXMpLCBidWZmZXJlZEFtb3VudCgpKTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTExOSw2ICsxMjQsOCBAQCBib29sIFNvY2tldFN0cmVhbUhhbmRsZUJhc2U6OnNlbmRQZW5k
aW5nRGF0YSgpCiAgICAgQVNTRVJUKG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbiA8PSBi
dWZmZXJTaXplKTsKICAgICByZW1haW5pbmdEYXRhLmFwcGVuZChtX2J1ZmZlci5kYXRhKCkgKyBi
eXRlc1dyaXR0ZW4sIG1fYnVmZmVyLnNpemUoKSAtIGJ5dGVzV3JpdHRlbik7CiAgICAgbV9idWZm
ZXIuc3dhcChyZW1haW5pbmdEYXRhKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xp
ZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5k
bGUqPih0aGlzKSwgYnVmZmVyZWRBbW91bnQoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmgKaW5kZXggMjE0YmJkMmY4NjQwMGY0M2UwNmY2MjJjMzQzZDgxNTU1ZjU4OWJh
Mi4uZWY3NjJiMjJiOThjODUyZjBmZTExYWVkZTZkYWE0NmExNGEzZDE1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CiAgICAgICAgIHZvaWQgY2xvc2Uo
KTsgLy8gRGlzY29ubmVjdCBhZnRlciBhbGwgZGF0YSBpbiBidWZmZXIgYXJlIHNlbnQuCiAgICAg
ICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgICAgICBpbnQgYnVmZmVyZWRBbW91bnQoKSBjb25z
dCB7IHJldHVybiBtX2J1ZmZlci5zaXplKCk7IH0KKyAgICAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1v
dW50KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIuc2l6ZSgpOyB9CiAKICAgICAgICAgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQog
ICAgICAgICB2b2lkIHNldENsaWVudChTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhh
bmRsZUNsaWVudC5oCmluZGV4IDVhZmZkMzNhYWY0MTJhNjQyNDkyNDU3OWI4ZTY1MWU3YTViYjdh
MjcuLmZhOTdhNWQ0NDBjMWJiNDIwMmZkZTljZjIwMDU4ZjQzY2Q3M2U2MTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEx
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSop
IHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3Ry
ZWFtSGFuZGxlKikgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU29ja2V0U3Ry
ZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBjaGFyKiAvKmRhdGEqLywgaW50IC8q
bGVuZ3RoKi8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91
bnQoU29ja2V0U3RyZWFtSGFuZGxlKiwgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KSB7IH0KIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUq
LCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHAKaW5kZXggMGRlOWY0MTU4MjZkNWQ1NmU1NWRiZmUzNWNkNzI3YjZk
NGM0YjNkYy4uZjM4ZDJkNjFkYTYwODIyYzgyNDhjNTk3YTdkODg2ODlkZDU2NDNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTQzLDYgKzE0MywxMyBA
QCB2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2
ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7
CiB9CiAKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRV
cGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KQoreworICAg
IG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2soJlRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFj
aywgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcyh0aGlzKSwgYnVmZmVyZWRBbW91bnQpKTsKKyAgICBp
ZiAoIW1fc3VzcGVuZGVkKQorICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7Cit9CisKIHZv
aWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRTdGFydENsb3Np
bmdIYW5kc2hha2UoKQogewogICAgIG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChjcmVhdGVDYWxsYmFj
a1Rhc2soJlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRD
bG9zaW5nSGFuZHNoYWtlQ2FsbGJhY2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsK
QEAgLTE5OCw2ICsyMDUsMTMgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhQ2FsbGJhY2soU2NyaXAKICAgICAgICAgd3Jh
cHBlci0+bV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKGJpbmFyeURhdGEpOwogfQogCit2
b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkVXBkYXRlQnVm
ZmVyZWRBbW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIHdyYXBwZXIsIHVuc2lnbmVkIGxv
bmcgYnVmZmVyZWRBbW91bnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCAhY29udGV4
dCk7CisgICAgaWYgKHdyYXBwZXItPm1fY2xpZW50KQorICAgICAgICB3cmFwcGVyLT5tX2NsaWVu
dC0+ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOworfQorCiB2b2lkIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiB3cmFwcGVyKQogewogICAgIEFTU0VSVF9V
TlVTRUQoY29udGV4dCwgIWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmgKaW5kZXggYTIzYTVkZGJmOTQ2OGI4ZjIwYWU1Y2YyZGVmYTljMTQ4NDU3ZGIzNy4uMjg2
MWUyYTBhMmI1MmNhNWFjZjYyZDk4ZDZlZDA2ZjUyYjlhZjgwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlci5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZENvbm5lY3QoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3Rv
cjxjaGFyPiA+KTsKKyAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxv
bmcgYnVmZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7
CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50
LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1
cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogCkBAIC04Nyw2
ICs4OCw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkaWRDb25uZWN0Q2FsbGJhY2so
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlciopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlciosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZUJpbmFyeURhdGFDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiwgUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7
CisgICAgc3RhdGljIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnRDYWxsYmFjayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
KiwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCk7CiAgICAgc3RhdGljIHZvaWQgZGlkU3Rh
cnRDbG9zaW5nSGFuZHNoYWtlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENsb3NlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlciosIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRB
bW91bnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9u
U3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBlNjVjNDk2NmMwZTM5YTg5
NTM1MTc2ZGUzZTA5ZDEwYzZkMTM2ZDA1Li5iMDQ0ODNkMGFjZjgyMTc3NTViZjA3ZGM5NGNjNjU3
N2I2Y2IyZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01
MDUsNiArNTA1LDExIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkK
ICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQs
IGZhbHNlLCBmYWxzZSkpOwogfQogCit2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRB
bW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBMT0coTmV0d29yaywg
IldlYlNvY2tldCAlcCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCAlbHUiLCB0aGlzLCBidWZmZXJl
ZEFtb3VudCk7Cit9CisKIHZvaWQgV2ViU29ja2V0OjpkaWRTdGFydENsb3NpbmdIYW5kc2hha2Uo
KQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFN0YXJ0Q2xvc2luZ0hhbmRz
aGFrZSIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggOGY4
NTQyOGE2MTYwNzIyNjIzNjIxMDhhZmNmMDVjZWY2NTAzZTczMy4uNzBjMzY1MzlmZGE4NjIzMjAy
YTgyYTMxZDE1NDlhNDA4NThkMmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+KTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5k
c2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcm
IHJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCmluZGV4IDk2MjI2Yjc4N2U0OGFiN2YwM2U1ZWIyNjBlY2U3NmNhZWQ4OTY0ZWEuLmRk
N2E0MjM1ZGM5ZWJlMjcwY2YyODA1YzRmYTI0MGU5OWIxMjlhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzI1LDYgKzMyNSwxMiBA
QCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKFNvY2tl
dFN0cmVhbUhhbmRsZSogaGFuZGxlLCBjbwogICAgICAgICAgICAgYnJlYWs7CiB9CiAKK3ZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQoU29ja2V0U3RyZWFtSGFu
ZGxlKiBoYW5kbGUsIHNpemVfdCBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBpZiAobV9jbGllbnQp
CisgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVCdWZmZXJlZEFtb3VudChidWZmZXJlZEFtb3Vu
dCk7Cit9CisKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbFNvY2tldFN0cmVhbShTb2Nr
ZXRTdHJlYW1IYW5kbGUqIGhhbmRsZSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGVycm9yKQog
ewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBkaWRGYWlsU29ja2V0U3Ry
ZWFtIiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oCmluZGV4IGUzMWJiZTMxNzdkYWY2NmJjZTY4ZGE3YjA5ZDU2ZmYxOWNmZTc0ZDAuLjZmMWVk
MzRmOTNmZDdlMDQ1YWVhYTUzNTY4NjExNDcyNWRjZGExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlblNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFu
ZGxlKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKFNvY2tl
dFN0cmVhbUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRV
cGRhdGVCdWZmZXJlZEFtb3VudChTb2NrZXRTdHJlYW1IYW5kbGUqLCBzaXplX3QgYnVmZmVyZWRB
bW91bnQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVh
bUhhbmRsZSosIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25z
dCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWxDbGllbnQuaAppbmRleCA0ODJjNDZlMWUyNTU4ZDIxNzQ2NjJiOTE1ZDEz
MTIxMmMzMmFlMTQ1Li5jYzc0NDk0NjU0Y2ZmYzg4YWQzMGQxODE1OGEyN2Q2OTMxZDk3MDYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGll
bnQuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmKSB7IH0KICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4p
IHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpIHsgfQor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgbG9u
ZyBidWZmZXJlZEFtb3VudCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENsb3Np
bmdIYW5kc2hha2UoKSB7IH0KICAgICAgICAgZW51bSBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlv
blN0YXR1cyB7CiAgICAgICAgICAgICBDbG9zaW5nSGFuZHNoYWtlSW5jb21wbGV0ZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMWUyNGNmYmJhNTA2ZWY3NmI2MDQyMTE4ZjcxODg0
OGVkZjRiM2ZlOC4uZjBlNjNlMTI1MjU0OTk0YjVjNWI2MjYwYjUxMDVhM2Y3ZWE4MjI2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTI5OSw2ICsyOTksMTggQEAgdm9pZCBXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
UGFzc093blB0cjxWZWMKICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2Vy
Q29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRSZWNlaXZlQmluYXJ5
RGF0YSwgbV93b3JrZXJDbGllbnRXcmFwcGVyLCBiaW5hcnlEYXRhKSwgbV90YXNrTW9kZSk7CiB9
CiAKK3N0YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRVcGRhdGVCdWZmZXJlZEFtb3VudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciwgdW5zaWduZWQgbG9u
ZyBidWZmZXJlZEFtb3VudCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQt
PmlzV29ya2VyQ29udGV4dCgpKTsKKyAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRVcGRhdGVC
dWZmZXJlZEFtb3VudChidWZmZXJlZEFtb3VudCk7Cit9CisKK3ZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVk
IGxvbmcgYnVmZmVyZWRBbW91bnQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxs
YmFja1Rhc2soJndvcmtlckNvbnRleHREaWRVcGRhdGVCdWZmZXJlZEFtb3VudCwgbV93b3JrZXJD
bGllbnRXcmFwcGVyLCBidWZmZXJlZEFtb3VudCksIG1fdGFza01vZGUpOworfQorCiBzdGF0aWMg
dm9pZCB3b3JrZXJDb250ZXh0RGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyKQogewogICAgIEFTU0VSVF9VTlVTRUQo
Y29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oCmluZGV4IDRkOWFhODk2MTJhMTM5NDUwYzE3ZWQyNGRlMDIzMzc1ZDFjYjM2NzIuLjU1MzNi
MmIzYmEyYWJjYTY2MDI2ZTNmZmNjZTc4ZmVhODBkYTUyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29ubmVjdCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCaW5h
cnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4pOworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91
bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2Rl
LCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>