<?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>110006</bug_id>
          
          <creation_ts>2013-02-16 00:38:54 -0800</creation_ts>
          <short_desc>Allow UI clients to handle vertical wheel events</short_desc>
          <delta_ts>2013-02-27 11:56:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>111001</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Conrad Shultz">conrad_shultz</reporter>
          <assigned_to name="Conrad Shultz">conrad_shultz</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>jamesr</cc>
    
    <cc>levin+threading</cc>
    
    <cc>luiz</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834669</commentid>
    <comment_count>0</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-16 00:38:54 -0800</bug_when>
    <thetext>Consistent with existing behavior in the horizontal direction, UI clients should be able to opt-in to handle vertical scroll wheel events that would otherwise trigger rubber banding.

Three pieces are seemingly needed:

1) Selective control over rubber banding in the vertical direction.
2) Extension (to the vertical direction) of the concept of page &quot;pinning.&quot;
3) Coupling of #1 and #2 in ScrollingTree::willWheelEventStartSwipeGesture(), allowing the swipe gesture pathway to be activated selectively in the vertical direction, culminating in a didNotHandleWheelEvent() message being sent to the UI client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835931</commentid>
    <comment_count>1</comment_count>
      <attachid>188981</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-18 21:13:50 -0800</bug_when>
    <thetext>Created attachment 188981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835933</commentid>
    <comment_count>2</comment_count>
      <attachid>188981</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-18 21:28:06 -0800</bug_when>
    <thetext>Comment on attachment 188981
Patch

Attachment 188981 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16610584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835941</commentid>
    <comment_count>3</comment_count>
      <attachid>188981</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-18 21:52:36 -0800</bug_when>
    <thetext>Comment on attachment 188981
Patch

Attachment 188981 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16610590</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835951</commentid>
    <comment_count>4</comment_count>
      <attachid>188981</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-18 22:08:52 -0800</bug_when>
    <thetext>Comment on attachment 188981
Patch

Attachment 188981 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16616469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836060</commentid>
    <comment_count>5</comment_count>
      <attachid>188981</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 00:12:53 -0800</bug_when>
    <thetext>Comment on attachment 188981
Patch

Missing a guard, will resubmit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836141</commentid>
    <comment_count>6</comment_count>
      <attachid>189029</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 02:05:06 -0800</bug_when>
    <thetext>Created attachment 189029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836153</commentid>
    <comment_count>7</comment_count>
      <attachid>189029</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-19 02:16:46 -0800</bug_when>
    <thetext>Comment on attachment 189029
Patch

Attachment 189029 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16611695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836219</commentid>
    <comment_count>8</comment_count>
      <attachid>189029</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-19 04:19:21 -0800</bug_when>
    <thetext>Comment on attachment 189029
Patch

Attachment 189029 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16615678</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836560</commentid>
    <comment_count>9</comment_count>
      <attachid>189116</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 11:02:27 -0800</bug_when>
    <thetext>Created attachment 189116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836566</commentid>
    <comment_count>10</comment_count>
      <attachid>189118</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 11:09:24 -0800</bug_when>
    <thetext>Created attachment 189118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836709</commentid>
    <comment_count>11</comment_count>
      <attachid>189118</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-19 13:18:43 -0800</bug_when>
    <thetext>Comment on attachment 189118
Patch

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

&gt; Source/WebCore/page/Page.h:279
&gt; +#if ENABLE(THREADED_SCROLLING)
&gt; +    bool rubberBandsAtBottom() const;
&gt; +    void setRubberBandsAtBottom(bool);
&gt; +    bool rubberBandsAtTop() const;
&gt; +    void setRubberBandsAtTop(bool);
&gt; +#endif

Vaguely interesting that you&apos;re adding these for the vertical case but parallels don&apos;t exist for the horizontal case.

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:410
&gt; +    return toImpl(pageRef)-&gt;setRubberBandsAtBottom(rubberBandsAtBottom);

return with a value in a void function?

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:426
&gt; +    return toImpl(pageRef)-&gt;setRubberBandsAtTop(rubberBandsAtTop);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836715</commentid>
    <comment_count>12</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 13:25:06 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 189118 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189118&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.h:279
&gt; &gt; +#if ENABLE(THREADED_SCROLLING)
&gt; &gt; +    bool rubberBandsAtBottom() const;
&gt; &gt; +    void setRubberBandsAtBottom(bool);
&gt; &gt; +    bool rubberBandsAtTop() const;
&gt; &gt; +    void setRubberBandsAtTop(bool);
&gt; &gt; +#endif
&gt; 
&gt; Vaguely interesting that you&apos;re adding these for the vertical case but parallels don&apos;t exist for the horizontal case.

The horizontal case isn&apos;t as important since WebKit will already send back didNotHandleWheelEvent() messages in that case when appropriate.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:410
&gt; &gt; +    return toImpl(pageRef)-&gt;setRubberBandsAtBottom(rubberBandsAtBottom);
&gt; 
&gt; return with a value in a void function?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:426
&gt; &gt; +    return toImpl(pageRef)-&gt;setRubberBandsAtTop(rubberBandsAtTop);
&gt; 
&gt; ditto.

I am surprised that these compiled without complaint; fixed. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836726</commentid>
    <comment_count>13</comment_count>
      <attachid>189118</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-02-19 13:31:59 -0800</bug_when>
    <thetext>Comment on attachment 189118
Patch

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

&gt; Source/WebCore/page/Page.cpp:70
&gt; +#include &quot;ScrollingTree.h&quot;

I think we should avoid including ScrollingTree from within Page. See comments below.

&gt; Source/WebCore/page/Page.cpp:822
&gt; +    return m_scrollingCoordinator-&gt;scrollingTree()-&gt;rubberBandsAtBottom();

Even though it&apos;s more overheard, you should add a function to ScrollingCoordinator to do this. Right now ScrollingCoordinator is the only thing that interfaces with the ScrollingTree and the scrolling thread, and I think we want to keep it that way. For example, see ScrollingCoordinatorMac::isRubberBandInProgress()… ScrollingCoordinator interfaces with ScrollingTree and then the rest of the code in WebCore just interfaces with ScrollingCoordinator. Then you won&apos;t need to put this inside and ifdef either since you can put a dummy implementation in the cross-platform ScrollingCoordinator.h and then override it in ScrollingCoordinatorMac.

&gt; Source/WebCore/page/Page.cpp:827
&gt; +    m_scrollingCoordinator-&gt;scrollingTree()-&gt;setRubberBandsAtBottom(rubberBandsAtBottom);

Same here.

&gt; Source/WebCore/page/Page.cpp:832
&gt; +    return m_scrollingCoordinator-&gt;scrollingTree()-&gt;rubberBandsAtTop();

Same here.

&gt; Source/WebCore/page/Page.cpp:837
&gt; +    m_scrollingCoordinator-&gt;scrollingTree()-&gt;setRubberBandsAtTop(rubberBandsAtTop);

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836731</commentid>
    <comment_count>14</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 13:37:57 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/page/Page.cpp:70
&gt; &gt; +#include &quot;ScrollingTree.h&quot;
&gt; 
&gt; I think we should avoid including ScrollingTree from within Page. See comments below.
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:822
&gt; &gt; +    return m_scrollingCoordinator-&gt;scrollingTree()-&gt;rubberBandsAtBottom();
&gt; 
&gt; Even though it&apos;s more overheard, you should add a function to ScrollingCoordinator to do this. Right now ScrollingCoordinator is the only thing that interfaces with the ScrollingTree and the scrolling thread, and I think we want to keep it that way. For example, see ScrollingCoordinatorMac::isRubberBandInProgress()… ScrollingCoordinator interfaces with ScrollingTree and then the rest of the code in WebCore just interfaces with ScrollingCoordinator. Then you won&apos;t need to put this inside and ifdef either since you can put a dummy implementation in the cross-platform ScrollingCoordinator.h and then override it in ScrollingCoordinatorMac.

That sounds much better, will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836790</commentid>
    <comment_count>15</comment_count>
      <attachid>189166</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 14:36:24 -0800</bug_when>
    <thetext>Created attachment 189166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836794</commentid>
    <comment_count>16</comment_count>
      <attachid>189166</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-02-19 14:44:49 -0800</bug_when>
    <thetext>Comment on attachment 189166
Patch

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

This is very close! My only comment this time is that you don&apos;t need to use the threaded-scrolling ifdef so much now that you have done the nice ScrollingCoordinator/ScrollingCoordinatorMac implementations of the rubberbanding functions. Eventually I stopped commenting on individual spots, because I think you don&apos;t need the ifdefs anywhere, actually.

&gt; Source/WebCore/page/Page.cpp:818
&gt; +#if ENABLE(THREADED_SCROLLING)

Don&apos;t need this ifdef.

&gt; Source/WebCore/page/Page.h:274
&gt; +#if ENABLE(THREADED_SCROLLING)

Nor this one.

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:400
&gt; +#if ENABLE(THREADED_SCROLLING)

I don&apos;t think you need these ones in WKPage either. The API is a no-op non-threaded-scrolling mode, but that doesn&apos;t mean it has to be ifdef&apos;ed out.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:229
&gt; +#if ENABLE(THREADED_SCROLLING)

And same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836970</commentid>
    <comment_count>17</comment_count>
      <attachid>189203</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 16:44:11 -0800</bug_when>
    <thetext>Created attachment 189203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836972</commentid>
    <comment_count>18</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 16:45:49 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 189166 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189166&amp;action=review
&gt; 
&gt; This is very close! My only comment this time is that you don&apos;t need to use the threaded-scrolling ifdef so much now that you have done the nice ScrollingCoordinator/ScrollingCoordinatorMac implementations of the rubberbanding functions. Eventually I stopped commenting on individual spots, because I think you don&apos;t need the ifdefs anywhere, actually.

Thanks, I posted a revised patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836977</commentid>
    <comment_count>19</comment_count>
      <attachid>189203</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-19 16:47:43 -0800</bug_when>
    <thetext>Comment on attachment 189203
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.messages.in:145
&gt; +    SetRubberBandsAtBottom(bool rubberBandsAtTop)

Typo in argument name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836986</commentid>
    <comment_count>20</comment_count>
      <attachid>189205</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 16:54:52 -0800</bug_when>
    <thetext>Created attachment 189205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836987</commentid>
    <comment_count>21</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-19 16:56:03 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 189203 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189203&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.messages.in:145
&gt; &gt; +    SetRubberBandsAtBottom(bool rubberBandsAtTop)
&gt; 
&gt; Typo in argument name.

Oops, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837018</commentid>
    <comment_count>22</comment_count>
      <attachid>189205</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 17:44:29 -0800</bug_when>
    <thetext>Comment on attachment 189205
Patch

Clearing flags on attachment: 189205

Committed r143418: &lt;http://trac.webkit.org/changeset/143418&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837019</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 17:44:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188981</attachid>
            <date>2013-02-18 21:13:50 -0800</date>
            <delta_ts>2013-02-19 00:12:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch_110006.diff</filename>
            <type>text/plain</type>
            <size>21078</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyYzZhNGU1Li40NjBjNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTMtMDItMTggIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4K
KworICAgICAgICBBbGxvdyBVSSBjbGllbnRzIHRvIGhhbmRsZSB2ZXJ0aWNhbCB3aGVlbCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAw
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
QVBJIHRvIGFsbG93IG1hdGNoaW5nIGNoYW5nZXMgaW4gV2ViS2l0MiB0byBjb250cm9sIHJ1YmJl
ci1iYW5kaW5nIGJlaGF2aW9yIGF0IHZlcnRpY2FsIHBhZ2UgZXh0cmVtYS4KKyAgICAgICAgSWYg
cnViYmVyLWJhbmRpbmcgaXMgZGlzYWJsZWQgZHVyaW5nIGEgc2Nyb2xsIGV2ZW50IHRoYXQgd291
bGQgb3RoZXJ3aXNlIHRyaWdnZXIgcnViYmVyLWJhbmRpbmcsIGRpc3BhdGNoCisgICAgICAgIGRp
ZE5vdEhhbmRsZVdoZWVsRXZlbnQoKSB0byB0aGUgcGFnZSBVSSBjbGllbnQuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgRXhwb3J0IG5ldyBydWJiZXItYmFuZGluZyBBUEku
CisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IEltcG9ydCBTY3JvbGxpbmdUcmVlLmguCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpydWJiZXJC
YW5kc0F0Qm90dG9tKToKKyAgICAgICAgUHJveHkgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0
aW9uIGluIFNjcm9sbGluZ1RyZWUuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRSdWJiZXJC
YW5kc0F0Qm90dG9tKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpy
dWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdl
L1BhZ2UuaDoKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICBEZWNsYXJlIG5ldyBydWJiZXItYmFu
ZGluZyBBUEkgKGFib3ZlKS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSk6
CisgICAgICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5TdGF0ZSk6CisgICAgICAgIFNldCB0
b3AvYm90dG9tIHBpbm5lZCBzdGF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgTmV3IGFjY2Vzc29yIGZ1bmN0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6
CisgICAgICAgIE5ldyBtdXRhdG9yIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6cnViYmVyQmFuZHNBdFRvcCk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRUb3Ap
OgorICAgICAgICBOZXcgbXV0YXRvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmUpOgorICAgICAgICBTdGFy
dCBhIHZlcnRpY2FsIHN3aXBlIGV2ZW50IGlmIHRoZSBmcmFtZSBpcyBwaW5uZWQgYXQgdGhlIHRv
cCBvciBib3R0b20gYW5kIGFzc29jaWF0ZWQgcnViYmVyLWJhbmRpbmcgaXMgZGlzYWJsZWQuCisK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChTY3Jv
bGxpbmdUcmVlKToKKyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJIGFuZCBh
c3NvY2lhdGVkIG1lbWJlciB2YXJpYWJsZXMuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24pOgorICAgICAg
ICBSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVNYWluRnJhbWVQaW5TdGF0ZSk6CisgICAgICAg
IENhbGN1bGF0ZSBhbmQgcGFzcyB2ZXJ0aWNhbCBwaW5uaW5nIHN0YXRlIHRvIFNjcm9sbGluZ1Ry
ZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKCkuCisKIDIwMTMtMDItMTggIHBlYXZvQG91dGxvb2su
Y29tICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW0N1cmxdIFRoZSBmdW5jdGlvbiBj
b29raWVzRm9yRE9NKCkgZG9lcyBub3QgYmVoYXZlIGNvcnJlY3RseS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggOTQwMmY3MC4uOTE1Zjg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc4MSwx
MiArNzgxLDE0IEBAIF9fWk43V2ViQ29yZTRQYWdlMTd3aWxsTW92ZU9mZnNjcmVlbkV2CiBfX1pO
N1dlYkNvcmU0UGFnZTE4cmVtb3ZlU2NoZWR1bGVQYWlyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEy
U2NoZWR1bGVQYWlyRUVFCiBfX1pON1dlYkNvcmU0UGFnZTE4c2V0UGFnZVNjYWxlRmFjdG9yRWZS
S05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTRQYWdlMTlhZGRMYXlvdXRNaWxlc3RvbmVzRWoK
K19fWk43V2ViQ29yZTRQYWdlMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43V2ViQ29yZTRQ
YWdlMTl2aXNpdGVkU3RhdGVDaGFuZ2VkRVBOU185UGFnZUdyb3VwRXkKIF9fWk43V2ViQ29yZTRQ
YWdlMjBzZXREZXZpY2VTY2FsZUZhY3RvckVmCiBfX1pON1dlYkNvcmU0UGFnZTIwdW5tYXJrQWxs
VGV4dE1hdGNoZXNFdgogX19aTjdXZWJDb3JlNFBhZ2UyMW1hcmtBbGxNYXRjaGVzRm9yVGV4dEVS
S04zV1RGNlN0cmluZ0VqYmoKIF9fWk43V2ViQ29yZTRQYWdlMjJhbGxWaXNpdGVkU3RhdGVDaGFu
Z2VkRVBOU185UGFnZUdyb3VwRQogX19aTjdXZWJDb3JlNFBhZ2UyMm5vbkZhc3RTY3JvbGxhYmxl
UmVjdHNFUEtOU181RnJhbWVFCitfX1pON1dlYkNvcmU0UGFnZTIyc2V0UnViYmVyQmFuZHNBdEJv
dHRvbUViCiBfX1pON1dlYkNvcmU0UGFnZTIzY2xlYXJVbmRvUmVkb09wZXJhdGlvbnNFdgogX19a
TjdXZWJDb3JlNFBhZ2UyNGZpbmRTdHJpbmdNYXRjaGluZ1Jhbmdlc0VSS04zV1RGNlN0cmluZ0Vq
aVBOUzFfNlZlY3RvcklOUzFfNlJlZlB0cklOU181UmFuZ2VFRUVMbTBFRUVSaQogX19aTjdXZWJD
b3JlNFBhZ2UyNHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCBlZjllODY4Li5iYWI1N2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlNj
cm9sbGluZ1RyZWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCkBAIC04MTUsNiArODE2LDI4IEBAIHZv
aWQgUGFnZTo6c2V0U2hvdWxkU3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJl
c3NBbmltYXRpb25zKQogICAgIG1fc3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zID0gc3VwcHJl
c3NBbmltYXRpb25zOwogfQogCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKK2Jvb2wg
UGFnZTo6cnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWUoKS0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOwor
fQorCit2b2lkIFBhZ2U6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0
Qm90dG9tKQoreworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWUoKS0+
c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9tKTsKK30KKworYm9vbCBQ
YWdlOjpydWJiZXJCYW5kc0F0VG9wKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxpbmdD
b29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZSgpLT5ydWJiZXJCYW5kc0F0VG9wKCk7Cit9CisKK3Zv
aWQgUGFnZTo6c2V0UnViYmVyQmFuZHNBdFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7Cisg
ICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZSgpLT5zZXRSdWJiZXJCYW5k
c0F0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOworfQorI2VuZGlmCisKIHZvaWQgUGFnZTo6c2V0UGFn
aW5hdGlvbihjb25zdCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uKQogewogICAgIGlmIChtX3BhZ2lu
YXRpb24gPT0gcGFnaW5hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZDg0ZTM5OS4uMDUxMzBmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTI3MSw2ICsyNzEsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkU3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVz
c1Njcm9sbGJhckFuaW1hdGlvbnM7IH0KICAgICB2b2lkIHNldFNob3VsZFN1cHByZXNzU2Nyb2xs
YmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucyk7CiAKKyNpZiBFTkFCTEUoVEhS
RUFERURfU0NST0xMSU5HKQorICAgIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKTsKKyAgICBib29sIHJ1YmJlckJh
bmRzQXRUb3AoKSBjb25zdDsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7Cisj
ZW5kaWYKKwogICAgIC8vIFBhZ2UgYW5kIEZyYW1lVmlldyBib3RoIHN0b3JlIGEgUGFnaW5hdGlv
biB2YWx1ZS4gUGFnZTo6cGFnaW5hdGlvbigpIGlzIHNldCBvbmx5IGJ5IEFQSSwKICAgICAvLyBh
bmQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQ1NTLiBQYWdlOjpwYWdp
bmF0aW9uKCkgd2lsbCBhZmZlY3QgYWxsCiAgICAgLy8gRnJhbWVWaWV3cyBpbiB0aGUgcGFnZSBj
YWNoZSwgYnV0IEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIG9ubHkgYWZmZWN0cyB0aGUgY3VycmVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApp
bmRleCBiNzljZTYyLi4yYzc2NjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTMsNiArNTMsMTAgQEAgU2Nyb2xsaW5nVHJlZTo6U2Ny
b2xsaW5nVHJlZShTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAg
ICAgLCBtX2NhbkdvRm9yd2FyZChmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVM
ZWZ0KGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0KGZhbHNlKQorICAg
ICwgbV9ydWJiZXJCYW5kc0F0Qm90dG9tKHRydWUpCisgICAgLCBtX3J1YmJlckJhbmRzQXRUb3Ao
dHJ1ZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3AoZmFsc2UpCisgICAgLCBtX21h
aW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1J1YmJl
ckJhbmRpbmcoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpCkBA
IC0yMjUsMTIgKzIyOSwxNCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnJlbW92ZURlc3Ryb3llZE5v
ZGVzKFNjcm9sbGluZ1N0YXRlVHJlZSogc3RhdGVUcmVlKQogICAgIH0KIH0KIAotdm9pZCBTY3Jv
bGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9v
bCBwaW5uZWRUb1RoZVJpZ2h0KQordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5T
dGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBp
bm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKQogewogICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhl
TGVmdCA9IHBpbm5lZFRvVGhlTGVmdDsKICAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlUmlnaHQg
PSBwaW5uZWRUb1RoZVJpZ2h0OworICAgIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3AgPSBwaW5u
ZWRUb1RoZVRvcDsKKyAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tID0gcGlubmVkVG9U
aGVCb3R0b207CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCkBAIC0yOTAsMTIg
KzI5NiwzOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzUnViYmVyQmFuZGlu
Zyhib29sIGlzUnViYmVyQmFuZGluZykKICAgICBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZyA9
IGlzUnViYmVyQmFuZGluZzsKIH0KIAorYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0
Qm90dG9tKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKwor
ICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRCb3R0b207Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7Cisg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIG1fcnViYmVy
QmFuZHNBdEJvdHRvbSA9IHJ1YmJlckJhbmRzQXRCb3R0b207Cit9CisKK2Jvb2wgU2Nyb2xsaW5n
VHJlZTo6cnViYmVyQmFuZHNBdFRvcCgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBl
U3RhdGVNdXRleCk7CisKKyAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0VG9wOworfQorCit2b2lk
IFNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9w
KQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisKKyAgICBt
X3J1YmJlckJhbmRzQXRUb3AgPSBydWJiZXJCYW5kc0F0VG9wOworfQorCiBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgIT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghd2hlZWxFdmVudC5kZWx0YVgoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKQEAgLTMwMyw2ICszMzUsMTAgQEAg
Ym9vbCBTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2gKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHdo
ZWVsRXZlbnQuZGVsdGFYKCkgPCAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVSaWdodCAmJiBt
X2NhbkdvRm9yd2FyZCkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHdoZWVsRXZlbnQu
ZGVsdGFZKCkgPiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3AgJiYgIW1fcnViYmVyQmFu
ZHNBdFRvcCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFZ
KCkgPCAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20gJiYgIW1fcnViYmVyQmFuZHNB
dEJvdHRvbSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggODRj
ZDkxNC4uYWQ3YmNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CiAgICAgdm9pZCBjb21taXROZXdUcmVlU3RhdGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRy
ZWU+KTsKIAotICAgIHZvaWQgc2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxl
ZnQsIGJvb2wgcGlubmVkVG9UaGVSaWdodCk7CisgICAgdm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0
ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5l
ZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKIAogICAgIHZvaWQgdXBkYXRlTWFp
bkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRP
clN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24p
OwogICAgIEludFBvaW50IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKCk7CkBAIC05Nyw2ICs5Nywx
MSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Hb0JhY2soKTsKICAgICBib29sIGNhbkdvRm9yd2Fy
ZCgpOwogCisgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKCk7CisgICAgdm9pZCBzZXRSdWJi
ZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAgIGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpOworICAg
IHZvaWQgc2V0UnViYmVyQmFuZHNBdFRvcChib29sKTsKKwogICAgIGJvb2wgd2lsbFdoZWVsRXZl
bnRTdGFydFN3aXBlR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAogICAgIHZv
aWQgc2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sIGZsYWcpOwpAQCAt
MTI2LDYgKzEzMSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5Hb0ZvcndhcmQ7CiAgICAg
Ym9vbCBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodDsKKyAgICBib29sIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsKKyAgICBib29s
IG1fcnViYmVyQmFuZHNBdFRvcDsKKyAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3A7
CisgICAgYm9vbCBtX21haW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tOwogICAgIGJvb2wgbV9tYWlu
RnJhbWVJc1J1YmJlckJhbmRpbmc7CiAKICAgICBib29sIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VM
b2dnaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA3
YzcyMmNjYS4uZjFmN2E5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQpA
QCAtMTk5LDcgKzE5OSw3IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnBp
bm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBpZiAoKGRlbHRhLndpZHRoKCkgfHwgZGVsdGEuaGVpZ2h0KCkpICYmIChsaW1pdERl
bHRhLndpZHRoKCkgPCAxICYmIGxpbWl0RGVsdGEuaGVpZ2h0KCkgPCAxKSkgICAgICAgIAorICAg
IGlmICgoZGVsdGEud2lkdGgoKSB8fCBkZWx0YS5oZWlnaHQoKSkgJiYgKGxpbWl0RGVsdGEud2lk
dGgoKSA8IDEgJiYgbGltaXREZWx0YS5oZWlnaHQoKSA8IDEpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTM0OCw4ICszNDgsMTAgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUoY29uc3QgSW50
UG9pbnQmIHNjcm8KIHsKICAgICBib29sIHBpbm5lZFRvVGhlTGVmdCA9IHNjcm9sbFBvc2l0aW9u
LngoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CiAgICAgYm9vbCBwaW5uZWRUb1Ro
ZVJpZ2h0ID0gc2Nyb2xsUG9zaXRpb24ueCgpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngo
KTsKKyAgICBib29sIHBpbm5lZFRvVGhlVG9wID0gc2Nyb2xsUG9zaXRpb24ueSgpIDw9IG1pbmlt
dW1TY3JvbGxQb3NpdGlvbigpLnkoKTsKKyAgICBib29sIHBpbm5lZFRvVGhlQm90dG9tID0gc2Ny
b2xsUG9zaXRpb24ueSgpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKTsKIAotICAgIHNj
cm9sbGluZ1RyZWUoKS0+c2V0TWFpbkZyYW1lUGluU3RhdGUocGlubmVkVG9UaGVMZWZ0LCBwaW5u
ZWRUb1RoZVJpZ2h0KTsKKyAgICBzY3JvbGxpbmdUcmVlKCktPnNldE1haW5GcmFtZVBpblN0YXRl
KHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCwgcGlubmVkVG9UaGVUb3AsIHBpbm5l
ZFRvVGhlQm90dG9tKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6
bG9nRXhwb3NlZFVuZmlsbGVkQXJlYSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGZkZGU0ZC4uYWMyYTA4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTE4ICBDb25yYWQgU2h1bHR6ICA8
Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkgY2xpZW50cyB0byBo
YW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBjbGllbnRzIHRvIHNlbGVjdGl2
ZWx5IGNvbnRyb2wgcnViYmVyLWJhbmRpbmcgYXQgdmVydGljYWwgcGFnZSBleHRyZW1hLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSdWJi
ZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgUHJveHkgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZ1
bmN0aW9uIGluIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0
Qm90dG9tKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VSdWJiZXJCYW5kc0F0VG9w
KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6Cisg
ICAgICAgIERlY2xhcmUgbmV3IEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6Cisg
ICAgICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5j
dGlvbjsgZGlzcGF0Y2hlcyBhIG1hdGNoaW5nIG1lc3NhZ2UgdG8gdGhlIFdlYktpdDo6V2ViUGFn
ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICBEZWNsYXJlIG5ldyBBUEkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5l
dyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJ1YmJlckJh
bmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgZnVuY3Rpb247IGNhbGwgdGhlIG1hdGNoaW5nIGZ1
bmN0aW9uIG9uIHRoZSBhc3NvY2lhdGVkIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAg
ICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIERlY2xhcmUgbmV3IHJ1
YmJlci1iYW5kaW5nIEFQSS4KKwogMjAxMy0wMi0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBTdG9yYWdlTWFuYWdlciBtZW1iZXIgZnVuY3Rp
b25zIGZvciBrZWVwaW5nIHRyYWNrIG9mIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2VzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDU1MGQ3YmUuLjljOGMx
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zOTQs
NiArMzk0LDI4IEBAIGJvb2wgV0tQYWdlSXNQaW5uZWRUb0JvdHRvbVNpZGUoV0tQYWdlUmVmIHBh
Z2VSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+aXNQaW5uZWRUb0JvdHRvbVNpZGUo
KTsKIH0KIAorI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCitib29sIFdLUGFnZVJ1YmJl
ckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChw
YWdlUmVmKS0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOworfQorCit2b2lkIFdLUGFnZVNldFJ1YmJl
ckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRv
bSkKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9t
KHJ1YmJlckJhbmRzQXRCb3R0b20pOworfQorCitib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRUb3Ao
V0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVy
QmFuZHNBdFRvcCgpOworfQorCit2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3AoV0tQYWdl
UmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICByZXR1cm4gdG9JbXBs
KHBhZ2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOworfQorI2Vu
ZGlmCisKIHZvaWQgV0tQYWdlU2V0UGFnaW5hdGlvbk1vZGUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdL
UGFnaW5hdGlvbk1vZGUgcGFnaW5hdGlvbk1vZGUpCiB7CiAgICAgUGFnaW5hdGlvbjo6TW9kZSBt
b2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IDFhODU2NTcu
LmI1MzI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTQ0
NCw2ICs0NDQsMTMgQEAgV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb1JpZ2h0U2lkZShX
S1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvVG9wU2lkZShX
S1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvQm90dG9tU2lk
ZShXS1BhZ2VSZWYgcGFnZSk7CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorV0tf
RVhQT1JUIGJvb2wgV0tQYWdlUnViYmVyQmFuZHNBdEJvdHRvbShXS1BhZ2VSZWYpOworV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdEJvdHRvbShXS1BhZ2VSZWYsIGJvb2wgcnVi
YmVyQmFuZHNBdEJvdHRvbSk7CitXS19FWFBPUlQgYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0VG9w
KFdLUGFnZVJlZik7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKFdL
UGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0VG9wKTsKKyNlbmRpZgorCiBXS19FWFBPUlQgYm9v
bCBXS1BhZ2VDYW5EZWxldGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdl
SGFzU2VsZWN0ZWRSYW5nZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJ
c0NvbnRlbnRFZGl0YWJsZShXS1BhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGRlMmQ3N2YuLjkxMmM5ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05MSw2ICs5MSwxMCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogCisjaWYg
RU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjZW5k
aWYKKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJDb29yZGluYXRl
ZExheWVyVHJlZUhvc3RQcm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKQEAgLTIyNiw2ICsyMzAsOCBA
QCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNz
UmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvUmln
aHRTaWRlKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZShmYWxzZSkK
ICAgICAsIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUoZmFsc2UpCisgICAgLCBtX3J1
YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkKKyAgICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQog
ICAgICwgbV9tYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKGZhbHNlKQogICAgICwgbV9wYWdlQ291
bnQoMCkKICAgICAsIG1fcmVuZGVyVHJlZVNpemUoMCkKQEAgLTE2NzAsNiArMTY3NiwzNCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3Vw
cHJlc3NBbmltYXRpb25zKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
U2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKHN1cHByZXNzQW5pbWF0aW9ucyksIG1fcGFn
ZUlEKTsKIH0KIAorI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7
CisgICAgaWYgKHJ1YmJlckJhbmRzQXRCb3R0b20gPT0gbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3J1YmJlckJhbmRzQXRCb3R0b20gPSBydWJiZXJCYW5k
c0F0Qm90dG9tOworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0UnViYmVyQmFuZHNBdEJvdHRv
bShydWJiZXJCYW5kc0F0Qm90dG9tKSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0UnViYmVyQmFuZHNBdFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgaWYg
KHJ1YmJlckJhbmRzQXRUb3AgPT0gbV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3J1YmJlckJhbmRzQXRUb3AgPSBydWJiZXJCYW5kc0F0VG9wOworCisgICAgaWYg
KCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6U2V0UnViYmVyQmFuZHNBdFRvcChydWJiZXJCYW5kc0F0VG9wKSwgbV9w
YWdlSUQpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQYWdpbmF0aW9uTW9k
ZShXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gbV9w
YWdpbmF0aW9uTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCA5NWMxM2Y2Li43ZmY3OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC00OTcsNiArNDk3LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzUGlubmVkVG9Ub3BT
aWRlKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsgfQogICAg
IGJvb2wgaXNQaW5uZWRUb0JvdHRvbVNpZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlz
UGlubmVkVG9Cb3R0b21TaWRlOyB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQor
ICAgIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcnViYmVyQmFu
ZHNBdEJvdHRvbTsgfQorICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKTsKKyAg
ICBib29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVybiBtX3J1YmJlckJhbmRzQXRU
b3A7IH0KKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7CisjZW5kaWYKKwogICAg
IHZvaWQgc2V0UGFnaW5hdGlvbk1vZGUoV2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSk7CiAgICAg
V2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSBwYWdpbmF0aW9uTW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnaW5hdGlvbk1vZGU7IH0KICAgICB2b2lkIHNldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNv
bHVtbnMoYm9vbCk7CkBAIC0xMjAxLDYgKzEyMDgsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
bWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGU7CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVk
VG9Cb3R0b21TaWRlOwogCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICAgICAg
Ym9vbCBtX3J1YmJlckJhbmRzQXRCb3R0b207CisgICAgICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0
VG9wOworI2VuZGlmCisKICAgICBib29sIG1fbWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZTsKIAog
ICAgIHVuc2lnbmVkIG1fcGFnZUNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDUwNzhhYmQuLjg1MzUyMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzMTIsNiArMTMxMiwx
NiBAQCB2b2lkIFdlYlBhZ2U6OnNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1
cHByZXNzQW5pbWF0aW9ucykKICAgICBtX3BhZ2UtPnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFy
QW5pbWF0aW9ucyhzdXBwcmVzc0FuaW1hdGlvbnMpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldFJ1
YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQoreworICAgIG1fcGFn
ZS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9tKTsKK30KKwordm9p
ZCBXZWJQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sK
KyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisK
IHZvaWQgV2ViUGFnZTo6c2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgbW9kZSkKIHsKICAgICBQ
YWdpbmF0aW9uIHBhZ2luYXRpb24gPSBtX3BhZ2UtPnBhZ2luYXRpb24oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE2ZTA2MDYuLjkxMmY1MzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzE1
LDYgKzMxNSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFN1cHByZXNzU2Nyb2xsYmFyQW5p
bWF0aW9ucyhib29sKTsKIAorI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgdm9p
ZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dFRvcChib29sKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uTW9kZSh1aW50MzJf
dCAvKiBXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2RlICovKTsKICAgICB2b2lkIHNldFBhZ2luYXRp
b25CZWhhdmVzTGlrZUNvbHVtbnMoYm9vbCk7CiAgICAgdm9pZCBzZXRQYWdlTGVuZ3RoKGRvdWJs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDY3YmNlNmEuLmUzNjQ5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNDIs
NiArMTQyLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIExp
c3RlbkZvckxheW91dE1pbGVzdG9uZXModWludDMyX3QgbWlsZXN0b25lcykKICAgICBTZXRTdXBw
cmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBzdXBwcmVzc0FuaW1hdGlvbnMpCiAKKyNpZiBF
TkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIFNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9v
bCBydWJiZXJCYW5kc0F0VG9wKQorICAgIFNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJC
YW5kc0F0VG9wKQorI2VuZGlmCisKICAgICBTZXRQYWdpbmF0aW9uTW9kZSh1aW50MzJfdCBtb2Rl
KQogICAgIFNldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMoYm9vbCBiZWhhdmVzTGlrZUNv
bHVtbnMpCiAgICAgU2V0UGFnZUxlbmd0aChkb3VibGUgcGFnZUxlbmd0aCkK
</data>
<flag name="commit-queue"
          id="209252"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189029</attachid>
            <date>2013-02-19 02:05:06 -0800</date>
            <delta_ts>2013-02-19 11:02:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110006-20130219020128.patch</filename>
            <type>text/plain</type>
            <size>21512</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZjRmMTgzMTJiYzIw
