<?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>60260</bug_id>
          
          <creation_ts>2011-05-05 03:03:23 -0700</creation_ts>
          <short_desc>[Chromium] Implement the embedders for the HTML5 Track List objects</short_desc>
          <delta_ts>2011-08-12 13:46:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</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>
          <dependson>60184</dependson>
          <blocked>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Leandro Graciá Gil">leandrogracia</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>annacc</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>fishd</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>398641</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-05-05 03:03:23 -0700</bug_when>
    <thetext>Implement in WebKit Chromium the WebTrackList, WebExclusiveTrackList and WebMultipleTrackList embedder objects for their WebCore counterparts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398642</commentid>
    <comment_count>1</comment_count>
      <attachid>92398</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-05-05 03:07:03 -0700</bug_when>
    <thetext>Created attachment 92398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398648</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-05 03:37:19 -0700</bug_when>
    <thetext>Adding fishd, who like to review all changes to the Chromium/WebKit API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398652</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-05 03:53:06 -0700</bug_when>
    <thetext>Attachment 92398 did not pass chromium-ews:
Output: http://queues.webkit.org/results/8556921</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413224</commentid>
    <comment_count>4</comment_count>
      <attachid>95564</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-06-01 01:39:54 -0700</bug_when>
    <thetext>Created attachment 95564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417195</commentid>
    <comment_count>5</comment_count>
      <attachid>96411</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-06-08 05:54:36 -0700</bug_when>
    <thetext>Created attachment 96411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417205</commentid>
    <comment_count>6</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-06-08 06:11:34 -0700</bug_when>
    <thetext>Changed platform to All/All</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417313</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-06-08 10:03:41 -0700</bug_when>
    <thetext>Darin, would you like to review this one since it is a new chromium API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421132</commentid>
    <comment_count>8</comment_count>
      <attachid>97260</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-06-15 01:53:53 -0700</bug_when>
    <thetext>Created attachment 97260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421338</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-06-15 09:05:34 -0700</bug_when>
    <thetext>Can you tell me more about the design here?  It seems like you need to bridge to some code that will live in Chromium.  Do you have a Chromium CL for the other side that I can also see?  Any other background you can provide about this feature would be helpful too.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423600</commentid>
    <comment_count>10</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-06-20 04:59:23 -0700</bug_when>
    <thetext>Well, we don&apos;t really have any design doc for this feature, except the whatwg spec &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#multipletracklist&gt; and &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#obtaining-local-multimedia-content&gt;

The design idea is to do as little as possible in webkit and to delegate as much as possible to the port.

We don&apos;t have a corresponding chromium CL yet, but would like to has this in first.