MWNmZWNlZDRkMjYyYjU2ZjQ5ZDBiY2I2MC4uZTFlMTNmNmJmMzVmOTFkNDFlNDg4NzBjODIwNTlm
ZGUxOWVjOTBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAyLTE4ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkg
Y2xpZW50cyB0byBoYW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBtYXRjaGlu
ZyBjaGFuZ2VzIGluIFdlYktpdDIgdG8gY29udHJvbCBydWJiZXItYmFuZGluZyBiZWhhdmlvciBh
dCB2ZXJ0aWNhbCBwYWdlIGV4dHJlbWEuCisgICAgICAgIElmIHJ1YmJlci1iYW5kaW5nIGlzIGRp
c2FibGVkIGR1cmluZyBhIHNjcm9sbCBldmVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSB0cmlnZ2Vy
IHJ1YmJlci1iYW5kaW5nLCBkaXNwYXRjaAorICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgdG8gdGhlIHBhZ2UgVUkgY2xpZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICBJbXBvcnQgU2Nyb2xsaW5nVHJl
ZS5oLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIFByb3h5IGZvciB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBpbiBTY3JvbGxpbmdUcmVl
LgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UnViYmVyQmFuZHNBdFRv
cCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChQ
YWdlKToKKyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJIChhYm92ZSkuCisK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUpOgorICAgICAgICBJbml0aWFsaXpl
IG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBTZXQgdG9wL2JvdHRvbSBwaW5uZWQgc3Rh
dGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRv
bSk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgbXV0YXRv
ciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRz
QXRUb3ApOgorICAgICAgICBOZXcgYWNjZXNzb3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgTmV3IG11dGF0
b3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxF
dmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgU3RhcnQgYSB2ZXJ0aWNhbCBzd2lwZSBl
dmVudCBpZiB0aGUgZnJhbWUgaXMgcGlubmVkIGF0IHRoZSB0b3Agb3IgYm90dG9tIGFuZCBhc3Nv
Y2lhdGVkIHJ1YmJlci1iYW5kaW5nIGlzIGRpc2FibGVkLgorCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xsaW5nVHJlZSk6CisgICAgICAg
IERlY2xhcmUgbmV3IHJ1YmJlci1iYW5kaW5nIEFQSSBhbmQgYXNzb2NpYXRlZCBtZW1iZXIgdmFy
aWFibGVzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnBpbm5lZEluRGlyZWN0aW9uKToKKyAgICAgICAgUmVtb3ZlIHRyYWlsaW5nIHdo
aXRlc3BhY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBDYWxjdWxhdGUgYW5kIHBhc3Mg
dmVydGljYWwgcGlubmluZyBzdGF0ZSB0byBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5T
dGF0ZSgpLgorCiAyMDEzLTAyLTE4ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNYWtlIEV2ZW50RGlzcGF0Y2hlciB0YWtlIGFuIEV2ZW50IG9iamVjdCBpbiBp
dHMgY29uc3RydWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmQxYmJmMWY4NjFjODUzMDU5YjkzMWY1Yzc3
MGMyYzUzZTQzMTI1YS4uNzI2OTY4YWM4N2Y3MzVjN2Y5MzQ0YTU0ZWNjMThkOGVmNzI4ZjQ1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTE4ICBDb25yYWQgU2h1bHR6ICA8
Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkgY2xpZW50cyB0byBo
YW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBjbGllbnRzIHRvIHNlbGVjdGl2
ZWx5IGNvbnRyb2wgcnViYmVyLWJhbmRpbmcgYXQgdmVydGljYWwgcGFnZSBleHRyZW1hLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSdWJi
ZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgUHJveHkgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZ1
bmN0aW9uIGluIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0
Qm90dG9tKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VSdWJiZXJCYW5kc0F0VG9w
KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6Cisg
ICAgICAgIERlY2xhcmUgbmV3IEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6Cisg
ICAgICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5j
dGlvbjsgZGlzcGF0Y2hlcyBhIG1hdGNoaW5nIG1lc3NhZ2UgdG8gdGhlIFdlYktpdDo6V2ViUGFn
ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICBEZWNsYXJlIG5ldyBBUEkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5l
dyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJ1YmJlckJh
bmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgZnVuY3Rpb247IGNhbGwgdGhlIG1hdGNoaW5nIGZ1
bmN0aW9uIG9uIHRoZSBhc3NvY2lhdGVkIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAg
ICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIERlY2xhcmUgbmV3IHJ1
YmJlci1iYW5kaW5nIEFQSS4KKwogMjAxMy0wMi0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIHdlYmtpdF93ZWJfdmll
d19nZXRfc3VicmVzb3VyY2VzIGZyb20gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA2ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3Li4wNGY0ZjY1
YjIxZDQ4NDkwN2FmYmMyMGZiNDM1MDlhMTNiNTU2MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMjcwMyw3ICsyNzAzLDkgQEAgX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlRDFFdgogX19a
TjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQxNWRpc3BhdGNoQmFycmllckVSS04zV1RGOEZ1bmN0
aW9uSUZ2dkVFRQogX19aTjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQ4ZGlzcGF0Y2hFUktOM1dU
RjhGdW5jdGlvbklGdnZFRUUKIF9fWk43V2ViQ29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNl
dEZvcmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRpb25VcGRhdGVzRWIKK19fWk43V2ViQ29y
ZTRQYWdlMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43V2ViQ29yZTRQYWdlMjBzY3JvbGxp
bmdDb29yZGluYXRvckV2CitfX1pON1dlYkNvcmU0UGFnZTIyc2V0UnViYmVyQmFuZHNBdEJvdHRv
bUViCiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGVm
OWU4Njg2ODA1ZTk5MWI0NWJlY2IwMDRkYzlhN2IxOTlhNzNjYmYuLmJhYjU3Y2Q2Y2NkMjk3NzY0
M2I1OWQxMWUwMjZiMmM0MWEwMDFiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjcsNiArNjcs
NyBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKQEAgLTgxNSw2ICs4MTYsMjgg
QEAgdm9pZCBQYWdlOjpzZXRTaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBz
dXBwcmVzc0FuaW1hdGlvbnMpCiAgICAgbV9zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMgPSBz
dXBwcmVzc0FuaW1hdGlvbnM7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQor
Ym9vbCBQYWdlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
Y3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZSgpLT5ydWJiZXJCYW5kc0F0Qm90dG9t
KCk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20pCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJl
ZSgpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOworfQorCiti
b29sIFBhZ2U6OnJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlKCktPnJ1YmJlckJhbmRzQXRUb3AoKTsKK30K
Kwordm9pZCBQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkK
K3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlKCktPnNldFJ1YmJl
ckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisjZW5kaWYKKwogdm9pZCBQYWdlOjpz
ZXRQYWdpbmF0aW9uKGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24pCiB7CiAgICAgaWYgKG1f
cGFnaW5hdGlvbiA9PSBwYWdpbmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkODRlMzk5ZWIyN2Yw
YTZkZmI0Y2EzNDBlYmUwZDMwMWEwNTM5YmIyLi4wNTEzMGZkMmY0MDY5MzMzMmIwMTlmNGZkMjkw
YTgwMTBhMmFmYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjcxLDYgKzI3MSwxMyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsgfQogICAgIHZvaWQgc2V0U2hvdWxk
U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKTsKIAor
I2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90
dG9tKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAg
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0OworICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dFRvcChib29sKTsKKyNlbmRpZgorCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3Rv
cmUgYSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkg
QVBJLAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBD
U1MuIFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKICAgICAvLyBGcmFtZVZpZXdz
IGluIHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZl
Y3RzIHRoZSBjdXJyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwCmluZGV4IGI3OWNlNjJkZjAwNjg2NWVlZGRlMWZkYjAyYjQ3MmIwMWY5YjM2
NjcuLjJjNzY2MDQ4YzU2Y2ZhYjIwMDUwODI5OTg3YzJkNDMxMjBlNGM3ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw2ICs1Mywx
MCBAQCBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvcikKICAgICAsIG1fY2FuR29Gb3J3YXJkKGZhbHNlKQogICAgICwg
bV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZVBpbm5l
ZFRvVGhlUmlnaHQoZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkKKyAg
ICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQorICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZVRvcChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20oZmFsc2UpCiAg
ICAgLCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5n
UGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNIYW5kbGluZ1Byb2dy
YW1tYXRpY1Njcm9sbChmYWxzZSkKQEAgLTIyNSwxMiArMjI5LDE0IEBAIHZvaWQgU2Nyb2xsaW5n
VHJlZTo6cmVtb3ZlRGVzdHJveWVkTm9kZXMoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRyZWUp
CiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJv
b2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQpCit2b2lkIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBp
bm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0
b20pCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAg
IG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFp
bkZyYW1lUGlubmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CisgICAgbV9tYWluRnJh
bWVQaW5uZWRUb1RoZVRvcCA9IHBpbm5lZFRvVGhlVG9wOworICAgIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVCb3R0b20gPSBwaW5uZWRUb1RoZUJvdHRvbTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVl
Ojp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbikKQEAgLTI5MCwxMiArMjk2LDM4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogICAgIG1fbWFp
bkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOwogfQogCitib29sIFNjcm9s
bGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRCb3R0b20oKQoreworICAgIE11dGV4TG9ja2VyIGxvY2so
bV9zd2lwZVN0YXRlTXV0ZXgpOworCisgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsK
K30KKwordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnVi
YmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRl
TXV0ZXgpOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJvdHRv
bTsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKK3sKKyAgICBN
dXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIHJldHVybiBtX3J1YmJl
ckJhbmRzQXRUb3A7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNBdFRv
cChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dp
cGVTdGF0ZU11dGV4KTsKKworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHJ1YmJlckJhbmRzQXRU
b3A7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2Vz
dHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgaWYgKHdo
ZWVsRXZlbnQucGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF3aGVlbEV2ZW50LmRlbHRhWCgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IApAQCAtMzAzLDYgKzMzNSwxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OndpbGxXaGVlbEV2ZW50
U3RhcnRTd2lwZUdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYgbV9tYWluRnJh
bWVQaW5uZWRUb1RoZVJpZ2h0ICYmIG1fY2FuR29Gb3J3YXJkKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRU
b1RoZVRvcCAmJiAhbV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA8IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJv
dHRvbSAmJiAhbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAppbmRleCA4NGNkOTE0OGE5ZWEzMDdjZGFmMzgyMjRkYTQ1NGYxZGRhMzUx
ZDkyLi5hZDdiY2ViMjI5Y2MyNDFhMTc3NWExNTAwNmRlOTY0Njg3NmRlZDMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NSw3ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2b2lkIGNvbW1pdE5ld1RyZWVT
dGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4pOwogCi0gICAgdm9pZCBzZXRNYWlu
RnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0
KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBi
b29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9U
aGVCb3R0b20pOwogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24gPSBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgSW50UG9pbnQgbWFpbkZyYW1l
U2Nyb2xsUG9zaXRpb24oKTsKQEAgLTk3LDYgKzk3LDExIEBAIHB1YmxpYzoKICAgICBib29sIGNh
bkdvQmFjaygpOwogICAgIGJvb2wgY2FuR29Gb3J3YXJkKCk7CiAKKyAgICBib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7Cisg
ICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9w
KGJvb2wpOworCiAgICAgYm9vbCB3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3JtYW5j
ZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZyk7CkBAIC0xMjYsNiArMTMxLDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2NhbkdvRm9yd2FyZDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9U
aGVMZWZ0OwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0OworICAgIGJvb2wg
bV9ydWJiZXJCYW5kc0F0Qm90dG9tOworICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOworICAg
IGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcDsKKyAgICBib29sIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVCb3R0b207CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZzsKIAog
ICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDdjNzIyY2NhMzNmZTlmYjc1ODdkYzg2ZjMx
NWUzYmQyMThhZDFiMTguLmYxZjdhOTAyNTBhZmU3OGE5ZWFhMzk5OWRiMDQxODFmNzBhZDJjNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTE5OSw3ICsxOTksNyBA
QCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKChkZWx0
YS53aWR0aCgpIHx8IGRlbHRhLmhlaWdodCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwgMSAm
JiBsaW1pdERlbHRhLmhlaWdodCgpIDwgMSkpICAgICAgICAKKyAgICBpZiAoKGRlbHRhLndpZHRo
KCkgfHwgZGVsdGEuaGVpZ2h0KCkpICYmIChsaW1pdERlbHRhLndpZHRoKCkgPCAxICYmIGxpbWl0
RGVsdGEuaGVpZ2h0KCkgPCAxKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0zNDgsOCArMzQ4LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVNYWM6OnVwZGF0ZU1haW5GcmFtZVBpblN0YXRlKGNvbnN0IEludFBvaW50JiBzY3JvCiB7CiAg
ICAgYm9vbCBwaW5uZWRUb1RoZUxlZnQgPSBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNj
cm9sbFBvc2l0aW9uKCkueCgpOwogICAgIGJvb2wgcGlubmVkVG9UaGVSaWdodCA9IHNjcm9sbFBv
c2l0aW9uLngoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CisgICAgYm9vbCBwaW5u
ZWRUb1RoZVRvcCA9IHNjcm9sbFBvc2l0aW9uLnkoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24o
KS55KCk7CisgICAgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSA9IHNjcm9sbFBvc2l0aW9uLnkoKSA+
PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CiAKLSAgICBzY3JvbGxpbmdUcmVlKCktPnNl
dE1haW5GcmFtZVBpblN0YXRlKHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCk7Cisg
ICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVQaW5TdGF0ZShwaW5uZWRUb1RoZUxlZnQs
IHBpbm5lZFRvVGhlUmlnaHQsIHBpbm5lZFRvVGhlVG9wLCBwaW5uZWRUb1RoZUJvdHRvbSk7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OmxvZ0V4cG9zZWRVbmZpbGxl
ZEFyZWEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
NTBkN2JlZTNkMDI3NWZhZjliOGYwYmUxMjc2ZWE3NzIyZmFlYTUwLi45YzhjMWU0YTA5ZjliNGI2
M2M5ODFiNWY3MTJjYzMyOGI0MzY3Mjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcApAQCAtMzk0LDYgKzM5NCwyOCBAQCBib29sIFdLUGFnZUlzUGlubmVkVG9C
b3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0ltcGwocGFnZVJlZikt
PmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xM
SU5HKQorYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmKQor
eworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJlckJhbmRzQXRCb3R0b20oKTsKK30K
Kwordm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmLCBi
b29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+
c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9tKTsKK30KKworYm9vbCBX
S1BhZ2VSdWJiZXJCYW5kc0F0VG9wKFdLUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0
b0ltcGwocGFnZVJlZiktPnJ1YmJlckJhbmRzQXRUb3AoKTsKK30KKwordm9pZCBXS1BhZ2VTZXRS
dWJiZXJCYW5kc0F0VG9wKFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRUb3Ap
Cit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNBdFRvcChydWJi
ZXJCYW5kc0F0VG9wKTsKK30KKyNlbmRpZgorCiB2b2lkIFdLUGFnZVNldFBhZ2luYXRpb25Nb2Rl
KFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2luYXRpb25Nb2RlIHBhZ2luYXRpb25Nb2RlKQogewog
ICAgIFBhZ2luYXRpb246Ok1vZGUgbW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaAppbmRleCAxYTg1NjU3MTEwYjRjN2YzODk4ZTcyNWVhMTEwMTMxM2ExYzM1MDMzLi5i
NTMyNjBlMmYxMjk3NmM0YWQ3YjdmYWQ3YmM0NDQxMjUxZjZlYjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC00NDQsNiArNDQ0LDEzIEBAIFdLX0VYUE9SVCBi
b29sIFdLUGFnZUlzUGlubmVkVG9SaWdodFNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JU
IGJvb2wgV0tQYWdlSXNQaW5uZWRUb1RvcFNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JU
IGJvb2wgV0tQYWdlSXNQaW5uZWRUb0JvdHRvbVNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogCisjaWYg
RU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1YmJlckJh
bmRzQXRCb3R0b20oV0tQYWdlUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1YmJlckJh
bmRzQXRCb3R0b20oV0tQYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pOworV0tfRVhQ
T1JUIGJvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYpOworV0tfRVhQT1JUIHZv
aWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNB
dFRvcCk7CisjZW5kaWYKKwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlQ2FuRGVsZXRlKFdLUGFnZVJl
ZiBwYWdlKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUhhc1NlbGVjdGVkUmFuZ2UoV0tQYWdlUmVm
IHBhZ2UpOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNDb250ZW50RWRpdGFibGUoV0tQYWdlUmVm
IHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5
ZDhhMzU4ZjI5NjRjMWIyMTI2YWI1ODRmN2YxOWNjMDA5YWZkMTUxLi44NWQzYWVmY2YxNjZjNjZi
NWJmZjUzODI0YTliNzViNjNkMTBkMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMjI2LDYgKzIyNiwxMCBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4g
cAogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlKGZhbHNlKQogICAgICwgbV9t
YWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZShmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lSXNQaW5u
ZWRUb0JvdHRvbVNpZGUoZmFsc2UpCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAg
ICAsIG1fcnViYmVyQmFuZHNBdEJvdHRvbSh0cnVlKQorICAgICwgbV9ydWJiZXJCYW5kc0F0VG9w
KHRydWUpCisjZW5kaWYKICAgICAsIG1fbWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShmYWxzZSkK
ICAgICAsIG1fcGFnZUNvdW50KDApCiAgICAgLCBtX3JlbmRlclRyZWVTaXplKDApCkBAIC0xNjcz
LDYgKzE2NzcsMzQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFN1cHByZXNzU2Nyb2xsYmFyQW5p
bWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhzdXBwcmVzc0Fu
aW1hdGlvbnMpLCBtX3BhZ2VJRCk7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5H
KQordm9pZCBXZWJQYWdlUHJveHk6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJC
YW5kc0F0Qm90dG9tKQoreworICAgIGlmIChydWJiZXJCYW5kc0F0Qm90dG9tID09IG1fcnViYmVy
QmFuZHNBdEJvdHRvbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90
dG9tID0gcnViYmVyQmFuZHNBdEJvdHRvbTsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFJ1
YmJlckJhbmRzQXRCb3R0b20ocnViYmVyQmFuZHNBdEJvdHRvbSksIG1fcGFnZUlEKTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6OnNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0
VG9wKQoreworICAgIGlmIChydWJiZXJCYW5kc0F0VG9wID09IG1fcnViYmVyQmFuZHNBdFRvcCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydWJiZXJCYW5kc0F0VG9wID0gcnViYmVyQmFuZHNB
dFRvcDsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVy
QmFuZHNBdFRvcCksIG1fcGFnZUlEKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0UGFnaW5hdGlvbk1vZGUoV2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSBtb2RlKQogewogICAg
IGlmIChtb2RlID09IG1fcGFnaW5hdGlvbk1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMmE3ODFkNTFmM2IyOWRiYmQ0NzliNzQ4NDY5MzJmNDc3ZmJmMTNl
My4uMzVmYzAzZmRjOTY1NTVlZDk3MmY0NWUwNWRiOWRiZWU2NGIyMjlhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTAyLDYgKzUwMiwxMyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc1Bpbm5lZFRvVG9wU2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1l
SXNQaW5uZWRUb1RvcFNpZGU7IH0KICAgICBib29sIGlzUGlubmVkVG9Cb3R0b21TaWRlKCkgY29u
c3QgeyByZXR1cm4gbV9tYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZTsgfQogCisjaWYgRU5B
QkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20oKSBj
b25zdCB7IHJldHVybiBtX3J1YmJlckJhbmRzQXRCb3R0b207IH0KKyAgICB2b2lkIHNldFJ1YmJl
ckJhbmRzQXRCb3R0b20oYm9vbCk7CisgICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCkgY29uc3Qg
eyByZXR1cm4gbV9ydWJiZXJCYW5kc0F0VG9wOyB9CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0
VG9wKGJvb2wpOworI2VuZGlmCisKICAgICB2b2lkIHNldFBhZ2luYXRpb25Nb2RlKFdlYkNvcmU6
OlBhZ2luYXRpb246Ok1vZGUpOwogICAgIFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGUgcGFnaW5h
dGlvbk1vZGUoKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRpb25Nb2RlOyB9CiAgICAgdm9pZCBz
ZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKGJvb2wpOwpAQCAtMTIwOSw2ICsxMjE2LDEx
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlOwogICAg
IGJvb2wgbV9tYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZTsKIAorI2lmIEVOQUJMRShUSFJF
QURFRF9TQ1JPTExJTkcpCisgICAgICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0Qm90dG9tOworICAg
ICAgICBib29sIG1fcnViYmVyQmFuZHNBdFRvcDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX21haW5G
cmFtZUluVmlld1NvdXJjZU1vZGU7CiAKICAgICB1bnNpZ25lZCBtX3BhZ2VDb3VudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1MDc4YWJk
NWM0ZDU1NDE0NmUxOWE4OGJjYTM1MTgwZTRhZWMwODM0Li4wYzQ3MWVlODk0MDRjNWFjMGEyOTM3
ZjNlODA3ZmQ2MzY2ZDVhM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzEyLDYgKzEzMTIsMTggQEAgdm9pZCBXZWJQYWdlOjpzZXRT
dXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBzdXBwcmVzc0FuaW1hdGlvbnMpCiAgICAg
bV9wYWdlLT5zZXRTaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoc3VwcHJlc3NBbmlt
YXRpb25zKTsKIH0KIAorI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCit2b2lkIFdlYlBh
Z2U6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQorewor
ICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9tKTsK
K30KKwordm9pZCBXZWJQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNB
dFRvcCkKK3sKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRv
cCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpzZXRQYWdpbmF0aW9uTW9kZSh1aW50MzJf
dCBtb2RlKQogewogICAgIFBhZ2luYXRpb24gcGFnaW5hdGlvbiA9IG1fcGFnZS0+cGFnaW5hdGlv
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YTZlMDYwNjAyNzI1MWM1ZGIyYzFkZmRmZGI5ODJlZWVlNGJiMjViOC4uOTEyZjUzMWIzNjQ0Mjgw
Yjc0NzU3ZTljZmU3YzJlNjEyZDZkMGIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zMTUsNiArMzE1LDExIEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wpOwogCisjaWYgRU5BQkxFKFRI
UkVBREVEX1NDUk9MTElORykKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7
CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wpOworI2VuZGlmCisKICAgICB2b2lk
IHNldFBhZ2luYXRpb25Nb2RlKHVpbnQzMl90IC8qIFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGUg
Ki8pOwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1ucyhib29sKTsKICAg
ICB2b2lkIHNldFBhZ2VMZW5ndGgoZG91YmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNjdiY2U2YTJkMmY4
NzkwYTA2OGRjMzBkOWZjODAzMDdiMTU3ZDJkZS4uZTM2NDk5ODQ1MTgyZjI2ZWJhZWYyMDEwY2I3
NzMyNDczMTY3ZmRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE0Miw2ICsxNDIsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTGlzdGVuRm9yTGF5b3V0TWlsZXN0b25l
cyh1aW50MzJfdCBtaWxlc3RvbmVzKQogICAgIFNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9u
cyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykKIAorI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJ
TkcpCisgICAgU2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRzQXRUb3ApCisg
ICAgU2V0UnViYmVyQmFuZHNBdFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCisjZW5kaWYKKwog
ICAgIFNldFBhZ2luYXRpb25Nb2RlKHVpbnQzMl90IG1vZGUpCiAgICAgU2V0UGFnaW5hdGlvbkJl
aGF2ZXNMaWtlQ29sdW1ucyhib29sIGJlaGF2ZXNMaWtlQ29sdW1ucykKICAgICBTZXRQYWdlTGVu
Z3RoKGRvdWJsZSBwYWdlTGVuZ3RoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189116</attachid>
            <date>2013-02-19 11:02:27 -0800</date>
            <delta_ts>2013-02-19 11:09:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110006-20130219105849.patch</filename>
            <type>text/plain</type>
            <size>21640</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZjRmMTgzMTJiYzIw
MWNmZWNlZDRkMjYyYjU2ZjQ5ZDBiY2I2MC4uZTFlMTNmNmJmMzVmOTFkNDFlNDg4NzBjODIwNTlm
ZGUxOWVjOTBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAyLTE4ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkg
Y2xpZW50cyB0byBoYW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBtYXRjaGlu
ZyBjaGFuZ2VzIGluIFdlYktpdDIgdG8gY29udHJvbCBydWJiZXItYmFuZGluZyBiZWhhdmlvciBh
dCB2ZXJ0aWNhbCBwYWdlIGV4dHJlbWEuCisgICAgICAgIElmIHJ1YmJlci1iYW5kaW5nIGlzIGRp
c2FibGVkIGR1cmluZyBhIHNjcm9sbCBldmVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSB0cmlnZ2Vy
IHJ1YmJlci1iYW5kaW5nLCBkaXNwYXRjaAorICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgdG8gdGhlIHBhZ2UgVUkgY2xpZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICBJbXBvcnQgU2Nyb2xsaW5nVHJl
ZS5oLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIFByb3h5IGZvciB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBpbiBTY3JvbGxpbmdUcmVl
LgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UnViYmVyQmFuZHNBdFRv
cCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChQ
YWdlKToKKyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJIChhYm92ZSkuCisK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUpOgorICAgICAgICBJbml0aWFsaXpl
IG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBTZXQgdG9wL2JvdHRvbSBwaW5uZWQgc3Rh
dGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRv
bSk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgbXV0YXRv
ciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRz
QXRUb3ApOgorICAgICAgICBOZXcgYWNjZXNzb3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgTmV3IG11dGF0
b3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxF
dmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgU3RhcnQgYSB2ZXJ0aWNhbCBzd2lwZSBl
dmVudCBpZiB0aGUgZnJhbWUgaXMgcGlubmVkIGF0IHRoZSB0b3Agb3IgYm90dG9tIGFuZCBhc3Nv
Y2lhdGVkIHJ1YmJlci1iYW5kaW5nIGlzIGRpc2FibGVkLgorCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xsaW5nVHJlZSk6CisgICAgICAg
IERlY2xhcmUgbmV3IHJ1YmJlci1iYW5kaW5nIEFQSSBhbmQgYXNzb2NpYXRlZCBtZW1iZXIgdmFy
aWFibGVzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnBpbm5lZEluRGlyZWN0aW9uKToKKyAgICAgICAgUmVtb3ZlIHRyYWlsaW5nIHdo
aXRlc3BhY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBDYWxjdWxhdGUgYW5kIHBhc3Mg
dmVydGljYWwgcGlubmluZyBzdGF0ZSB0byBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5T
dGF0ZSgpLgorCiAyMDEzLTAyLTE4ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNYWtlIEV2ZW50RGlzcGF0Y2hlciB0YWtlIGFuIEV2ZW50IG9iamVjdCBpbiBp
dHMgY29uc3RydWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmQxYmJmMWY4NjFjODUzMDU5YjkzMWY1Yzc3
MGMyYzUzZTQzMTI1YS4uNzI2OTY4YWM4N2Y3MzVjN2Y5MzQ0YTU0ZWNjMThkOGVmNzI4ZjQ1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTE4ICBDb25yYWQgU2h1bHR6ICA8
Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkgY2xpZW50cyB0byBo
YW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBjbGllbnRzIHRvIHNlbGVjdGl2
ZWx5IGNvbnRyb2wgcnViYmVyLWJhbmRpbmcgYXQgdmVydGljYWwgcGFnZSBleHRyZW1hLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSdWJi
ZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgUHJveHkgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZ1
bmN0aW9uIGluIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0
Qm90dG9tKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VSdWJiZXJCYW5kc0F0VG9w
KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6Cisg
ICAgICAgIERlY2xhcmUgbmV3IEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6Cisg
ICAgICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5j
dGlvbjsgZGlzcGF0Y2hlcyBhIG1hdGNoaW5nIG1lc3NhZ2UgdG8gdGhlIFdlYktpdDo6V2ViUGFn
ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICBEZWNsYXJlIG5ldyBBUEkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5l
dyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJ1YmJlckJh
bmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgZnVuY3Rpb247IGNhbGwgdGhlIG1hdGNoaW5nIGZ1
bmN0aW9uIG9uIHRoZSBhc3NvY2lhdGVkIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAg
ICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIERlY2xhcmUgbmV3IHJ1
YmJlci1iYW5kaW5nIEFQSS4KKwogMjAxMy0wMi0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIHdlYmtpdF93ZWJfdmll
d19nZXRfc3VicmVzb3VyY2VzIGZyb20gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA2ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3Li4wNGY0ZjY1
YjIxZDQ4NDkwN2FmYmMyMGZiNDM1MDlhMTNiNTU2MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMjcwMyw3ICsyNzAzLDkgQEAgX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlRDFFdgogX19a
TjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQxNWRpc3BhdGNoQmFycmllckVSS04zV1RGOEZ1bmN0
aW9uSUZ2dkVFRQogX19aTjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQ4ZGlzcGF0Y2hFUktOM1dU
RjhGdW5jdGlvbklGdnZFRUUKIF9fWk43V2ViQ29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNl
dEZvcmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRpb25VcGRhdGVzRWIKK19fWk43V2ViQ29y
ZTRQYWdlMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43V2ViQ29yZTRQYWdlMjBzY3JvbGxp
bmdDb29yZGluYXRvckV2CitfX1pON1dlYkNvcmU0UGFnZTIyc2V0UnViYmVyQmFuZHNBdEJvdHRv
bUViCiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGVm
OWU4Njg2ODA1ZTk5MWI0NWJlY2IwMDRkYzlhN2IxOTlhNzNjYmYuLmJhYjU3Y2Q2Y2NkMjk3NzY0
M2I1OWQxMWUwMjZiMmM0MWEwMDFiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjcsNiArNjcs
NyBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKQEAgLTgxNSw2ICs4MTYsMjgg
QEAgdm9pZCBQYWdlOjpzZXRTaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBz
dXBwcmVzc0FuaW1hdGlvbnMpCiAgICAgbV9zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMgPSBz
dXBwcmVzc0FuaW1hdGlvbnM7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQor
Ym9vbCBQYWdlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
Y3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZSgpLT5ydWJiZXJCYW5kc0F0Qm90dG9t
KCk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20pCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJl
ZSgpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOworfQorCiti
b29sIFBhZ2U6OnJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlKCktPnJ1YmJlckJhbmRzQXRUb3AoKTsKK30K
Kwordm9pZCBQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkK
K3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlKCktPnNldFJ1YmJl
ckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisjZW5kaWYKKwogdm9pZCBQYWdlOjpz
ZXRQYWdpbmF0aW9uKGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24pCiB7CiAgICAgaWYgKG1f
cGFnaW5hdGlvbiA9PSBwYWdpbmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkODRlMzk5ZWIyN2Yw
YTZkZmI0Y2EzNDBlYmUwZDMwMWEwNTM5YmIyLi4wNTEzMGZkMmY0MDY5MzMzMmIwMTlmNGZkMjkw
YTgwMTBhMmFmYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjcxLDYgKzI3MSwxMyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsgfQogICAgIHZvaWQgc2V0U2hvdWxk
U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKTsKIAor
I2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90
dG9tKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAg
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0OworICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dFRvcChib29sKTsKKyNlbmRpZgorCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3Rv
cmUgYSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkg
QVBJLAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBD
U1MuIFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKICAgICAvLyBGcmFtZVZpZXdz
IGluIHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZl
Y3RzIHRoZSBjdXJyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwCmluZGV4IGI3OWNlNjJkZjAwNjg2NWVlZGRlMWZkYjAyYjQ3MmIwMWY5YjM2
NjcuLjJjNzY2MDQ4YzU2Y2ZhYjIwMDUwODI5OTg3YzJkNDMxMjBlNGM3ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw2ICs1Mywx
MCBAQCBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvcikKICAgICAsIG1fY2FuR29Gb3J3YXJkKGZhbHNlKQogICAgICwg
bV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZVBpbm5l
ZFRvVGhlUmlnaHQoZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkKKyAg
ICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQorICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZVRvcChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20oZmFsc2UpCiAg
ICAgLCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5n
UGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNIYW5kbGluZ1Byb2dy
YW1tYXRpY1Njcm9sbChmYWxzZSkKQEAgLTIyNSwxMiArMjI5LDE0IEBAIHZvaWQgU2Nyb2xsaW5n
VHJlZTo6cmVtb3ZlRGVzdHJveWVkTm9kZXMoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRyZWUp
CiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJv
b2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQpCit2b2lkIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBp
bm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0
b20pCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAg
IG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFp
bkZyYW1lUGlubmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CisgICAgbV9tYWluRnJh
bWVQaW5uZWRUb1RoZVRvcCA9IHBpbm5lZFRvVGhlVG9wOworICAgIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVCb3R0b20gPSBwaW5uZWRUb1RoZUJvdHRvbTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVl
Ojp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbikKQEAgLTI5MCwxMiArMjk2LDM4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogICAgIG1fbWFp
bkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOwogfQogCitib29sIFNjcm9s
bGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRCb3R0b20oKQoreworICAgIE11dGV4TG9ja2VyIGxvY2so
bV9zd2lwZVN0YXRlTXV0ZXgpOworCisgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsK
K30KKwordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnVi
YmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRl
TXV0ZXgpOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJvdHRv
bTsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKK3sKKyAgICBN
dXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIHJldHVybiBtX3J1YmJl
ckJhbmRzQXRUb3A7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNBdFRv
cChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dp
cGVTdGF0ZU11dGV4KTsKKworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHJ1YmJlckJhbmRzQXRU
b3A7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2Vz
dHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgaWYgKHdo
ZWVsRXZlbnQucGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF3aGVlbEV2ZW50LmRlbHRhWCgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IApAQCAtMzAzLDYgKzMzNSwxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OndpbGxXaGVlbEV2ZW50
U3RhcnRTd2lwZUdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYgbV9tYWluRnJh
bWVQaW5uZWRUb1RoZVJpZ2h0ICYmIG1fY2FuR29Gb3J3YXJkKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRU
b1RoZVRvcCAmJiAhbV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA8IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJv
dHRvbSAmJiAhbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAppbmRleCA4NGNkOTE0OGE5ZWEzMDdjZGFmMzgyMjRkYTQ1NGYxZGRhMzUx
ZDkyLi5hZDdiY2ViMjI5Y2MyNDFhMTc3NWExNTAwNmRlOTY0Njg3NmRlZDMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NSw3ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2b2lkIGNvbW1pdE5ld1RyZWVT
dGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4pOwogCi0gICAgdm9pZCBzZXRNYWlu
RnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0
KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBi
b29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9U
aGVCb3R0b20pOwogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24gPSBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgSW50UG9pbnQgbWFpbkZyYW1l
U2Nyb2xsUG9zaXRpb24oKTsKQEAgLTk3LDYgKzk3LDExIEBAIHB1YmxpYzoKICAgICBib29sIGNh
bkdvQmFjaygpOwogICAgIGJvb2wgY2FuR29Gb3J3YXJkKCk7CiAKKyAgICBib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7Cisg
ICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9w
KGJvb2wpOworCiAgICAgYm9vbCB3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3JtYW5j
ZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZyk7CkBAIC0xMjYsNiArMTMxLDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2NhbkdvRm9yd2FyZDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9U
aGVMZWZ0OwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0OworICAgIGJvb2wg
bV9ydWJiZXJCYW5kc0F0Qm90dG9tOworICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOworICAg
IGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcDsKKyAgICBib29sIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVCb3R0b207CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZzsKIAog
ICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDdjNzIyY2NhMzNmZTlmYjc1ODdkYzg2ZjMx
NWUzYmQyMThhZDFiMTguLmYxZjdhOTAyNTBhZmU3OGE5ZWFhMzk5OWRiMDQxODFmNzBhZDJjNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTE5OSw3ICsxOTksNyBA
QCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKChkZWx0
YS53aWR0aCgpIHx8IGRlbHRhLmhlaWdodCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwgMSAm
JiBsaW1pdERlbHRhLmhlaWdodCgpIDwgMSkpICAgICAgICAKKyAgICBpZiAoKGRlbHRhLndpZHRo
KCkgfHwgZGVsdGEuaGVpZ2h0KCkpICYmIChsaW1pdERlbHRhLndpZHRoKCkgPCAxICYmIGxpbWl0
RGVsdGEuaGVpZ2h0KCkgPCAxKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0zNDgsOCArMzQ4LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVNYWM6OnVwZGF0ZU1haW5GcmFtZVBpblN0YXRlKGNvbnN0IEludFBvaW50JiBzY3JvCiB7CiAg
ICAgYm9vbCBwaW5uZWRUb1RoZUxlZnQgPSBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNj
cm9sbFBvc2l0aW9uKCkueCgpOwogICAgIGJvb2wgcGlubmVkVG9UaGVSaWdodCA9IHNjcm9sbFBv
c2l0aW9uLngoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CisgICAgYm9vbCBwaW5u
ZWRUb1RoZVRvcCA9IHNjcm9sbFBvc2l0aW9uLnkoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24o
KS55KCk7CisgICAgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSA9IHNjcm9sbFBvc2l0aW9uLnkoKSA+
PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CiAKLSAgICBzY3JvbGxpbmdUcmVlKCktPnNl
dE1haW5GcmFtZVBpblN0YXRlKHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCk7Cisg
ICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVQaW5TdGF0ZShwaW5uZWRUb1RoZUxlZnQs
IHBpbm5lZFRvVGhlUmlnaHQsIHBpbm5lZFRvVGhlVG9wLCBwaW5uZWRUb1RoZUJvdHRvbSk7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OmxvZ0V4cG9zZWRVbmZpbGxl
ZEFyZWEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
NTBkN2JlZTNkMDI3NWZhZjliOGYwYmUxMjc2ZWE3NzIyZmFlYTUwLi5jNmNjZGZmNTVjNzE1OTQ5
OWI0NDE2YzhiNTJlMzU4MzQ4MDdjZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcApAQCAtMzk0LDYgKzM5NCwzOSBAQCBib29sIFdLUGFnZUlzUGlubmVkVG9C
b3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0ltcGwocGFnZVJlZikt
PmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CiB9CiAKKworYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0
Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmKQoreworI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJ
TkcpCisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOwor
I2Vsc2UKKyAgICByZXR1cm4gTk87CisjZW5kaWYKK30KKwordm9pZCBXS1BhZ2VTZXRSdWJiZXJC
YW5kc0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20p
Cit7CisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICByZXR1cm4gdG9JbXBsKHBh
Z2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOworI2Vu
ZGlmCit9CisKK2Jvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZikK
K3sKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIHJldHVybiB0b0ltcGwocGFn
ZVJlZiktPnJ1YmJlckJhbmRzQXRUb3AoKTsKKyNlbHNlCisgICAgcmV0dXJuIE5POworI2VuZGlm
Cit9CisKK3ZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZiwg
Ym9vbCBydWJiZXJCYW5kc0F0VG9wKQoreworI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcp
CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNBdFRvcChydWJiZXJC
YW5kc0F0VG9wKTsKKyNlbmRpZgorfQorCiB2b2lkIFdLUGFnZVNldFBhZ2luYXRpb25Nb2RlKFdL
UGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2luYXRpb25Nb2RlIHBhZ2luYXRpb25Nb2RlKQogewogICAg
IFBhZ2luYXRpb246Ok1vZGUgbW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaAppbmRleCAxYTg1NjU3MTEwYjRjN2YzODk4ZTcyNWVhMTEwMTMxM2ExYzM1MDMzLi5hNTlh
ZWU1NzcxYjYxYjU2NWFlNzE0MWYxZDhhOWYzZTY0NTFhZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC00NDQsNiArNDQ0LDExIEBAIFdLX0VYUE9SVCBib29s
IFdLUGFnZUlzUGlubmVkVG9SaWdodFNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIGJv
b2wgV0tQYWdlSXNQaW5uZWRUb1RvcFNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIGJv
b2wgV0tQYWdlSXNQaW5uZWRUb0JvdHRvbVNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogCitXS19FWFBP
UlQgYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZik7CitXS19FWFBPUlQg
dm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiwgYm9vbCBydWJiZXJC
YW5kc0F0Qm90dG9tKTsKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRUb3AoV0tQ
YWdlUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3AoV0tQYWdl
UmVmLCBib29sIHJ1YmJlckJhbmRzQXRUb3ApOworCiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VDYW5E
ZWxldGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSGFzU2VsZWN0ZWRS
YW5nZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc0NvbnRlbnRFZGl0
YWJsZShXS1BhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDlkOGEzNThmMjk2NGMxYjIxMjZhYjU4NGY3ZjE5Y2MwMDlhZmQxNTEuLjg1
ZDNhZWZjZjE2NmM2NmI1YmZmNTM4MjRhOWI3NWI2M2QxMGQwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMjYsNiArMjI2LDEwIEBAIFdlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2Vi
UHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUoZmFs
c2UpCiAgICAgLCBtX21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlKGZhbHNlKQogICAgICwgbV9t
YWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZShmYWxzZSkKKyNpZiBFTkFCTEUoVEhSRUFERURf
U0NST0xMSU5HKQorICAgICwgbV9ydWJiZXJCYW5kc0F0Qm90dG9tKHRydWUpCisgICAgLCBtX3J1
YmJlckJhbmRzQXRUb3AodHJ1ZSkKKyNlbmRpZgogICAgICwgbV9tYWluRnJhbWVJblZpZXdTb3Vy
Y2VNb2RlKGZhbHNlKQogICAgICwgbV9wYWdlQ291bnQoMCkKICAgICAsIG1fcmVuZGVyVHJlZVNp
emUoMCkKQEAgLTE2NzMsNiArMTY3NywzNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3VwcHJl
c3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRp
b25zKHN1cHByZXNzQW5pbWF0aW9ucyksIG1fcGFnZUlEKTsKIH0KIAorI2lmIEVOQUJMRShUSFJF
QURFRF9TQ1JPTExJTkcpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRv
bShib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7CisgICAgaWYgKHJ1YmJlckJhbmRzQXRCb3R0
b20gPT0gbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1
YmJlckJhbmRzQXRCb3R0b20gPSBydWJiZXJCYW5kc0F0Qm90dG9tOworCisgICAgaWYgKCFpc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9tKSwgbV9w
YWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdFRvcChib29s
IHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgaWYgKHJ1YmJlckJhbmRzQXRUb3AgPT0gbV9ydWJi
ZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1YmJlckJhbmRzQXRUb3Ag
PSBydWJiZXJCYW5kc0F0VG9wOworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0UnViYmVyQmFu
ZHNBdFRvcChydWJiZXJCYW5kc0F0VG9wKSwgbV9wYWdlSUQpOworfQorI2VuZGlmCisKIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXRQYWdpbmF0aW9uTW9kZShXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2Rl
IG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gbV9wYWdpbmF0aW9uTW9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyYTc4MWQ1MWYzYjI5ZGJiZDQ3OWI3NDg0
NjkzMmY0NzdmYmYxM2UzLi4zNWZjMDNmZGM5NjU1NWVkOTcyZjQ1ZTA1ZGI5ZGJlZTY0YjIyOWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01MDIsNiArNTAy
LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzUGlubmVkVG9Ub3BTaWRlKCkgY29uc3QgeyByZXR1
cm4gbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsgfQogICAgIGJvb2wgaXNQaW5uZWRUb0Jv
dHRvbVNpZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRl
OyB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIGJvb2wgcnViYmVyQmFu
ZHNBdEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsgfQorICAg
IHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKTsKKyAgICBib29sIHJ1YmJlckJhbmRz
QXRUb3AoKSBjb25zdCB7IHJldHVybiBtX3J1YmJlckJhbmRzQXRUb3A7IH0KKyAgICB2b2lkIHNl
dFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0UGFnaW5hdGlv
bk1vZGUoV2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSk7CiAgICAgV2ViQ29yZTo6UGFnaW5hdGlv
bjo6TW9kZSBwYWdpbmF0aW9uTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnaW5hdGlvbk1vZGU7
IH0KICAgICB2b2lkIHNldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMoYm9vbCk7CkBAIC0x
MjA5LDYgKzEyMTYsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRU
b1RvcFNpZGU7CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlOwogCisj
aWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICAgICAgYm9vbCBtX3J1YmJlckJhbmRz
QXRCb3R0b207CisgICAgICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOworI2VuZGlmCisKICAg
ICBib29sIG1fbWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZTsKIAogICAgIHVuc2lnbmVkIG1fcGFn
ZUNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDUwNzhhYmQ1YzRkNTU0MTQ2ZTE5YTg4YmNhMzUxODBlNGFlYzA4MzQuLjBjNDcxZWU4
OTQwNGM1YWMwYTI5MzdmM2U4MDdmZDYzNjZkNWEzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzMTIsNiArMTMxMiwxOCBAQCB2b2lk
IFdlYlBhZ2U6OnNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5p
bWF0aW9ucykKICAgICBtX3BhZ2UtPnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9u
cyhzdXBwcmVzc0FuaW1hdGlvbnMpOwogfQogCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElO
RykKK3ZvaWQgV2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRz
QXRCb3R0b20pCit7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJh
bmRzQXRCb3R0b20pOworfQorCit2b2lkIFdlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3AoYm9v
bCBydWJiZXJCYW5kc0F0VG9wKQoreworICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdFRvcChy
dWJiZXJCYW5kc0F0VG9wKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnNldFBhZ2luYXRp
b25Nb2RlKHVpbnQzMl90IG1vZGUpCiB7CiAgICAgUGFnaW5hdGlvbiBwYWdpbmF0aW9uID0gbV9w
YWdlLT5wYWdpbmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBhNmUwNjA2MDI3MjUxYzVkYjJjMWRmZGZkYjk4MmVlZWU0YmIyNWI4Li45
MTJmNTMxYjM2NDQyODBiNzQ3NTdlOWNmZTdjMmU2MTJkNmQwYjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMxNSw2ICszMTUsMTEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCk7CiAK
KyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dEJvdHRvbShib29sKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7CisjZW5k
aWYKKwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgLyogV2ViQ29yZTo6UGFn
aW5hdGlvbjo6TW9kZSAqLyk7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1
bW5zKGJvb2wpOwogICAgIHZvaWQgc2V0UGFnZUxlbmd0aChkb3VibGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCA2N2JjZTZhMmQyZjg3OTBhMDY4ZGMzMGQ5ZmM4MDMwN2IxNTdkMmRlLi5lMzY0OTk4NDUxODJm
MjZlYmFlZjIwMTBjYjc3MzI0NzMxNjdmZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTQyLDYgKzE0Miwx
MSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMaXN0ZW5Gb3JM
YXlvdXRNaWxlc3RvbmVzKHVpbnQzMl90IG1pbGVzdG9uZXMpCiAgICAgU2V0U3VwcHJlc3NTY3Jv
bGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogCisjaWYgRU5BQkxFKFRI
UkVBREVEX1NDUk9MTElORykKKyAgICBTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnViYmVy
QmFuZHNBdFRvcCkKKyAgICBTZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRv
cCkKKyNlbmRpZgorCiAgICAgU2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgbW9kZSkKICAgICBT
ZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKGJvb2wgYmVoYXZlc0xpa2VDb2x1bW5zKQog
ICAgIFNldFBhZ2VMZW5ndGgoZG91YmxlIHBhZ2VMZW5ndGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189118</attachid>
            <date>2013-02-19 11:09:24 -0800</date>
            <delta_ts>2013-02-19 14:36:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110006-20130219110545.patch</filename>
            <type>text/plain</type>
            <size>21646</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZjRmMTgzMTJiYzIw
MWNmZWNlZDRkMjYyYjU2ZjQ5ZDBiY2I2MC4uZTFlMTNmNmJmMzVmOTFkNDFlNDg4NzBjODIwNTlm
ZGUxOWVjOTBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAyLTE4ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkg
Y2xpZW50cyB0byBoYW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBtYXRjaGlu
ZyBjaGFuZ2VzIGluIFdlYktpdDIgdG8gY29udHJvbCBydWJiZXItYmFuZGluZyBiZWhhdmlvciBh
dCB2ZXJ0aWNhbCBwYWdlIGV4dHJlbWEuCisgICAgICAgIElmIHJ1YmJlci1iYW5kaW5nIGlzIGRp
c2FibGVkIGR1cmluZyBhIHNjcm9sbCBldmVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSB0cmlnZ2Vy
IHJ1YmJlci1iYW5kaW5nLCBkaXNwYXRjaAorICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgdG8gdGhlIHBhZ2UgVUkgY2xpZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICBJbXBvcnQgU2Nyb2xsaW5nVHJl
ZS5oLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIFByb3h5IGZvciB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBpbiBTY3JvbGxpbmdUcmVl
LgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UnViYmVyQmFuZHNBdFRv
cCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChQ
YWdlKToKKyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJIChhYm92ZSkuCisK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUpOgorICAgICAgICBJbml0aWFsaXpl
IG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBTZXQgdG9wL2JvdHRvbSBwaW5uZWQgc3Rh
dGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRv
bSk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgbXV0YXRv
ciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRz
QXRUb3ApOgorICAgICAgICBOZXcgYWNjZXNzb3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgTmV3IG11dGF0
b3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxF
dmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgU3RhcnQgYSB2ZXJ0aWNhbCBzd2lwZSBl
dmVudCBpZiB0aGUgZnJhbWUgaXMgcGlubmVkIGF0IHRoZSB0b3Agb3IgYm90dG9tIGFuZCBhc3Nv
Y2lhdGVkIHJ1YmJlci1iYW5kaW5nIGlzIGRpc2FibGVkLgorCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xsaW5nVHJlZSk6CisgICAgICAg
IERlY2xhcmUgbmV3IHJ1YmJlci1iYW5kaW5nIEFQSSBhbmQgYXNzb2NpYXRlZCBtZW1iZXIgdmFy
aWFibGVzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnBpbm5lZEluRGlyZWN0aW9uKToKKyAgICAgICAgUmVtb3ZlIHRyYWlsaW5nIHdo
aXRlc3BhY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBDYWxjdWxhdGUgYW5kIHBhc3Mg
dmVydGljYWwgcGlubmluZyBzdGF0ZSB0byBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5T
dGF0ZSgpLgorCiAyMDEzLTAyLTE4ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNYWtlIEV2ZW50RGlzcGF0Y2hlciB0YWtlIGFuIEV2ZW50IG9iamVjdCBpbiBp
dHMgY29uc3RydWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmQxYmJmMWY4NjFjODUzMDU5YjkzMWY1Yzc3
MGMyYzUzZTQzMTI1YS4uNzI2OTY4YWM4N2Y3MzVjN2Y5MzQ0YTU0ZWNjMThkOGVmNzI4ZjQ1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTE4ICBDb25yYWQgU2h1bHR6ICA8
Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkgY2xpZW50cyB0byBo
YW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBjbGllbnRzIHRvIHNlbGVjdGl2
ZWx5IGNvbnRyb2wgcnViYmVyLWJhbmRpbmcgYXQgdmVydGljYWwgcGFnZSBleHRyZW1hLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSdWJi
ZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgUHJveHkgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZ1
bmN0aW9uIGluIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0
Qm90dG9tKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VSdWJiZXJCYW5kc0F0VG9w
KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6Cisg
ICAgICAgIERlY2xhcmUgbmV3IEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6Cisg
ICAgICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5j
dGlvbjsgZGlzcGF0Y2hlcyBhIG1hdGNoaW5nIG1lc3NhZ2UgdG8gdGhlIFdlYktpdDo6V2ViUGFn
ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICBEZWNsYXJlIG5ldyBBUEkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5l
dyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJ1YmJlckJh
bmRzQXRCb3R0b20pOgorICAgICAgICBOZXcgZnVuY3Rpb247IGNhbGwgdGhlIG1hdGNoaW5nIGZ1
bmN0aW9uIG9uIHRoZSBhc3NvY2lhdGVkIFdlYkNvcmU6OlBhZ2UuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAg
ICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIERlY2xhcmUgbmV3IHJ1
YmJlci1iYW5kaW5nIEFQSS4KKwogMjAxMy0wMi0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIHdlYmtpdF93ZWJfdmll
d19nZXRfc3VicmVzb3VyY2VzIGZyb20gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA2ODQzODRkNjU0OGI3ZWMyOTU4NjI0MzM3NjZhYjlhZjM4Zjc4NDg3Li4wNGY0ZjY1
YjIxZDQ4NDkwN2FmYmMyMGZiNDM1MDlhMTNiNTU2MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMjcwMyw3ICsyNzAzLDkgQEAgX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlRDFFdgogX19a
TjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQxNWRpc3BhdGNoQmFycmllckVSS04zV1RGOEZ1bmN0
aW9uSUZ2dkVFRQogX19aTjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQ4ZGlzcGF0Y2hFUktOM1dU
RjhGdW5jdGlvbklGdnZFRUUKIF9fWk43V2ViQ29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNl
dEZvcmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRpb25VcGRhdGVzRWIKK19fWk43V2ViQ29y
ZTRQYWdlMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43V2ViQ29yZTRQYWdlMjBzY3JvbGxp
bmdDb29yZGluYXRvckV2CitfX1pON1dlYkNvcmU0UGFnZTIyc2V0UnViYmVyQmFuZHNBdEJvdHRv
bUViCiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGVm
OWU4Njg2ODA1ZTk5MWI0NWJlY2IwMDRkYzlhN2IxOTlhNzNjYmYuLmJhYjU3Y2Q2Y2NkMjk3NzY0
M2I1OWQxMWUwMjZiMmM0MWEwMDFiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjcsNiArNjcs
NyBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKQEAgLTgxNSw2ICs4MTYsMjgg
QEAgdm9pZCBQYWdlOjpzZXRTaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBz
dXBwcmVzc0FuaW1hdGlvbnMpCiAgICAgbV9zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMgPSBz
dXBwcmVzc0FuaW1hdGlvbnM7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQor
Ym9vbCBQYWdlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
Y3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZSgpLT5ydWJiZXJCYW5kc0F0Qm90dG9t
KCk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20pCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsaW5nVHJl
ZSgpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOworfQorCiti
b29sIFBhZ2U6OnJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlKCktPnJ1YmJlckJhbmRzQXRUb3AoKTsKK30K
Kwordm9pZCBQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkK
K3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlKCktPnNldFJ1YmJl
ckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisjZW5kaWYKKwogdm9pZCBQYWdlOjpz
ZXRQYWdpbmF0aW9uKGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24pCiB7CiAgICAgaWYgKG1f
cGFnaW5hdGlvbiA9PSBwYWdpbmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkODRlMzk5ZWIyN2Yw
YTZkZmI0Y2EzNDBlYmUwZDMwMWEwNTM5YmIyLi4wNTEzMGZkMmY0MDY5MzMzMmIwMTlmNGZkMjkw
YTgwMTBhMmFmYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjcxLDYgKzI3MSwxMyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsgfQogICAgIHZvaWQgc2V0U2hvdWxk
U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKTsKIAor
I2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90
dG9tKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAg
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0OworICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dFRvcChib29sKTsKKyNlbmRpZgorCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3Rv
cmUgYSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkg
QVBJLAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBD
U1MuIFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKICAgICAvLyBGcmFtZVZpZXdz
IGluIHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZl
Y3RzIHRoZSBjdXJyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwCmluZGV4IGI3OWNlNjJkZjAwNjg2NWVlZGRlMWZkYjAyYjQ3MmIwMWY5YjM2
NjcuLjJjNzY2MDQ4YzU2Y2ZhYjIwMDUwODI5OTg3YzJkNDMxMjBlNGM3ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw2ICs1Mywx
MCBAQCBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvcikKICAgICAsIG1fY2FuR29Gb3J3YXJkKGZhbHNlKQogICAgICwg
bV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZVBpbm5l
ZFRvVGhlUmlnaHQoZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkKKyAg
ICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQorICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZVRvcChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20oZmFsc2UpCiAg
ICAgLCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5n
UGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNIYW5kbGluZ1Byb2dy
YW1tYXRpY1Njcm9sbChmYWxzZSkKQEAgLTIyNSwxMiArMjI5LDE0IEBAIHZvaWQgU2Nyb2xsaW5n
VHJlZTo6cmVtb3ZlRGVzdHJveWVkTm9kZXMoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRyZWUp
CiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJv
b2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQpCit2b2lkIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBp
bm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0
b20pCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAg
IG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFp
bkZyYW1lUGlubmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CisgICAgbV9tYWluRnJh
bWVQaW5uZWRUb1RoZVRvcCA9IHBpbm5lZFRvVGhlVG9wOworICAgIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVCb3R0b20gPSBwaW5uZWRUb1RoZUJvdHRvbTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVl
Ojp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbikKQEAgLTI5MCwxMiArMjk2LDM4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogICAgIG1fbWFp
bkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOwogfQogCitib29sIFNjcm9s
bGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRCb3R0b20oKQoreworICAgIE11dGV4TG9ja2VyIGxvY2so
bV9zd2lwZVN0YXRlTXV0ZXgpOworCisgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsK
K30KKwordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnVi
YmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRl
TXV0ZXgpOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJvdHRv
bTsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKK3sKKyAgICBN
dXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIHJldHVybiBtX3J1YmJl
ckJhbmRzQXRUb3A7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNBdFRv
cChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dp
cGVTdGF0ZU11dGV4KTsKKworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHJ1YmJlckJhbmRzQXRU
b3A7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2Vz
dHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgaWYgKHdo
ZWVsRXZlbnQucGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF3aGVlbEV2ZW50LmRlbHRhWCgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IApAQCAtMzAzLDYgKzMzNSwxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OndpbGxXaGVlbEV2ZW50
U3RhcnRTd2lwZUdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYgbV9tYWluRnJh
bWVQaW5uZWRUb1RoZVJpZ2h0ICYmIG1fY2FuR29Gb3J3YXJkKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRU
b1RoZVRvcCAmJiAhbV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA8IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJv
dHRvbSAmJiAhbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAppbmRleCA4NGNkOTE0OGE5ZWEzMDdjZGFmMzgyMjRkYTQ1NGYxZGRhMzUx
ZDkyLi5hZDdiY2ViMjI5Y2MyNDFhMTc3NWExNTAwNmRlOTY0Njg3NmRlZDMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NSw3ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2b2lkIGNvbW1pdE5ld1RyZWVT
dGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4pOwogCi0gICAgdm9pZCBzZXRNYWlu
RnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0
KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBi
b29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9U
aGVCb3R0b20pOwogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24gPSBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgSW50UG9pbnQgbWFpbkZyYW1l
U2Nyb2xsUG9zaXRpb24oKTsKQEAgLTk3LDYgKzk3LDExIEBAIHB1YmxpYzoKICAgICBib29sIGNh
bkdvQmFjaygpOwogICAgIGJvb2wgY2FuR29Gb3J3YXJkKCk7CiAKKyAgICBib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7Cisg
ICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9w
KGJvb2wpOworCiAgICAgYm9vbCB3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3JtYW5j
ZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZyk7CkBAIC0xMjYsNiArMTMxLDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2NhbkdvRm9yd2FyZDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9U
aGVMZWZ0OwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0OworICAgIGJvb2wg
bV9ydWJiZXJCYW5kc0F0Qm90dG9tOworICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOworICAg
IGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcDsKKyAgICBib29sIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVCb3R0b207CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZzsKIAog
ICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDdjNzIyY2NhMzNmZTlmYjc1ODdkYzg2ZjMx
NWUzYmQyMThhZDFiMTguLmYxZjdhOTAyNTBhZmU3OGE5ZWFhMzk5OWRiMDQxODFmNzBhZDJjNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTE5OSw3ICsxOTksNyBA
QCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKChkZWx0
YS53aWR0aCgpIHx8IGRlbHRhLmhlaWdodCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwgMSAm
JiBsaW1pdERlbHRhLmhlaWdodCgpIDwgMSkpICAgICAgICAKKyAgICBpZiAoKGRlbHRhLndpZHRo
KCkgfHwgZGVsdGEuaGVpZ2h0KCkpICYmIChsaW1pdERlbHRhLndpZHRoKCkgPCAxICYmIGxpbWl0
RGVsdGEuaGVpZ2h0KCkgPCAxKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0zNDgsOCArMzQ4LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVNYWM6OnVwZGF0ZU1haW5GcmFtZVBpblN0YXRlKGNvbnN0IEludFBvaW50JiBzY3JvCiB7CiAg
ICAgYm9vbCBwaW5uZWRUb1RoZUxlZnQgPSBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNj
cm9sbFBvc2l0aW9uKCkueCgpOwogICAgIGJvb2wgcGlubmVkVG9UaGVSaWdodCA9IHNjcm9sbFBv
c2l0aW9uLngoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CisgICAgYm9vbCBwaW5u
ZWRUb1RoZVRvcCA9IHNjcm9sbFBvc2l0aW9uLnkoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24o
KS55KCk7CisgICAgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSA9IHNjcm9sbFBvc2l0aW9uLnkoKSA+
PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CiAKLSAgICBzY3JvbGxpbmdUcmVlKCktPnNl
dE1haW5GcmFtZVBpblN0YXRlKHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCk7Cisg
ICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVQaW5TdGF0ZShwaW5uZWRUb1RoZUxlZnQs
IHBpbm5lZFRvVGhlUmlnaHQsIHBpbm5lZFRvVGhlVG9wLCBwaW5uZWRUb1RoZUJvdHRvbSk7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OmxvZ0V4cG9zZWRVbmZpbGxl
ZEFyZWEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
NTBkN2JlZTNkMDI3NWZhZjliOGYwYmUxMjc2ZWE3NzIyZmFlYTUwLi4wMWJlYzkyODAwODA2ZDhl
MTRiZDViY2MxZTM3ZjA2NWM1ZGY5ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcApAQCAtMzk0LDYgKzM5NCwzOSBAQCBib29sIFdLUGFnZUlzUGlubmVkVG9C
b3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0ltcGwocGFnZVJlZikt
PmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CiB9CiAKKworYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0
Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmKQoreworI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJ
TkcpCisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOwor
I2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBXS1BhZ2VTZXRSdWJi
ZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0
b20pCit7CisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICByZXR1cm4gdG9JbXBs
KHBhZ2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOwor
I2VuZGlmCit9CisKK2Jvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJl
ZikKK3sKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIHJldHVybiB0b0ltcGwo
cGFnZVJlZiktPnJ1YmJlckJhbmRzQXRUb3AoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCit9CisKK3ZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFn
ZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0VG9wKQoreworI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JP
TExJTkcpCisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNBdFRvcChy
dWJiZXJCYW5kc0F0VG9wKTsKKyNlbmRpZgorfQorCiB2b2lkIFdLUGFnZVNldFBhZ2luYXRpb25N
b2RlKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2luYXRpb25Nb2RlIHBhZ2luYXRpb25Nb2RlKQog
ewogICAgIFBhZ2luYXRpb246Ok1vZGUgbW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaAppbmRleCAxYTg1NjU3MTEwYjRjN2YzODk4ZTcyNWVhMTEwMTMxM2ExYzM1MDMz
Li5hNTlhZWU1NzcxYjYxYjU2NWFlNzE0MWYxZDhhOWYzZTY0NTFhZWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC00NDQsNiArNDQ0LDExIEBAIFdLX0VYUE9S
VCBib29sIFdLUGFnZUlzUGlubmVkVG9SaWdodFNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQ
T1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb1RvcFNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQ
T1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb0JvdHRvbVNpZGUoV0tQYWdlUmVmIHBhZ2UpOwogCitX
S19FWFBPUlQgYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZik7CitXS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiwgYm9vbCBy
dWJiZXJCYW5kc0F0Qm90dG9tKTsKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRU
b3AoV0tQYWdlUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3Ao
V0tQYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRUb3ApOworCiBXS19FWFBPUlQgYm9vbCBXS1Bh
Z2VDYW5EZWxldGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSGFzU2Vs
ZWN0ZWRSYW5nZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc0NvbnRl
bnRFZGl0YWJsZShXS1BhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDlkOGEzNThmMjk2NGMxYjIxMjZhYjU4NGY3ZjE5Y2MwMDlhZmQx
NTEuLjg1ZDNhZWZjZjE2NmM2NmI1YmZmNTM4MjRhOWI3NWI2M2QxMGQwZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMjYsNiArMjI2LDEwIEBAIFdl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdodFNp
ZGUoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlKGZhbHNlKQogICAg
ICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZShmYWxzZSkKKyNpZiBFTkFCTEUoVEhS
RUFERURfU0NST0xMSU5HKQorICAgICwgbV9ydWJiZXJCYW5kc0F0Qm90dG9tKHRydWUpCisgICAg
LCBtX3J1YmJlckJhbmRzQXRUb3AodHJ1ZSkKKyNlbmRpZgogICAgICwgbV9tYWluRnJhbWVJblZp
ZXdTb3VyY2VNb2RlKGZhbHNlKQogICAgICwgbV9wYWdlQ291bnQoMCkKICAgICAsIG1fcmVuZGVy
VHJlZVNpemUoMCkKQEAgLTE2NzMsNiArMTY3NywzNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U3VwcHJlc3NTY3JvbGxiYXJB
bmltYXRpb25zKHN1cHByZXNzQW5pbWF0aW9ucyksIG1fcGFnZUlEKTsKIH0KIAorI2lmIEVOQUJM
RShUSFJFQURFRF9TQ1JPTExJTkcpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNB
dEJvdHRvbShib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7CisgICAgaWYgKHJ1YmJlckJhbmRz
QXRCb3R0b20gPT0gbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3J1YmJlckJhbmRzQXRCb3R0b20gPSBydWJiZXJCYW5kc0F0Qm90dG9tOworCisgICAgaWYg
KCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6U2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9t
KSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdFRv
cChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgaWYgKHJ1YmJlckJhbmRzQXRUb3AgPT0g
bV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1YmJlckJhbmRz
QXRUb3AgPSBydWJiZXJCYW5kc0F0VG9wOworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0UnVi
YmVyQmFuZHNBdFRvcChydWJiZXJCYW5kc0F0VG9wKSwgbV9wYWdlSUQpOworfQorI2VuZGlmCisK
IHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQYWdpbmF0aW9uTW9kZShXZWJDb3JlOjpQYWdpbmF0aW9u
OjpNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gbV9wYWdpbmF0aW9uTW9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyYTc4MWQ1MWYzYjI5ZGJiZDQ3
OWI3NDg0NjkzMmY0NzdmYmYxM2UzLi4zNWZjMDNmZGM5NjU1NWVkOTcyZjQ1ZTA1ZGI5ZGJlZTY0
YjIyOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01MDIs
NiArNTAyLDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzUGlubmVkVG9Ub3BTaWRlKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsgfQogICAgIGJvb2wgaXNQaW5u
ZWRUb0JvdHRvbVNpZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0
b21TaWRlOyB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIGJvb2wgcnVi
YmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsg
fQorICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKTsKKyAgICBib29sIHJ1YmJl
ckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVybiBtX3J1YmJlckJhbmRzQXRUb3A7IH0KKyAgICB2
b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0UGFn
aW5hdGlvbk1vZGUoV2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSk7CiAgICAgV2ViQ29yZTo6UGFn
aW5hdGlvbjo6TW9kZSBwYWdpbmF0aW9uTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnaW5hdGlv
bk1vZGU7IH0KICAgICB2b2lkIHNldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMoYm9vbCk7
CkBAIC0xMjA5LDYgKzEyMTYsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWFpbkZyYW1lSXNQ
aW5uZWRUb1RvcFNpZGU7CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRl
OwogCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICAgICAgYm9vbCBtX3J1YmJl
ckJhbmRzQXRCb3R0b207CisgICAgICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOworI2VuZGlm
CisKICAgICBib29sIG1fbWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZTsKIAogICAgIHVuc2lnbmVk
IG1fcGFnZUNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDUwNzhhYmQ1YzRkNTU0MTQ2ZTE5YTg4YmNhMzUxODBlNGFlYzA4MzQuLjBj
NDcxZWU4OTQwNGM1YWMwYTI5MzdmM2U4MDdmZDYzNjZkNWEzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzMTIsNiArMTMxMiwxOCBA
QCB2b2lkIFdlYlBhZ2U6OnNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHBy
ZXNzQW5pbWF0aW9ucykKICAgICBtX3BhZ2UtPnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5p
bWF0aW9ucyhzdXBwcmVzc0FuaW1hdGlvbnMpOwogfQogCisjaWYgRU5BQkxFKFRIUkVBREVEX1ND
Uk9MTElORykKK3ZvaWQgV2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJl
ckJhbmRzQXRCb3R0b20pCit7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1
YmJlckJhbmRzQXRCb3R0b20pOworfQorCit2b2lkIFdlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRU
b3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQoreworICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNB
dFRvcChydWJiZXJCYW5kc0F0VG9wKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnNldFBh
Z2luYXRpb25Nb2RlKHVpbnQzMl90IG1vZGUpCiB7CiAgICAgUGFnaW5hdGlvbiBwYWdpbmF0aW9u
ID0gbV9wYWdlLT5wYWdpbmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBhNmUwNjA2MDI3MjUxYzVkYjJjMWRmZGZkYjk4MmVlZWU0YmIy
NWI4Li45MTJmNTMxYjM2NDQyODBiNzQ3NTdlOWNmZTdjMmU2MTJkNmQwYjNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMxNSw2ICszMTUsMTEg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9v
bCk7CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIHZvaWQgc2V0UnViYmVy
QmFuZHNBdEJvdHRvbShib29sKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7
CisjZW5kaWYKKwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgLyogV2ViQ29y
ZTo6UGFnaW5hdGlvbjo6TW9kZSAqLyk7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uQmVoYXZlc0xp
a2VDb2x1bW5zKGJvb2wpOwogICAgIHZvaWQgc2V0UGFnZUxlbmd0aChkb3VibGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCA2N2JjZTZhMmQyZjg3OTBhMDY4ZGMzMGQ5ZmM4MDMwN2IxNTdkMmRlLi5lMzY0OTk4
NDUxODJmMjZlYmFlZjIwMTBjYjc3MzI0NzMxNjdmZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTQyLDYg
KzE0MiwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMaXN0
ZW5Gb3JMYXlvdXRNaWxlc3RvbmVzKHVpbnQzMl90IG1pbGVzdG9uZXMpCiAgICAgU2V0U3VwcHJl
c3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogCisjaWYgRU5B
QkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICBTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wg
cnViYmVyQmFuZHNBdFRvcCkKKyAgICBTZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFu
ZHNBdFRvcCkKKyNlbmRpZgorCiAgICAgU2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgbW9kZSkK
ICAgICBTZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKGJvb2wgYmVoYXZlc0xpa2VDb2x1
bW5zKQogICAgIFNldFBhZ2VMZW5ndGgoZG91YmxlIHBhZ2VMZW5ndGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189166</attachid>
            <date>2013-02-19 14:36:24 -0800</date>
            <delta_ts>2013-02-19 16:44:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110006-20130219143246.patch</filename>
            <type>text/plain</type>
            <size>25386</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZjRmMTgzMTJiYzIw
MWNmZWNlZDRkMjYyYjU2ZjQ5ZDBiY2I2MC4uODNjM2FkZDY1YTEzNWZmNjRhZWIyZWY3YzkzYzcx
NGJkYWI1ZDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEzLTAyLTE4ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkg
Y2xpZW50cyB0byBoYW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBtYXRjaGlu
ZyBjaGFuZ2VzIGluIFdlYktpdDIgdG8gY29udHJvbCBydWJiZXItYmFuZGluZyBiZWhhdmlvciBh
dCB2ZXJ0aWNhbCBwYWdlIGV4dHJlbWEuCisgICAgICAgIElmIHJ1YmJlci1iYW5kaW5nIGlzIGRp
c2FibGVkIGR1cmluZyBhIHNjcm9sbCBldmVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSB0cmlnZ2Vy
IHJ1YmJlci1iYW5kaW5nLCBkaXNwYXRjaAorICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgdG8gdGhlIHBhZ2UgVUkgY2xpZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnVi
YmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIFByb3h5IGZvciB0aGUgY29ycmVzcG9uZGluZyBm
dW5jdGlvbiBpbiBTY3JvbGxpbmdDb29yZGluYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAgIERlY2xhcmUgbmV3
IHJ1YmJlci1iYW5kaW5nIEFQSSAoYWJvdmUpLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgU3R1YiBBUEkgaW1wbGVtZW50
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0UnViYmVy
QmFuZHNBdEJvdHRvbSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUpOgor
ICAgICAgICBJbml0aWFsaXplIG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBTZXQgdG9w
L2JvdHRvbSBwaW5uZWQgc3RhdGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgor
ICAgICAgICBOZXcgbXV0YXRvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBOZXcgYWNjZXNzb3IgZnVuY3Rpb24u
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgTmV3IG11dGF0b3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgU3RhcnQg
YSB2ZXJ0aWNhbCBzd2lwZSBldmVudCBpZiB0aGUgZnJhbWUgaXMgcGlubmVkIGF0IHRoZSB0b3Ag
b3IgYm90dG9tIGFuZCBhc3NvY2lhdGVkIHJ1YmJlci1iYW5kaW5nIGlzIGRpc2FibGVkLgorCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZSk6CisgICAgICAgIERlY2xhcmUgbmV3IHJ1YmJlci1iYW5kaW5nIEFQSSBhbmQgYXNz
b2NpYXRlZCBtZW1iZXIgdmFyaWFibGVzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmg6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGluYXRv
ck1hYyk6CisgICAgICAgIERlY2xhcmUgQVBJIG92ZXJyaWRlcy4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAg
ICAgTWV0aG9kIG92ZXJyaWRlOyBwcm94eSB0byBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIGluIFNj
cm9sbGluZ1RyZWUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6
c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzZXRSdWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24pOgorICAg
ICAgICBSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVNYWluRnJhbWVQaW5TdGF0ZSk6CisgICAg
ICAgIENhbGN1bGF0ZSBhbmQgcGFzcyB2ZXJ0aWNhbCBwaW5uaW5nIHN0YXRlIHRvIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKCkuCisKIDIwMTMtMDItMTggIEhheWF0byBJdG8g
IDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgRXZlbnREaXNwYXRjaGVyIHRh
a2UgYW4gRXZlbnQgb2JqZWN0IGluIGl0cyBjb25zdHJ1Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZDFi
YmYxZjg2MWM4NTMwNTliOTMxZjVjNzcwYzJjNTNlNDMxMjVhLi43MjY5NjhhYzg3ZjczNWM3Zjkz
NDRhNTRlY2MxOGQ4ZWY3MjhmNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMt
MDItMTggIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBbGxvdyBVSSBjbGllbnRzIHRvIGhhbmRsZSB2ZXJ0aWNhbCB3aGVlbCBldmVudHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAwMDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRvIGFs
bG93IGNsaWVudHMgdG8gc2VsZWN0aXZlbHkgY29udHJvbCBydWJiZXItYmFuZGluZyBhdCB2ZXJ0
aWNhbCBwYWdlIGV4dHJlbWEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBQcm94eSBm
b3IgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb24gaW4gV2ViQ29yZTo6UGFnZS4KKyAgICAgICAg
KFdLUGFnZVNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBEaXR0by4KKyAgICAgICAg
KFdLUGFnZVJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdLUGFn
ZVNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgRGVjbGFyZSBuZXcgQVBJLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlh
Ymxlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0Qm90
dG9tKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uOyBkaXNwYXRjaGVzIGEgbWF0Y2hpbmcgbWVzc2Fn
ZSB0byB0aGUgV2ViS2l0OjpXZWJQYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgIERl
Y2xhcmUgbmV3IEFQSS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJiZXJCYW5k
c0F0Qm90dG9tKToKKyAgICAgICAgTmV3IGFjY2Vzc29yIGZ1bmN0aW9uLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5jdGlv
bjsgY2FsbCB0aGUgbWF0Y2hpbmcgZnVuY3Rpb24gb24gdGhlIGFzc29jaWF0ZWQgV2ViQ29yZTo6
UGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICBEZWNsYXJlIG5ldyBydWJiZXItYmFuZGluZyBB
UEkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCiAyMDEzLTAyLTE4ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBSZW1vdmUgd2Via2l0X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMgZnJvbSBXZWJLaXQyIEdU
SysgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY4NDM4NGQ2NTQ4YjdlYzI5NTg2MjQzMzc2
NmFiOWFmMzhmNzg0ODcuLjM2NTM0YjIyNGFkZGQ4ZjAyNjdlYmYwZmE3ZTNmNjI3NmJkZjg2YzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNzAzLDcgKzI3MDMsMTMgQEAgX19aTjdXZWJDb3Jl
MTNTY3JvbGxpbmdUcmVlRDFFdgogX19aTjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQxNWRpc3Bh
dGNoQmFycmllckVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVFRQogX19aTjdXZWJDb3JlMTVTY3JvbGxp
bmdUaHJlYWQ4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZFRUUKIF9fWk43V2ViQ29yZTIw
U2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNldEZvcmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRp
b25VcGRhdGVzRWIKK19fWk5LN1dlYkNvcmUyM1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjMTlydWJi
ZXJCYW5kc0F0Qm90dG9tRXYKK19fWk5LN1dlYkNvcmUyM1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
MTZydWJiZXJCYW5kc0F0VG9wRXYKK19fWk43V2ViQ29yZTIzU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMyMnNldFJ1YmJlckJhbmRzQXRCb3R0b21FYgorX19aTjdXZWJDb3JlMjNTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzE5c2V0UnViYmVyQmFuZHNBdFRvcEViCitfX1pON1dlYkNvcmU0UGFnZTE5c2V0
UnViYmVyQmFuZHNBdFRvcEViCiBfX1pON1dlYkNvcmU0UGFnZTIwc2Nyb2xsaW5nQ29vcmRpbmF0
b3JFdgorX19aTjdXZWJDb3JlNFBhZ2UyMnNldFJ1YmJlckJhbmRzQXRCb3R0b21FYgogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBlZjllODY4NjgwNWU5
OTFiNDViZWNiMDA0ZGM5YTdiMTk5YTczY2JmLi45MTNkZTZhODBkYzE3OGI4MzFlMzg1MTQwODNi
NDU5N2I4ZWQwOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTgxNSw2ICs4MTUsMjggQEAgdm9p
ZCBQYWdlOjpzZXRTaG91bGRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBzdXBwcmVz
c0FuaW1hdGlvbnMpCiAgICAgbV9zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMgPSBzdXBwcmVz
c0FuaW1hdGlvbnM7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorYm9vbCBQ
YWdlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxp
bmdDb29yZGluYXRvci0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOworfQorCit2b2lkIFBhZ2U6OnNl
dFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQoreworICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFJ1YmJlckJhbmRzQXRCb3R0b20ocnViYmVyQmFuZHNB
dEJvdHRvbSk7Cit9CisKK2Jvb2wgUGFnZTo6cnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJ1YmJlckJhbmRzQXRUb3AoKTsKK30K
Kwordm9pZCBQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkK
K3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRSdWJiZXJCYW5kc0F0VG9wKHJ1YmJl
ckJhbmRzQXRUb3ApOworfQorI2VuZGlmCisKIHZvaWQgUGFnZTo6c2V0UGFnaW5hdGlvbihjb25z
dCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uKQogewogICAgIGlmIChtX3BhZ2luYXRpb24gPT0gcGFn
aW5hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZDg0ZTM5OWViMjdmMGE2ZGZiNGNhMzQwZWJlMGQz
MDFhMDUzOWJiMi4uMDUxMzBmZDJmNDA2OTMzMzJiMDE5ZjRmZDI5MGE4MDEwYTJhZmE0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTI3MSw2ICsyNzEsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxk
U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc1Nj
cm9sbGJhckFuaW1hdGlvbnM7IH0KICAgICB2b2lkIHNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFy
QW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucyk7CiAKKyNpZiBFTkFCTEUoVEhSRUFE
RURfU0NST0xMSU5HKQorICAgIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0OworICAg
IHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKTsKKyAgICBib29sIHJ1YmJlckJhbmRz
QXRUb3AoKSBjb25zdDsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7CisjZW5k
aWYKKwogICAgIC8vIFBhZ2UgYW5kIEZyYW1lVmlldyBib3RoIHN0b3JlIGEgUGFnaW5hdGlvbiB2
YWx1ZS4gUGFnZTo6cGFnaW5hdGlvbigpIGlzIHNldCBvbmx5IGJ5IEFQSSwKICAgICAvLyBhbmQg
RnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQ1NTLiBQYWdlOjpwYWdpbmF0
aW9uKCkgd2lsbCBhZmZlY3QgYWxsCiAgICAgLy8gRnJhbWVWaWV3cyBpbiB0aGUgcGFnZSBjYWNo
ZSwgYnV0IEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIG9ubHkgYWZmZWN0cyB0aGUgY3VycmVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKaW5kZXggMGFhODg4MDhhMThkYjI3NGMzZmIzYWMwMTRkNTMwZTMzZGRiMzFiOS4uZTUw
MTBlMTkzZGYxMGM3N2E0ODhmNGI5YzdiYWE4ZTNiNzAwZmYxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xMjcs
NiArMTI3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3luY0NoaWxkUG9zaXRpb25z
KGNvbnN0IExheW91dFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBzY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9n
cmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJ1YmJlckJh
bmRzQXRCb3R0b20oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBydWJiZXJC
YW5kc0F0VG9wKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
UnViYmVyQmFuZHNBdFRvcChib29sKSB7IH0KIAogICAgIC8vIEdlbmVyYXRlZCBhIHVuaXF1ZSBp
ZCBmb3Igc2Nyb2xsIGxheWVycy4KICAgICBTY3JvbGxpbmdOb2RlSUQgdW5pcXVlU2Nyb2xsTGF5
ZXJJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcAppbmRleCBiNzljZTYyZGYwMDY4NjVlZWRkZTFmZGIwMmI0NzJiMDFmOWIzNjY3Li4yYzc2
NjA0OGM1NmNmYWIyMDA1MDgyOTk4N2MyZDQzMTIwZTRjN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTMsNiArNTMsMTAgQEAgU2Ny
b2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5n
Q29vcmRpbmF0b3IpCiAgICAgLCBtX2NhbkdvRm9yd2FyZChmYWxzZSkKICAgICAsIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0KGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJp
Z2h0KGZhbHNlKQorICAgICwgbV9ydWJiZXJCYW5kc0F0Qm90dG9tKHRydWUpCisgICAgLCBtX3J1
YmJlckJhbmRzQXRUb3AodHJ1ZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3AoZmFs
c2UpCisgICAgLCBtX21haW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tKGZhbHNlKQogICAgICwgbV9t
YWluRnJhbWVJc1J1YmJlckJhbmRpbmcoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1h
bmNlTG9nZ2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNT
Y3JvbGwoZmFsc2UpCkBAIC0yMjUsMTIgKzIyOSwxNCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnJl
bW92ZURlc3Ryb3llZE5vZGVzKFNjcm9sbGluZ1N0YXRlVHJlZSogc3RhdGVUcmVlKQogICAgIH0K
IH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5l
ZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0KQordm9pZCBTY3JvbGxpbmdUcmVlOjpz
ZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1Ro
ZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKQogewog
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICBtX21haW5G
cmFtZVBpbm5lZFRvVGhlTGVmdCA9IHBpbm5lZFRvVGhlTGVmdDsKICAgICBtX21haW5GcmFtZVBp
bm5lZFRvVGhlUmlnaHQgPSBwaW5uZWRUb1RoZVJpZ2h0OworICAgIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVUb3AgPSBwaW5uZWRUb1RoZVRvcDsKKyAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlQm90
dG9tID0gcGlubmVkVG9UaGVCb3R0b207CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRl
TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBT
ZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b24pCkBAIC0yOTAsMTIgKzI5NiwzOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFt
ZUlzUnViYmVyQmFuZGluZyhib29sIGlzUnViYmVyQmFuZGluZykKICAgICBtX21haW5GcmFtZUlz
UnViYmVyQmFuZGluZyA9IGlzUnViYmVyQmFuZGluZzsKIH0KIAorYm9vbCBTY3JvbGxpbmdUcmVl
OjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVT
dGF0ZU11dGV4KTsKKworICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRCb3R0b207Cit9CisKK3Zv
aWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRz
QXRCb3R0b20pCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsK
KworICAgIG1fcnViYmVyQmFuZHNBdEJvdHRvbSA9IHJ1YmJlckJhbmRzQXRCb3R0b207Cit9CisK
K2Jvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdFRvcCgpCit7CisgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisKKyAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0
VG9wOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBy
dWJiZXJCYW5kc0F0VG9wKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CisKKyAgICBtX3J1YmJlckJhbmRzQXRUb3AgPSBydWJiZXJCYW5kc0F0VG9wOworfQor
CiBib29sIFNjcm9sbGluZ1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIGlmICh3aGVlbEV2ZW50
LnBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghd2hlZWxFdmVudC5kZWx0YVgoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKQEAgLTMw
Myw2ICszMzUsMTAgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0U3dp
cGVHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2gKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgPCAwICYmIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVSaWdodCAmJiBtX2NhbkdvRm9yd2FyZCkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
aWYgKHdoZWVsRXZlbnQuZGVsdGFZKCkgPiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3Ag
JiYgIW1fcnViYmVyQmFuZHNBdFRvcCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHdo
ZWVsRXZlbnQuZGVsdGFZKCkgPCAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20gJiYg
IW1fcnViYmVyQmFuZHNBdEJvdHRvbSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1
cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKaW5kZXggODRjZDkxNDhhOWVhMzA3Y2RhZjM4MjI0ZGE0NTRmMWRkYTM1MWQ5Mi4uYWQ3
YmNlYjIyOWNjMjQxYTE3NzVhMTUwMDZkZTk2NDY4NzZkZWQzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9pZCBjb21taXROZXdUcmVlU3RhdGUoUGFz
c093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+KTsKIAotICAgIHZvaWQgc2V0TWFpbkZyYW1lUGlu
U3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVkVG9UaGVSaWdodCk7CisgICAg
dm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5u
ZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9t
KTsKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uID0gU3lu
Y1Njcm9sbGluZ0xheWVyUG9zaXRpb24pOwogICAgIEludFBvaW50IG1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKCk7CkBAIC05Nyw2ICs5NywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Hb0JhY2so
KTsKICAgICBib29sIGNhbkdvRm9yd2FyZCgpOwogCisgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90
dG9tKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAgIGJvb2wg
cnViYmVyQmFuZHNBdFRvcCgpOworICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdFRvcChib29sKTsK
KwogICAgIGJvb2wgd2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZShjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmKTsKIAogICAgIHZvaWQgc2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5n
RW5hYmxlZChib29sIGZsYWcpOwpAQCAtMTI2LDYgKzEzMSwxMCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9jYW5Hb0ZvcndhcmQ7CiAgICAgYm9vbCBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdDsK
ICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVSaWdodDsKKyAgICBib29sIG1fcnViYmVy
QmFuZHNBdEJvdHRvbTsKKyAgICBib29sIG1fcnViYmVyQmFuZHNBdFRvcDsKKyAgICBib29sIG1f
bWFpbkZyYW1lUGlubmVkVG9UaGVUb3A7CisgICAgYm9vbCBtX21haW5GcmFtZVBpbm5lZFRvVGhl
Qm90dG9tOwogICAgIGJvb2wgbV9tYWluRnJhbWVJc1J1YmJlckJhbmRpbmc7CiAKICAgICBib29s
IG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
LmgKaW5kZXggNDFhZmVjNWFlZjI5ZTA2Zjk4Y2YwOTZmOTA4ZjZjMDNkYmI2YWRiMi4uZWNlZmQ1
ZjJkN2RlNDIzZTI3Y2ZlMjQzYjlmYWRlMzQ5NDY1OWRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
LmgKQEAgLTc2LDYgKzc2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBzY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHQoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IHJ1YmJlckJhbmRzQXRCb3R0b20oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
cnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRS
dWJiZXJCYW5kc0F0VG9wKGJvb2wpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIC8vIFJldHVy
biB3aGV0aGVyIHRoaXMgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yIGNhbiBrZWVwIGZpeGVkIHBvc2l0
aW9uIGxheWVycyBmaXhlZCB0byB0aGVpcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IGNh
MDljMDhhOTE4Njc3NTNiM2VlNjMyYmZmNzI3ZTQ0NDAxODA5MWUuLmY0NjRiNzY4MzU5YjYwODA5
NTNiY2IxOTYwM2Q5ODllOTQzYmViYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTkz
LDYgKzkzLDI2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmlzUnViYmVyQmFuZElu
UHJvZ3Jlc3MoKSBjb25zdAogICAgIHJldHVybiBzY3JvbGxpbmdUcmVlKCktPmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MoKTsKIH0KIAorYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cnViYmVy
QmFuZHNBdEJvdHRvbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS0+cnVi
YmVyQmFuZHNBdEJvdHRvbSgpOworfQorCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpz
ZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAgICBz
Y3JvbGxpbmdUcmVlKCktPnNldFJ1YmJlckJhbmRzQXRCb3R0b20ocnViYmVyQmFuZHNBdEJvdHRv
bSk7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnJ1YmJlckJhbmRzQXRUb3Ao
KSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdUcmVlKCktPnJ1YmJlckJhbmRzQXRUb3Ao
KTsKK30KKwordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2V0UnViYmVyQmFuZHNBdFRv
cChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRSdWJi
ZXJCYW5kc0F0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX3Njcm9s
bGluZ1N0YXRlVHJlZS0+aGFzQ2hhbmdlZFByb3BlcnRpZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZU1hYy5tbQppbmRleCA3YzcyMmNjYTMzZmU5ZmI3NTg3ZGM4NmYzMTVlM2JkMjE4
YWQxYjE4Li5mMWY3YTkwMjUwYWZlNzhhOWVhYTM5OTlkYjA0MTgxZjcwYWQyYzY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0xOTksNyArMTk5LDcgQEAgYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxv
YXRTaXplJiBkZWx0YSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgoZGVsdGEud2lkdGgo
KSB8fCBkZWx0YS5oZWlnaHQoKSkgJiYgKGxpbWl0RGVsdGEud2lkdGgoKSA8IDEgJiYgbGltaXRE
ZWx0YS5oZWlnaHQoKSA8IDEpKSAgICAgICAgCisgICAgaWYgKChkZWx0YS53aWR0aCgpIHx8IGRl
bHRhLmhlaWdodCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwgMSAmJiBsaW1pdERlbHRhLmhl
aWdodCgpIDwgMSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMzQ4LDggKzM0OCwxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1
cGRhdGVNYWluRnJhbWVQaW5TdGF0ZShjb25zdCBJbnRQb2ludCYgc2NybwogewogICAgIGJvb2wg
cGlubmVkVG9UaGVMZWZ0ID0gc2Nyb2xsUG9zaXRpb24ueCgpIDw9IG1pbmltdW1TY3JvbGxQb3Np
dGlvbigpLngoKTsKICAgICBib29sIHBpbm5lZFRvVGhlUmlnaHQgPSBzY3JvbGxQb3NpdGlvbi54
KCkgPj0gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueCgpOworICAgIGJvb2wgcGlubmVkVG9UaGVU
b3AgPSBzY3JvbGxQb3NpdGlvbi55KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpOwor
ICAgIGJvb2wgcGlubmVkVG9UaGVCb3R0b20gPSBzY3JvbGxQb3NpdGlvbi55KCkgPj0gbWF4aW11
bVNjcm9sbFBvc2l0aW9uKCkueSgpOwogCi0gICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJh
bWVQaW5TdGF0ZShwaW5uZWRUb1RoZUxlZnQsIHBpbm5lZFRvVGhlUmlnaHQpOworICAgIHNjcm9s
bGluZ1RyZWUoKS0+c2V0TWFpbkZyYW1lUGluU3RhdGUocGlubmVkVG9UaGVMZWZ0LCBwaW5uZWRU
b1RoZVJpZ2h0LCBwaW5uZWRUb1RoZVRvcCwgcGlubmVkVG9UaGVCb3R0b20pOwogfQogCiB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpsb2dFeHBvc2VkVW5maWxsZWRBcmVhKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggNTUwZDdiZWUz
ZDAyNzVmYWY5YjhmMGJlMTI3NmVhNzcyMmZhZWE1MC4uMjAxMmI0YzkyNGJlYWEzNzY1NzAxNTZk
OWJkMzA0NGQwN2Q5YzA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKQEAgLTM5NCw2ICszOTQsMzkgQEAgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvQm90dG9tU2lk
ZShXS1BhZ2VSZWYgcGFnZVJlZikKICAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5pc1Bpbm5l
ZFRvQm90dG9tU2lkZSgpOwogfQogCisKK2Jvb2wgV0tQYWdlUnViYmVyQmFuZHNBdEJvdHRvbShX
S1BhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorICAg
IHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJlckJhbmRzQXRCb3R0b20oKTsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dEJvdHRvbShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQorewor
I2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRS
dWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOworI2VuZGlmCit9CisKK2Jv
b2wgV0tQYWdlUnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBFTkFC
TEUoVEhSRUFERURfU0NST0xMSU5HKQorICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJl
ckJhbmRzQXRUb3AoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3Zv
aWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBydWJi
ZXJCYW5kc0F0VG9wKQoreworI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgdG9J
bXBsKHBhZ2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOworI2Vu
ZGlmCit9CisKIHZvaWQgV0tQYWdlU2V0UGFnaW5hdGlvbk1vZGUoV0tQYWdlUmVmIHBhZ2VSZWYs
IFdLUGFnaW5hdGlvbk1vZGUgcGFnaW5hdGlvbk1vZGUpCiB7CiAgICAgUGFnaW5hdGlvbjo6TW9k
ZSBtb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IDFhODU2
NTcxMTBiNGM3ZjM4OThlNzI1ZWExMTAxMzEzYTFjMzUwMzMuLmE1OWFlZTU3NzFiNjFiNTY1YWU3
MTQxZjFkOGE5ZjNlNjQ1MWFlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmgKQEAgLTQ0NCw2ICs0NDQsMTEgQEAgV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRU
b1JpZ2h0U2lkZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5l
ZFRvVG9wU2lkZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5l
ZFRvQm90dG9tU2lkZShXS1BhZ2VSZWYgcGFnZSk7CiAKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1
YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1
YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pOwor
V0tfRVhQT1JUIGJvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYpOworV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYsIGJvb2wgcnViYmVy
QmFuZHNBdFRvcCk7CisKIFdLX0VYUE9SVCBib29sIFdLUGFnZUNhbkRlbGV0ZShXS1BhZ2VSZWYg
cGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VIYXNTZWxlY3RlZFJhbmdlKFdLUGFnZVJlZiBw
YWdlKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzQ29udGVudEVkaXRhYmxlKFdLUGFnZVJlZiBw
YWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ4
YTM1OGYyOTY0YzFiMjEyNmFiNTg0ZjdmMTljYzAwOWFmZDE1MS4uODVkM2FlZmNmMTY2YzY2YjVi
ZmY1MzgyNGE5Yjc1YjYzZDEwZDBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTIyNiw2ICsyMjYsMTAgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJv
eHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAK
ICAgICAsIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZShmYWxzZSkKICAgICAsIG1fbWFp
bkZyYW1lSXNQaW5uZWRUb1RvcFNpZGUoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUlzUGlubmVk
VG9Cb3R0b21TaWRlKGZhbHNlKQorI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAg
LCBtX3J1YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkKKyAgICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0
cnVlKQorI2VuZGlmCiAgICAgLCBtX21haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZmFsc2UpCiAg
ICAgLCBtX3BhZ2VDb3VudCgwKQogICAgICwgbV9yZW5kZXJUcmVlU2l6ZSgwKQpAQCAtMTY3Myw2
ICsxNjc3LDM0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRTdXBwcmVzc1Njcm9sbGJhckFuaW1h
dGlvbnMoYm9vbCBzdXBwcmVzc0FuaW1hdGlvbnMpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoc3VwcHJlc3NBbmlt
YXRpb25zKSwgbV9wYWdlSUQpOwogfQogCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykK
K3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnViYmVyQmFu
ZHNBdEJvdHRvbSkKK3sKKyAgICBpZiAocnViYmVyQmFuZHNBdEJvdHRvbSA9PSBtX3J1YmJlckJh
bmRzQXRCb3R0b20pCisgICAgICAgIHJldHVybjsKKworICAgIG1fcnViYmVyQmFuZHNBdEJvdHRv
bSA9IHJ1YmJlckJhbmRzQXRCb3R0b207CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRSdWJi
ZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pLCBtX3BhZ2VJRCk7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRv
cCkKK3sKKyAgICBpZiAocnViYmVyQmFuZHNBdFRvcCA9PSBtX3J1YmJlckJhbmRzQXRUb3ApCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHJ1YmJlckJhbmRzQXRU
b3A7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRSdWJiZXJCYW5kc0F0VG9wKHJ1YmJlckJh
bmRzQXRUb3ApLCBtX3BhZ2VJRCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFBhZ2luYXRpb25Nb2RlKFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGUgbW9kZSkKIHsKICAgICBp
ZiAobW9kZSA9PSBtX3BhZ2luYXRpb25Nb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDJhNzgxZDUxZjNiMjlkYmJkNDc5Yjc0ODQ2OTMyZjQ3N2ZiZjEzZTMu
LjM1ZmMwM2ZkYzk2NTU1ZWQ5NzJmNDVlMDVkYjlkYmVlNjRiMjI5YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTUwMiw2ICs1MDIsMTMgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNQaW5uZWRUb1RvcFNpZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlz
UGlubmVkVG9Ub3BTaWRlOyB9CiAgICAgYm9vbCBpc1Bpbm5lZFRvQm90dG9tU2lkZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGU7IH0KIAorI2lmIEVOQUJM
RShUSFJFQURFRF9TQ1JPTExJTkcpCisgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29u
c3QgeyByZXR1cm4gbV9ydWJiZXJCYW5kc0F0Qm90dG9tOyB9CisgICAgdm9pZCBzZXRSdWJiZXJC
YW5kc0F0Qm90dG9tKGJvb2wpOworICAgIGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsgfQorICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdFRv
cChib29sKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uTW9kZShXZWJDb3JlOjpQ
YWdpbmF0aW9uOjpNb2RlKTsKICAgICBXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRp
b25Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdpbmF0aW9uTW9kZTsgfQogICAgIHZvaWQgc2V0
UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1ucyhib29sKTsKQEAgLTEyMDksNiArMTIxNiwxMSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsKICAgICBi
b29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGU7CiAKKyNpZiBFTkFCTEUoVEhSRUFE
RURfU0NST0xMSU5HKQorICAgICAgICBib29sIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsKKyAgICAg
ICAgYm9vbCBtX3J1YmJlckJhbmRzQXRUb3A7CisjZW5kaWYKKwogICAgIGJvb2wgbV9tYWluRnJh
bWVJblZpZXdTb3VyY2VNb2RlOwogCiAgICAgdW5zaWduZWQgbV9wYWdlQ291bnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNTA3OGFiZDVj
NGQ1NTQxNDZlMTlhODhiY2EzNTE4MGU0YWVjMDgzNC4uMGM0NzFlZTg5NDA0YzVhYzBhMjkzN2Yz
ZTgwN2ZkNjM2NmQ1YTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMTMxMiw2ICsxMzEyLDE4IEBAIHZvaWQgV2ViUGFnZTo6c2V0U3Vw
cHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogICAgIG1f
cGFnZS0+c2V0U2hvdWxkU3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKHN1cHByZXNzQW5pbWF0
aW9ucyk7CiB9CiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQordm9pZCBXZWJQYWdl
OjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAg
ICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRCb3R0b20ocnViYmVyQmFuZHNBdEJvdHRvbSk7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdFRvcChib29sIHJ1YmJlckJhbmRzQXRU
b3ApCit7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kc0F0VG9wKHJ1YmJlckJhbmRzQXRUb3Ap
OworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6c2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3Qg
bW9kZSkKIHsKICAgICBQYWdpbmF0aW9uIHBhZ2luYXRpb24gPSBtX3BhZ2UtPnBhZ2luYXRpb24o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE2
ZTA2MDYwMjcyNTFjNWRiMmMxZGZkZmRiOTgyZWVlZTRiYjI1YjguLjkxMmY1MzFiMzY0NDI4MGI3
NDc1N2U5Y2ZlN2MyZTYxMmQ2ZDBiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzE1LDYgKzMxNSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sKTsKIAorI2lmIEVOQUJMRShUSFJF
QURFRF9TQ1JPTExJTkcpCisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOwor
ICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdFRvcChib29sKTsKKyNlbmRpZgorCiAgICAgdm9pZCBz
ZXRQYWdpbmF0aW9uTW9kZSh1aW50MzJfdCAvKiBXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2RlICov
KTsKICAgICB2b2lkIHNldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMoYm9vbCk7CiAgICAg
dm9pZCBzZXRQYWdlTGVuZ3RoKGRvdWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDY3YmNlNmEyZDJmODc5
MGEwNjhkYzMwZDlmYzgwMzA3YjE1N2QyZGUuLmUzNjQ5OTg0NTE4MmYyNmViYWVmMjAxMGNiNzcz
MjQ3MzE2N2ZkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNDIsNiArMTQyLDExIEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIExpc3RlbkZvckxheW91dE1pbGVzdG9uZXMo
dWludDMyX3QgbWlsZXN0b25lcykKICAgICBTZXRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMo
Ym9vbCBzdXBwcmVzc0FuaW1hdGlvbnMpCiAKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5H
KQorICAgIFNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0VG9wKQorICAg
IFNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQorI2VuZGlmCisKICAg
ICBTZXRQYWdpbmF0aW9uTW9kZSh1aW50MzJfdCBtb2RlKQogICAgIFNldFBhZ2luYXRpb25CZWhh
dmVzTGlrZUNvbHVtbnMoYm9vbCBiZWhhdmVzTGlrZUNvbHVtbnMpCiAgICAgU2V0UGFnZUxlbmd0
aChkb3VibGUgcGFnZUxlbmd0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189203</attachid>
            <date>2013-02-19 16:44:11 -0800</date>
            <delta_ts>2013-02-19 16:54:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110006-20130219164033.patch</filename>
            <type>text/plain</type>
            <size>26342</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZjRmMTgzMTJiYzIw
MWNmZWNlZDRkMjYyYjU2ZjQ5ZDBiY2I2MC4uODNjM2FkZDY1YTEzNWZmNjRhZWIyZWY3YzkzYzcx
NGJkYWI1ZDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEzLTAyLTE4ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkg
Y2xpZW50cyB0byBoYW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBtYXRjaGlu
ZyBjaGFuZ2VzIGluIFdlYktpdDIgdG8gY29udHJvbCBydWJiZXItYmFuZGluZyBiZWhhdmlvciBh
dCB2ZXJ0aWNhbCBwYWdlIGV4dHJlbWEuCisgICAgICAgIElmIHJ1YmJlci1iYW5kaW5nIGlzIGRp
c2FibGVkIGR1cmluZyBhIHNjcm9sbCBldmVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSB0cmlnZ2Vy
IHJ1YmJlci1iYW5kaW5nLCBkaXNwYXRjaAorICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgdG8gdGhlIHBhZ2UgVUkgY2xpZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnVi
YmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIFByb3h5IGZvciB0aGUgY29ycmVzcG9uZGluZyBm
dW5jdGlvbiBpbiBTY3JvbGxpbmdDb29yZGluYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAgIERlY2xhcmUgbmV3
IHJ1YmJlci1iYW5kaW5nIEFQSSAoYWJvdmUpLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgU3R1YiBBUEkgaW1wbGVtZW50
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0UnViYmVy
QmFuZHNBdEJvdHRvbSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUpOgor
ICAgICAgICBJbml0aWFsaXplIG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBTZXQgdG9w
L2JvdHRvbSBwaW5uZWQgc3RhdGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgor
ICAgICAgICBOZXcgbXV0YXRvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBOZXcgYWNjZXNzb3IgZnVuY3Rpb24u
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgTmV3IG11dGF0b3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgU3RhcnQg
YSB2ZXJ0aWNhbCBzd2lwZSBldmVudCBpZiB0aGUgZnJhbWUgaXMgcGlubmVkIGF0IHRoZSB0b3Ag
b3IgYm90dG9tIGFuZCBhc3NvY2lhdGVkIHJ1YmJlci1iYW5kaW5nIGlzIGRpc2FibGVkLgorCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZSk6CisgICAgICAgIERlY2xhcmUgbmV3IHJ1YmJlci1iYW5kaW5nIEFQSSBhbmQgYXNz
b2NpYXRlZCBtZW1iZXIgdmFyaWFibGVzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmg6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGluYXRv
ck1hYyk6CisgICAgICAgIERlY2xhcmUgQVBJIG92ZXJyaWRlcy4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAg
ICAgTWV0aG9kIG92ZXJyaWRlOyBwcm94eSB0byBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIGluIFNj
cm9sbGluZ1RyZWUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6
c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzZXRSdWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24pOgorICAg
ICAgICBSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVNYWluRnJhbWVQaW5TdGF0ZSk6CisgICAg
ICAgIENhbGN1bGF0ZSBhbmQgcGFzcyB2ZXJ0aWNhbCBwaW5uaW5nIHN0YXRlIHRvIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKCkuCisKIDIwMTMtMDItMTggIEhheWF0byBJdG8g
IDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgRXZlbnREaXNwYXRjaGVyIHRh
a2UgYW4gRXZlbnQgb2JqZWN0IGluIGl0cyBjb25zdHJ1Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZDFi
YmYxZjg2MWM4NTMwNTliOTMxZjVjNzcwYzJjNTNlNDMxMjVhLi43MjY5NjhhYzg3ZjczNWM3Zjkz
NDRhNTRlY2MxOGQ4ZWY3MjhmNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMt
MDItMTggIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBbGxvdyBVSSBjbGllbnRzIHRvIGhhbmRsZSB2ZXJ0aWNhbCB3aGVlbCBldmVudHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAwMDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRvIGFs
bG93IGNsaWVudHMgdG8gc2VsZWN0aXZlbHkgY29udHJvbCBydWJiZXItYmFuZGluZyBhdCB2ZXJ0
aWNhbCBwYWdlIGV4dHJlbWEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBQcm94eSBm
b3IgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb24gaW4gV2ViQ29yZTo6UGFnZS4KKyAgICAgICAg
KFdLUGFnZVNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBEaXR0by4KKyAgICAgICAg
KFdLUGFnZVJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdLUGFn
ZVNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgRGVjbGFyZSBuZXcgQVBJLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlh
Ymxlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0Qm90
dG9tKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uOyBkaXNwYXRjaGVzIGEgbWF0Y2hpbmcgbWVzc2Fn
ZSB0byB0aGUgV2ViS2l0OjpXZWJQYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgIERl
Y2xhcmUgbmV3IEFQSS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJiZXJCYW5k
c0F0Qm90dG9tKToKKyAgICAgICAgTmV3IGFjY2Vzc29yIGZ1bmN0aW9uLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5jdGlv
bjsgY2FsbCB0aGUgbWF0Y2hpbmcgZnVuY3Rpb24gb24gdGhlIGFzc29jaWF0ZWQgV2ViQ29yZTo6
UGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICBEZWNsYXJlIG5ldyBydWJiZXItYmFuZGluZyBB
UEkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCiAyMDEzLTAyLTE4ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBSZW1vdmUgd2Via2l0X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMgZnJvbSBXZWJLaXQyIEdU
SysgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY4NDM4NGQ2NTQ4YjdlYzI5NTg2MjQzMzc2
NmFiOWFmMzhmNzg0ODcuLmExYTYyNmY5YTVmMzEwN2U5MmQxNzgyNTFhN2U0MzVmZjFkNDA3YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03ODIsMTEgKzc4MiwxMyBAQCBfX1pON1dlYkNvcmU0
UGFnZTE4cmVtb3ZlU2NoZWR1bGVQYWlyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2NoZWR1bGVQ
YWlyRUVFCiBfX1pON1dlYkNvcmU0UGFnZTE4c2V0UGFnZVNjYWxlRmFjdG9yRWZSS05TXzhJbnRQ
b2ludEUKIF9fWk43V2ViQ29yZTRQYWdlMTlhZGRMYXlvdXRNaWxlc3RvbmVzRWoKIF9fWk43V2Vi
Q29yZTRQYWdlMTl2aXNpdGVkU3RhdGVDaGFuZ2VkRVBOU185UGFnZUdyb3VwRXkKK19fWk43V2Vi
Q29yZTRQYWdlMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43V2ViQ29yZTRQYWdlMjBzZXRE
ZXZpY2VTY2FsZUZhY3RvckVmCiBfX1pON1dlYkNvcmU0UGFnZTIwdW5tYXJrQWxsVGV4dE1hdGNo
ZXNFdgogX19aTjdXZWJDb3JlNFBhZ2UyMW1hcmtBbGxNYXRjaGVzRm9yVGV4dEVSS04zV1RGNlN0
cmluZ0VqYmoKIF9fWk43V2ViQ29yZTRQYWdlMjJhbGxWaXNpdGVkU3RhdGVDaGFuZ2VkRVBOU185
UGFnZUdyb3VwRQogX19aTjdXZWJDb3JlNFBhZ2UyMm5vbkZhc3RTY3JvbGxhYmxlUmVjdHNFUEtO
U181RnJhbWVFCitfX1pON1dlYkNvcmU0UGFnZTIyc2V0UnViYmVyQmFuZHNBdEJvdHRvbUViCiBf
X1pON1dlYkNvcmU0UGFnZTIzY2xlYXJVbmRvUmVkb09wZXJhdGlvbnNFdgogX19aTjdXZWJDb3Jl
NFBhZ2UyNGZpbmRTdHJpbmdNYXRjaGluZ1Jhbmdlc0VSS04zV1RGNlN0cmluZ0VqaVBOUzFfNlZl
Y3RvcklOUzFfNlJlZlB0cklOU181UmFuZ2VFRUVMbTBFRUVSaQogX19aTjdXZWJDb3JlNFBhZ2Uy
NHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uc0V2CkBAIC0yNzAzLDYgKzI3MDUsMTAgQEAgX19aTjdX
ZWJDb3JlMTNTY3JvbGxpbmdUcmVlRDFFdgogX19aTjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQx
NWRpc3BhdGNoQmFycmllckVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVFRQogX19aTjdXZWJDb3JlMTVT
Y3JvbGxpbmdUaHJlYWQ4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZFRUUKIF9fWk43V2Vi
Q29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNldEZvcmNlTWFpblRocmVhZFNjcm9sbExheWVy
UG9zaXRpb25VcGRhdGVzRWIKK19fWk5LN1dlYkNvcmUyM1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
MTlydWJiZXJCYW5kc0F0Qm90dG9tRXYKK19fWk5LN1dlYkNvcmUyM1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjMTZydWJiZXJCYW5kc0F0VG9wRXYKK19fWk43V2ViQ29yZTIzU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMyMnNldFJ1YmJlckJhbmRzQXRCb3R0b21FYgorX19aTjdXZWJDb3JlMjNTY3JvbGxp
bmdDb29yZGluYXRvck1hYzE5c2V0UnViYmVyQmFuZHNBdFRvcEViCiBfX1pON1dlYkNvcmU0UGFn
ZTIwc2Nyb2xsaW5nQ29vcmRpbmF0b3JFdgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4
IGVmOWU4Njg2ODA1ZTk5MWI0NWJlY2IwMDRkYzlhN2IxOTlhNzNjYmYuLmRjMWRkNDc2NGZmMTAw
ZTE3ZThhZGMxNDZhZmQzZTIyMTVkMWI3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtODE1LDYg
KzgxNSwzNCBAQCB2b2lkIFBhZ2U6OnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9u
cyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykKICAgICBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0
aW9ucyA9IHN1cHByZXNzQW5pbWF0aW9uczsKIH0KIAorYm9vbCBQYWdlOjpydWJiZXJCYW5kc0F0
Qm90dG9tKCkKK3sKKyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5ydWJiZXJCYW5kc0F0Qm90dG9tKCk7CisKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJl
ckJhbmRzQXRCb3R0b20pCit7CisgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxp
bmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRC
b3R0b20pOworfQorCitib29sIFBhZ2U6OnJ1YmJlckJhbmRzQXRUb3AoKQoreworICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJ1
YmJlckJhbmRzQXRUb3AoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdlOjpz
ZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICBpZiAoU2Ny
b2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKSkKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFJ1YmJlckJh
bmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgUGFnZTo6c2V0UGFnaW5hdGlv
bihjb25zdCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uKQogewogICAgIGlmIChtX3BhZ2luYXRpb24g
PT0gcGFnaW5hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZDg0ZTM5OWViMjdmMGE2ZGZiNGNhMzQw
ZWJlMGQzMDFhMDUzOWJiMi4uNjMzZDEzYzI1NjAxYThjMGNlNmFlODZhN2I1YTQwMDQxZDhlYmZi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTI3MSw2ICsyNzEsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkU3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zdXBw
cmVzc1Njcm9sbGJhckFuaW1hdGlvbnM7IH0KICAgICB2b2lkIHNldFNob3VsZFN1cHByZXNzU2Ny
b2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucyk7CiAKKyAgICBib29sIHJ1
YmJlckJhbmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9v
bCk7CisgICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5k
c0F0VG9wKGJvb2wpOworCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUgYSBQ
YWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJLAog
ICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1MuIFBh
Z2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKICAgICAvLyBGcmFtZVZpZXdzIGluIHRo
ZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRo
ZSBjdXJyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaAppbmRleCAwYWE4ODgwOGExOGRiMjc0YzNmYjNhYzAxNGQ1MzBlMzNk
ZGIzMWI5Li5lNTAxMGUxOTNkZjEwYzc3YTQ4OGY0YjljN2JhYThlM2I3MDBmZjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKQEAgLTEyNyw2ICsxMjcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2hp
bGRQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgU3RyaW5nIHNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1J1YmJl
ckJhbmRJblByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCkgeyB9CisgICAgdmlydHVhbCBi
b29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wpIHsgfQogCiAgICAgLy8gR2VuZXJhdGVk
IGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5ZXJzLgogICAgIFNjcm9sbGluZ05vZGVJRCB1bmlx
dWVTY3JvbGxMYXllcklEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IGI3OWNlNjJkZjAwNjg2NWVlZGRlMWZkYjAyYjQ3MmIwMWY5
YjM2NjcuLjJjNzY2MDQ4YzU2Y2ZhYjIwMDUwODI5OTg3YzJkNDMxMjBlNGM3ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw2ICs1
MywxMCBAQCBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAsIG1fY2FuR29Gb3J3YXJkKGZhbHNlKQogICAg
ICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZVBp
bm5lZFRvVGhlUmlnaHQoZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkK
KyAgICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQorICAgICwgbV9tYWluRnJhbWVQaW5uZWRU
b1RoZVRvcChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20oZmFsc2Up
CiAgICAgLCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSkKICAgICAsIG1fc2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNIYW5kbGluZ1By
b2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKQEAgLTIyNSwxMiArMjI5LDE0IEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZTo6cmVtb3ZlRGVzdHJveWVkTm9kZXMoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRy
ZWUpCiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRl
KGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQpCit2b2lkIFNjcm9s
bGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29s
IHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVC
b3R0b20pCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAog
ICAgIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1f
bWFpbkZyYW1lUGlubmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CisgICAgbV9tYWlu
RnJhbWVQaW5uZWRUb1RoZVRvcCA9IHBpbm5lZFRvVGhlVG9wOworICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVCb3R0b20gPSBwaW5uZWRUb1RoZUJvdHRvbTsKIH0KIAogdm9pZCBTY3JvbGxpbmdU
cmVlOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbikKQEAgLTI5MCwxMiArMjk2LDM4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
c2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogICAgIG1f
bWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOwogfQogCitib29sIFNj
cm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRCb3R0b20oKQoreworICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOworCisgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRv
bTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wg
cnViYmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0
YXRlTXV0ZXgpOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJv
dHRvbTsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKK3sKKyAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIHJldHVybiBtX3J1
YmJlckJhbmRzQXRUb3A7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNB
dFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
c3dpcGVTdGF0ZU11dGV4KTsKKworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHJ1YmJlckJhbmRz
QXRUb3A7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBl
R2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgaWYg
KHdoZWVsRXZlbnQucGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF3aGVlbEV2ZW50LmRlbHRhWCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4
KTsKIApAQCAtMzAzLDYgKzMzNSwxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OndpbGxXaGVlbEV2
ZW50U3RhcnRTd2lwZUdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYgbV9tYWlu
RnJhbWVQaW5uZWRUb1RoZVJpZ2h0ICYmIG1fY2FuR29Gb3J3YXJkKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5u
ZWRUb1RoZVRvcCAmJiAhbV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA8IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZUJvdHRvbSAmJiAhbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAppbmRleCA4NGNkOTE0OGE5ZWEzMDdjZGFmMzgyMjRkYTQ1NGYxZGRh
MzUxZDkyLi5hZDdiY2ViMjI5Y2MyNDFhMTc3NWExNTAwNmRlOTY0Njg3NmRlZDMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NSw3ICs4NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2b2lkIGNvbW1pdE5ld1Ry
ZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4pOwogCi0gICAgdm9pZCBzZXRN
YWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJp
Z2h0KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0
LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVk
VG9UaGVCb3R0b20pOwogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihj
b25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24gPSBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgSW50UG9pbnQgbWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24oKTsKQEAgLTk3LDYgKzk3LDExIEBAIHB1YmxpYzoKICAgICBib29s
IGNhbkdvQmFjaygpOwogICAgIGJvb2wgY2FuR29Gb3J3YXJkKCk7CiAKKyAgICBib29sIHJ1YmJl
ckJhbmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7
CisgICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0
VG9wKGJvb2wpOworCiAgICAgYm9vbCB3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3Jt
YW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZyk7CkBAIC0xMjYsNiArMTMxLDEwIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2NhbkdvRm9yd2FyZDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVMZWZ0OwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0OworICAgIGJv
b2wgbV9ydWJiZXJCYW5kc0F0Qm90dG9tOworICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOwor
ICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcDsKKyAgICBib29sIG1fbWFpbkZyYW1l
UGlubmVkVG9UaGVCb3R0b207CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZzsK
IAogICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMuaAppbmRleCA0MWFmZWM1YWVmMjllMDZmOThjZjA5NmY5MDhmNmMwM2RiYjZh
ZGIyLi5lY2VmZDVmMmQ3ZGU0MjNlMjdjZmUyNDNiOWZhZGUzNDk0NjU5ZGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMuaApAQCAtNzYsNiArNzYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3Ry
aW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmly
dHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAg
ICAgLy8gUmV0dXJuIHdoZXRoZXIgdGhpcyBzY3JvbGxpbmcgY29vcmRpbmF0b3IgY2FuIGtlZXAg
Zml4ZWQgcG9zaXRpb24gbGF5ZXJzIGZpeGVkIHRvIHRoZWlyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0KaW5kZXggY2EwOWMwOGE5MTg2Nzc1M2IzZWU2MzJiZmY3MjdlNDQ0MDE4MDkxZS4uZjQ2NGI3
NjgzNTliNjA4MDk1M2JjYjE5NjAzZDk4OWU5NDNiZWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbQpAQCAtOTMsNiArOTMsMjYgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aXNS
dWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS0+
aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpOwogfQogCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2Nyb2xsaW5n
VHJlZSgpLT5ydWJiZXJCYW5kc0F0Qm90dG9tKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9t
KQoreworICAgIHNjcm9sbGluZ1RyZWUoKS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJC
YW5kc0F0Qm90dG9tKTsKK30KKworYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cnViYmVy
QmFuZHNBdFRvcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS0+cnViYmVy
QmFuZHNBdFRvcCgpOworfQorCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzZXRSdWJi
ZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICBzY3JvbGxpbmdUcmVl
KCktPnNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkKIHsKICAgICBp
ZiAoIW1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5oYXNDaGFuZ2VkUHJvcGVydGllcygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDdjNzIyY2NhMzNmZTlmYjc1ODdkYzg2
ZjMxNWUzYmQyMThhZDFiMTguLmYxZjdhOTAyNTBhZmU3OGE5ZWFhMzk5OWRiMDQxODFmNzBhZDJj
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTE5OSw3ICsxOTks
NyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpwaW5uZWRJbkRpcmVjdGlv
bihjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKChk
ZWx0YS53aWR0aCgpIHx8IGRlbHRhLmhlaWdodCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwg
MSAmJiBsaW1pdERlbHRhLmhlaWdodCgpIDwgMSkpICAgICAgICAKKyAgICBpZiAoKGRlbHRhLndp
ZHRoKCkgfHwgZGVsdGEuaGVpZ2h0KCkpICYmIChsaW1pdERlbHRhLndpZHRoKCkgPCAxICYmIGxp
bWl0RGVsdGEuaGVpZ2h0KCkgPCAxKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1
cm4gZmFsc2U7CkBAIC0zNDgsOCArMzQ4LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnVwZGF0ZU1haW5GcmFtZVBpblN0YXRlKGNvbnN0IEludFBvaW50JiBzY3JvCiB7
CiAgICAgYm9vbCBwaW5uZWRUb1RoZUxlZnQgPSBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11
bVNjcm9sbFBvc2l0aW9uKCkueCgpOwogICAgIGJvb2wgcGlubmVkVG9UaGVSaWdodCA9IHNjcm9s
bFBvc2l0aW9uLngoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CisgICAgYm9vbCBw
aW5uZWRUb1RoZVRvcCA9IHNjcm9sbFBvc2l0aW9uLnkoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKS55KCk7CisgICAgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSA9IHNjcm9sbFBvc2l0aW9uLnko
KSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CiAKLSAgICBzY3JvbGxpbmdUcmVlKCkt
PnNldE1haW5GcmFtZVBpblN0YXRlKHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCk7
CisgICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVQaW5TdGF0ZShwaW5uZWRUb1RoZUxl
ZnQsIHBpbm5lZFRvVGhlUmlnaHQsIHBpbm5lZFRvVGhlVG9wLCBwaW5uZWRUb1RoZUJvdHRvbSk7
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OmxvZ0V4cG9zZWRVbmZp
bGxlZEFyZWEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRl
eCA1NTBkN2JlZTNkMDI3NWZhZjliOGYwYmUxMjc2ZWE3NzIyZmFlYTUwLi5hM2E0NDg4YjQ0Zjlm
NWE1N2YwNzJhMTM0ZGZmZGY2ODFlNTdmN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcApAQCAtMzk0LDYgKzM5NCwyNyBAQCBib29sIFdLUGFnZUlzUGlubmVk
VG9Cb3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0ltcGwocGFnZVJl
ZiktPmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CiB9CiAKKworYm9vbCBXS1BhZ2VSdWJiZXJCYW5k
c0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocGFnZVJl
ZiktPnJ1YmJlckJhbmRzQXRCb3R0b20oKTsKK30KKwordm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5k
c0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRz
QXRCb3R0b20pOworfQorCitib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRUb3AoV0tQYWdlUmVmIHBh
Z2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVyQmFuZHNBdFRvcCgp
OworfQorCit2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3AoV0tQYWdlUmVmIHBhZ2VSZWYs
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICB0b0ltcGwocGFnZVJlZiktPnNldFJ1YmJl
ckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgV0tQYWdlU2V0UGFnaW5h
dGlvbk1vZGUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnaW5hdGlvbk1vZGUgcGFnaW5hdGlvbk1v
ZGUpCiB7CiAgICAgUGFnaW5hdGlvbjo6TW9kZSBtb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCmluZGV4IDFhODU2NTcxMTBiNGM3ZjM4OThlNzI1ZWExMTAxMzEzYTFj
MzUwMzMuLmE1OWFlZTU3NzFiNjFiNTY1YWU3MTQxZjFkOGE5ZjNlNjQ1MWFlZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTQ0NCw2ICs0NDQsMTEgQEAgV0tf
RVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb1JpZ2h0U2lkZShXS1BhZ2VSZWYgcGFnZSk7CiBX
S19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvVG9wU2lkZShXS1BhZ2VSZWYgcGFnZSk7CiBX
S19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvQm90dG9tU2lkZShXS1BhZ2VSZWYgcGFnZSk7
CiAKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmKTsK
K1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmLCBi
b29sIHJ1YmJlckJhbmRzQXRCb3R0b20pOworV0tfRVhQT1JUIGJvb2wgV0tQYWdlUnViYmVyQmFu
ZHNBdFRvcChXS1BhZ2VSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dFRvcChXS1BhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCk7CisKIFdLX0VYUE9SVCBib29s
IFdLUGFnZUNhbkRlbGV0ZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VI
YXNTZWxlY3RlZFJhbmdlKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlz
Q29udGVudEVkaXRhYmxlKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ4YTM1OGYyOTY0YzFiMjEyNmFiNTg0ZjdmMTljYzAw
OWFmZDE1MS4uNDI3OTM1MjkwZmYxYzk4ZmQ2NWFkNGQ4MWFhYmQ0MmNiZjU5YmI5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIyNiw2ICsyMjYsOCBA
QCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNz
UmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvUmln
aHRTaWRlKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZShmYWxzZSkK
ICAgICAsIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUoZmFsc2UpCisgICAgLCBtX3J1
YmJlckJhbmRzQXRCb3R0b20oZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRUb3AoZmFsc2Up
CiAgICAgLCBtX21haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZmFsc2UpCiAgICAgLCBtX3BhZ2VD
b3VudCgwKQogICAgICwgbV9yZW5kZXJUcmVlU2l6ZSgwKQpAQCAtMjU5LDYgKzI2MSwxMCBAQCBX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVm
UHRyPFdlYlByb2Nlc3NQcm94eT4gcAogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAgICAgbV92aWJy
YXRpb24gPSBXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKHRoaXMpOwogI2VuZGlmCisjaWYgRU5B
QkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICBtX3J1YmJlckJhbmRzQXRCb3R0b20gPSB0cnVl
OworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHRydWU7CisjZW5kaWYKIAogICAgIG1fcHJvY2Vz
cy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlSUQsIHRoaXMpOwogICAgIG1fcHJvY2Vzcy0+Y29udGV4dCgpLT5z
dG9yYWdlTWFuYWdlcigpLmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKG1fcGFnZUlEKTsK
QEAgLTE2NzMsNiArMTY3OSwzMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3VwcHJlc3NTY3Jv
bGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKHN1
cHByZXNzQW5pbWF0aW9ucyksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNl
dFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQoreworICAgIGlm
IChydWJiZXJCYW5kc0F0Qm90dG9tID09IG1fcnViYmVyQmFuZHNBdEJvdHRvbSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJvdHRv
bTsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFJ1YmJlckJhbmRzQXRCb3R0b20ocnViYmVy
QmFuZHNBdEJvdHRvbSksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldFJ1
YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQoreworICAgIGlmIChydWJiZXJC
YW5kc0F0VG9wID09IG1fcnViYmVyQmFuZHNBdFRvcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9ydWJiZXJCYW5kc0F0VG9wID0gcnViYmVyQmFuZHNBdFRvcDsKKworICAgIGlmICghaXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCksIG1fcGFnZUlEKTsK
K30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFBhZ2luYXRpb25Nb2RlKFdlYkNvcmU6OlBhZ2lu
YXRpb246Ok1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBtX3BhZ2luYXRpb25Nb2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDJhNzgxZDUxZjNiMjlk
YmJkNDc5Yjc0ODQ2OTMyZjQ3N2ZiZjEzZTMuLjM2YTAyYmVmOTI1MmM3ZGU3OGIzNTA5ZTVkN2U4
MTI3ODJjMmIyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTUwMiw2ICs1MDIsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNQaW5uZWRUb1RvcFNpZGUoKSBj
b25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlOyB9CiAgICAgYm9vbCBp
c1Bpbm5lZFRvQm90dG9tU2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSXNQaW5uZWRU
b0JvdHRvbVNpZGU7IH0KIAorICAgIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsgfQorICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dEJvdHRvbShib29sKTsKKyAgICBib29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVy
biBtX3J1YmJlckJhbmRzQXRUb3A7IH0KKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9v
bCk7CisKICAgICB2b2lkIHNldFBhZ2luYXRpb25Nb2RlKFdlYkNvcmU6OlBhZ2luYXRpb246Ok1v
ZGUpOwogICAgIFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2luYXRpb25Nb2RlOyB9CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uQmVo
YXZlc0xpa2VDb2x1bW5zKGJvb2wpOwpAQCAtMTIwOSw2ICsxMjE0LDkgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGU7CiAgICAgYm9vbCBtX21haW5GcmFt
ZUlzUGlubmVkVG9Cb3R0b21TaWRlOwogCisgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRCb3R0b207
CisgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRUb3A7CisKICAgICBib29sIG1fbWFpbkZyYW1lSW5W
aWV3U291cmNlTW9kZTsKIAogICAgIHVuc2lnbmVkIG1fcGFnZUNvdW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDUwNzhhYmQ1YzRkNTU0
MTQ2ZTE5YTg4YmNhMzUxODBlNGFlYzA4MzQuLjg1MzUyMThhMDc1MWVmZTg1ZGVhOGQ1M2UxNWM2
YjI0YjBkMGZjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTEzMTIsNiArMTMxMiwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNldFN1cHByZXNz
U2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykKICAgICBtX3BhZ2Ut
PnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhzdXBwcmVzc0FuaW1hdGlvbnMp
OwogfQogCit2b2lkIFdlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJC
YW5kc0F0Qm90dG9tKQoreworICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJi
ZXJCYW5kc0F0Qm90dG9tKTsKK30KKwordm9pZCBXZWJQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9w
KGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRU
b3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0UGFnaW5hdGlvbk1v
ZGUodWludDMyX3QgbW9kZSkKIHsKICAgICBQYWdpbmF0aW9uIHBhZ2luYXRpb24gPSBtX3BhZ2Ut
PnBhZ2luYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IGE2ZTA2MDYwMjcyNTFjNWRiMmMxZGZkZmRiOTgyZWVlZTRiYjI1YjguLjkyYTJl
NGUzOGUzYTIyNWQyMDllOGI5YWI4ZDAwNWVmYmZhM2E4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzE1LDYgKzMxNSw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wpOwogCisgICAg
dm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAgIHZvaWQgc2V0UnViYmVyQmFu
ZHNBdFRvcChib29sKTsKKwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgLyog
V2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSAqLyk7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uQmVo
YXZlc0xpa2VDb2x1bW5zKGJvb2wpOwogICAgIHZvaWQgc2V0UGFnZUxlbmd0aChkb3VibGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCA2N2JjZTZhMmQyZjg3OTBhMDY4ZGMzMGQ5ZmM4MDMwN2IxNTdkMmRlLi40
YWU0NThlYTVmNTA5Y2RlYzM2NDliNTdiZjRlNGViNTA4NTVjZGNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
MTQyLDYgKzE0Miw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IExpc3RlbkZvckxheW91dE1pbGVzdG9uZXModWludDMyX3QgbWlsZXN0b25lcykKICAgICBTZXRT
dXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBzdXBwcmVzc0FuaW1hdGlvbnMpCiAKKyAg
ICBTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKKyAgICBTZXRS
dWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKKwogICAgIFNldFBhZ2luYXRp
b25Nb2RlKHVpbnQzMl90IG1vZGUpCiAgICAgU2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1u
cyhib29sIGJlaGF2ZXNMaWtlQ29sdW1ucykKICAgICBTZXRQYWdlTGVuZ3RoKGRvdWJsZSBwYWdl
TGVuZ3RoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189205</attachid>
            <date>2013-02-19 16:54:52 -0800</date>
            <delta_ts>2013-02-19 17:44:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110006-20130219165114.patch</filename>
            <type>text/plain</type>
            <size>26345</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZjRmMTgzMTJiYzIw
MWNmZWNlZDRkMjYyYjU2ZjQ5ZDBiY2I2MC4uODNjM2FkZDY1YTEzNWZmNjRhZWIyZWY3YzkzYzcx
NGJkYWI1ZDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEzLTAyLTE4ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgVUkg
Y2xpZW50cyB0byBoYW5kbGUgdmVydGljYWwgd2hlZWwgZXZlbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhbGxvdyBtYXRjaGlu
ZyBjaGFuZ2VzIGluIFdlYktpdDIgdG8gY29udHJvbCBydWJiZXItYmFuZGluZyBiZWhhdmlvciBh
dCB2ZXJ0aWNhbCBwYWdlIGV4dHJlbWEuCisgICAgICAgIElmIHJ1YmJlci1iYW5kaW5nIGlzIGRp
c2FibGVkIGR1cmluZyBhIHNjcm9sbCBldmVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSB0cmlnZ2Vy
IHJ1YmJlci1iYW5kaW5nLCBkaXNwYXRjaAorICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgdG8gdGhlIHBhZ2UgVUkgY2xpZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnVi
YmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIFByb3h5IGZvciB0aGUgY29ycmVzcG9uZGluZyBm
dW5jdGlvbiBpbiBTY3JvbGxpbmdDb29yZGluYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAgIERlY2xhcmUgbmV3
IHJ1YmJlci1iYW5kaW5nIEFQSSAoYWJvdmUpLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgU3R1YiBBUEkgaW1wbGVtZW50
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0UnViYmVy
QmFuZHNBdEJvdHRvbSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUpOgor
ICAgICAgICBJbml0aWFsaXplIG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICBTZXQgdG9w
L2JvdHRvbSBwaW5uZWQgc3RhdGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBhY2Nlc3NvciBmdW5jdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgor
ICAgICAgICBOZXcgbXV0YXRvciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBOZXcgYWNjZXNzb3IgZnVuY3Rpb24u
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0VG9wKToK
KyAgICAgICAgTmV3IG11dGF0b3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgU3RhcnQg
YSB2ZXJ0aWNhbCBzd2lwZSBldmVudCBpZiB0aGUgZnJhbWUgaXMgcGlubmVkIGF0IHRoZSB0b3Ag
b3IgYm90dG9tIGFuZCBhc3NvY2lhdGVkIHJ1YmJlci1iYW5kaW5nIGlzIGRpc2FibGVkLgorCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZSk6CisgICAgICAgIERlY2xhcmUgbmV3IHJ1YmJlci1iYW5kaW5nIEFQSSBhbmQgYXNz
b2NpYXRlZCBtZW1iZXIgdmFyaWFibGVzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmg6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGluYXRv
ck1hYyk6CisgICAgICAgIERlY2xhcmUgQVBJIG92ZXJyaWRlcy4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAg
ICAgTWV0aG9kIG92ZXJyaWRlOyBwcm94eSB0byBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIGluIFNj
cm9sbGluZ1RyZWUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6
c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzZXRSdWJi
ZXJCYW5kc0F0VG9wKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24pOgorICAg
ICAgICBSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVNYWluRnJhbWVQaW5TdGF0ZSk6CisgICAg
ICAgIENhbGN1bGF0ZSBhbmQgcGFzcyB2ZXJ0aWNhbCBwaW5uaW5nIHN0YXRlIHRvIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKCkuCisKIDIwMTMtMDItMTggIEhheWF0byBJdG8g
IDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgRXZlbnREaXNwYXRjaGVyIHRh
a2UgYW4gRXZlbnQgb2JqZWN0IGluIGl0cyBjb25zdHJ1Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZDFi
YmYxZjg2MWM4NTMwNTliOTMxZjVjNzcwYzJjNTNlNDMxMjVhLi43MjY5NjhhYzg3ZjczNWM3Zjkz
NDRhNTRlY2MxOGQ4ZWY3MjhmNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMt
MDItMTggIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBbGxvdyBVSSBjbGllbnRzIHRvIGhhbmRsZSB2ZXJ0aWNhbCB3aGVlbCBldmVudHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAwMDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRvIGFs
bG93IGNsaWVudHMgdG8gc2VsZWN0aXZlbHkgY29udHJvbCBydWJiZXItYmFuZGluZyBhdCB2ZXJ0
aWNhbCBwYWdlIGV4dHJlbWEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBQcm94eSBm
b3IgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb24gaW4gV2ViQ29yZTo6UGFnZS4KKyAgICAgICAg
KFdLUGFnZVNldFJ1YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICBEaXR0by4KKyAgICAgICAg
KFdLUGFnZVJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdLUGFn
ZVNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgRGVjbGFyZSBuZXcgQVBJLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlh
Ymxlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0Qm90
dG9tKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uOyBkaXNwYXRjaGVzIGEgbWF0Y2hpbmcgbWVzc2Fn
ZSB0byB0aGUgV2ViS2l0OjpXZWJQYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgIERl
Y2xhcmUgbmV3IEFQSS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJiZXJCYW5k
c0F0Qm90dG9tKToKKyAgICAgICAgTmV3IGFjY2Vzc29yIGZ1bmN0aW9uLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIE5ldyBmdW5jdGlv
bjsgY2FsbCB0aGUgbWF0Y2hpbmcgZnVuY3Rpb24gb24gdGhlIGFzc29jaWF0ZWQgV2ViQ29yZTo6
UGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0UnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICBEZWNsYXJlIG5ldyBydWJiZXItYmFuZGluZyBB
UEkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgRGVjbGFyZSBuZXcgcnViYmVyLWJhbmRpbmcgQVBJLgorCiAyMDEzLTAyLTE4ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBSZW1vdmUgd2Via2l0X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMgZnJvbSBXZWJLaXQyIEdU
SysgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY4NDM4NGQ2NTQ4YjdlYzI5NTg2MjQzMzc2
NmFiOWFmMzhmNzg0ODcuLmExYTYyNmY5YTVmMzEwN2U5MmQxNzgyNTFhN2U0MzVmZjFkNDA3YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03ODIsMTEgKzc4MiwxMyBAQCBfX1pON1dlYkNvcmU0
UGFnZTE4cmVtb3ZlU2NoZWR1bGVQYWlyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2NoZWR1bGVQ
YWlyRUVFCiBfX1pON1dlYkNvcmU0UGFnZTE4c2V0UGFnZVNjYWxlRmFjdG9yRWZSS05TXzhJbnRQ
b2ludEUKIF9fWk43V2ViQ29yZTRQYWdlMTlhZGRMYXlvdXRNaWxlc3RvbmVzRWoKIF9fWk43V2Vi
Q29yZTRQYWdlMTl2aXNpdGVkU3RhdGVDaGFuZ2VkRVBOU185UGFnZUdyb3VwRXkKK19fWk43V2Vi
Q29yZTRQYWdlMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43V2ViQ29yZTRQYWdlMjBzZXRE
ZXZpY2VTY2FsZUZhY3RvckVmCiBfX1pON1dlYkNvcmU0UGFnZTIwdW5tYXJrQWxsVGV4dE1hdGNo
ZXNFdgogX19aTjdXZWJDb3JlNFBhZ2UyMW1hcmtBbGxNYXRjaGVzRm9yVGV4dEVSS04zV1RGNlN0
cmluZ0VqYmoKIF9fWk43V2ViQ29yZTRQYWdlMjJhbGxWaXNpdGVkU3RhdGVDaGFuZ2VkRVBOU185
UGFnZUdyb3VwRQogX19aTjdXZWJDb3JlNFBhZ2UyMm5vbkZhc3RTY3JvbGxhYmxlUmVjdHNFUEtO
U181RnJhbWVFCitfX1pON1dlYkNvcmU0UGFnZTIyc2V0UnViYmVyQmFuZHNBdEJvdHRvbUViCiBf
X1pON1dlYkNvcmU0UGFnZTIzY2xlYXJVbmRvUmVkb09wZXJhdGlvbnNFdgogX19aTjdXZWJDb3Jl
NFBhZ2UyNGZpbmRTdHJpbmdNYXRjaGluZ1Jhbmdlc0VSS04zV1RGNlN0cmluZ0VqaVBOUzFfNlZl
Y3RvcklOUzFfNlJlZlB0cklOU181UmFuZ2VFRUVMbTBFRUVSaQogX19aTjdXZWJDb3JlNFBhZ2Uy
NHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uc0V2CkBAIC0yNzAzLDYgKzI3MDUsMTAgQEAgX19aTjdX
ZWJDb3JlMTNTY3JvbGxpbmdUcmVlRDFFdgogX19aTjdXZWJDb3JlMTVTY3JvbGxpbmdUaHJlYWQx
NWRpc3BhdGNoQmFycmllckVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVFRQogX19aTjdXZWJDb3JlMTVT
Y3JvbGxpbmdUaHJlYWQ4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZFRUUKIF9fWk43V2Vi
Q29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNldEZvcmNlTWFpblRocmVhZFNjcm9sbExheWVy
UG9zaXRpb25VcGRhdGVzRWIKK19fWk5LN1dlYkNvcmUyM1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
MTlydWJiZXJCYW5kc0F0Qm90dG9tRXYKK19fWk5LN1dlYkNvcmUyM1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjMTZydWJiZXJCYW5kc0F0VG9wRXYKK19fWk43V2ViQ29yZTIzU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMyMnNldFJ1YmJlckJhbmRzQXRCb3R0b21FYgorX19aTjdXZWJDb3JlMjNTY3JvbGxp
bmdDb29yZGluYXRvck1hYzE5c2V0UnViYmVyQmFuZHNBdFRvcEViCiBfX1pON1dlYkNvcmU0UGFn
ZTIwc2Nyb2xsaW5nQ29vcmRpbmF0b3JFdgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4
IGVmOWU4Njg2ODA1ZTk5MWI0NWJlY2IwMDRkYzlhN2IxOTlhNzNjYmYuLmRjMWRkNDc2NGZmMTAw
ZTE3ZThhZGMxNDZhZmQzZTIyMTVkMWI3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtODE1LDYg
KzgxNSwzNCBAQCB2b2lkIFBhZ2U6OnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9u
cyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykKICAgICBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0
aW9ucyA9IHN1cHByZXNzQW5pbWF0aW9uczsKIH0KIAorYm9vbCBQYWdlOjpydWJiZXJCYW5kc0F0
Qm90dG9tKCkKK3sKKyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5ydWJiZXJCYW5kc0F0Qm90dG9tKCk7CisKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgUGFnZTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJl
ckJhbmRzQXRCb3R0b20pCit7CisgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxp
bmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRC
b3R0b20pOworfQorCitib29sIFBhZ2U6OnJ1YmJlckJhbmRzQXRUb3AoKQoreworICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJ1
YmJlckJhbmRzQXRUb3AoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdlOjpz
ZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICBpZiAoU2Ny
b2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKSkKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFJ1YmJlckJh
bmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgUGFnZTo6c2V0UGFnaW5hdGlv
bihjb25zdCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uKQogewogICAgIGlmIChtX3BhZ2luYXRpb24g
PT0gcGFnaW5hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZDg0ZTM5OWViMjdmMGE2ZGZiNGNhMzQw
ZWJlMGQzMDFhMDUzOWJiMi4uNjMzZDEzYzI1NjAxYThjMGNlNmFlODZhN2I1YTQwMDQxZDhlYmZi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTI3MSw2ICsyNzEsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkU3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zdXBw
cmVzc1Njcm9sbGJhckFuaW1hdGlvbnM7IH0KICAgICB2b2lkIHNldFNob3VsZFN1cHByZXNzU2Ny
b2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucyk7CiAKKyAgICBib29sIHJ1
YmJlckJhbmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9v
bCk7CisgICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5k
c0F0VG9wKGJvb2wpOworCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUgYSBQ
YWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJLAog
ICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1MuIFBh
Z2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKICAgICAvLyBGcmFtZVZpZXdzIGluIHRo
ZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRo
ZSBjdXJyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaAppbmRleCAwYWE4ODgwOGExOGRiMjc0YzNmYjNhYzAxNGQ1MzBlMzNk
ZGIzMWI5Li5lNTAxMGUxOTNkZjEwYzc3YTQ4OGY0YjljN2JhYThlM2I3MDBmZjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKQEAgLTEyNyw2ICsxMjcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2hp
bGRQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgU3RyaW5nIHNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1J1YmJl
ckJhbmRJblByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCkgeyB9CisgICAgdmlydHVhbCBi
b29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wpIHsgfQogCiAgICAgLy8gR2VuZXJhdGVk
IGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5ZXJzLgogICAgIFNjcm9sbGluZ05vZGVJRCB1bmlx
dWVTY3JvbGxMYXllcklEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IGI3OWNlNjJkZjAwNjg2NWVlZGRlMWZkYjAyYjQ3MmIwMWY5
YjM2NjcuLjJjNzY2MDQ4YzU2Y2ZhYjIwMDUwODI5OTg3YzJkNDMxMjBlNGM3ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw2ICs1
MywxMCBAQCBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAsIG1fY2FuR29Gb3J3YXJkKGZhbHNlKQogICAg
ICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZVBp
bm5lZFRvVGhlUmlnaHQoZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRCb3R0b20odHJ1ZSkK
KyAgICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQorICAgICwgbV9tYWluRnJhbWVQaW5uZWRU
b1RoZVRvcChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVCb3R0b20oZmFsc2Up
CiAgICAgLCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSkKICAgICAsIG1fc2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNIYW5kbGluZ1By
b2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKQEAgLTIyNSwxMiArMjI5LDE0IEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZTo6cmVtb3ZlRGVzdHJveWVkTm9kZXMoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRy
ZWUpCiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRl
KGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQpCit2b2lkIFNjcm9s
bGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29s
IHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVC
b3R0b20pCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAog
ICAgIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1f
bWFpbkZyYW1lUGlubmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CisgICAgbV9tYWlu
RnJhbWVQaW5uZWRUb1RoZVRvcCA9IHBpbm5lZFRvVGhlVG9wOworICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVCb3R0b20gPSBwaW5uZWRUb1RoZUJvdHRvbTsKIH0KIAogdm9pZCBTY3JvbGxpbmdU
cmVlOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbikKQEAgLTI5MCwxMiArMjk2LDM4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
c2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogICAgIG1f
bWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOwogfQogCitib29sIFNj
cm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRCb3R0b20oKQoreworICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOworCisgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRv
bTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wg
cnViYmVyQmFuZHNBdEJvdHRvbSkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0
YXRlTXV0ZXgpOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJv
dHRvbTsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKK3sKKyAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIHJldHVybiBtX3J1
YmJlckJhbmRzQXRUb3A7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFuZHNB
dFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
c3dpcGVTdGF0ZU11dGV4KTsKKworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHJ1YmJlckJhbmRz
QXRUb3A7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBl
R2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgaWYg
KHdoZWVsRXZlbnQucGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF3aGVlbEV2ZW50LmRlbHRhWCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4
KTsKIApAQCAtMzAzLDYgKzMzNSwxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OndpbGxXaGVlbEV2
ZW50U3RhcnRTd2lwZUdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYgbV9tYWlu
RnJhbWVQaW5uZWRUb1RoZVJpZ2h0ICYmIG1fY2FuR29Gb3J3YXJkKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5u
ZWRUb1RoZVRvcCAmJiAhbV9ydWJiZXJCYW5kc0F0VG9wKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA8IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZUJvdHRvbSAmJiAhbV9ydWJiZXJCYW5kc0F0Qm90dG9tKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAppbmRleCA4NGNkOTE0OGE5ZWEzMDdjZGFmMzgyMjRkYTQ1NGYxZGRh
MzUxZDkyLi5hZDdiY2ViMjI5Y2MyNDFhMTc3NWExNTAwNmRlOTY0Njg3NmRlZDMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NSw3ICs4NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2b2lkIGNvbW1pdE5ld1Ry
ZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4pOwogCi0gICAgdm9pZCBzZXRN
YWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJp
Z2h0KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0
LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVk
VG9UaGVCb3R0b20pOwogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihj
b25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24gPSBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgSW50UG9pbnQgbWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24oKTsKQEAgLTk3LDYgKzk3LDExIEBAIHB1YmxpYzoKICAgICBib29s
IGNhbkdvQmFjaygpOwogICAgIGJvb2wgY2FuR29Gb3J3YXJkKCk7CiAKKyAgICBib29sIHJ1YmJl
ckJhbmRzQXRCb3R0b20oKTsKKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7
CisgICAgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0
VG9wKGJvb2wpOworCiAgICAgYm9vbCB3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3Jt
YW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZyk7CkBAIC0xMjYsNiArMTMxLDEwIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2NhbkdvRm9yd2FyZDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVMZWZ0OwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0OworICAgIGJv
b2wgbV9ydWJiZXJCYW5kc0F0Qm90dG9tOworICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOwor
ICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcDsKKyAgICBib29sIG1fbWFpbkZyYW1l
UGlubmVkVG9UaGVCb3R0b207CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZzsK
IAogICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMuaAppbmRleCA0MWFmZWM1YWVmMjllMDZmOThjZjA5NmY5MDhmNmMwM2RiYjZh
ZGIyLi5lY2VmZDVmMmQ3ZGU0MjNlMjdjZmUyNDNiOWZhZGUzNDk0NjU5ZGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMuaApAQCAtNzYsNiArNzYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3Ry
aW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmly
dHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBydWJiZXJCYW5kc0F0VG9wKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAg
ICAgLy8gUmV0dXJuIHdoZXRoZXIgdGhpcyBzY3JvbGxpbmcgY29vcmRpbmF0b3IgY2FuIGtlZXAg
Zml4ZWQgcG9zaXRpb24gbGF5ZXJzIGZpeGVkIHRvIHRoZWlyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0KaW5kZXggY2EwOWMwOGE5MTg2Nzc1M2IzZWU2MzJiZmY3MjdlNDQ0MDE4MDkxZS4uZjQ2NGI3
NjgzNTliNjA4MDk1M2JjYjE5NjAzZDk4OWU5NDNiZWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbQpAQCAtOTMsNiArOTMsMjYgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aXNS
dWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS0+
aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpOwogfQogCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2Nyb2xsaW5n
VHJlZSgpLT5ydWJiZXJCYW5kc0F0Qm90dG9tKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9t
KQoreworICAgIHNjcm9sbGluZ1RyZWUoKS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJC
YW5kc0F0Qm90dG9tKTsKK30KKworYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cnViYmVy
QmFuZHNBdFRvcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS0+cnViYmVy
QmFuZHNBdFRvcCgpOworfQorCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzZXRSdWJi
ZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICBzY3JvbGxpbmdUcmVl
KCktPnNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkKIHsKICAgICBp
ZiAoIW1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5oYXNDaGFuZ2VkUHJvcGVydGllcygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDdjNzIyY2NhMzNmZTlmYjc1ODdkYzg2
ZjMxNWUzYmQyMThhZDFiMTguLmYxZjdhOTAyNTBhZmU3OGE5ZWFhMzk5OWRiMDQxODFmNzBhZDJj
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTE5OSw3ICsxOTks
NyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpwaW5uZWRJbkRpcmVjdGlv
bihjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKChk
ZWx0YS53aWR0aCgpIHx8IGRlbHRhLmhlaWdodCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwg
MSAmJiBsaW1pdERlbHRhLmhlaWdodCgpIDwgMSkpICAgICAgICAKKyAgICBpZiAoKGRlbHRhLndp
ZHRoKCkgfHwgZGVsdGEuaGVpZ2h0KCkpICYmIChsaW1pdERlbHRhLndpZHRoKCkgPCAxICYmIGxp
bWl0RGVsdGEuaGVpZ2h0KCkgPCAxKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1
cm4gZmFsc2U7CkBAIC0zNDgsOCArMzQ4LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnVwZGF0ZU1haW5GcmFtZVBpblN0YXRlKGNvbnN0IEludFBvaW50JiBzY3JvCiB7
CiAgICAgYm9vbCBwaW5uZWRUb1RoZUxlZnQgPSBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11
bVNjcm9sbFBvc2l0aW9uKCkueCgpOwogICAgIGJvb2wgcGlubmVkVG9UaGVSaWdodCA9IHNjcm9s
bFBvc2l0aW9uLngoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CisgICAgYm9vbCBw
aW5uZWRUb1RoZVRvcCA9IHNjcm9sbFBvc2l0aW9uLnkoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKS55KCk7CisgICAgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSA9IHNjcm9sbFBvc2l0aW9uLnko
KSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CiAKLSAgICBzY3JvbGxpbmdUcmVlKCkt
PnNldE1haW5GcmFtZVBpblN0YXRlKHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCk7
CisgICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVQaW5TdGF0ZShwaW5uZWRUb1RoZUxl
ZnQsIHBpbm5lZFRvVGhlUmlnaHQsIHBpbm5lZFRvVGhlVG9wLCBwaW5uZWRUb1RoZUJvdHRvbSk7
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OmxvZ0V4cG9zZWRVbmZp
bGxlZEFyZWEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRl
eCA1NTBkN2JlZTNkMDI3NWZhZjliOGYwYmUxMjc2ZWE3NzIyZmFlYTUwLi5hM2E0NDg4YjQ0Zjlm
NWE1N2YwNzJhMTM0ZGZmZGY2ODFlNTdmN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcApAQCAtMzk0LDYgKzM5NCwyNyBAQCBib29sIFdLUGFnZUlzUGlubmVk
VG9Cb3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0ltcGwocGFnZVJl
ZiktPmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CiB9CiAKKworYm9vbCBXS1BhZ2VSdWJiZXJCYW5k
c0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocGFnZVJl
ZiktPnJ1YmJlckJhbmRzQXRCb3R0b20oKTsKK30KKwordm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5k
c0F0Qm90dG9tKFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRz
QXRCb3R0b20pOworfQorCitib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRUb3AoV0tQYWdlUmVmIHBh
Z2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVyQmFuZHNBdFRvcCgp
OworfQorCit2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3AoV0tQYWdlUmVmIHBhZ2VSZWYs
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICB0b0ltcGwocGFnZVJlZiktPnNldFJ1YmJl
ckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgV0tQYWdlU2V0UGFnaW5h
dGlvbk1vZGUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnaW5hdGlvbk1vZGUgcGFnaW5hdGlvbk1v
ZGUpCiB7CiAgICAgUGFnaW5hdGlvbjo6TW9kZSBtb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCmluZGV4IDFhODU2NTcxMTBiNGM3ZjM4OThlNzI1ZWExMTAxMzEzYTFj
MzUwMzMuLmE1OWFlZTU3NzFiNjFiNTY1YWU3MTQxZjFkOGE5ZjNlNjQ1MWFlZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTQ0NCw2ICs0NDQsMTEgQEAgV0tf
RVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb1JpZ2h0U2lkZShXS1BhZ2VSZWYgcGFnZSk7CiBX
S19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvVG9wU2lkZShXS1BhZ2VSZWYgcGFnZSk7CiBX
S19FWFBPUlQgYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvQm90dG9tU2lkZShXS1BhZ2VSZWYgcGFnZSk7
CiAKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmKTsK
K1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmLCBi
b29sIHJ1YmJlckJhbmRzQXRCb3R0b20pOworV0tfRVhQT1JUIGJvb2wgV0tQYWdlUnViYmVyQmFu
ZHNBdFRvcChXS1BhZ2VSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dFRvcChXS1BhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCk7CisKIFdLX0VYUE9SVCBib29s
IFdLUGFnZUNhbkRlbGV0ZShXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VI
YXNTZWxlY3RlZFJhbmdlKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlz
Q29udGVudEVkaXRhYmxlKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ4YTM1OGYyOTY0YzFiMjEyNmFiNTg0ZjdmMTljYzAw
OWFmZDE1MS4uNDI3OTM1MjkwZmYxYzk4ZmQ2NWFkNGQ4MWFhYmQ0MmNiZjU5YmI5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIyNiw2ICsyMjYsOCBA
QCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNz
UmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvUmln
aHRTaWRlKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZShmYWxzZSkK
ICAgICAsIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUoZmFsc2UpCisgICAgLCBtX3J1
YmJlckJhbmRzQXRCb3R0b20oZmFsc2UpCisgICAgLCBtX3J1YmJlckJhbmRzQXRUb3AoZmFsc2Up
CiAgICAgLCBtX21haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZmFsc2UpCiAgICAgLCBtX3BhZ2VD
b3VudCgwKQogICAgICwgbV9yZW5kZXJUcmVlU2l6ZSgwKQpAQCAtMjU5LDYgKzI2MSwxMCBAQCBX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVm
UHRyPFdlYlByb2Nlc3NQcm94eT4gcAogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAgICAgbV92aWJy
YXRpb24gPSBXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKHRoaXMpOwogI2VuZGlmCisjaWYgRU5B
QkxFKFRIUkVBREVEX1NDUk9MTElORykKKyAgICBtX3J1YmJlckJhbmRzQXRCb3R0b20gPSB0cnVl
OworICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IHRydWU7CisjZW5kaWYKIAogICAgIG1fcHJvY2Vz
cy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlSUQsIHRoaXMpOwogICAgIG1fcHJvY2Vzcy0+Y29udGV4dCgpLT5z
dG9yYWdlTWFuYWdlcigpLmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKG1fcGFnZUlEKTsK
QEAgLTE2NzMsNiArMTY3OSwzMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3VwcHJlc3NTY3Jv
bGxiYXJBbmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKQogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKHN1
cHByZXNzQW5pbWF0aW9ucyksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNl
dFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQoreworICAgIGlm
IChydWJiZXJCYW5kc0F0Qm90dG9tID09IG1fcnViYmVyQmFuZHNBdEJvdHRvbSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJvdHRv
bTsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFJ1YmJlckJhbmRzQXRCb3R0b20ocnViYmVy
QmFuZHNBdEJvdHRvbSksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldFJ1
YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQoreworICAgIGlmIChydWJiZXJC
YW5kc0F0VG9wID09IG1fcnViYmVyQmFuZHNBdFRvcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9ydWJiZXJCYW5kc0F0VG9wID0gcnViYmVyQmFuZHNBdFRvcDsKKworICAgIGlmICghaXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldFJ1YmJlckJhbmRzQXRUb3AocnViYmVyQmFuZHNBdFRvcCksIG1fcGFnZUlEKTsK
K30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFBhZ2luYXRpb25Nb2RlKFdlYkNvcmU6OlBhZ2lu
YXRpb246Ok1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBtX3BhZ2luYXRpb25Nb2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDJhNzgxZDUxZjNiMjlk
YmJkNDc5Yjc0ODQ2OTMyZjQ3N2ZiZjEzZTMuLjM2YTAyYmVmOTI1MmM3ZGU3OGIzNTA5ZTVkN2U4
MTI3ODJjMmIyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTUwMiw2ICs1MDIsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNQaW5uZWRUb1RvcFNpZGUoKSBj
b25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlOyB9CiAgICAgYm9vbCBp
c1Bpbm5lZFRvQm90dG9tU2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSXNQaW5uZWRU
b0JvdHRvbVNpZGU7IH0KIAorICAgIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsgfQorICAgIHZvaWQgc2V0UnViYmVyQmFuZHNB
dEJvdHRvbShib29sKTsKKyAgICBib29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVy
biBtX3J1YmJlckJhbmRzQXRUb3A7IH0KKyAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9v
bCk7CisKICAgICB2b2lkIHNldFBhZ2luYXRpb25Nb2RlKFdlYkNvcmU6OlBhZ2luYXRpb246Ok1v
ZGUpOwogICAgIFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2luYXRpb25Nb2RlOyB9CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uQmVo
YXZlc0xpa2VDb2x1bW5zKGJvb2wpOwpAQCAtMTIwOSw2ICsxMjE0LDkgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGU7CiAgICAgYm9vbCBtX21haW5GcmFt
ZUlzUGlubmVkVG9Cb3R0b21TaWRlOwogCisgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRCb3R0b207
CisgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRUb3A7CisKICAgICBib29sIG1fbWFpbkZyYW1lSW5W
aWV3U291cmNlTW9kZTsKIAogICAgIHVuc2lnbmVkIG1fcGFnZUNvdW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDUwNzhhYmQ1YzRkNTU0
MTQ2ZTE5YTg4YmNhMzUxODBlNGFlYzA4MzQuLjg1MzUyMThhMDc1MWVmZTg1ZGVhOGQ1M2UxNWM2
YjI0YjBkMGZjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTEzMTIsNiArMTMxMiwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNldFN1cHByZXNz
U2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykKICAgICBtX3BhZ2Ut
PnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhzdXBwcmVzc0FuaW1hdGlvbnMp
OwogfQogCit2b2lkIFdlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJC
YW5kc0F0Qm90dG9tKQoreworICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJi
ZXJCYW5kc0F0Qm90dG9tKTsKK30KKwordm9pZCBXZWJQYWdlOjpzZXRSdWJiZXJCYW5kc0F0VG9w
KGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKK3sKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRU
b3AocnViYmVyQmFuZHNBdFRvcCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0UGFnaW5hdGlvbk1v
ZGUodWludDMyX3QgbW9kZSkKIHsKICAgICBQYWdpbmF0aW9uIHBhZ2luYXRpb24gPSBtX3BhZ2Ut
PnBhZ2luYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IGE2ZTA2MDYwMjcyNTFjNWRiMmMxZGZkZmRiOTgyZWVlZTRiYjI1YjguLjkyYTJl
NGUzOGUzYTIyNWQyMDllOGI5YWI4ZDAwNWVmYmZhM2E4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzE1LDYgKzMxNSw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wpOwogCisgICAg
dm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAgIHZvaWQgc2V0UnViYmVyQmFu
ZHNBdFRvcChib29sKTsKKwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbk1vZGUodWludDMyX3QgLyog
V2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSAqLyk7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uQmVo
YXZlc0xpa2VDb2x1bW5zKGJvb2wpOwogICAgIHZvaWQgc2V0UGFnZUxlbmd0aChkb3VibGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCA2N2JjZTZhMmQyZjg3OTBhMDY4ZGMzMGQ5ZmM4MDMwN2IxNTdkMmRlLi5i
MzRkYjVjNGU4NTE5YzEwMWVlYzAwMTcyNTAwOWIyNjYwZDI1OWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
MTQyLDYgKzE0Miw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IExpc3RlbkZvckxheW91dE1pbGVzdG9uZXModWludDMyX3QgbWlsZXN0b25lcykKICAgICBTZXRT
dXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoYm9vbCBzdXBwcmVzc0FuaW1hdGlvbnMpCiAKKyAg
ICBTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSkKKyAgICBT
ZXRSdWJiZXJCYW5kc0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKKwogICAgIFNldFBhZ2lu
YXRpb25Nb2RlKHVpbnQzMl90IG1vZGUpCiAgICAgU2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29s
dW1ucyhib29sIGJlaGF2ZXNMaWtlQ29sdW1ucykKICAgICBTZXRQYWdlTGVuZ3RoKGRvdWJsZSBw
YWdlTGVuZ3RoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>