(In reply to comment #9)
&gt; Can you tell me more about the design here?  It seems like you need to bridge to some code that will live in Chromium.  Do you have a Chromium CL for the other side that I can also see?  Any other background you can provide about this feature would be helpful too.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426600</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-06-23 16:25:58 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Well, we don&apos;t really have any design doc for this feature, except the whatwg spec &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#multipletracklist&gt; and &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#obtaining-local-multimedia-content&gt;
&gt; 
&gt; The design idea is to do as little as possible in webkit and to delegate as much as possible to the port.
&gt; 
&gt; We don&apos;t have a corresponding chromium CL yet, but would like to has this in first.

This is usually the wrong approach.  It is helpful to keep as much of the implementation of the web platform, especially the tricky bits, in WebKit.  Now, we have some reasons why we delegate out to Chromium.  For example, if the implementation of a platform component requires IPC escalation to the Chromium browser process, then it can&apos;t be implemented in WebKit.  It may also be the case that you are implementing this based on libraries in the Chromium repository.

It would help if you could explain why you feel the need to split complexity between two code bases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439148</commentid>
    <comment_count>12</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-07-19 08:03:03 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Well, we don&apos;t really have any design doc for this feature, except the whatwg spec &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#multipletracklist&gt; and &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#obtaining-local-multimedia-content&gt;
&gt; &gt; 
&gt; &gt; The design idea is to do as little as possible in webkit and to delegate as much as possible to the port.
&gt; &gt; 
&gt; &gt; We don&apos;t have a corresponding chromium CL yet, but would like to has this in first.
&gt; 
&gt; This is usually the wrong approach.  It is helpful to keep as much of the implementation of the web platform, especially the tricky bits, in WebKit.  Now, we have some reasons why we delegate out to Chromium.  For example, if the implementation of a platform component requires IPC escalation to the Chromium browser process, then it can&apos;t be implemented in WebKit.  It may also be the case that you are implementing this based on libraries in the Chromium repository.
&gt; 
&gt; It would help if you could explain why you feel the need to split complexity between two code bases.

Then I understand you better. We have a good reason for the divide and that is the webrtc open source library that was recently added to chromium. That together with upcoming changes to libjingle and other chromium work consists of the complete corresponding chromium implementation. Really there are very little code that can be moved from the chromium side to webkit, and that move will introduce more complexity.

However I have been contacted by the Ericsson developers and they propose to add some sort of proxy functionality in WebKit so that ports that wants to do everything in WebKit can do so equally easily. I am very much in favour of such a solution and will meet with them to discuss the plan asap everyone are back from vacations.

Right now however I would like to start submitting our current bindings.

And FYI I have removed the review? from this patch since the WebCore API has changed, and are waiting for feedback from you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446478</commentid>
    <comment_count>13</comment_count>
      <attachid>102908</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-04 07:01:25 -0700</bug_when>
    <thetext>Created attachment 102908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446483</commentid>
    <comment_count>14</comment_count>
      <attachid>102908</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-08-04 07:12:33 -0700</bug_when>
    <thetext>Comment on attachment 102908
Patch

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

&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:33
&gt; +#include &quot;WebString.h&quot;

This can be removed as it&apos;s not required either in the h or cpp files.

&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:34
&gt; +#include &quot;WebVector.h&quot;

Same for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446484</commentid>
    <comment_count>15</comment_count>
      <attachid>102912</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-04 07:16:36 -0700</bug_when>
    <thetext>Created attachment 102912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446485</commentid>
    <comment_count>16</comment_count>
      <attachid>102908</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-04 07:17:30 -0700</bug_when>
    <thetext>Comment on attachment 102908
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:33
&gt;&gt; +#include &quot;WebString.h&quot;
&gt; 
&gt; This can be removed as it&apos;s not required either in the h or cpp files.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:34
&gt;&gt; +#include &quot;WebVector.h&quot;
&gt; 
&gt; Same for this.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447221</commentid>
    <comment_count>17</comment_count>
      <attachid>102912</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-05 08:44:57 -0700</bug_when>
    <thetext>Comment on attachment 102912
Patch

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

&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:32
&gt; +#include &quot;WebString.h&quot;

WebString can just be forward declared.

&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:50
&gt; +    WebMediaStreamTrack(WTF::PassRefPtr&lt;WebCore::MediaStreamTrack&gt;);

nit: parameter should be &apos;const Foo&amp;&apos;

&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:58
&gt; +typedef WebVector&lt;WebMediaStreamTrack&gt; WebTrackVector;

nit: the name of this type should be WebMediaStreamTrackVector.  also, we normally create a unique header file for each top-level type, so this should go into a WebMediaStreamTrackVector.h all by its lonesome self.

but i have to wonder... what is the difference between a WebMediaStreamTrackVector and a WebMediaStreamTrackList?  why do we need two container types for WebMediaStreamTrack objects?

&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:49
&gt; +    WebMediaStreamTrackList(WTF::PassRefPtr&lt;WebCore::MediaStreamTrackList&gt;);

nit: parameter should be &apos;const Foo&amp;&apos;

&gt; Source/WebKit/chromium/src/WebMediaStreamTrackList.cpp:42
&gt; +    m_private = WebCore::MediaStreamTrackList::create(tracks);

nit: please add a &apos;using namespace WebCore&apos; at the top of this file and remove the WebCore:: prefixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447917</commentid>
    <comment_count>18</comment_count>
      <attachid>102912</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-08 01:52:24 -0700</bug_when>
    <thetext>Comment on attachment 102912
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:32
&gt;&gt; +#include &quot;WebString.h&quot;
&gt; 
&gt; WebString can just be forward declared.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:50
&gt;&gt; +    WebMediaStreamTrack(WTF::PassRefPtr&lt;WebCore::MediaStreamTrack&gt;);
&gt; 
&gt; nit: parameter should be &apos;const Foo&amp;&apos;

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:58
&gt;&gt; +typedef WebVector&lt;WebMediaStreamTrack&gt; WebTrackVector;
&gt; 
&gt; nit: the name of this type should be WebMediaStreamTrackVector.  also, we normally create a unique header file for each top-level type, so this should go into a WebMediaStreamTrackVector.h all by its lonesome self.
&gt; 
&gt; but i have to wonder... what is the difference between a WebMediaStreamTrackVector and a WebMediaStreamTrackList?  why do we need two container types for WebMediaStreamTrack objects?

This was just to prettify the constructor and usage of  WebMediaStreamTrackList. Removed.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:49
&gt;&gt; +    WebMediaStreamTrackList(WTF::PassRefPtr&lt;WebCore::MediaStreamTrackList&gt;);
&gt; 
&gt; nit: parameter should be &apos;const Foo&amp;&apos;

Done.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamTrackList.cpp:42
&gt;&gt; +    m_private = WebCore::MediaStreamTrackList::create(tracks);
&gt; 
&gt; nit: please add a &apos;using namespace WebCore&apos; at the top of this file and remove the WebCore:: prefixes.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447919</commentid>
    <comment_count>19</comment_count>
      <attachid>103223</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-08 01:54:54 -0700</bug_when>
    <thetext>Created attachment 103223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448187</commentid>
    <comment_count>20</comment_count>
      <attachid>103223</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-08 12:42:56 -0700</bug_when>
    <thetext>Comment on attachment 103223
Patch

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

&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:32
&gt; +#include &quot;WebVector.h&quot;

nit: this include is not necessary.

&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:47
&gt; +    WEBKIT_EXPORT void set(const WebString&amp; id, const WebString&amp; kind, const WebString&amp; label);

since this performs and allocation, i&apos;d probably name the method &apos;initialize()&apos;.  that&apos;d be more consistent with other WebKit APIs too.

perhaps you should have an isNull() function too?  see for example WebHistoryItem, which similarly wraps a reference counted WebCore class.

&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:31
&gt; +#include &quot;WebMediaStreamTrack.h&quot;

WebMediaStreamTrack can just be forward declared, right?

&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:33
&gt; +

this one needs the WebVector include, or at least a forward declaration.  forward declaration is more common in WebKit APIs.

template &lt;typename T&gt; class WebVector;

&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:45
&gt; +    WEBKIT_EXPORT void set(const WebVector&lt;WebMediaStreamTrack&gt;&amp; webTracks);

nit: same suggestion.  this method should probably be named initialize() and there should be an isNull() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448508</commentid>
    <comment_count>21</comment_count>
      <attachid>103223</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-09 04:33:05 -0700</bug_when>
    <thetext>Comment on attachment 103223
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:32
&gt;&gt; +#include &quot;WebVector.h&quot;
&gt; 
&gt; nit: this include is not necessary.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrack.h:47
&gt;&gt; +    WEBKIT_EXPORT void set(const WebString&amp; id, const WebString&amp; kind, const WebString&amp; label);
&gt; 
&gt; since this performs and allocation, i&apos;d probably name the method &apos;initialize()&apos;.  that&apos;d be more consistent with other WebKit APIs too.
&gt; 
&gt; perhaps you should have an isNull() function too?  see for example WebHistoryItem, which similarly wraps a reference counted WebCore class.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:31
&gt;&gt; +#include &quot;WebMediaStreamTrack.h&quot;
&gt; 
&gt; WebMediaStreamTrack can just be forward declared, right?

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:33
&gt;&gt; +
&gt; 
&gt; this one needs the WebVector include, or at least a forward declaration.  forward declaration is more common in WebKit APIs.
&gt; 
&gt; template &lt;typename T&gt; class WebVector;

Done.

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamTrackList.h:45
&gt;&gt; +    WEBKIT_EXPORT void set(const WebVector&lt;WebMediaStreamTrack&gt;&amp; webTracks);
&gt; 
&gt; nit: same suggestion.  this method should probably be named initialize() and there should be an isNull() method.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448509</commentid>
    <comment_count>22</comment_count>
      <attachid>103345</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-08-09 04:34:02 -0700</bug_when>
    <thetext>Created attachment 103345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450562</commentid>
    <comment_count>23</comment_count>
      <attachid>103345</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-12 12:27:27 -0700</bug_when>
    <thetext>Comment on attachment 103345
Patch

R=me

I still feel a bit uncomfortable with this change since it is adding unused code.  The big picture isn&apos;t at all clear to me.  Perhaps when you add a patch that makes use of these new classes, things will start to make more sense to me.  I might end up suggesting a very different approach at that point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450632</commentid>
    <comment_count>24</comment_count>
      <attachid>103345</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-12 13:46:29 -0700</bug_when>
    <thetext>Comment on attachment 103345
Patch

Clearing flags on attachment: 103345

Committed r92989: &lt;http://trac.webkit.org/changeset/92989&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450633</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-12 13:46:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92398</attachid>
            <date>2011-05-05 03:07:03 -0700</date>
            <delta_ts>2011-06-01 01:39:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110505110701.patch</filename>
            <type>text/plain</type>
            <size>19656</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
M2MxY2M1MjM4MTEwOTU1ZGQ5ODg1NTNkYmMzYTRhZGQzNTFlN2I3YS4uNGU4MTUxY2IxMTA5NzEz
N2MyMTEzODQ4N2ZhNWQ4NDllOWIyZGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxMS0wNS0wNSAgTGVhbmRybyBHcmFjaWEgR2lsICA8bGVhbmRyb2dy
YWNpYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBlbWJlZGRlcnMgZm9yIHRoZSBIVE1MNSBUcmFjayBM
aXN0IG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDI2MAorCisgICAgICAgIEltcGxlbWVudCBpbiBXZWJLaXQgQ2hyb21pdW0gdGhlIFdl
YlRyYWNrTGlzdCwgV2ViRXhjbHVzaXZlVHJhY2tMaXN0IGFuZAorICAgICAgICBXZWJNdWx0aXBs
ZVRyYWNrTGlzdCBlbWJlZGRlciBvYmplY3RzIGZvciB0aGVpciBXZWJDb3JlIGNvdW50ZXJwYXJ0
cy4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkV4Y2x1c2l2
ZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRXhjbHVzaXZlVHJhY2tM
aXN0OjpXZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNp
dmVUcmFja0xpc3Q6On5XZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJNdWx0aXBsZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTXVsdGlw
bGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TXVsdGlwbGVUcmFja0xpc3Q6On5XZWJNdWx0aXBsZVRyYWNrTGlzdCk6CisgICAgICAgICogcHVi
bGljL1dlYlRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6Oldl
YlRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6On5XZWJUcmFjayk6CisgICAgICAg
ICogc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJFeGNsdXNpdmVUcmFja0xpc3Q6OnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNpdmVUcmFj
a0xpc3Q6OldlYkV4Y2x1c2l2ZVRyYWNrTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2
ZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNdWx0aXBsZVRyYWNrTGlzdDo6c2V0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJUcmFja0xpc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6OnNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlRyYWNrOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpXZWJU
cmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6VHJhY2s+KToKKwogMjAxMS0wNS0wMyAgSGFucyBXZW5uYm9yZyAgPGhhbnNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDNlMGIwZDkxMjNlNDAyNjZjYzMxMWM3ZTgxZjI2ZmQ1
MGZjM2VlNjkuLjQwYTY0YzYwMmVhY2QxMjJmZmI1NjkxMzlmZGM2MWQ5YTAyYjhjZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE1MCw2ICsxNTAsNyBAQAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViRWRpdGluZ0FjdGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJFeGNlcHRpb25Db2Rl
LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRXh0ZXJuYWxQb3B1cE1lbnUuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJFeHRlcm5hbFBvcHVwTWVudUNsaWVudC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oJywKQEAgLTIxNCw2ICsy
MTUsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xpZW50Lmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWltZVJlZ2lzdHJ5LmgnLAorICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViTXVsdGlwbGVUcmFja0xpc3QuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJO
YXZpZ2F0aW9uVHlwZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5ldHdvcmtTdGF0
ZU5vdGlmaWVyLmgnLApAQCAtMjc5LDYgKzI4MSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJUZXh0SW5wdXRUeXBlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dFJ1
bi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlRocmVhZFNhZmVEYXRhLmgnLAorICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViVHJhY2tMaXN0LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViVVJMLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVVJMRXJyb3IuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVUkxMb2FkZXIuaCcsCkBAIC00NTMsNiArNDU2
LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYkVsZW1lbnQuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYkVudGl0aWVzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJFbnRp
dGllcy5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5oJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNwcCcsCkBA
IC01MTEsNiArNTE1LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhRWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCcsCisgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViTmFtZWROb2RlTWFwLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJO
ZXR3b3JrU3RhdGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTm9kZS5j
cHAnLApAQCAtNTYzLDYgKzU2OCw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdHJpbmcu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlRleHRSdW4uY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYlRocmVhZFNhZmVEYXRhLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJUcmFja0xpc3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlVSTC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViVVJMTG9hZFRpbWluZy5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViVVJMUmVxdWVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTZjN2JkYjFk
OTlkOTRjM2EzMGM5ZDEzMmRmYmM1YjIwZjI4NDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFeGNsdXNpdmVUcmFja0xpc3RfaAor
I2RlZmluZSBXZWJFeGNsdXNpdmVUcmFja0xpc3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgi
CisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorI2luY2x1ZGUgIldlYlRyYWNrTGlzdC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBFeGNsdXNpdmVUcmFja0xpc3Q7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJFeGNsdXNpdmVUcmFja0xpc3QgeworcHVibGlj
OgorICAgIC8vIFNhbWUgYXMgV2ViQ29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0OjpOb1NlbGVjdGlv
bi4KKyAgICBzdGF0aWMgY29uc3QgbG9uZyBOb1NlbGVjdGlvbiA9IC0xOworCisgICAgV2ViRXhj
bHVzaXZlVHJhY2tMaXN0KCkgeyB9CisgICAgfldlYkV4Y2x1c2l2ZVRyYWNrTGlzdCgpIHsgcmVz
ZXQoKTsgfQorCisgICAgV0VCS0lUX0FQSSB2b2lkIHNldChjb25zdCBXZWJUcmFja0xpc3QmLCBs
b25nIHNlbGVjdGVkSW5kZXggPSBOb1NlbGVjdGlvbik7CisgICAgV0VCS0lUX0FQSSB2b2lkIHJl
c2V0KCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJFeGNsdXNpdmVUcmFj
a0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlzdD4pOworICAg
IG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q+KCkg
Y29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OkV4
Y2x1c2l2ZVRyYWNrTGlzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBXZWJFeGNsdXNpdmVUcmFja0xpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTXVsdGlwbGVUcmFja0xpc3QuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk11bHRpcGxlVHJhY2tMaXN0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWQ4ODg1ODIwYjMzMTUyY2M2ODc3NzJkN2NmZjVjMWE4YzFhYmI5NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk11bHRpcGxlVHJhY2tMaXN0LmgK
QEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJNdWx0aXBsZVRyYWNr
TGlzdF9oCisjZGVmaW5lIFdlYk11bHRpcGxlVHJhY2tMaXN0X2gKKworI2luY2x1ZGUgIldlYkNv
bW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJUcmFja0xp
c3QuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgTXVsdGlwbGVUcmFja0xpc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0eXBlZGVm
IFdlYlZlY3Rvcjxib29sPiBXZWJFbmFibGVkVHJhY2tzOworCitjbGFzcyBXZWJNdWx0aXBsZVRy
YWNrTGlzdCB7CitwdWJsaWM6CisgICAgV2ViTXVsdGlwbGVUcmFja0xpc3QoKSB7IH0KKyAgICB+
V2ViTXVsdGlwbGVUcmFja0xpc3QoKSB7IHJlc2V0KCk7IH0KKworICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXQoY29uc3QgV2ViVHJhY2tMaXN0JiwgY29uc3QgV2ViRW5hYmxlZFRyYWNrcyYpOworICAg
IFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisg
ICAgV2ViTXVsdGlwbGVUcmFja0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok11bHRpcGxl
VHJhY2tMaXN0Pik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok11bHRp
cGxlVHJhY2tMaXN0PigpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViUHJpdmF0
ZVB0cjxXZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJNdWx0aXBsZVRyYWNrTGlzdF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUcmFja0xpc3QuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRyYWNrTGlzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
ZGM2ZjNmMWNlYTMyYTQ0OGJhNWU1ZTZhODY4ZWFkNjk4MWQ4MTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUcmFja0xpc3QuaApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlRyYWNrTGlzdF9oCisjZGVmaW5lIFdl
YlRyYWNrTGlzdF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2
YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViVmVjdG9yLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFRyYWNrOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViVHJhY2sgeworcHVibGljOgorICAgIFdlYlRyYWNrKCkgeyB9Cisg
ICAgfldlYlRyYWNrKCkgeyByZXNldCgpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0KGNv
bnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0IFdlYlN0cmluZyYga2luZCwgY29uc3QgV2ViU3RyaW5n
JiBsYWJlbCwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSk7CisgICAgV0VCS0lUX0FQSSB2b2lk
IHJlc2V0KCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJUcmFjayhXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6VHJhY2s+KTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6VHJhY2s+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQ
cml2YXRlUHRyPFdlYkNvcmU6OlRyYWNrPiBtX3ByaXZhdGU7Cit9OworCit0eXBlZGVmIFdlYlZl
Y3RvcjxXZWJUcmFjaz4gV2ViVHJhY2tMaXN0OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYlRyYWNrTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDUyOTY2NWUxMjE1
YmY0YjQ5ODRjMTcwYTE5MjI3MWViMDYyYjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmNwcApAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRXhj
bHVzaXZlVHJhY2tMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSB8fCBFTkFCTEUo
VklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJFeGNsdXNpdmVUcmFja0xpc3QuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViRXhjbHVzaXZlVHJhY2tMaXN0OjpzZXQoY29uc3QgV2Vi
VHJhY2tMaXN0JiB3ZWJUcmFja3MsIGxvbmcgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBXZWJDb3Jl
OjpUcmFja1ZlY3RvciB0cmFja3Mod2ViVHJhY2tzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB3ZWJUcmFja3Muc2l6ZSgpOyArK2kpCisgICAgICAgIHRyYWNrc1tpXSA9IHdl
YlRyYWNrc1tpXTsKKworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlz
dDo6Y3JlYXRlKHRyYWNrcywgc2VsZWN0ZWRJbmRleCk7Cit9CisKK3ZvaWQgV2ViRXhjbHVzaXZl
VHJhY2tMaXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK1dlYkV4
Y2x1c2l2ZVRyYWNrTGlzdDo6V2ViRXhjbHVzaXZlVHJhY2tMaXN0KFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q+IHRyYWNrTGlzdCkKKyAgICA6IG1fcHJpdmF0ZSh0
cmFja0xpc3QpCit7Cit9CisKK1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlzdD4oKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTXVsdGlwbGVUcmFja0xpc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTXVsdGlwbGVUcmFja0xpc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEwODhlM2EzYzcxOTEwN2M1NzU1Y2JmYjZiZTM0NDQ5OGJmMzZiNTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNdWx0aXBsZVRyYWNr
TGlzdC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk11bHRpcGxlVHJhY2tMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSB8fCBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJNdWx0aXBsZVRy
YWNrTGlzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJNdWx0aXBsZVRyYWNr
TGlzdDo6c2V0KGNvbnN0IFdlYlRyYWNrTGlzdCYgd2ViVHJhY2tzLCBjb25zdCBXZWJFbmFibGVk
VHJhY2tzJiB3ZWJFbmFibGVkVHJhY2tzKQoreworICAgIEFTU0VSVCh3ZWJUcmFja3Muc2l6ZSgp
ID09IHdlYkVuYWJsZWRUcmFja3Muc2l6ZSgpKTsKKworICAgIFdlYkNvcmU6OlRyYWNrVmVjdG9y
IHRyYWNrcyh3ZWJUcmFja3Muc2l6ZSgpKTsKKyAgICBXZWJDb3JlOjpFbmFibGVkVHJhY2tzIGVu
YWJsZWRUcmFja3Mod2ViRW5hYmxlZFRyYWNrcy5zaXplKCkpOworCisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB3ZWJUcmFja3Muc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgdHJhY2tzW2ldID0g
d2ViVHJhY2tzW2ldOworICAgICAgICBlbmFibGVkVHJhY2tzW2ldID0gd2ViRW5hYmxlZFRyYWNr
c1tpXTsKKyAgICB9CisKKyAgICBtX3ByaXZhdGUgPSBXZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlz
dDo6Y3JlYXRlKHRyYWNrcywgZW5hYmxlZFRyYWNrcyk7Cit9CisKK3ZvaWQgV2ViTXVsdGlwbGVU
cmFja0xpc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2ViTXVs
dGlwbGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4gdHJhY2tMaXN0KQorICAgIDogbV9wcml2YXRlKHRyYWNr
TGlzdCkKK3sKK30KKworV2ViTXVsdGlwbGVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4oKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByaXZhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVHJhY2tMaXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlRyYWNrTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIwOTA0Y2FiMTQ4
NzE0YmQzZjhiOWVhZTZkYjIzYjAyYmRmMDkwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlRyYWNrTGlzdC5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRyYWNrTGlzdC5o
IgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQorCisj
aW5jbHVkZSAiVHJhY2tMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlRy
YWNrOjpzZXQoY29uc3QgV2ViU3RyaW5nJiBpZCwgY29uc3QgV2ViU3RyaW5nJiBraW5kLCBjb25z
dCBXZWJTdHJpbmcmIGxhYmVsLCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKQoreworICAgIG1f
cHJpdmF0ZSA9IFdlYkNvcmU6OlRyYWNrOjpjcmVhdGUoaWQsIGtpbmQsIGxhYmVsLCBsYW5ndWFn
ZSk7Cit9CisKK3ZvaWQgV2ViVHJhY2s6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQo
KTsKK30KKworV2ViVHJhY2s6OldlYlRyYWNrKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUcmFj
az4gdHJhY2spCisgICAgOiBtX3ByaXZhdGUodHJhY2spCit7Cit9CisKK1dlYlRyYWNrOjpvcGVy
YXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VHJhY2s+KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pIHx8IEVOQUJMRShWSURFT19UUkFDSykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95564</attachid>
            <date>2011-06-01 01:39:54 -0700</date>
            <delta_ts>2011-06-08 05:54:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110601103952.patch</filename>
            <type>text/plain</type>
            <size>19664</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc3ODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NmZlYTZlMjIzZWFiMzU4OTdlODZhNTc5NDk0MmY0ZGM3OGJkNmQ0My4uZTlhZjcwZmYyMzYxM2Vk
M2ZmYWUzZThhMjc2ZDhiNWEyNDYyMmVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxMS0wNi0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRkZXJzIGZvciB0aGUgSFRNTDUgVHJhY2sg
TGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDI2MAorCisgICAgICAgIEltcGxlbWVudCBpbiBXZWJLaXQgQ2hyb21pdW0gdGhlIFdl
YlRyYWNrTGlzdCwgV2ViRXhjbHVzaXZlVHJhY2tMaXN0IGFuZAorICAgICAgICBXZWJNdWx0aXBs
ZVRyYWNrTGlzdCBlbWJlZGRlciBvYmplY3RzIGZvciB0aGVpciBXZWJDb3JlIGNvdW50ZXJwYXJ0
cy4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkV4Y2x1c2l2
ZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRXhjbHVzaXZlVHJhY2tM
aXN0OjpXZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNp
dmVUcmFja0xpc3Q6On5XZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJNdWx0aXBsZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTXVsdGlw
bGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TXVsdGlwbGVUcmFja0xpc3Q6On5XZWJNdWx0aXBsZVRyYWNrTGlzdCk6CisgICAgICAgICogcHVi
bGljL1dlYlRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6Oldl
YlRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6On5XZWJUcmFjayk6CisgICAgICAg
ICogc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJFeGNsdXNpdmVUcmFja0xpc3Q6OnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNpdmVUcmFj
a0xpc3Q6OldlYkV4Y2x1c2l2ZVRyYWNrTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2
ZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNdWx0aXBsZVRyYWNrTGlzdDo6c2V0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJUcmFja0xpc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6OnNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlRyYWNrOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpXZWJU
cmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6VHJhY2s+KToKKwogMjAxMS0wNS0zMSAgTWlraGFpbCBOYWdhbm92ICA8bW5h
Z2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggYmY4ZTZjNzU0YTNiZDg3ODA5YWJkZDFi
YTRmOWFiNDRkN2UzOTJkMi4uZGUwMjkxNTA1YjFkMTQ2ZmNmNTJiMTNjOGQ2OGQzZWNhYTc2NWVh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTQ5LDYgKzE0OSw3IEBACiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJFZGl0aW5nQWN0aW9uLmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViRWxlbWVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkV4Y2Vw
dGlvbkNvZGUuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJFeGNsdXNpdmVUcmFja0xp
c3QuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJFeHRlcm5hbFBvcHVwTWVudS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkV4dGVybmFsUG9wdXBNZW51Q2xpZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgnLApAQCAt
MjE0LDYgKzIxNSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZXNzYWdlUG9ydENo
YW5uZWwuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZXNzYWdlUG9ydENoYW5uZWxD
bGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNaW1lUmVnaXN0cnkuaCcsCisg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYk5hbWVkTm9kZU1hcC5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYk5hdmlnYXRpb25UeXBlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTmV0
d29ya1N0YXRlTm90aWZpZXIuaCcsCkBAIC0yODAsNiArMjgyLDcgQEAKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlRleHRJbnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJUZXh0UnVuLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEu
aCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUcmFja0xpc3QuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJVUkwuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVUkxF
cnJvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlVSTExvYWRlci5oJywKQEAgLTQ1
NCw2ICs0NTcsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViRW50aXRpZXMuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYkVudGl0aWVzLmgnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViRXhjbHVzaXZlVHJhY2tM
aXN0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25J
bXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25J
bXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwu
Y3BwJywKQEAgLTUxMiw2ICs1MTYsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFF
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5o
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk11bHRpcGxlVHJhY2tMaXN0LmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJOYW1lZE5vZGVNYXAuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJOb2RlLmNwcCcsCkBAIC01NjQsNiArNTY5LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dl
YlN0cmluZy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVGV4dFJ1bi5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViVGhyZWFkU2FmZURhdGEuY3BwJywKKyAgICAgICAgICAgICAg
ICAnc3JjL1dlYlRyYWNrTGlzdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVVJMLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJVUkxMb2FkVGltaW5nLmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJVUkxSZXF1ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5
NmM3YmRiMWQ5OWQ5NGMzYTMwYzlkMTMyZGZiYzViMjBmMjg0MDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuaApA
QCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkV4Y2x1c2l2ZVRyYWNr
TGlzdF9oCisjZGVmaW5lIFdlYkV4Y2x1c2l2ZVRyYWNrTGlzdF9oCisKKyNpbmNsdWRlICJXZWJD
b21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViVHJhY2tM
aXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4Y2x1c2l2ZVRyYWNrTGlzdDsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkV4Y2x1c2l2ZVRyYWNrTGlzdCB7
CitwdWJsaWM6CisgICAgLy8gU2FtZSBhcyBXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q6Ok5v
U2VsZWN0aW9uLgorICAgIHN0YXRpYyBjb25zdCBsb25nIE5vU2VsZWN0aW9uID0gLTE7CisKKyAg
ICBXZWJFeGNsdXNpdmVUcmFja0xpc3QoKSB7IH0KKyAgICB+V2ViRXhjbHVzaXZlVHJhY2tMaXN0
KCkgeyByZXNldCgpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0KGNvbnN0IFdlYlRyYWNr
TGlzdCYsIGxvbmcgc2VsZWN0ZWRJbmRleCA9IE5vU2VsZWN0aW9uKTsKKyAgICBXRUJLSVRfQVBJ
IHZvaWQgcmVzZXQoKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYkV4Y2x1
c2l2ZVRyYWNrTGlzdChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0
Pik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNr
TGlzdD4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2Vi
Q29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0PiBtX3ByaXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkV4Y2x1c2l2ZVRyYWNrTGlzdF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTXVsdGlwbGVUcmFja0xpc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZDg4ODU4MjBiMzMxNTJjYzY4Nzc3MmQ3Y2ZmNWMxYThjMWFiYjk2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTXVsdGlwbGVUcmFj
a0xpc3QuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk11bHRp
cGxlVHJhY2tMaXN0X2gKKyNkZWZpbmUgV2ViTXVsdGlwbGVUcmFja0xpc3RfaAorCisjaW5jbHVk
ZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorI2luY2x1ZGUgIldl
YlRyYWNrTGlzdC5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBNdWx0aXBsZVRyYWNrTGlzdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3R5cGVkZWYgV2ViVmVjdG9yPGJvb2w+IFdlYkVuYWJsZWRUcmFja3M7CisKK2NsYXNzIFdlYk11
bHRpcGxlVHJhY2tMaXN0IHsKK3B1YmxpYzoKKyAgICBXZWJNdWx0aXBsZVRyYWNrTGlzdCgpIHsg
fQorICAgIH5XZWJNdWx0aXBsZVRyYWNrTGlzdCgpIHsgcmVzZXQoKTsgfQorCisgICAgV0VCS0lU
X0FQSSB2b2lkIHNldChjb25zdCBXZWJUcmFja0xpc3QmLCBjb25zdCBXZWJFbmFibGVkVHJhY2tz
Jik7CisgICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5U
QVRJT04KKyAgICBXZWJNdWx0aXBsZVRyYWNrTGlzdChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
TXVsdGlwbGVUcmFja0xpc3Q+KTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6TXVsdGlwbGVUcmFja0xpc3Q+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6Ok11bHRpcGxlVHJhY2tMaXN0PiBtX3ByaXZhdGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk11bHRpcGxlVHJhY2tMaXN0
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRyYWNrTGlz
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVHJhY2tMaXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGJkYzZmM2YxY2VhMzJhNDQ4YmE1ZTVlNmE4NjhlYWQ2OTgxZDgxNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRyYWNrTGlzdC5oCkBA
IC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVHJhY2tMaXN0X2gKKyNk
ZWZpbmUgV2ViVHJhY2tMaXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUg
IldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJW
ZWN0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVHJhY2s7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJUcmFjayB7CitwdWJsaWM6CisgICAgV2ViVHJhY2so
KSB7IH0KKyAgICB+V2ViVHJhY2soKSB7IHJlc2V0KCk7IH0KKworICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXQoY29uc3QgV2ViU3RyaW5nJiBpZCwgY29uc3QgV2ViU3RyaW5nJiBraW5kLCBjb25zdCBX
ZWJTdHJpbmcmIGxhYmVsLCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKTsKKyAgICBXRUJLSVRf
QVBJIHZvaWQgcmVzZXQoKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYlRy
YWNrKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUcmFjaz4pOworICAgIG9wZXJhdG9yIFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpUcmFjaz4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6VHJhY2s+IG1fcHJpdmF0ZTsKK307CisKK3R5cGVk
ZWYgV2ViVmVjdG9yPFdlYlRyYWNrPiBXZWJUcmFja0xpc3Q7CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gV2ViVHJhY2tMaXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkNTI5
NjY1ZTEyMTViZjRiNDk4NGMxNzBhMTkyMjcxZWIwNjJiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuY3BwCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJFeGNsdXNpdmVUcmFja0xpc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pIHx8
IEVOQUJMRShWSURFT19UUkFDSykKKworI2luY2x1ZGUgIkV4Y2x1c2l2ZVRyYWNrTGlzdC5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJFeGNsdXNpdmVUcmFja0xpc3Q6OnNldChj
b25zdCBXZWJUcmFja0xpc3QmIHdlYlRyYWNrcywgbG9uZyBzZWxlY3RlZEluZGV4KQoreworICAg
IFdlYkNvcmU6OlRyYWNrVmVjdG9yIHRyYWNrcyh3ZWJUcmFja3Muc2l6ZSgpKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHdlYlRyYWNrcy5zaXplKCk7ICsraSkKKyAgICAgICAgdHJhY2tz
W2ldID0gd2ViVHJhY2tzW2ldOworCisgICAgbV9wcml2YXRlID0gV2ViQ29yZTo6RXhjbHVzaXZl
VHJhY2tMaXN0OjpjcmVhdGUodHJhY2tzLCBzZWxlY3RlZEluZGV4KTsKK30KKwordm9pZCBXZWJF
eGNsdXNpdmVUcmFja0xpc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30K
KworV2ViRXhjbHVzaXZlVHJhY2tMaXN0OjpXZWJFeGNsdXNpdmVUcmFja0xpc3QoV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlzdD4gdHJhY2tMaXN0KQorICAgIDogbV9w
cml2YXRlKHRyYWNrTGlzdCkKK3sKK30KKworV2ViRXhjbHVzaXZlVHJhY2tMaXN0OjpvcGVyYXRv
ciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0PigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSB8fCBFTkFCTEUoVklERU9fVFJBQ0sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNdWx0aXBsZVRyYWNr
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNdWx0aXBsZVRyYWNrTGlz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTA4OGUzYTNjNzE5MTA3YzU3NTVjYmZiNmJlMzQ0NDk4YmYzNmI1
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk11bHRp
cGxlVHJhY2tMaXN0LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTXVsdGlwbGVUcmFja0xpc3QuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pIHx8IEVOQUJMRShWSURFT19UUkFDSykKKworI2luY2x1ZGUgIk11
bHRpcGxlVHJhY2tMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk11bHRp
cGxlVHJhY2tMaXN0OjpzZXQoY29uc3QgV2ViVHJhY2tMaXN0JiB3ZWJUcmFja3MsIGNvbnN0IFdl
YkVuYWJsZWRUcmFja3MmIHdlYkVuYWJsZWRUcmFja3MpCit7CisgICAgQVNTRVJUKHdlYlRyYWNr
cy5zaXplKCkgPT0gd2ViRW5hYmxlZFRyYWNrcy5zaXplKCkpOworCisgICAgV2ViQ29yZTo6VHJh
Y2tWZWN0b3IgdHJhY2tzKHdlYlRyYWNrcy5zaXplKCkpOworICAgIFdlYkNvcmU6OkVuYWJsZWRU
cmFja3MgZW5hYmxlZFRyYWNrcyh3ZWJFbmFibGVkVHJhY2tzLnNpemUoKSk7CisKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHdlYlRyYWNrcy5zaXplKCk7ICsraSkgeworICAgICAgICB0cmFj
a3NbaV0gPSB3ZWJUcmFja3NbaV07CisgICAgICAgIGVuYWJsZWRUcmFja3NbaV0gPSB3ZWJFbmFi
bGVkVHJhY2tzW2ldOworICAgIH0KKworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6Ok11bHRpcGxl
VHJhY2tMaXN0OjpjcmVhdGUodHJhY2tzLCBlbmFibGVkVHJhY2tzKTsKK30KKwordm9pZCBXZWJN
dWx0aXBsZVRyYWNrTGlzdDo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQor
CitXZWJNdWx0aXBsZVRyYWNrTGlzdDo6V2ViTXVsdGlwbGVUcmFja0xpc3QoV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6Ok11bHRpcGxlVHJhY2tMaXN0PiB0cmFja0xpc3QpCisgICAgOiBtX3ByaXZh
dGUodHJhY2tMaXN0KQoreworfQorCitXZWJNdWx0aXBsZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok11bHRpcGxlVHJhY2tMaXN0PigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSB8fCBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJUcmFja0xpc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVHJhY2tMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjA5
MDRjYWIxNDg3MTRiZDNmOGI5ZWFlNmRiMjNiMDJiZGYwOTAyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVHJhY2tMaXN0LmNwcApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVHJh
Y2tMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSB8fCBFTkFCTEUoVklERU9fVFJB
Q0spCisKKyNpbmNsdWRlICJUcmFja0xpc3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Zv
aWQgV2ViVHJhY2s6OnNldChjb25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJTdHJpbmcmIGtp
bmQsIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpCit7
CisgICAgbV9wcml2YXRlID0gV2ViQ29yZTo6VHJhY2s6OmNyZWF0ZShpZCwga2luZCwgbGFiZWws
IGxhbmd1YWdlKTsKK30KKwordm9pZCBXZWJUcmFjazo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0
ZS5yZXNldCgpOworfQorCitXZWJUcmFjazo6V2ViVHJhY2soV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OlRyYWNrPiB0cmFjaykKKyAgICA6IG1fcHJpdmF0ZSh0cmFjaykKK3sKK30KKworV2ViVHJh
Y2s6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUcmFjaz4oKSBjb25zdAorewor
ICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96411</attachid>
            <date>2011-06-08 05:54:36 -0700</date>
            <delta_ts>2011-06-15 01:53:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110608145434.patch</filename>
            <type>text/plain</type>
            <size>19659</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzMzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MzI3ZTVkNzk1ZmU0MjdjNTUxZjBkNDIwNmEzMTU1NjZlYjIzZWJjNC4uNTU5Zjk5ZDczODk5OWM3
ZmU0Zjg0ZTI2YjNjYjIyZWZkNDEyYTc4OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxMS0wNi0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRkZXJzIGZvciB0aGUgSFRNTDUgVHJhY2sg
TGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDI2MAorCisgICAgICAgIEltcGxlbWVudCBpbiBXZWJLaXQgQ2hyb21pdW0gdGhlIFdl
YlRyYWNrTGlzdCwgV2ViRXhjbHVzaXZlVHJhY2tMaXN0IGFuZAorICAgICAgICBXZWJNdWx0aXBs
ZVRyYWNrTGlzdCBlbWJlZGRlciBvYmplY3RzIGZvciB0aGVpciBXZWJDb3JlIGNvdW50ZXJwYXJ0
cy4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkV4Y2x1c2l2
ZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRXhjbHVzaXZlVHJhY2tM
aXN0OjpXZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNp
dmVUcmFja0xpc3Q6On5XZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJNdWx0aXBsZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTXVsdGlw
bGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TXVsdGlwbGVUcmFja0xpc3Q6On5XZWJNdWx0aXBsZVRyYWNrTGlzdCk6CisgICAgICAgICogcHVi
bGljL1dlYlRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6Oldl
YlRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6On5XZWJUcmFjayk6CisgICAgICAg
ICogc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJFeGNsdXNpdmVUcmFja0xpc3Q6OnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNpdmVUcmFj
a0xpc3Q6OldlYkV4Y2x1c2l2ZVRyYWNrTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2
ZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNdWx0aXBsZVRyYWNrTGlzdDo6c2V0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJUcmFja0xpc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6OnNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlRyYWNrOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpXZWJU
cmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6VHJhY2s+KToKKwogMjAxMS0wNi0wOCAgSGlyb25vcmkgQm9ubyAgPGhib25v
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDEyMGI3OTJhNTNiZjIwZmNkYzRkNjM1MmZlMzAy
ZjgxMTY1Y2QxZTYuLmY5ZWU5NjFiMWE1ZDQ5OGUwNzUyZmYxOTg5OWIxNDc3N2IxMDY2OTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE0OSw2ICsxNDksNyBAQAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViRWRpdGluZ0FjdGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJFeGNlcHRpb25D
b2RlLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0Lmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRXh0ZXJuYWxQb3B1cE1lbnUuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJFeHRlcm5hbFBvcHVwTWVudUNsaWVudC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oJywKQEAgLTIxNCw2
ICsyMTUsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVs
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xpZW50
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWltZVJlZ2lzdHJ5LmgnLAorICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViTXVsdGlwbGVUcmFja0xpc3QuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJOYXZpZ2F0aW9uVHlwZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5ldHdvcmtT
dGF0ZU5vdGlmaWVyLmgnLApAQCAtMjgwLDYgKzI4Miw3IEBACiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJUZXh0SW5wdXRUeXBlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4
dFJ1bi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlRocmVhZFNhZmVEYXRhLmgnLAor
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVHJhY2tMaXN0LmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViVVJMLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVVJMRXJyb3Iu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVUkxMb2FkZXIuaCcsCkBAIC00NTQsNiAr
NDU3LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYkVsZW1lbnQuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYkVudGl0aWVzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJF
bnRpdGllcy5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNwcCcs
CkBAIC01MTIsNiArNTE2LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhRWxlbWVu
dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCcsCisg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViTmFtZWROb2RlTWFwLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJOZXR3b3JrU3RhdGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTm9k
ZS5jcHAnLApAQCAtNTY0LDYgKzU2OSw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdHJp
bmcuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlRleHRSdW4uY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYlRocmVhZFNhZmVEYXRhLmNwcCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJUcmFja0xpc3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlVSTC5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViVVJMTG9hZFRpbWluZy5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViVVJMUmVxdWVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTZjN2Jk
YjFkOTlkOTRjM2EzMGM5ZDEzMmRmYmM1YjIwZjI4NDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmgKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFeGNsdXNpdmVUcmFja0xpc3Rf
aAorI2RlZmluZSBXZWJFeGNsdXNpdmVUcmFja0xpc3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9u
LmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorI2luY2x1ZGUgIldlYlRyYWNrTGlzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBFeGNsdXNpdmVUcmFja0xpc3Q7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJFeGNsdXNpdmVUcmFja0xpc3QgeworcHVi
bGljOgorICAgIC8vIFNhbWUgYXMgV2ViQ29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0OjpOb1NlbGVj
dGlvbi4KKyAgICBzdGF0aWMgY29uc3QgbG9uZyBOb1NlbGVjdGlvbiA9IC0xOworCisgICAgV2Vi
RXhjbHVzaXZlVHJhY2tMaXN0KCkgeyB9CisgICAgfldlYkV4Y2x1c2l2ZVRyYWNrTGlzdCgpIHsg
cmVzZXQoKTsgfQorCisgICAgV0VCS0lUX0FQSSB2b2lkIHNldChjb25zdCBXZWJUcmFja0xpc3Qm
LCBsb25nIHNlbGVjdGVkSW5kZXggPSBOb1NlbGVjdGlvbik7CisgICAgV0VCS0lUX0FQSSB2b2lk
IHJlc2V0KCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJFeGNsdXNpdmVU
cmFja0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlzdD4pOwor
ICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q+
KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6
OkV4Y2x1c2l2ZVRyYWNrTGlzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJFeGNsdXNpdmVUcmFja0xpc3RfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTXVsdGlwbGVUcmFja0xpc3QuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk11bHRpcGxlVHJhY2tMaXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQ4ODg1ODIwYjMzMTUyY2M2ODc3NzJkN2NmZjVjMWE4YzFhYmI5NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk11bHRpcGxlVHJhY2tMaXN0
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJNdWx0aXBsZVRy
YWNrTGlzdF9oCisjZGVmaW5lIFdlYk11bHRpcGxlVHJhY2tMaXN0X2gKKworI2luY2x1ZGUgIldl
YkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJUcmFj
a0xpc3QuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgTXVsdGlwbGVUcmFja0xpc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0eXBl
ZGVmIFdlYlZlY3Rvcjxib29sPiBXZWJFbmFibGVkVHJhY2tzOworCitjbGFzcyBXZWJNdWx0aXBs
ZVRyYWNrTGlzdCB7CitwdWJsaWM6CisgICAgV2ViTXVsdGlwbGVUcmFja0xpc3QoKSB7IH0KKyAg
ICB+V2ViTXVsdGlwbGVUcmFja0xpc3QoKSB7IHJlc2V0KCk7IH0KKworICAgIFdFQktJVF9BUEkg
dm9pZCBzZXQoY29uc3QgV2ViVHJhY2tMaXN0JiwgY29uc3QgV2ViRW5hYmxlZFRyYWNrcyYpOwor
ICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9O
CisgICAgV2ViTXVsdGlwbGVUcmFja0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok11bHRp
cGxlVHJhY2tMaXN0Pik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok11
bHRpcGxlVHJhY2tMaXN0PigpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViUHJp
dmF0ZVB0cjxXZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4gbV9wcml2YXRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJNdWx0aXBsZVRyYWNrTGlzdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUcmFja0xpc3QuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRyYWNrTGlzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhiZGM2ZjNmMWNlYTMyYTQ0OGJhNWU1ZTZhODY4ZWFkNjk4MWQ4MTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUcmFja0xpc3QuaApAQCAtMCww
ICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlRyYWNrTGlzdF9oCisjZGVmaW5l
IFdlYlRyYWNrTGlzdF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQ
cml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViVmVjdG9y
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFRyYWNrOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViVHJhY2sgeworcHVibGljOgorICAgIFdlYlRyYWNrKCkgeyB9
CisgICAgfldlYlRyYWNrKCkgeyByZXNldCgpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
KGNvbnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0IFdlYlN0cmluZyYga2luZCwgY29uc3QgV2ViU3Ry
aW5nJiBsYWJlbCwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSk7CisgICAgV0VCS0lUX0FQSSB2
b2lkIHJlc2V0KCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJUcmFjayhX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VHJhY2s+KTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6VHJhY2s+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6OlRyYWNrPiBtX3ByaXZhdGU7Cit9OworCit0eXBlZGVmIFdl
YlZlY3RvcjxXZWJUcmFjaz4gV2ViVHJhY2tMaXN0OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFdlYlRyYWNrTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDUyOTY2NWUx
MjE1YmY0YjQ5ODRjMTcwYTE5MjI3MWViMDYyYjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmNwcApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
RXhjbHVzaXZlVHJhY2tMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSB8fCBFTkFC
TEUoVklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJFeGNsdXNpdmVUcmFja0xpc3QuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViRXhjbHVzaXZlVHJhY2tMaXN0OjpzZXQoY29uc3Qg
V2ViVHJhY2tMaXN0JiB3ZWJUcmFja3MsIGxvbmcgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBXZWJD
b3JlOjpUcmFja1ZlY3RvciB0cmFja3Mod2ViVHJhY2tzLnNpemUoKSk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3ZWJUcmFja3Muc2l6ZSgpOyArK2kpCisgICAgICAgIHRyYWNrc1tpXSA9
IHdlYlRyYWNrc1tpXTsKKworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNr
TGlzdDo6Y3JlYXRlKHRyYWNrcywgc2VsZWN0ZWRJbmRleCk7Cit9CisKK3ZvaWQgV2ViRXhjbHVz
aXZlVHJhY2tMaXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK1dl
YkV4Y2x1c2l2ZVRyYWNrTGlzdDo6V2ViRXhjbHVzaXZlVHJhY2tMaXN0KFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q+IHRyYWNrTGlzdCkKKyAgICA6IG1fcHJpdmF0
ZSh0cmFja0xpc3QpCit7Cit9CisKK1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlzdD4oKSBjb25zdAoreworICAg
IHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTXVsdGlwbGVUcmFja0xpc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTXVsdGlwbGVUcmFja0xpc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEwODhlM2EzYzcxOTEwN2M1NzU1Y2JmYjZiZTM0NDQ5OGJmMzZiNTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNdWx0aXBsZVRy
YWNrTGlzdC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk11bHRpcGxlVHJhY2tMaXN0LmgiCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKSB8fCBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJNdWx0aXBs
ZVRyYWNrTGlzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJNdWx0aXBsZVRy
YWNrTGlzdDo6c2V0KGNvbnN0IFdlYlRyYWNrTGlzdCYgd2ViVHJhY2tzLCBjb25zdCBXZWJFbmFi
bGVkVHJhY2tzJiB3ZWJFbmFibGVkVHJhY2tzKQoreworICAgIEFTU0VSVCh3ZWJUcmFja3Muc2l6
ZSgpID09IHdlYkVuYWJsZWRUcmFja3Muc2l6ZSgpKTsKKworICAgIFdlYkNvcmU6OlRyYWNrVmVj
dG9yIHRyYWNrcyh3ZWJUcmFja3Muc2l6ZSgpKTsKKyAgICBXZWJDb3JlOjpFbmFibGVkVHJhY2tz
IGVuYWJsZWRUcmFja3Mod2ViRW5hYmxlZFRyYWNrcy5zaXplKCkpOworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3ZWJUcmFja3Muc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgdHJhY2tzW2ld
ID0gd2ViVHJhY2tzW2ldOworICAgICAgICBlbmFibGVkVHJhY2tzW2ldID0gd2ViRW5hYmxlZFRy
YWNrc1tpXTsKKyAgICB9CisKKyAgICBtX3ByaXZhdGUgPSBXZWJDb3JlOjpNdWx0aXBsZVRyYWNr
TGlzdDo6Y3JlYXRlKHRyYWNrcywgZW5hYmxlZFRyYWNrcyk7Cit9CisKK3ZvaWQgV2ViTXVsdGlw
bGVUcmFja0xpc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2Vi
TXVsdGlwbGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4gdHJhY2tMaXN0KQorICAgIDogbV9wcml2YXRlKHRy
YWNrTGlzdCkKK3sKK30KKworV2ViTXVsdGlwbGVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4oKSBjb25zdAoreworICAgIHJldHVy
biBtX3ByaXZhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVHJhY2tMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlRyYWNrTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIwOTA0Y2Fi
MTQ4NzE0YmQzZjhiOWVhZTZkYjIzYjAyYmRmMDkwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlRyYWNrTGlzdC5jcHAKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRyYWNrTGlz
dC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQor
CisjaW5jbHVkZSAiVHJhY2tMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YlRyYWNrOjpzZXQoY29uc3QgV2ViU3RyaW5nJiBpZCwgY29uc3QgV2ViU3RyaW5nJiBraW5kLCBj
b25zdCBXZWJTdHJpbmcmIGxhYmVsLCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKQoreworICAg
IG1fcHJpdmF0ZSA9IFdlYkNvcmU6OlRyYWNrOjpjcmVhdGUoaWQsIGtpbmQsIGxhYmVsLCBsYW5n
dWFnZSk7Cit9CisKK3ZvaWQgV2ViVHJhY2s6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVz
ZXQoKTsKK30KKworV2ViVHJhY2s6OldlYlRyYWNrKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpU
cmFjaz4gdHJhY2spCisgICAgOiBtX3ByaXZhdGUodHJhY2spCit7Cit9CisKK1dlYlRyYWNrOjpv
cGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VHJhY2s+KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pIHx8IEVOQUJMRShWSURFT19UUkFDSykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97260</attachid>
            <date>2011-06-15 01:53:53 -0700</date>
            <delta_ts>2011-08-04 07:01:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110615105351.patch</filename>
            <type>text/plain</type>
            <size>19657</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg5MTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDViNTk4MTA2MzkxNDNlYmQzZjhmMzIxMDVjN2ZmODFjOTMzNzNhZS4uYzc3YmNmMmY3YzQ1NTk1
MmRjMzI3ZTA3ODgwNDM2OTJlZDE2MDkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxMS0wNi0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRkZXJzIGZvciB0aGUgSFRNTDUgVHJhY2sg
TGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDI2MAorCisgICAgICAgIEltcGxlbWVudCBpbiBXZWJLaXQgQ2hyb21pdW0gdGhlIFdl
YlRyYWNrTGlzdCwgV2ViRXhjbHVzaXZlVHJhY2tMaXN0IGFuZAorICAgICAgICBXZWJNdWx0aXBs
ZVRyYWNrTGlzdCBlbWJlZGRlciBvYmplY3RzIGZvciB0aGVpciBXZWJDb3JlIGNvdW50ZXJwYXJ0
cy4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkV4Y2x1c2l2
ZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRXhjbHVzaXZlVHJhY2tM
aXN0OjpXZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNp
dmVUcmFja0xpc3Q6On5XZWJFeGNsdXNpdmVUcmFja0xpc3QpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJNdWx0aXBsZVRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTXVsdGlw
bGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TXVsdGlwbGVUcmFja0xpc3Q6On5XZWJNdWx0aXBsZVRyYWNrTGlzdCk6CisgICAgICAgICogcHVi
bGljL1dlYlRyYWNrTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6Oldl
YlRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6On5XZWJUcmFjayk6CisgICAgICAg
ICogc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJFeGNsdXNpdmVUcmFja0xpc3Q6OnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFeGNsdXNpdmVUcmFj
a0xpc3Q6OldlYkV4Y2x1c2l2ZVRyYWNrTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV4Y2x1
c2l2ZVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV4Y2x1c2l2
ZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNdWx0aXBsZVRyYWNrTGlzdDo6c2V0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6OldlYk11bHRpcGxlVHJhY2tMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTXVsdGlwbGVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpNdWx0aXBsZVRyYWNrTGlzdD4pOgorICAgICAgICAqIHNyYy9XZWJUcmFja0xpc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVHJhY2s6OnNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlRyYWNrOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpXZWJU
cmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYWNrOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6VHJhY2s+KToKKwogMjAxMS0wNi0xNCAgRXJpYyBVaHJoYW5lICA8ZXJpY3VA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA0MDA5MjJhNGI2MjZjODJmZWVmMGZlYjkzYTFjNWVh
ZDhjOGY5ZjA5Li5kMmU4NDYyZmU1ZGNhODRkZDFkYzlhZDAxMzNjODA5ZDc1YzE4OTQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xNDksNiArMTQ5LDcgQEAKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkVkaXRpbmdBY3Rpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRXhjZXB0aW9uQ29k
ZS5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkV4dGVybmFsUG9wdXBNZW51LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViRXh0ZXJuYWxQb3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24uaCcsCkBAIC0yMTQsNiAr
MjE1LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbC5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbENsaWVudC5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1pbWVSZWdpc3RyeS5oJywKKyAgICAgICAg
ICAgICAgICAncHVibGljL1dlYk11bHRpcGxlVHJhY2tMaXN0LmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViTmFtZWROb2RlTWFwLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
TmF2aWdhdGlvblR5cGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOZXR3b3JrU3Rh
dGVOb3RpZmllci5oJywKQEAgLTI4MCw2ICsyODIsNyBAQAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViVGV4dElucHV0VHlwZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlRleHRS
dW4uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUaHJlYWRTYWZlRGF0YS5oJywKKyAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlRyYWNrTGlzdC5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlVSTC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlVSTEVycm9yLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVVJMTG9hZGVyLmgnLApAQCAtNDU2LDYgKzQ1
OSw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJFbnRpdGllcy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViRW50
aXRpZXMuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJFeGNsdXNpdmVUcmFja0xpc3QuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkZpbGVDaG9vc2VyQ29tcGxldGlvbkltcGwuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkZpbGVDaG9vc2VyQ29tcGxldGlvbkltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAnLApA
QCAtNTE0LDYgKzUxOCw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYUVsZW1lbnQu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgnLAorICAg
ICAgICAgICAgICAgICdzcmMvV2ViTXVsdGlwbGVUcmFja0xpc3QuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
TmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGUu
Y3BwJywKQEAgLTU2Niw2ICs1NzEsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3RyaW5n
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0UnVuLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMv
V2ViVHJhY2tMaXN0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJVUkwuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYlVSTExvYWRUaW1pbmcuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYlVSTFJlcXVlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk2YzdiZGIx
ZDk5ZDk0YzNhMzBjOWQxMzJkZmJjNWIyMGYyODQwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5oCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViRXhjbHVzaXZlVHJhY2tMaXN0X2gK
KyNkZWZpbmUgV2ViRXhjbHVzaXZlVHJhY2tMaXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5o
IgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJUcmFja0xpc3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRXhjbHVzaXZlVHJhY2tMaXN0OworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXhjbHVzaXZlVHJhY2tMaXN0IHsKK3B1Ymxp
YzoKKyAgICAvLyBTYW1lIGFzIFdlYkNvcmU6OkV4Y2x1c2l2ZVRyYWNrTGlzdDo6Tm9TZWxlY3Rp
b24uCisgICAgc3RhdGljIGNvbnN0IGxvbmcgTm9TZWxlY3Rpb24gPSAtMTsKKworICAgIFdlYkV4
Y2x1c2l2ZVRyYWNrTGlzdCgpIHsgfQorICAgIH5XZWJFeGNsdXNpdmVUcmFja0xpc3QoKSB7IHJl
c2V0KCk7IH0KKworICAgIFdFQktJVF9BUEkgdm9pZCBzZXQoY29uc3QgV2ViVHJhY2tMaXN0Jiwg
bG9uZyBzZWxlY3RlZEluZGV4ID0gTm9TZWxlY3Rpb24pOworICAgIFdFQktJVF9BUEkgdm9pZCBy
ZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViRXhjbHVzaXZlVHJh
Y2tMaXN0KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q+KTsKKyAg
ICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0Pigp
IGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpF
eGNsdXNpdmVUcmFja0xpc3Q+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViRXhjbHVzaXZlVHJhY2tMaXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk11bHRpcGxlVHJhY2tMaXN0LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFkODg4NTgyMGIzMzE1MmNjNjg3NzcyZDdjZmY1YzFhOGMxYWJiOTYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNdWx0aXBsZVRyYWNrTGlzdC5o
CkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTXVsdGlwbGVUcmFj
a0xpc3RfaAorI2RlZmluZSBXZWJNdWx0aXBsZVRyYWNrTGlzdF9oCisKKyNpbmNsdWRlICJXZWJD
b21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViVHJhY2tM
aXN0LmgiCisjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIE11bHRpcGxlVHJhY2tMaXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordHlwZWRl
ZiBXZWJWZWN0b3I8Ym9vbD4gV2ViRW5hYmxlZFRyYWNrczsKKworY2xhc3MgV2ViTXVsdGlwbGVU
cmFja0xpc3QgeworcHVibGljOgorICAgIFdlYk11bHRpcGxlVHJhY2tMaXN0KCkgeyB9CisgICAg
fldlYk11bHRpcGxlVHJhY2tMaXN0KCkgeyByZXNldCgpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZv
aWQgc2V0KGNvbnN0IFdlYlRyYWNrTGlzdCYsIGNvbnN0IFdlYkVuYWJsZWRUcmFja3MmKTsKKyAg
ICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgor
ICAgIFdlYk11bHRpcGxlVHJhY2tMaXN0KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNdWx0aXBs
ZVRyYWNrTGlzdD4pOworICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNdWx0
aXBsZVRyYWNrTGlzdD4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZh
dGVQdHI8V2ViQ29yZTo6TXVsdGlwbGVUcmFja0xpc3Q+IG1fcHJpdmF0ZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTXVsdGlwbGVUcmFja0xpc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVHJhY2tMaXN0LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUcmFja0xpc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YmRjNmYzZjFjZWEzMmE0NDhiYTVlNWU2YTg2OGVhZDY5ODFkODE3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVHJhY2tMaXN0LmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJUcmFja0xpc3RfaAorI2RlZmluZSBX
ZWJUcmFja0xpc3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJp
dmF0ZVB0ci5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBUcmFjazsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlRyYWNrIHsKK3B1YmxpYzoKKyAgICBXZWJUcmFjaygpIHsgfQor
ICAgIH5XZWJUcmFjaygpIHsgcmVzZXQoKTsgfQorCisgICAgV0VCS0lUX0FQSSB2b2lkIHNldChj
b25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNvbnN0IFdlYlN0cmlu
ZyYgbGFiZWwsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpOworICAgIFdFQktJVF9BUEkgdm9p
ZCByZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViVHJhY2soV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRyYWNrPik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OlRyYWNrPigpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2Vi
UHJpdmF0ZVB0cjxXZWJDb3JlOjpUcmFjaz4gbV9wcml2YXRlOworfTsKKwordHlwZWRlZiBXZWJW
ZWN0b3I8V2ViVHJhY2s+IFdlYlRyYWNrTGlzdDsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBXZWJUcmFja0xpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRXhjbHVzaXZlVHJhY2tMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q1Mjk2NjVlMTIx
NWJmNGI0OTg0YzE3MGExOTIyNzFlYjA2MmIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4Y2x1c2l2ZVRyYWNrTGlzdC5jcHAKQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkV4
Y2x1c2l2ZVRyYWNrTGlzdC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgfHwgRU5BQkxF
KFZJREVPX1RSQUNLKQorCisjaW5jbHVkZSAiRXhjbHVzaXZlVHJhY2tMaXN0LmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkV4Y2x1c2l2ZVRyYWNrTGlzdDo6c2V0KGNvbnN0IFdl
YlRyYWNrTGlzdCYgd2ViVHJhY2tzLCBsb25nIHNlbGVjdGVkSW5kZXgpCit7CisgICAgV2ViQ29y
ZTo6VHJhY2tWZWN0b3IgdHJhY2tzKHdlYlRyYWNrcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgd2ViVHJhY2tzLnNpemUoKTsgKytpKQorICAgICAgICB0cmFja3NbaV0gPSB3
ZWJUcmFja3NbaV07CisKKyAgICBtX3ByaXZhdGUgPSBXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xp
c3Q6OmNyZWF0ZSh0cmFja3MsIHNlbGVjdGVkSW5kZXgpOworfQorCit2b2lkIFdlYkV4Y2x1c2l2
ZVRyYWNrTGlzdDo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJF
eGNsdXNpdmVUcmFja0xpc3Q6OldlYkV4Y2x1c2l2ZVRyYWNrTGlzdChXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6RXhjbHVzaXZlVHJhY2tMaXN0PiB0cmFja0xpc3QpCisgICAgOiBtX3ByaXZhdGUo
dHJhY2tMaXN0KQoreworfQorCitXZWJFeGNsdXNpdmVUcmFja0xpc3Q6Om9wZXJhdG9yIFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpFeGNsdXNpdmVUcmFja0xpc3Q+KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pIHx8IEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk11bHRpcGxlVHJhY2tMaXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk11bHRpcGxlVHJhY2tMaXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMDg4ZTNhM2M3MTkxMDdjNTc1NWNiZmI2YmUzNDQ0OThiZjM2YjUxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTXVsdGlwbGVUcmFj
a0xpc3QuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJNdWx0aXBsZVRyYWNrTGlzdC5oIgorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgfHwgRU5BQkxFKFZJREVPX1RSQUNLKQorCisjaW5jbHVkZSAiTXVsdGlwbGVU
cmFja0xpc3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViTXVsdGlwbGVUcmFj
a0xpc3Q6OnNldChjb25zdCBXZWJUcmFja0xpc3QmIHdlYlRyYWNrcywgY29uc3QgV2ViRW5hYmxl
ZFRyYWNrcyYgd2ViRW5hYmxlZFRyYWNrcykKK3sKKyAgICBBU1NFUlQod2ViVHJhY2tzLnNpemUo
KSA9PSB3ZWJFbmFibGVkVHJhY2tzLnNpemUoKSk7CisKKyAgICBXZWJDb3JlOjpUcmFja1ZlY3Rv
ciB0cmFja3Mod2ViVHJhY2tzLnNpemUoKSk7CisgICAgV2ViQ29yZTo6RW5hYmxlZFRyYWNrcyBl
bmFibGVkVHJhY2tzKHdlYkVuYWJsZWRUcmFja3Muc2l6ZSgpKTsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgd2ViVHJhY2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHRyYWNrc1tpXSA9
IHdlYlRyYWNrc1tpXTsKKyAgICAgICAgZW5hYmxlZFRyYWNrc1tpXSA9IHdlYkVuYWJsZWRUcmFj
a3NbaV07CisgICAgfQorCisgICAgbV9wcml2YXRlID0gV2ViQ29yZTo6TXVsdGlwbGVUcmFja0xp
c3Q6OmNyZWF0ZSh0cmFja3MsIGVuYWJsZWRUcmFja3MpOworfQorCit2b2lkIFdlYk11bHRpcGxl
VHJhY2tMaXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK1dlYk11
bHRpcGxlVHJhY2tMaXN0OjpXZWJNdWx0aXBsZVRyYWNrTGlzdChXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6TXVsdGlwbGVUcmFja0xpc3Q+IHRyYWNrTGlzdCkKKyAgICA6IG1fcHJpdmF0ZSh0cmFj
a0xpc3QpCit7Cit9CisKK1dlYk11bHRpcGxlVHJhY2tMaXN0OjpvcGVyYXRvciBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6TXVsdGlwbGVUcmFja0xpc3Q+KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pIHx8IEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlRyYWNrTGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJUcmFja0xpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMDkwNGNhYjE0
ODcxNGJkM2Y4YjllYWU2ZGIyM2IwMmJkZjA5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJUcmFja0xpc3QuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJUcmFja0xpc3Qu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pIHx8IEVOQUJMRShWSURFT19UUkFDSykKKwor
I2luY2x1ZGUgIlRyYWNrTGlzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJU
cmFjazo6c2V0KGNvbnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0IFdlYlN0cmluZyYga2luZCwgY29u
c3QgV2ViU3RyaW5nJiBsYWJlbCwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSkKK3sKKyAgICBt
X3ByaXZhdGUgPSBXZWJDb3JlOjpUcmFjazo6Y3JlYXRlKGlkLCBraW5kLCBsYWJlbCwgbGFuZ3Vh
Z2UpOworfQorCit2b2lkIFdlYlRyYWNrOjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0
KCk7Cit9CisKK1dlYlRyYWNrOjpXZWJUcmFjayhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VHJh
Y2s+IHRyYWNrKQorICAgIDogbV9wcml2YXRlKHRyYWNrKQoreworfQorCitXZWJUcmFjazo6b3Bl
cmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRyYWNrPigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSB8fCBFTkFCTEUoVklERU9fVFJBQ0spCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102908</attachid>
            <date>2011-08-04 07:01:25 -0700</date>
            <delta_ts>2011-08-04 07:17:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110804160123.patch</filename>
            <type>text/plain</type>
            <size>12959</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZDE2OGFlOWU4MzUwYWVkYjZlMGY2ZTA5OWI0M2U4M2Y0NjY3YTQyNy4uZTE3MGIwMzU5YzQyNjhj
N2NiZmNmMGYzYWIzY2UxNGFmNjgxYjBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxMS0wOC0wNCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGFuZCBNZWRpYVN0cmVhbVRyYWNr
TGlzdCBlbWJlZGRlcnMKKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRk
ZXJzIGZvciB0aGUgSFRNTDUgVHJhY2sgTGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDI2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtVHJhY2s6On5XZWJNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKiBwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0Ojp+V2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2s6OnNldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhU3RyZWFtVHJhY2s6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtVHJhY2s6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrPik6CisgICAgICAgICogc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpzZXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6V2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3BlcmF0b3Ig
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0Pik6CisKIDIwMTEt
MDgtMDMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CmluZGV4IGI5N2E2N2M0NTE3MjA2MWVhZTNmNjU5ZTk4ZjkzYTQwZjllZTUyMDcuLmRlYTRjZTA4
YmU3ZjFmNjE3NjJkOWY1YTVkM2I4NzE5YjA3ZTg0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKQEAgLTIxMCw2ICsyMTAsOCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVk
aWFQbGF5ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckFjdGlv
bi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgnLAor
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oJywKKyAgICAgICAg
ICAgICAgICAncHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViTWVudUl0ZW1JbmZvLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVz
c2FnZVBvcnRDaGFubmVsQ2xpZW50LmgnLApAQCAtNTEzLDYgKzUxNSw4IEBACiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJNZWRpYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFTdHJl
YW1UcmFjay5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYk5vZGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDAyMGMzN2NjYjhm
YzRlOTBmYWZjN2RhM2M4MTY5ZmQxMjg1OWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTdHJlYW1UcmFja19oCisjZGVmaW5l
IFdlYk1lZGlhU3RyZWFtVHJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRl
ICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYk1lZGlhU3RyZWFtVHJhY2sgeworcHVibGljOgorICAgIFdlYk1lZGlhU3RyZWFt
VHJhY2soKSB7IH0KKyAgICB+V2ViTWVkaWFTdHJlYW1UcmFjaygpIHsgcmVzZXQoKTsgfQorCisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldChjb25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJT
dHJpbmcmIGtpbmQsIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwpOworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCByZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViTWVkaWFT
dHJlYW1UcmFjayhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4pOwor
ICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrPigp
IGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrPiBtX3ByaXZhdGU7Cit9OworCit0eXBlZGVmIFdlYlZlY3RvcjxXZWJN
ZWRpYVN0cmVhbVRyYWNrPiBXZWJUcmFja1ZlY3RvcjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViTWVkaWFT
dHJlYW1UcmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDAyZGIyZWYxMDgzMDYxOGUy
MGVlODIwMzlhYTI2ODk0ZjU1YmY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaApAQCAtMCwwICsxLDYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0X2gKKyNkZWZp
bmUgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFtVHJhY2su
aCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisj
aW5jbHVkZSAiV2ViVmVjdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE1lZGlh
U3RyZWFtVHJhY2tMaXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTWVk
aWFTdHJlYW1UcmFja0xpc3QgeworcHVibGljOgorICAgIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0
KCkgeyB9CisgICAgfldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0KCkgeyByZXNldCgpOyB9CisKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0KGNvbnN0IFdlYlRyYWNrVmVjdG9yJiB3ZWJUcmFja3Mp
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVO
VEFUSU9OCisgICAgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0Pik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0PigpIGNvbnN0OworI2VuZGlmCisKK3ByaXZh
dGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrTGlzdD4gbV9w
cml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1UcmFja0xpc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFjay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDAyOGFiMjc3NWE5YzYzMTU3ZWUwMzUyODg1YjhiYWQ2ZmY3ZDFhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1U
cmFjay5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFtVHJhY2suaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2s6OnNldChjb25zdCBXZWJTdHJpbmcm
IGlkLCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwpCit7Cisg
ICAgbV9wcml2YXRlID0gV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKGlkLCBraW5k
LCBsYWJlbCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFTdHJlYW1UcmFjazo6cmVzZXQoKQoreworICAg
IG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNrOjpXZWJNZWRpYVN0
cmVhbVRyYWNrKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrPiB0cmFj
aykKKyAgICA6IG1fcHJpdmF0ZSh0cmFjaykKK3sKK30KKworV2ViTWVkaWFTdHJlYW1UcmFjazo6
b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s+KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2JjYzAxZGYzMjM0ZDQ0MjZmOGM1ZjdkZDE0YTEwODQyMzg1ZjlmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tM
aXN0LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSAi
TWVkaWFTdHJlYW1UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmVhbVRyYWNrLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0Ojpz
ZXQoY29uc3QgV2ViVHJhY2tWZWN0b3ImIHdlYlRyYWNrcykKK3sKKyAgICBXZWJDb3JlOjpUcmFj
a1ZlY3RvciB0cmFja3Mod2ViVHJhY2tzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB3ZWJUcmFja3Muc2l6ZSgpOyArK2kpCisgICAgICAgIHRyYWNrc1tpXSA9IHdlYlRyYWNr
c1tpXTsKKworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0Ojpj
cmVhdGUodHJhY2tzKTsKK30KKwordm9pZCBXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6cmVzZXQo
KQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNrTGlz
dDo6V2ViTWVkaWFTdHJlYW1UcmFja0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tMaXN0PiB0cmFja0xpc3QpCisgICAgOiBtX3ByaXZhdGUodHJhY2tMaXN0KQor
eworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0PigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102912</attachid>
            <date>2011-08-04 07:16:36 -0700</date>
            <delta_ts>2011-08-08 01:54:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110804161634.patch</filename>
            <type>text/plain</type>
            <size>12911</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZDE2OGFlOWU4MzUwYWVkYjZlMGY2ZTA5OWI0M2U4M2Y0NjY3YTQyNy4uZTE3MGIwMzU5YzQyNjhj
N2NiZmNmMGYzYWIzY2UxNGFmNjgxYjBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxMS0wOC0wNCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGFuZCBNZWRpYVN0cmVhbVRyYWNr
TGlzdCBlbWJlZGRlcnMKKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRk
ZXJzIGZvciB0aGUgSFRNTDUgVHJhY2sgTGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDI2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtVHJhY2s6On5XZWJNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKiBwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0Ojp+V2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2s6OnNldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhU3RyZWFtVHJhY2s6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtVHJhY2s6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrPik6CisgICAgICAgICogc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpzZXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6V2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3BlcmF0b3Ig
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0Pik6CisKIDIwMTEt
MDgtMDMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CmluZGV4IGI5N2E2N2M0NTE3MjA2MWVhZTNmNjU5ZTk4ZjkzYTQwZjllZTUyMDcuLmRlYTRjZTA4
YmU3ZjFmNjE3NjJkOWY1YTVkM2I4NzE5YjA3ZTg0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKQEAgLTIxMCw2ICsyMTAsOCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVk
aWFQbGF5ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckFjdGlv
bi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgnLAor
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oJywKKyAgICAgICAg
ICAgICAgICAncHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViTWVudUl0ZW1JbmZvLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVz
c2FnZVBvcnRDaGFubmVsQ2xpZW50LmgnLApAQCAtNTEzLDYgKzUxNSw4IEBACiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJNZWRpYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFTdHJl
YW1UcmFjay5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYk5vZGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDAyMGMzN2NjYjhm
YzRlOTBmYWZjN2RhM2M4MTY5ZmQxMjg1OWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTdHJlYW1UcmFja19oCisjZGVmaW5l
IFdlYk1lZGlhU3RyZWFtVHJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRl
ICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYk1lZGlhU3RyZWFtVHJhY2sgeworcHVibGljOgorICAgIFdlYk1lZGlhU3RyZWFt
VHJhY2soKSB7IH0KKyAgICB+V2ViTWVkaWFTdHJlYW1UcmFjaygpIHsgcmVzZXQoKTsgfQorCisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldChjb25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJT
dHJpbmcmIGtpbmQsIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwpOworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCByZXNldCgpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViTWVkaWFT
dHJlYW1UcmFjayhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4pOwor
ICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrPigp
IGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrPiBtX3ByaXZhdGU7Cit9OworCit0eXBlZGVmIFdlYlZlY3RvcjxXZWJN
ZWRpYVN0cmVhbVRyYWNrPiBXZWJUcmFja1ZlY3RvcjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViTWVkaWFT
dHJlYW1UcmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTZmMGVlYTM5NjY4YjJiYzlk
MjE1YWMzNzczNzhjZjAyNzZhNWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaApAQCAtMCwwICsxLDYxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0X2gKKyNkZWZp
bmUgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFtVHJhY2su
aCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIE1lZGlhU3RyZWFtVHJhY2tMaXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QgeworcHVibGljOgorICAgIFdlYk1lZGlhU3RyZWFt
VHJhY2tMaXN0KCkgeyB9CisgICAgfldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0KCkgeyByZXNldCgp
OyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0KGNvbnN0IFdlYlRyYWNrVmVjdG9yJiB3
ZWJUcmFja3MpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworCisjaWYgV0VCS0lU
X0lNUExFTUVOVEFUSU9OCisgICAgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QoV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0Pik7CisgICAgb3BlcmF0b3IgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0PigpIGNvbnN0OworI2VuZGlm
CisKK3ByaXZhdGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
TGlzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1UcmFja0xp
c3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJl
YW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRy
YWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZDAyOGFiMjc3NWE5YzYzMTU3ZWUwMzUyODg1YjhiYWQ2ZmY3
ZDFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFTdHJlYW1UcmFjay5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFtVHJhY2suaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2s6OnNldChjb25zdCBX
ZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNvbnN0IFdlYlN0cmluZyYgbGFi
ZWwpCit7CisgICAgbV9wcml2YXRlID0gV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRl
KGlkLCBraW5kLCBsYWJlbCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFTdHJlYW1UcmFjazo6cmVzZXQo
KQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNrOjpX
ZWJNZWRpYVN0cmVhbVRyYWNrKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrPiB0cmFjaykKKyAgICA6IG1fcHJpdmF0ZSh0cmFjaykKK3sKK30KKworV2ViTWVkaWFTdHJl
YW1UcmFjazo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2s+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2JjYzAxZGYzMjM0ZDQ0MjZmOGM1ZjdkZDE0YTEwODQyMzg1ZjlmMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3Ry
ZWFtVHJhY2tMaXN0LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmVh
bVRyYWNrLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJh
Y2tMaXN0OjpzZXQoY29uc3QgV2ViVHJhY2tWZWN0b3ImIHdlYlRyYWNrcykKK3sKKyAgICBXZWJD
b3JlOjpUcmFja1ZlY3RvciB0cmFja3Mod2ViVHJhY2tzLnNpemUoKSk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3ZWJUcmFja3Muc2l6ZSgpOyArK2kpCisgICAgICAgIHRyYWNrc1tpXSA9
IHdlYlRyYWNrc1tpXTsKKworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2tMaXN0OjpjcmVhdGUodHJhY2tzKTsKK30KKwordm9pZCBXZWJNZWRpYVN0cmVhbVRyYWNrTGlz
dDo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJNZWRpYVN0cmVh
bVRyYWNrTGlzdDo6V2ViTWVkaWFTdHJlYW1UcmFja0xpc3QoV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja0xpc3QpCisgICAgOiBtX3ByaXZhdGUodHJh
Y2tMaXN0KQoreworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0PigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103223</attachid>
            <date>2011-08-08 01:54:54 -0700</date>
            <delta_ts>2011-08-09 04:33:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110808105452.patch</filename>
            <type>text/plain</type>
            <size>12971</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1ODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZjMxOGEwMWRmNzI4NTFkNWVjZWRlN2FkYzIwMjc4NzA4NDE2NjViZC4uYTdmYzA4MThlN2MxNWU4
NTg2YTQ0MGYyYzU3MWZiNmI5ZDY5N2FlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxMS0wOC0wNCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGFuZCBNZWRpYVN0cmVhbVRyYWNr
TGlzdCBlbWJlZGRlcnMKKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRk
ZXJzIGZvciB0aGUgSFRNTDUgVHJhY2sgTGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDI2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtVHJhY2s6On5XZWJNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKiBwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0Ojp+V2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2s6OnNldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhU3RyZWFtVHJhY2s6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtVHJhY2s6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrPik6CisgICAgICAgICogc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpzZXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6V2ViTWVkaWFTdHJlYW1UcmFja0xp
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3BlcmF0b3Ig
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0Pik6CisKIDIwMTEt
MDgtMDUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogaW1wbGVtZW50IGRvY2svdW5kb2NrIGluIFdlYktpdDIgd2l0aG91dCBn
ZXR0aW5nIGludG8gV2ViQ29yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBiOTdh
NjdjNDUxNzIwNjFlYWUzZjY1OWU5OGY5M2E0MGY5ZWU1MjA3Li5kZWE0Y2UwOGJlN2YxZjYxNzYy
ZDlmNWE1ZDNiODcxOWIwN2U4NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0y
MTAsNiArMjEwLDggQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXJBY3Rpb24uaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oJywKKyAgICAgICAgICAg
ICAgICAncHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaCcsCisgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYk1lbnVJdGVtSW5mby5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQ
b3J0Q2hhbm5lbC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hh
bm5lbENsaWVudC5oJywKQEAgLTUxMyw2ICs1MTUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViTWVkaWFFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2suY3Bw
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJOYW1lZE5vZGVNYXAuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJOb2RlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbVRyYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEzOWZjZTYyYzRhNWI0ZDI0Yjk1YWE3
NDk3NTI4NTJhMWQxNGRmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaApAQCAtMCwwICsxLDYzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYk1lZGlhU3RyZWFtVHJhY2tfaAorI2RlZmluZSBXZWJNZWRpYVN0
cmVhbVRyYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJXZWJD
b21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViVmVjdG9y
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2s7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYk1lZGlh
U3RyZWFtVHJhY2sgeworcHVibGljOgorICAgIFdlYk1lZGlhU3RyZWFtVHJhY2soKSB7IH0KKyAg
ICB+V2ViTWVkaWFTdHJlYW1UcmFjaygpIHsgcmVzZXQoKTsgfQorCisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHNldChjb25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNv
bnN0IFdlYlN0cmluZyYgbGFiZWwpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwor
CisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViTWVkaWFTdHJlYW1UcmFjayhjb25z
dCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4mKTsKKyAgICBvcGVy
YXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4oKSBjb25zdDsK
KyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6TWVkaWFTdHJl
YW1UcmFjaz4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1UcmFj
a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0
cmVhbVRyYWNrTGlzdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFT
dHJlYW1UcmFja0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjE5OTU2YmE4NDAxZDE1M2FkMGYxMmI3Zjg2
MDIzYmNhYWMzODkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaApAQCAtMCwwICsxLDYxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0X2gKKyNkZWZpbmUgV2ViTWVk
aWFTdHJlYW1UcmFja0xpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNs
dWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE1lZGlh
U3RyZWFtVHJhY2tMaXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTWVk
aWFTdHJlYW1UcmFja0xpc3QgeworcHVibGljOgorICAgIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0
KCkgeyB9CisgICAgfldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0KCkgeyByZXNldCgpOyB9CisKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0KGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRy
YWNrPiYgd2ViVHJhY2tzKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKworI2lm
IFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0KGNvbnN0
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrTGlzdD4mKTsKKyAgICBv
cGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0xpc3Q+KCkg
Y29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2tMaXN0PiBtX3ByaXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBXZWJNZWRp
YVN0cmVhbVRyYWNrTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhU3RyZWFtVHJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMDkzNGMxYWE4MDc4ZGIxYjBiMDE3
YzNlNjgwMTZjMGVkNTZiNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJlYW1UcmFj
ay5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2suaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgV2ViTWVkaWFTdHJlYW1UcmFjazo6c2V0KGNvbnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0
IFdlYlN0cmluZyYga2luZCwgY29uc3QgV2ViU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBtX3ByaXZh
dGUgPSBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoaWQsIGtpbmQsIGxhYmVsKTsK
K30KKwordm9pZCBXZWJNZWRpYVN0cmVhbVRyYWNrOjpyZXNldCgpCit7CisgICAgbV9wcml2YXRl
LnJlc2V0KCk7Cit9CisKK1dlYk1lZGlhU3RyZWFtVHJhY2s6OldlYk1lZGlhU3RyZWFtVHJhY2so
Y29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s+JiB0cmFjaykK
KyAgICA6IG1fcHJpdmF0ZSh0cmFjaykKK3sKK30KKworV2ViTWVkaWFTdHJlYW1UcmFjazo6b3Bl
cmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s+KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTgyMGM5NTU4ZjcxNTU5NTk3YzFhMmVmZWVlN2E0NjBkOWEyNzEwYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0
LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmVhbVRyYWNrLmgiCisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBX
ZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6c2V0KGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVh
bVRyYWNrPiYgd2ViVHJhY2tzKQoreworICAgIFRyYWNrVmVjdG9yIHRyYWNrcyh3ZWJUcmFja3Mu
c2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYlRyYWNrcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgdHJhY2tzW2ldID0gd2ViVHJhY2tzW2ldOworCisgICAgbV9wcml2YXRlID0g
TWVkaWFTdHJlYW1UcmFja0xpc3Q6OmNyZWF0ZSh0cmFja3MpOworfQorCit2b2lkIFdlYk1lZGlh
U3RyZWFtVHJhY2tMaXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisK
K1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdChjb25zdCBX
VEY6OlBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+JiB0cmFja0xpc3QpCisgICAgOiBt
X3ByaXZhdGUodHJhY2tMaXN0KQoreworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3Bl
cmF0b3IgV1RGOjpQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103345</attachid>
            <date>2011-08-09 04:34:02 -0700</date>
            <delta_ts>2011-08-12 13:46:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60260-20110809133400.patch</filename>
            <type>text/plain</type>
            <size>13147</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZjM0NGQ0NDUyMzVkYmVhOTdjZmRmY2Q2MWIyNDFkYjZiYjczNDM0MC4uOTZkZTA0MWE0NTE0YTU5
OGE1NTMxMjJhNWU0MTU3OWUzYWYyOWIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxMS0wOC0wOSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0aGUgZW1iZWRkZXJzIGZv
ciB0aGUgSFRNTDUgVHJhY2sgTGlzdCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2Vi
TWVkaWFTdHJlYW1UcmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJl
YW1UcmFjazo6V2ViTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlh
U3RyZWFtVHJhY2s6On5XZWJNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFTdHJlYW1UcmFjazo6aXNOdWxsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFTdHJl
YW1UcmFja0xpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJh
Y2tMaXN0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtVHJhY2tMaXN0Ojp+V2ViTWVkaWFTdHJlYW1UcmFja0xpc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6aXNOdWxsKToKKyAgICAgICAgKiBzcmMv
V2ViTWVkaWFTdHJlYW1UcmFjay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRp
YVN0cmVhbVRyYWNrOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJl
YW1UcmFjazo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrOjpX
ZWJNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1UcmFj
azo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s+KToK
KyAgICAgICAgKiBzcmMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1UcmFja0xpc3Q6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6V2ViTWVkaWFTdHJlYW1UcmFja0xpc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdDo6b3BlcmF0b3IgV1RGOjpQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0Pik6CisKIDIwMTEtMDgtMDggIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI5MjYxOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBiOTdh
NjdjNDUxNzIwNjFlYWUzZjY1OWU5OGY5M2E0MGY5ZWU1MjA3Li5kZWE0Y2UwOGJlN2YxZjYxNzYy
ZDlmNWE1ZDNiODcxOWIwN2U4NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0y
MTAsNiArMjEwLDggQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXJBY3Rpb24uaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oJywKKyAgICAgICAgICAg
ICAgICAncHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaCcsCisgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYk1lbnVJdGVtSW5mby5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQ
b3J0Q2hhbm5lbC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hh
bm5lbENsaWVudC5oJywKQEAgLTUxMyw2ICs1MTUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViTWVkaWFFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2suY3Bw
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJOYW1lZE5vZGVNYXAuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJOb2RlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbVRyYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiMWZhY2FmMDQ0MzFjZDdlZjg4ODlh
ODllZTQ3MTU2MTg3MWUwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaApAQCAtMCwwICsxLDYzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYk1lZGlhU3RyZWFtVHJhY2tfaAorI2RlZmluZSBXZWJNZWRpYVN0
cmVhbVRyYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJXZWJD
b21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2s7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYk1lZGlhU3RyZWFtVHJhY2sgeworcHVibGljOgor
ICAgIFdlYk1lZGlhU3RyZWFtVHJhY2soKSB7IH0KKyAgICB+V2ViTWVkaWFTdHJlYW1UcmFjaygp
IHsgcmVzZXQoKTsgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3Qg
V2ViU3RyaW5nJiBpZCwgY29uc3QgV2ViU3RyaW5nJiBraW5kLCBjb25zdCBXZWJTdHJpbmcmIGxh
YmVsKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAgICBib29sIGlzTnVsbCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwoKTsgfQorCisjaWYgV0VCS0lUX0lNUExF
TUVOVEFUSU9OCisgICAgV2ViTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRl
OgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjaz4gbV9wcml2YXRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1UcmFja19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNWVmYzdmMzdiZGJkMTAyYTY4ZTUyOTljOGMyOGNmN2QzZmE5OTUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJl
YW1UcmFja0xpc3QuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
Yk1lZGlhU3RyZWFtVHJhY2tMaXN0X2gKKyNkZWZpbmUgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3Rf
aAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgor
I2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
TWVkaWFTdHJlYW1UcmFja0xpc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJNZWRpYVN0cmVhbVRyYWNrOwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3Rv
cjsKKworY2xhc3MgV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QgeworcHVibGljOgorICAgIFdlYk1l
ZGlhU3RyZWFtVHJhY2tMaXN0KCkgeyB9CisgICAgfldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0KCkg
eyByZXNldCgpOyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBX
ZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1UcmFjaz4mIHdlYlRyYWNrcyk7CisgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3By
aXZhdGUuaXNOdWxsKCk7IH0KKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYk1l
ZGlhU3RyZWFtVHJhY2tMaXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrTGlzdD4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFja0xpc3Q+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0PiBtX3ByaXZhdGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNlbmRpZiAvLyBXZWJNZWRpYVN0cmVhbVRyYWNrTGlzdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2suY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc3NzkwMWM0NzZjNjEwMjIyOGUwMjNjNGUzZWM4YWRkZDZiMTM1YTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcApA
QCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViTWVkaWFTdHJlYW1UcmFjay5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViTWVkaWFTdHJlYW1UcmFjazo6aW5pdGlh
bGl6ZShjb25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNvbnN0IFdl
YlN0cmluZyYgbGFiZWwpCit7CisgICAgbV9wcml2YXRlID0gV2ViQ29yZTo6TWVkaWFTdHJlYW1U
cmFjazo6Y3JlYXRlKGlkLCBraW5kLCBsYWJlbCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFTdHJlYW1U
cmFjazo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJNZWRpYVN0
cmVhbVRyYWNrOjpXZWJNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrPiYgdHJhY2spCisgICAgOiBtX3ByaXZhdGUodHJhY2spCit7
Cit9CisKK1dlYk1lZGlhU3RyZWFtVHJhY2s6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5n
ZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFTdHJlYW1UcmFja0xpc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFTdHJlYW1UcmFja0xpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNTk1YjBiMzQ4OTk2NWQ1MTcwNjk5
MGQ1YWE3YzYzNjJmZDlhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFt
VHJhY2tMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tMaXN0LmgiCisjaW5j
bHVkZSAiV2ViTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
TWVkaWFTdHJlYW1UcmFja0xpc3Q6OmluaXRpYWxpemUoY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlh
U3RyZWFtVHJhY2s+JiB3ZWJUcmFja3MpCit7CisgICAgVHJhY2tWZWN0b3IgdHJhY2tzKHdlYlRy
YWNrcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2ViVHJhY2tzLnNpemUo
KTsgKytpKQorICAgICAgICB0cmFja3NbaV0gPSB3ZWJUcmFja3NbaV07CisKKyAgICBtX3ByaXZh
dGUgPSBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6Y3JlYXRlKHRyYWNrcyk7Cit9CisKK3ZvaWQgV2Vi
TWVkaWFTdHJlYW1UcmFja0xpc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsK
K30KKworV2ViTWVkaWFTdHJlYW1UcmFja0xpc3Q6OldlYk1lZGlhU3RyZWFtVHJhY2tMaXN0KGNv
bnN0IFdURjo6UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4mIHRyYWNrTGlzdCkKKyAg
ICA6IG1fcHJpdmF0ZSh0cmFja0xpc3QpCit7Cit9CisKK1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0
OjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>