<?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>181647</bug_id>
          
          <creation_ts>2018-01-15 06:32:47 -0800</creation_ts>
          <short_desc>[GStreamer] misc fixes and cleanups</short_desc>
          <delta_ts>2018-01-16 08:05:49 -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>Platform</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181672</blocked>
    
    <blocked>181673</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1389285</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-15 06:32:47 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389290</commentid>
    <comment_count>1</comment_count>
      <attachid>331336</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-15 07:24:45 -0800</bug_when>
    <thetext>Created attachment 331336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389374</commentid>
    <comment_count>2</comment_count>
      <attachid>331336</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-15 13:33:15 -0800</bug_when>
    <thetext>Comment on attachment 331336
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Switch to
&gt; +        streaming code path when no content-length was reported by the
&gt; +        http source element.

Maybe this one is worth splitting into a separate patch?

&gt; Source/WebCore/ChangeLog:31
&gt; +        (webkit_web_src_init): Enable keepAlive by default like in souphttpsrc.

Ditto?

&gt; Source/WebCore/ChangeLog:37
&gt; +        (CachedResourceStreamingClient::responseReceived): Change appsrc
&gt; +        stream-type when we wan&apos;t seek. Also update caps like souphttpsrc
&gt; +        does and emit headers as an element message, like souphttpsrc.

Ditto?

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:482
&gt; +    GST_DEBUG_OBJECT(src, &quot;Persistent connection support %s&quot;, priv-&gt;keepAlive ? &quot;enabled&quot;:&quot;disabled&quot;);

Leave spaces around the :

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:799
&gt; +    GST_DEBUG_OBJECT(src, &quot;Size: %&quot; G_GINT64_FORMAT &quot;, seekable: %s&quot;, priv-&gt;size, priv-&gt;seekable ? &quot;yes&quot;:&quot;no&quot;);

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389484</commentid>
    <comment_count>3</comment_count>
      <attachid>331374</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-16 01:34:25 -0800</bug_when>
    <thetext>Created attachment 331374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389485</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-16 01:35:39 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Comment on attachment 331336 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=331336&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; +        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Switch to
&gt; &gt; +        streaming code path when no content-length was reported by the
&gt; &gt; +        http source element.
&gt; 
&gt; Maybe this one is worth splitting into a separate patch?
&gt; 

Ok

&gt; &gt; Source/WebCore/ChangeLog:31
&gt; &gt; +        (webkit_web_src_init): Enable keepAlive by default like in souphttpsrc.
&gt; 
&gt; Ditto?
&gt; 

Humpf. I don&apos;t think so.

&gt; &gt; Source/WebCore/ChangeLog:37
&gt; &gt; +        (CachedResourceStreamingClient::responseReceived): Change appsrc
&gt; &gt; +        stream-type when we wan&apos;t seek. Also update caps like souphttpsrc
&gt; &gt; +        does and emit headers as an element message, like souphttpsrc.
&gt; 
&gt; Ditto?
&gt; 

Yes

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:482
&gt; &gt; +    GST_DEBUG_OBJECT(src, &quot;Persistent connection support %s&quot;, priv-&gt;keepAlive ? &quot;enabled&quot;:&quot;disabled&quot;);
&gt; 
&gt; Leave spaces around the :
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:799
&gt; &gt; +    GST_DEBUG_OBJECT(src, &quot;Size: %&quot; G_GINT64_FORMAT &quot;, seekable: %s&quot;, priv-&gt;size, priv-&gt;seekable ? &quot;yes&quot;:&quot;no&quot;);
&gt; 
&gt; Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389549</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-16 08:00:19 -0800</bug_when>
    <thetext>Committed r226973: &lt;https://trac.webkit.org/changeset/226973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389554</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-16 08:05:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/36543956&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331336</attachid>
            <date>2018-01-15 07:24:45 -0800</date>
            <delta_ts>2018-01-16 01:34:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181647-20180115152444.patch</filename>
            <type>text/plain</type>
            <size>23563</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGExNDJkMjRkMDE2NDNl
NjczYTgyYmY4Mzg0ZDYxYWZhZGZhYzJiMC4uMDU0YmU2MjM2MDA5OGYxMTY1MWViNmJhYTQwNmU0
MDJiMmUyMmNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTAxLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBtaXNjIGZpeGVzIGFuZCBjbGVhbnVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyk6IE5ldyB1dGlsaXR5
IGZ1bmN0aW9uIHRvIGNvbnZlcnQgcHJlbG9hZCBlbnVtIHRvIHN0cmluZy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmg6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKTog
RGVidWcgdHdlYWsKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6cHJlcGFyZVRvUGxheSk6IERpdHRvCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnBsYXkpOiBEaXR0bworICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpwYXVzZWQgY29uc3QpOiBEaXR0bworICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKTogU3dpdGNoIHRv
CisgICAgICAgIHN0cmVhbWluZyBjb2RlIHBhdGggd2hlbiBubyBjb250ZW50LWxlbmd0aCB3YXMg
cmVwb3J0ZWQgYnkgdGhlCisgICAgICAgIGh0dHAgc291cmNlIGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0
cyk6IFByZXZlbnQgdXNlbGVzcyBzdGF0ZSB1cGRhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmZpbGxUaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMgY29uc3Qp
OiBSZXR1cm4gZWFybHkgd2hlbiBzdHJlYW1pbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IERlYnVnIHR3ZWFrLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXREb3dubG9hZEJ1ZmZl
cmluZyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgUmVtb3ZlIHVzZWxlc3MgaGFuZGxl
c1N5bmNNZXNzYWdlIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzZXRNdXRlZCk6IFByZXZlbnQgdXNl
bGVzcyBzdGF0ZSB1cGRhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjptdXRlZCBjb25zdCk6IERlYnVnIHR3ZWFrLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U3RyZWFtVm9sdW1lRWxlbWVu
dCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zcmNfaW5pdCk6IEVu
YWJsZSBrZWVwQWxpdmUgYnkgZGVmYXVsdCBsaWtlIGluIHNvdXBodHRwc3JjLgorICAgICAgICAo
d2ViS2l0V2ViU3JjU3RhcnQpOiBEZWJ1ZyB0d2Vhay4KKyAgICAgICAgKHdlYktpdFdlYlNyY1F1
ZXJ5V2l0aFBhcmVudCk6IERpdHRvLgorICAgICAgICAod2ViS2l0V2ViU3JjTmVlZERhdGEpOiBE
aXR0by4KKyAgICAgICAgKENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJl
Y2VpdmVkKTogQ2hhbmdlIGFwcHNyYworICAgICAgICBzdHJlYW0tdHlwZSB3aGVuIHdlIHdhbid0
IHNlZWsuIEFsc28gdXBkYXRlIGNhcHMgbGlrZSBzb3VwaHR0cHNyYworICAgICAgICBkb2VzIGFu
ZCBlbWl0IGhlYWRlcnMgYXMgYW4gZWxlbWVudCBtZXNzYWdlLCBsaWtlIHNvdXBodHRwc3JjLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuaDogQWRkIGZvcndhcmQgZGVjbGFyYXRpb24gb2YgTWVkaWFQbGF5ZXIuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJl
YW1lck1TRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1l
ck1TRTo6YXBwZW5kKTogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcuCisKIDIwMTgtMDEtMTUgIFNl
YmFzdGlhbiBEcsO2Z2UgIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgogCiAgICAgICAgIFtH
U3RyZWFtZXJdIERvbid0IHdhaXQgZm9yIGRyYXcgY29uZGl0aW9uIHZhcmlhYmxlIHdoZW4gc2h1
dHRpbmcgZG93bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCA4NTk0YjY1ZTgyZDk0NDQwMWFiNDY3MTI2MTA0MWRlY2VjYzQ1NzZk
Li5kZTFjYjhiNmYxNzczYjBiMDA5OWIwYzcxZDkwMWY5ZWQ4ODg5ZTczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNTQ5LDYg
KzE1NDksMjAgQEAgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVy
RW51bXM6Ok5ldHdvcmtTdGF0ZSBlbnVtZXJhdGlvblZhbHUKICAgICByZXR1cm4gdmFsdWVzW3N0
YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOwogfQogCitTdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBlbnVtZXJhdGlv
blZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVl
c1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9uZSIpLAorICAgICAg
ICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTWV0YURhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkF1dG8iKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRp
Y19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6Tm9uZSksICJNZWRpYVBsYXllckVudW1z
OjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyRW51bXM6Ok1ldGFEYXRhKSA9PSAxLCAiTWVkaWFQbGF5
ZXJFbnVtczo6TWV0YURhdGEgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6QXV0bykgPT0gMiwgIk1l
ZGlhUGxheWVyRW51bXM6OkF1dG8gaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgo
dmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0
aW9uVmFsdWUpXTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAppbmRleCAxNTU2ODM4MzljNzMxMmI2
ZGUxNDkyZDBhNDI3NTFkOTMyYmQwNTY1Li4wNmYwY2NkMjhkNmFiOWY0M2Y2MWJlZjI3ZWIxZjMw
YmRlNjJkZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllckVudW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJFbnVtcy5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKIAogV1RGOjpTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0
ZSk7CiBXVEY6OlN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhNZWRpYVBsYXllckVu
dW1zOjpOZXR3b3JrU3RhdGUpOworV1RGOjpTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcoTWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCBiYTBhYTY5N2RmZjk1Y2Q0NTQ0YWI5YmYzZThiNjljYzNlYWUwYjQwLi43ZTI2NjI5YTc2NGEw
MjM2ZjlmZTM1YTVmYmNjNDJjNzgzYmM5NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzAsMTMgKzMwLDE0IEBACiAKICNpbmNsdWRl
ICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCi0jaW5jbHVk
ZSAiVVJMLmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2suaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAi
VGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIldlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CkBA
IC0yNDksOCArMjUwLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQo
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAKICAgICBzZXRQbGF5YmluVVJMKHVybCk7CiAKKyAg
ICBHU1RfREVCVUcoInByZWxvYWQ6ICVzIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9w
cmVsb2FkKS51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAobV9wcmVsb2FkID09IE1lZGlhUGxheWVy
OjpOb25lKSB7Ci0gICAgICAgIEdTVF9ERUJVRygiRGVsYXlpbmcgbG9hZC4iKTsKKyAgICAgICAg
R1NUX0lORk8oIkRlbGF5aW5nIGxvYWQuIik7CiAgICAgICAgIG1fZGVsYXlpbmdMb2FkID0gdHJ1
ZTsKICAgICB9CiAKQEAgLTI3OSw2ICsyODEsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKQog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKQogeworICAgIC8vIFByb3Blcmx5IGZhaWwgc28g
dGhlIGdsb2JhbCBNZWRpYVBsYXllciB0cmllcyB0byBmYWxsYmFjayB0byB0aGUgbmV4dCBNZWRp
YVBsYXllclByaXZhdGUuCisgICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6Rm9ybWF0
RXJyb3I7CisgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogI2VuZGlmCkBAIC0zNzQsNiArMzc5LDcgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUgbmV3U3RhdGUp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcmVwYXJlVG9QbGF5KCkKIHsK
KyAgICBHU1RfREVCVUcoIlByZXBhcmUgdG8gcGxheSIpOwogICAgIG1fcHJlbG9hZCA9IE1lZGlh
UGxheWVyOjpBdXRvOwogICAgIGlmIChtX2RlbGF5aW5nTG9hZCkgewogICAgICAgICBtX2RlbGF5
aW5nTG9hZCA9IGZhbHNlOwpAQCAtMzkzLDcgKzM5OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpwbGF5KCkKICAgICAgICAgbV9kZWxheWluZ0xvYWQgPSBmYWxzZTsKICAg
ICAgICAgbV9wcmVsb2FkID0gTWVkaWFQbGF5ZXI6OkF1dG87CiAgICAgICAgIHNldERvd25sb2Fk
QnVmZmVyaW5nKCk7Ci0gICAgICAgIEdTVF9ERUJVRygiUGxheSIpOworICAgICAgICBHU1RfSU5G
TygiUGxheSIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5
ZXI6OkVtcHR5KTsKICAgICB9CkBAIC01ODksNyArNTk1LDcgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnBhdXNlZCgpIGNvbnN0CiAgICAgR3N0U3RhdGUgc3RhdGU7CiAgICAg
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1fcGlwZWxpbmUuZ2V0KCksICZzdGF0ZSwgbnVsbHB0ciwg
MCk7CiAgICAgYm9vbCBwYXVzZWQgPSBzdGF0ZSA8PSBHU1RfU1RBVEVfUEFVU0VEOwotICAgIEdT
VF9ERUJVRygiUGF1c2VkIHN0YXRlOiAlcyIsIHBhdXNlZCA/ICJlbmFibGVkIjoiZGlzYWJsZWQi
KTsKKyAgICBHU1RfREVCVUcoIlBhdXNlZDogJXMiLCB0b1N0cmluZyhwYXVzZWQpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIHJldHVybiBwYXVzZWQ7CiB9CiAKQEAgLTEwNDksNiArMTA1NSwxOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdl
KiBtZXNzYWdlKQogICAgICAgICAgICAgaGFuZGxlUHJvdGVjdGlvbkV2ZW50KGV2ZW50LmdldCgp
KTsKICAgICAgICAgfQogI2VuZGlmCisgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1cmVfaGFz
X25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKKyAgICAgICAgICAgIEdzdFN0cnVj
dHVyZSogcmVzcG9uc2VIZWFkZXJzOworICAgICAgICAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0
KHN0cnVjdHVyZSwgInJlc3BvbnNlLWhlYWRlcnMiLCBHU1RfVFlQRV9TVFJVQ1RVUkUsICZyZXNw
b25zZUhlYWRlcnMsIG51bGxwdHIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFnc3Rfc3RydWN0
dXJlX2hhc19maWVsZChyZXNwb25zZUhlYWRlcnMsIGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBI
ZWFkZXJOYW1lOjpDb250ZW50TGVuZ3RoKS51dGY4KCkuZGF0YSgpKSkgeworICAgICAgICAgICAg
ICAgICAgICBHU1RfSU5GTygiTGl2ZSBzdHJlYW0gZGV0ZWN0ZWQuIERpc2FibGluZyBvbi1kaXNr
IGJ1ZmZlcmluZyIpOworICAgICAgICAgICAgICAgICAgICBtX2lzU3RyZWFtaW5nID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlKHJlc3BvbnNlSGVhZGVy
cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgR1NUX0RFQlVH
KCJVbmhhbmRsZWQgZWxlbWVudCBtZXNzYWdlOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJl
KTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgR1NU
X01FU1NBR0VfVE9DOgpAQCAtMTA3MSwyMSArMTA4OSwyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgR1NUX0RFQlVHKCJVbmhhbmRs
ZWQgR1N0cmVhbWVyIG1lc3NhZ2UgdHlwZTogJXMiLAotICAgICAgICAgICAgICAgICAgICBHU1Rf
TUVTU0FHRV9UWVBFX05BTUUobWVzc2FnZSkpOworICAgICAgICBHU1RfREVCVUcoIlVuaGFuZGxl
ZCBHU3RyZWFtZXIgbWVzc2FnZSB0eXBlOiAlcyIsIEdTVF9NRVNTQUdFX1RZUEVfTkFNRShtZXNz
YWdlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm47CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3RhdHMoR3N0TWVzc2Fn
ZSogbWVzc2FnZSkKIHsKKyAgICBib29sIGFscmVhZHlCdWZmZXJpbmcgPSBtX2J1ZmZlcmluZzsK
ICAgICBtX2J1ZmZlcmluZyA9IHRydWU7CiAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5n
KG1lc3NhZ2UsICZtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UpOwogCiAgICAgR1NUX0RFQlVHKCJbQnVm
ZmVyaW5nXSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJpbmdQZXJjZW50YWdlKTsKIAotICAg
IHVwZGF0ZVN0YXRlcygpOworICAgIGlmICgoYWxyZWFkeUJ1ZmZlcmluZyAhPSBtX2J1ZmZlcmlu
ZykgfHwgKG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9PSAxMDApKQorICAgICAgICB1cGRhdGVTdGF0
ZXMoKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgVVNFKEdTVFJFQU1FUl9NUEVH
VFMpCkBAIC0xMjU5LDggKzEyNzcsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZmlsbFRpbWVyRmlyZWQoKQogICAgICAgICBHU1RfREVCVUcoIltCdWZmZXJpbmddIFVwZGF0
ZWQgbWF4VGltZUxvYWRlZDogJXMiLCB0b1N0cmluZyhtX21heFRpbWVMb2FkZWQpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIH0KIAorICAgIGJvb2wgZG93bmxvYWRBbHJlYWR5RmluaXNoZWQgPSBtX2Rv
d25sb2FkRmluaXNoZWQ7CiAgICAgbV9kb3dubG9hZEZpbmlzaGVkID0gZmlsbFN0YXR1cyA9PSAx
MDAuMDsKLSAgICBpZiAoIW1fZG93bmxvYWRGaW5pc2hlZCkgeworICAgIGlmICgoZG93bmxvYWRB
bHJlYWR5RmluaXNoZWQgIT0gbV9kb3dubG9hZEZpbmlzaGVkKSAmJiAgIW1fZG93bmxvYWRGaW5p
c2hlZCkgewogICAgICAgICB1cGRhdGVTdGF0ZXMoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTEzMjAsNiArMTMzOSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgIGlmICghbV9zb3VyY2UpCiAgICAg
ICAgIHJldHVybiAwOwogCisgICAgaWYgKG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVybiAw
OworCiAgICAgR3N0Rm9ybWF0IGZtdCA9IEdTVF9GT1JNQVRfQllURVM7CiAgICAgZ2ludDY0IGxl
bmd0aCA9IDA7CiAgICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNlLmdl
dCgpLCBmbXQsICZsZW5ndGgpKSB7CkBAIC0xNjQ0LDExICsxNjY2LDExIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICBtX3BsYXllci0+
cGxheWJhY2tTdGF0ZUNoYW5nZWQoKTsKIAogICAgIGlmIChtX25ldHdvcmtTdGF0ZSAhPSBvbGRO
ZXR3b3JrU3RhdGUpIHsKLSAgICAgICAgR1NUX0RFQlVHKCJOZXR3b3JrIFN0YXRlIENoYW5nZWQg
ZnJvbSAldSB0byAldSIsIG9sZE5ldHdvcmtTdGF0ZSwgbV9uZXR3b3JrU3RhdGUpOworICAgICAg
ICBHU1RfREVCVUcoIk5ldHdvcmsgU3RhdGUgQ2hhbmdlZCBmcm9tICVzIHRvICVzIiwgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcob2xkTmV0d29ya1N0YXRlKS51dGY4KCkuZGF0YSgpLCBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX25ldHdvcmtTdGF0ZSkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgfQogICAgIGlmICht
X3JlYWR5U3RhdGUgIT0gb2xkUmVhZHlTdGF0ZSkgewotICAgICAgICBHU1RfREVCVUcoIlJlYWR5
IFN0YXRlIENoYW5nZWQgZnJvbSAldSB0byAldSIsIG9sZFJlYWR5U3RhdGUsIG1fcmVhZHlTdGF0
ZSk7CisgICAgICAgIEdTVF9ERUJVRygiUmVhZHkgU3RhdGUgQ2hhbmdlZCBmcm9tICVzIHRvICVz
IiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcob2xkUmVhZHlTdGF0ZSkudXRmOCgpLmRhdGEo
KSwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9yZWFkeVN0YXRlKS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiAgICAgfQogCkBAIC0x
OTg4LDExICsyMDEwLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRE
b3dubG9hZEJ1ZmZlcmluZygpCiAKICAgICBib29sIHNob3VsZERvd25sb2FkID0gIWlzTGl2ZVN0
cmVhbSgpICYmIG1fcHJlbG9hZCA9PSBNZWRpYVBsYXllcjo6QXV0bzsKICAgICBpZiAoc2hvdWxk
RG93bmxvYWQpIHsKLSAgICAgICAgR1NUX0RFQlVHKCJFbmFibGluZyBvbi1kaXNrIGJ1ZmZlcmlu
ZyIpOworICAgICAgICBHU1RfSU5GTygiRW5hYmxpbmcgb24tZGlzayBidWZmZXJpbmciKTsKICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGlwZWxpbmUuZ2V0KCksICJmbGFncyIsIGZsYWdzIHwgZmxh
Z0Rvd25sb2FkLCBudWxscHRyKTsKICAgICAgICAgbV9maWxsVGltZXIuc3RhcnRSZXBlYXRpbmco
MjAwX21zKTsKICAgICB9IGVsc2UgewotICAgICAgICBHU1RfREVCVUcoIkRpc2FibGluZyBvbi1k
aXNrIGJ1ZmZlcmluZyIpOworICAgICAgICBHU1RfSU5GTygiRGlzYWJsaW5nIG9uLWRpc2sgYnVm
ZmVyaW5nIik7CiAgICAgICAgIGdfb2JqZWN0X3NldChtX3BpcGVsaW5lLmdldCgpLCAiZmxhZ3Mi
LCBmbGFncyAmIH5mbGFnRG93bmxvYWQsIG51bGxwdHIpOwogICAgICAgICBtX2ZpbGxUaW1lci5z
dG9wKCk7CiAgICAgfQpAQCAtMjE5MywxMSArMjIxNSw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpjYW5TYXZlTWVkaWFEYXRhKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVTeW5jTWVzc2Fn
ZShHc3RNZXNzYWdlKiBtZXNzYWdlKQotewotICAgIHJldHVybiBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZShtZXNzYWdlKTsKLX0KLQogfQogCiAjZW5k
aWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaAppbmRleCAzZDc3ZWExNDM4YTdlZGYzZDY5ZWVjM2NjOTNhNDk2NTQ1YzZlZTgx
Li5iNDNjM2MwMjM4OWRiMmYwZjAyMmMzY2EwYThkMWY3YWUxOGMzMTA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xMzEsOCArMTMxLDYgQEAg
cHVibGljOgogCiAgICAgYm9vbCBpc0xpdmVTdHJlYW0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2lzU3RyZWFtaW5nOyB9CiAKLSAgICBib29sIGhhbmRsZVN5bmNNZXNzYWdlKEdzdE1lc3Nh
Z2UqKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwogICAgIHN0
YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggODkyZTZjZTljZjcxNzQ4MTZmZmM4NmY0
ZmNiNDZmMmU4Yzc3YjJiZC4uYTE2NTQzYTMxYWJjYzJjZjQ2NDJhM2M0ZGZmZmNlMThkZWZhZWNh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAjaW5jbHVkZSA8
Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgogI2luY2x1ZGUgPGdzdC92aWRlby9nc3R2aWRlb21l
dGEuaD4KQEAgLTYwOSwxMyArNjEwLDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6c2l6ZUNoYW5nZWQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0TXV0ZWQoYm9vbCBtdXRlKQog
ewogICAgIGlmICghbV92b2x1bWVFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBHU1Rf
SU5GTygiU2V0IG11dGVkIHRvICVkIiwgbXV0ZWQpOwotICAgIGdfb2JqZWN0X3NldChtX3ZvbHVt
ZUVsZW1lbnQuZ2V0KCksICJtdXRlIiwgbXV0ZWQsIG51bGxwdHIpOworICAgIGJvb2wgY3VycmVu
dFZhbHVlID0gbXV0ZWQoKTsKKyAgICBpZiAoY3VycmVudFZhbHVlID09IG11dGUpCisgICAgICAg
IHJldHVybjsKKworICAgIEdTVF9JTkZPKCJTZXQgbXV0ZWQgdG8gJXMiLCB0b1N0cmluZyhtdXRl
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBnX29iamVjdF9zZXQobV92b2x1bWVFbGVtZW50LmdldCgp
LCAibXV0ZSIsIG11dGUsIG51bGxwdHIpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6Om11dGVkKCkgY29uc3QKQEAgLTYyNSw2ICs2MzAsNyBAQCBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om11dGVkKCkgY29uc3QKIAogICAgIGdib29sZWFu
IG11dGVkOwogICAgIGdfb2JqZWN0X2dldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJtdXRlIiwg
Jm11dGVkLCBudWxscHRyKTsKKyAgICBHU1RfSU5GTygiUGxheWVyIGlzIG11dGVkOiAlcyIsIHRv
U3RyaW5nKHN0YXRpY19jYXN0PGJvb2w+KG11dGVkKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgcmV0
dXJuIG11dGVkOwogfQogCkBAIC0xMTE0LDcgKzExMjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2U6OnNldFN0cmVhbVZvbHVtZUVsZW1lbnQoR3N0U3RyZWFtVm9sdW1l
KiB2bwogICAgIH0gZWxzZQogICAgICAgICBHU1RfREVCVUcoIk5vdCBzZXR0aW5nIHN0cmVhbSB2
b2x1bWUsIHRydXN0aW5nIHN5c3RlbSBvbmUiKTsKIAotICAgIEdTVF9ERUJVRygiU2V0dGluZyBz
dHJlYW0gbXV0ZWQgJWQiLCAgbV9wbGF5ZXItPm11dGVkKCkpOworICAgIEdTVF9ERUJVRygiU2V0
dGluZyBzdHJlYW0gbXV0ZWQgJXMiLCAgdG9TdHJpbmcobV9wbGF5ZXItPm11dGVkKCkpLnV0Zjgo
KS5kYXRhKCkpOwogICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJtdXRl
IiwgbV9wbGF5ZXItPm11dGVkKCksIG51bGxwdHIpOwogCiAgICAgZ19zaWduYWxfY29ubmVjdF9z
d2FwcGVkKG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFD
Syh2b2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggM2EzNmFhNjVkNzU4YzZmODQ3ZDQ2YTllZDM2NDcx
Zjc5ZmJhZWVjZi4uNDNhOTdkM2JiYzcwZDU5MzRiMmY5MWVmNThhY2ExNWQ1MjMwZDk3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTI4LDI3ICsy
OCwxNCBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIk1haW5UaHJl
YWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgotI2luY2x1ZGUgPGdzdC9nc3Qu
aD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9taXNzaW5nLXBsdWdpbnMuaD4KLSNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAi
U291cE5ldHdvcmtTZXNzaW9uLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIGNsYXNzIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50IGZpbmFsIDogcHVibGljIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCB7CkBAIC0xODgsNyArMTc1LDcgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9zcmNfY2xhc3NfaW5pdChXZWJLaXRXZWJTcmNDbGFzcyoga2xhc3MpCiAK
ICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9rbGFzcywgUFJPUF9LRUVQX0FM
SVZFLAogICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigia2VlcC1hbGl2ZSIsICJrZWVwLWFs
aXZlIiwgIlVzZSBIVFRQIHBlcnNpc3RlbnQgY29ubmVjdGlvbnMiLAotICAgICAgICAgICAgRkFM
U0UsIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1f
U1RBVElDX1NUUklOR1MpKSk7CisgICAgICAgICAgICBUUlVFLCBzdGF0aWNfY2FzdDxHUGFyYW1G
bGFncz4oR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSkpOwogCiAg
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShva2xhc3MsIFBST1BfRVhUUkFfSEVB
REVSUywKICAgICAgICAgZ19wYXJhbV9zcGVjX2JveGVkKCJleHRyYS1oZWFkZXJzIiwgIkV4dHJh
IEhlYWRlcnMiLCAiRXh0cmEgaGVhZGVycyB0byBhcHBlbmQgdG8gdGhlIEhUVFAgcmVxdWVzdCIs
CkBAIC0yMTQsNiArMjAxLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zcmNfaW5pdChXZWJL
aXRXZWJTcmMqIHNyYykKICAgICBzcmMtPnByaXYgPSBwcml2OwogICAgIG5ldyAocHJpdikgV2Vi
S2l0V2ViU3JjUHJpdmF0ZSgpOwogCisgICAgcHJpdi0+a2VlcEFsaXZlID0gdHJ1ZTsKKwogICAg
IHByaXYtPm5vdGlmaWVyID0gTWFpblRocmVhZE5vdGlmaWVyPE1haW5UaHJlYWRTb3VyY2VOb3Rp
ZmljYXRpb24+OjpjcmVhdGUoKTsKIAogICAgIHByaXYtPmFwcHNyYyA9IEdTVF9BUFBfU1JDKGdz
dF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXBwc3JjIiwgbnVsbHB0cikpOwpAQCAtNDkwLDggKzQ3
OSw4IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQog
ICAgIH0KICAgICBwcml2LT5vZmZzZXQgPSBwcml2LT5yZXF1ZXN0ZWRPZmZzZXQ7CiAKKyAgICBH
U1RfREVCVUdfT0JKRUNUKHNyYywgIlBlcnNpc3RlbnQgY29ubmVjdGlvbiBzdXBwb3J0ICVzIiwg
cHJpdi0+a2VlcEFsaXZlID8gImVuYWJsZWQiOiJkaXNhYmxlZCIpOwogICAgIGlmICghcHJpdi0+
a2VlcEFsaXZlKSB7Ci0gICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUGVyc2lzdGVudCBj
b25uZWN0aW9uIHN1cHBvcnQgZGlzYWJsZWQiKTsKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbm5lY3Rpb24sICJjbG9zZSIpOwogICAgIH0KIApA
QCAtNTgwLDcgKzU2OSw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQ
YXJlbnQoR3N0UGFkKiBwYWQsIEdzdE9iamVjdCogcGFyZW50LCBHc3RRCiAKICAgICAgICAgZ3N0
X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKHF1ZXJ5LCAmZm9ybWF0LCBudWxscHRyKTsKIAotICAgICAg
ICBHU1RfREVCVUdfT0JKRUNUKHNyYywgImR1cmF0aW9uIHF1ZXJ5IGluIGZvcm1hdCAlcyIsIGdz
dF9mb3JtYXRfZ2V0X25hbWUoZm9ybWF0KSk7CisgICAgICAgIEdTVF9MT0dfT0JKRUNUKHNyYywg
ImR1cmF0aW9uIHF1ZXJ5IGluIGZvcm1hdCAlcywgY3VycmVudCBzaXplOiAlbHUiLCBnc3RfZm9y
bWF0X2dldF9uYW1lKGZvcm1hdCksIHByaXYtPnNpemUpOwogICAgICAgICBpZiAoZm9ybWF0ID09
IEdTVF9GT1JNQVRfQllURVMgJiYgcHJpdi0+c2l6ZSA+IDApIHsKICAgICAgICAgICAgIGdzdF9x
dWVyeV9zZXRfZHVyYXRpb24ocXVlcnksIGZvcm1hdCwgcHJpdi0+c2l6ZSk7CiAgICAgICAgICAg
ICByZXN1bHQgPSBUUlVFOwpAQCAtNjg4LDcgKzY3Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY05lZWREYXRhKFdlYktpdFdlYlNyYyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIk5lZWQg
bW9yZSBkYXRhIik7CisgICAgR1NUX0xPR19PQkpFQ1Qoc3JjLCAiTmVlZCBtb3JlIGRhdGEiKTsK
IAogICAgIGlmICghcHJpdi0+cGF1c2VkKQogICAgICAgICByZXR1cm47CkBAIC04MDcsMTEgKzc5
NiwxNSBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2Vp
dmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgogICAgIHByaXYtPnNpemUgPSBsZW5ndGgg
Pj0gMCA/IGxlbmd0aCA6IDA7CiAgICAgcHJpdi0+c2Vla2FibGUgPSBsZW5ndGggPiAwICYmIGdf
YXNjaWlfc3RyY2FzZWNtcCgibm9uZSIsIHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6QWNjZXB0UmFuZ2VzKS51dGY4KCkuZGF0YSgpKTsKIAorICAgIEdTVF9ERUJVR19P
QkpFQ1Qoc3JjLCAiU2l6ZTogJSIgR19HSU5UNjRfRk9STUFUICIsIHNlZWthYmxlOiAlcyIsIHBy
aXYtPnNpemUsIHByaXYtPnNlZWthYmxlID8gInllcyI6Im5vIik7CiAgICAgLy8gbm90aWZ5IHNp
emUvZHVyYXRpb24KLSAgICBpZiAobGVuZ3RoID4gMCkgeworICAgIGlmIChsZW5ndGggPiAwKQog
ICAgICAgICBnc3RfYXBwX3NyY19zZXRfc2l6ZShwcml2LT5hcHBzcmMsIGxlbmd0aCk7Ci0gICAg
fSBlbHNlCisgICAgZWxzZSB7CiAgICAgICAgIGdzdF9hcHBfc3JjX3NldF9zaXplKHByaXYtPmFw
cHNyYywgLTEpOworICAgICAgICBpZiAoIXByaXYtPnNlZWthYmxlKQorICAgICAgICAgICAgZ3N0
X2FwcF9zcmNfc2V0X3N0cmVhbV90eXBlKHByaXYtPmFwcHNyYywgR1NUX0FQUF9TVFJFQU1fVFlQ
RV9TVFJFQU0pOworICAgIH0KIAogICAgIC8vIFNpZ25hbCB0byBkb3duc3RyZWFtIGlmIHRoaXMg
aXMgYW4gSWNlY2FzdCBzdHJlYW0uCiAgICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzOwpAQCAtODE5
LDI0ICs4MTIsMzkgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9u
c2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICBpZiAoIW1ldGFkYXRh
SW50ZXJ2YWxBc1N0cmluZy5pc0VtcHR5KCkpIHsKICAgICAgICAgYm9vbCBpc01ldGFkYXRhSW50
ZXJ2YWxQYXJzZWQ7CiAgICAgICAgIGludCBtZXRhZGF0YUludGVydmFsID0gbWV0YWRhdGFJbnRl
cnZhbEFzU3RyaW5nLnRvSW50KCZpc01ldGFkYXRhSW50ZXJ2YWxQYXJzZWQpOwotICAgICAgICBp
ZiAoaXNNZXRhZGF0YUludGVydmFsUGFyc2VkICYmIG1ldGFkYXRhSW50ZXJ2YWwgPiAwKQorICAg
ICAgICBpZiAoaXNNZXRhZGF0YUludGVydmFsUGFyc2VkICYmIG1ldGFkYXRhSW50ZXJ2YWwgPiAw
KSB7CiAgICAgICAgICAgICBjYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBzX25ld19zaW1wbGUoImFw
cGxpY2F0aW9uL3gtaWN5IiwgIm1ldGFkYXRhLWludGVydmFsIiwgR19UWVBFX0lOVCwgbWV0YWRh
dGFJbnRlcnZhbCwgbnVsbHB0cikpOworCisgICAgICAgICAgICBTdHJpbmcgY29udGVudFR5cGUg
PSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKTsK
KyAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmVzcG9uc2UgQ29udGVudFR5cGU6
ICVzIiwgY29udGVudFR5cGUudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBnc3RfY2Fwc19z
ZXRfc2ltcGxlKGNhcHMuZ2V0KCksICJjb250ZW50LXR5cGUiLCBHX1RZUEVfU1RSSU5HLCBjb250
ZW50VHlwZS51dGY4KCkuZGF0YSgpLCBudWxscHRyKTsKKworICAgICAgICAgICAgZ3N0X2FwcF9z
cmNfc2V0X3N0cmVhbV90eXBlKHByaXYtPmFwcHNyYywgR1NUX0FQUF9TVFJFQU1fVFlQRV9TVFJF
QU0pOworICAgICAgICB9CiAgICAgfQorCiAgICAgZ3N0X2FwcF9zcmNfc2V0X2NhcHMocHJpdi0+
YXBwc3JjLCBjYXBzLmdldCgpKTsKIAotICAgIC8vIEVtaXQgYSBHU1RfRVZFTlRfQ1VTVE9NX0RP
V05TVFJFQU1fU1RJQ0tZIGV2ZW50IHRvIGxldCBHU3RyZWFtZXIga25vdyBhYm91dCB0aGUgSFRU
UCBoZWFkZXJzIHNlbnQgYW5kIHJlY2VpdmVkLgorICAgIC8vIEVtaXQgYSBHU1RfRVZFTlRfQ1VT
VE9NX0RPV05TVFJFQU1fU1RJQ0tZIGV2ZW50IGFuZCBtZXNzYWdlIHRvIGxldAorICAgIC8vIEdT
dHJlYW1lciBrbm93IGFib3V0IHRoZSBIVFRQIGhlYWRlcnMgc2VudCBhbmQgcmVjZWl2ZWQuCiAg
ICAgR3N0U3RydWN0dXJlKiBodHRwSGVhZGVycyA9IGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCJo
dHRwLWhlYWRlcnMiKTsKLSAgICBnc3Rfc3RydWN0dXJlX3NldChodHRwSGVhZGVycywgInVyaSIs
IEdfVFlQRV9TVFJJTkcsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbnVsbHB0cik7CisgICAg
Z3N0X3N0cnVjdHVyZV9zZXQoaHR0cEhlYWRlcnMsICJ1cmkiLCBHX1RZUEVfU1RSSU5HLCBwcml2
LT5vcmlnaW5hbFVSSS5kYXRhKCksCisgICAgICAgICJodHRwLXN0YXR1cy1jb2RlIiwgR19UWVBF
X1VJTlQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIG51bGxwdHIpOwogICAgIGlmICghcHJp
di0+cmVkaXJlY3RlZFVSSS5pc051bGwoKSkKICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQoaHR0
cEhlYWRlcnMsICJyZWRpcmVjdGlvbi11cmkiLCBHX1RZUEVfU1RSSU5HLCBwcml2LT5yZWRpcmVj
dGVkVVJJLmRhdGEoKSwgbnVsbHB0cik7CiAgICAgR1VuaXF1ZVB0cjxHc3RTdHJ1Y3R1cmU+IGhl
YWRlcnMoZ3N0X3N0cnVjdHVyZV9uZXdfZW1wdHkoInJlcXVlc3QtaGVhZGVycyIpKTsKICAgICBm
b3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IG1fcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpCiAg
ICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KGhlYWRlcnMuZ2V0KCksIGhlYWRlci5rZXkudXRmOCgp
LmRhdGEoKSwgR19UWVBFX1NUUklORywgaGVhZGVyLnZhbHVlLnV0ZjgoKS5kYXRhKCksIG51bGxw
dHIpOworICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmVxdWVzdCBoZWFkZXJzIGdvaW5nIGRv
d25zdHJlYW06ICUiIEdTVF9QVFJfRk9STUFULCBoZWFkZXJzLmdldCgpKTsKICAgICBnc3Rfc3Ry
dWN0dXJlX3NldChodHRwSGVhZGVycywgInJlcXVlc3QtaGVhZGVycyIsIEdTVF9UWVBFX1NUUlVD
VFVSRSwgaGVhZGVycy5nZXQoKSwgbnVsbHB0cik7CiAgICAgaGVhZGVycy5yZXNldChnc3Rfc3Ry
dWN0dXJlX25ld19lbXB0eSgicmVzcG9uc2UtaGVhZGVycyIpKTsKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGhlYWRlciA6IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKSkKICAgICAgICAgZ3N0X3N0
cnVjdHVyZV9zZXQoaGVhZGVycy5nZXQoKSwgaGVhZGVyLmtleS51dGY4KCkuZGF0YSgpLCBHX1RZ
UEVfU1RSSU5HLCBoZWFkZXIudmFsdWUudXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CiAgICAgZ3N0
X3N0cnVjdHVyZV9zZXQoaHR0cEhlYWRlcnMsICJyZXNwb25zZS1oZWFkZXJzIiwgR1NUX1RZUEVf
U1RSVUNUVVJFLCBoZWFkZXJzLmdldCgpLCBudWxscHRyKTsKKyAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlJlc3BvbnNlIGhlYWRlcnMgZ29pbmcgZG93bnN0cmVhbTogJSIgR1NUX1BUUl9GT1JN
QVQsIGhlYWRlcnMuZ2V0KCkpOworCisgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKEdTVF9F
TEVNRU5UX0NBU1Qoc3JjKSwgZ3N0X21lc3NhZ2VfbmV3X2VsZW1lbnQoR1NUX09CSkVDVF9DQVNU
KHNyYyksCisgICAgICAgIGdzdF9zdHJ1Y3R1cmVfY29weShodHRwSGVhZGVycykpKTsKICAgICBn
c3RfcGFkX3B1c2hfZXZlbnQoR1NUX0JBU0VfU1JDX1BBRChwcml2LT5hcHBzcmMpLCBnc3RfZXZl
bnRfbmV3X2N1c3RvbShHU1RfRVZFTlRfQ1VTVE9NX0RPV05TVFJFQU1fU1RJQ0tZLCBodHRwSGVh
ZGVycykpOwogfQogCkBAIC05MzQsNSArOTQyLDQgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVh
bWluZ0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpCiAgICAgICAg
IGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+YXBwc3JjKTsKIH0KIAotI2VuZGlmIC8v
IFVTRShHU1RSRUFNRVIpCi0KKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFN
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKaW5kZXggN2ViYTlj
YmFiYzc4YWY0ZmQ5ZDEzMjMyZjEyYWZkYzUyY2NkZDY1ZS4uYWE1ODg3Mjg3ZmUyNWVhMmQzYWJl
YjIwZWNjNTg4MzE4MDkxN2M2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuaApAQCAtMTYsMTMgKzE2LDE2IEBACiAgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCiAg
Ki8KIAotI2lmbmRlZiBXZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXJfaAotI2RlZmluZSBXZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXJfaAorI3ByYWdtYSBvbmNlCisKICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgPGdz
dC9nc3QuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFQbGF5ZXI7Cit9CisK
IEdfQkVHSU5fREVDTFMKIAogI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJfU1JDICAgICAgICAgICAg
KHdlYmtpdF93ZWJfc3JjX2dldF90eXBlICgpKQpAQCAtNTEsNSArNTQsNCBAQCBib29sIHdlYktp
dFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMqKTsKIAogR19FTkRfREVDTFMK
IAotI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU8pICYmIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFT
b3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwCmluZGV4IDRiMGY0ZTM2OTVmZmI3NWVlN2E2MDFj
N2E1NjZiZjk3OGMwNWYzNTEuLmNhOGI5YzAyZjc4MDUwOTJjNzU3NWVhNzc0NzA3NGVjNDY0MzMw
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3Ry
ZWFtZXJNU0UuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBNZWRpYVNvdXJjZUNsaWVudEdT
dHJlYW1lck1TRTo6YXBwZW5kKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPgog
ewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAotICAgIEdTVF9ERUJVRygiQXBw
ZW5kaW5nICV1IGJ5dGVzIiwgZGF0YS5zaXplKCkpOworICAgIEdTVF9ERUJVRygiQXBwZW5kaW5n
ICV6dSBieXRlcyIsIGRhdGEuc2l6ZSgpKTsKIAogICAgIGlmICghbV9wbGF5ZXJQcml2YXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331374</attachid>
            <date>2018-01-16 01:34:25 -0800</date>
            <delta_ts>2018-01-16 07:29:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181647-20180116093423.patch</filename>
            <type>text/plain</type>
            <size>19744</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGExNDJkMjRkMDE2NDNl
NjczYTgyYmY4Mzg0ZDYxYWZhZGZhYzJiMC4uYjc5ODQ2MjU1M2Q0NjE1ZWJmODExMjcwYTgwNzNl
NDYwYWMxMDNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTAxLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBtaXNjIGZpeGVzIGFuZCBjbGVhbnVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyk6IE5ldyB1dGlsaXR5
IGZ1bmN0aW9uIHRvIGNvbnZlcnQgcHJlbG9hZCBlbnVtIHRvIHN0cmluZy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmg6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKTog
RGVidWcgdHdlYWsKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6cHJlcGFyZVRvUGxheSk6IERpdHRvCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnBsYXkpOiBEaXR0bworICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpwYXVzZWQgY29uc3QpOiBEaXR0bworICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3RhdHMpOiBQ
cmV2ZW50IHVzZWxlc3Mgc3RhdGUgdXBkYXRlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMpOiBEZWJ1ZyB0
d2Vhay4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0
RG93bmxvYWRCdWZmZXJpbmcpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIFJlbW92ZSB1
c2VsZXNzIGhhbmRsZXNTeW5jTWVzc2FnZSBtZXRob2QuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0TXV0ZWQp
OiBQcmV2ZW50IHVzZWxlc3Mgc3RhdGUgdXBkYXRlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZWQgY29uc3QpOiBEZWJ1ZyB0d2Vhay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFN0cmVh
bVZvbHVtZUVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJf
c3JjX2luaXQpOiBFbmFibGUga2VlcEFsaXZlIGJ5IGRlZmF1bHQgbGlrZSBpbiBzb3VwaHR0cHNy
Yy4KKyAgICAgICAgKHdlYktpdFdlYlNyY1N0YXJ0KTogRGVidWcgdHdlYWsuCisgICAgICAgICh3
ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQpOiBEaXR0by4KKyAgICAgICAgKHdlYktpdFdlYlNy
Y05lZWREYXRhKTogRGl0dG8uCisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dDo6cmVzcG9uc2VSZWNlaXZlZCk6IENoYW5nZSBhcHBzcmMKKyAgICAgICAgc3RyZWFtLXR5cGUg
d2hlbiB3ZSB3YW4ndCBzZWVrLiBBbHNvIHVwZGF0ZSBjYXBzIGxpa2Ugc291cGh0dHBzcmMKKyAg
ICAgICAgZG9lcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmg6IEFkZCBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIE1lZGlhUGxh
eWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3Vy
Y2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXJNU0U6OmFwcGVuZCk6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nLgorCiAy
MDE4LTAxLTE1ICBTZWJhc3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4K
IAogICAgICAgICBbR1N0cmVhbWVyXSBEb24ndCB3YWl0IGZvciBkcmF3IGNvbmRpdGlvbiB2YXJp
YWJsZSB3aGVuIHNodXR0aW5nIGRvd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggODU5NGI2NWU4MmQ5NDQ0MDFhYjQ2NzEyNjEw
NDFkZWNlY2M0NTc2ZC4uZGUxY2I4YjZmMTc3M2IwYjAwOTliMGM3MWQ5MDFmOWVkODg4OWU3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cApAQCAtMTU0OSw2ICsxNTQ5LDIwIEBAIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmlu
ZyhNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUgZW51bWVyYXRpb25WYWx1CiAgICAgcmV0
dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KIAor
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyRW51bXM6OlByZWxv
YWQgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5v
bmUiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk1ldGFEYXRhIiksCisgICAg
ICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJBdXRvIiksCisgICAgfTsKKyAgICBzdGF0aWNf
YXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyRW51bXM6Ok5vbmUpLCAiTWVk
aWFQbGF5ZXJFbnVtczo6Tm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllckVudW1zOjpNZXRhRGF0YSkgPT0g
MSwgIk1lZGlhUGxheWVyRW51bXM6Ok1ldGFEYXRhIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyRW51bXM6OkF1
dG8pID09IDIsICJNZWRpYVBsYXllckVudW1zOjpBdXRvIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7
CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZf
QVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6
ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKaW5kZXggMTU1
NjgzODM5YzczMTJiNmRlMTQ5MmQwYTQyNzUxZDkzMmJkMDU2NS4uMDZmMGNjZDI4ZDZhYjlmNDNm
NjFiZWYyN2ViMWYzMGJkZTYyZGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6
CiAKIFdURjo6U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyRW51
bXM6OlJlYWR5U3RhdGUpOwogV1RGOjpTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlKTsKK1dURjo6U3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQpOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKaW5kZXggYmEwYWE2OTdkZmY5NWNkNDU0NGFiOWJmM2U4YjY5Y2MzZWFlMGI0MC4u
OGQyZDI5YmVjOGEyZDU1NTY0NWQzZmMyNzkyYjkzZmU3YzU0OWYwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI0OSw4ICsyNDksOSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVy
bFN0cmluZykKIAogICAgIHNldFBsYXliaW5VUkwodXJsKTsKIAorICAgIEdTVF9ERUJVRygicHJl
bG9hZDogJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3ByZWxvYWQpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKLSAgICAg
ICAgR1NUX0RFQlVHKCJEZWxheWluZyBsb2FkLiIpOworICAgICAgICBHU1RfSU5GTygiRGVsYXlp
bmcgbG9hZC4iKTsKICAgICAgICAgbV9kZWxheWluZ0xvYWQgPSB0cnVlOwogICAgIH0KIApAQCAt
Mjc5LDYgKzI4MCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNv
bnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpCiB7CisgICAgLy8gUHJvcGVybHkgZmFpbCBzbyB0aGUgZ2xvYmFsIE1lZGlh
UGxheWVyIHRyaWVzIHRvIGZhbGxiYWNrIHRvIHRoZSBuZXh0IE1lZGlhUGxheWVyUHJpdmF0ZS4K
KyAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcjsKKyAgICBtX3Bs
YXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAj
ZW5kaWYKQEAgLTM3NCw2ICszNzgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6Y2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSBuZXdTdGF0ZSkKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnByZXBhcmVUb1BsYXkoKQogeworICAgIEdTVF9ERUJVRygi
UHJlcGFyZSB0byBwbGF5Iik7CiAgICAgbV9wcmVsb2FkID0gTWVkaWFQbGF5ZXI6OkF1dG87CiAg
ICAgaWYgKG1fZGVsYXlpbmdMb2FkKSB7CiAgICAgICAgIG1fZGVsYXlpbmdMb2FkID0gZmFsc2U7
CkBAIC0zOTMsNyArMzk4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBs
YXkoKQogICAgICAgICBtX2RlbGF5aW5nTG9hZCA9IGZhbHNlOwogICAgICAgICBtX3ByZWxvYWQg
PSBNZWRpYVBsYXllcjo6QXV0bzsKICAgICAgICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKLSAg
ICAgICAgR1NUX0RFQlVHKCJQbGF5Iik7CisgICAgICAgIEdTVF9JTkZPKCJQbGF5Iik7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgbG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6RW1wdHkpOwogICAg
IH0KQEAgLTU4OSw3ICs1OTQsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cGF1c2VkKCkgY29uc3QKICAgICBHc3RTdGF0ZSBzdGF0ZTsKICAgICBnc3RfZWxlbWVudF9nZXRf
c3RhdGUobV9waXBlbGluZS5nZXQoKSwgJnN0YXRlLCBudWxscHRyLCAwKTsKICAgICBib29sIHBh
dXNlZCA9IHN0YXRlIDw9IEdTVF9TVEFURV9QQVVTRUQ7Ci0gICAgR1NUX0RFQlVHKCJQYXVzZWQg
c3RhdGU6ICVzIiwgcGF1c2VkID8gImVuYWJsZWQiOiJkaXNhYmxlZCIpOworICAgIEdTVF9ERUJV
RygiUGF1c2VkOiAlcyIsIHRvU3RyaW5nKHBhdXNlZCkudXRmOCgpLmRhdGEoKSk7CiAgICAgcmV0
dXJuIHBhdXNlZDsKIH0KIApAQCAtMTA3MSwyMSArMTA3NiwyMSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgR1NUX0RFQlVHKCJVbmhh
bmRsZWQgR1N0cmVhbWVyIG1lc3NhZ2UgdHlwZTogJXMiLAotICAgICAgICAgICAgICAgICAgICBH
U1RfTUVTU0FHRV9UWVBFX05BTUUobWVzc2FnZSkpOworICAgICAgICBHU1RfREVCVUcoIlVuaGFu
ZGxlZCBHU3RyZWFtZXIgbWVzc2FnZSB0eXBlOiAlcyIsIEdTVF9NRVNTQUdFX1RZUEVfTkFNRSht
ZXNzYWdlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm47CiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3RhdHMoR3N0TWVz
c2FnZSogbWVzc2FnZSkKIHsKKyAgICBib29sIGFscmVhZHlCdWZmZXJpbmcgPSBtX2J1ZmZlcmlu
ZzsKICAgICBtX2J1ZmZlcmluZyA9IHRydWU7CiAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVy
aW5nKG1lc3NhZ2UsICZtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UpOwogCiAgICAgR1NUX0RFQlVHKCJb
QnVmZmVyaW5nXSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJpbmdQZXJjZW50YWdlKTsKIAot
ICAgIHVwZGF0ZVN0YXRlcygpOworICAgIGlmICgoYWxyZWFkeUJ1ZmZlcmluZyAhPSBtX2J1ZmZl
cmluZykgfHwgKG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9PSAxMDApKQorICAgICAgICB1cGRhdGVT
dGF0ZXMoKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgVVNFKEdTVFJFQU1FUl9N
UEVHVFMpCkBAIC0xMjU5LDggKzEyNjQsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6ZmlsbFRpbWVyRmlyZWQoKQogICAgICAgICBHU1RfREVCVUcoIltCdWZmZXJpbmddIFVw
ZGF0ZWQgbWF4VGltZUxvYWRlZDogJXMiLCB0b1N0cmluZyhtX21heFRpbWVMb2FkZWQpLnV0Zjgo
KS5kYXRhKCkpOwogICAgIH0KIAorICAgIGJvb2wgZG93bmxvYWRBbHJlYWR5RmluaXNoZWQgPSBt
X2Rvd25sb2FkRmluaXNoZWQ7CiAgICAgbV9kb3dubG9hZEZpbmlzaGVkID0gZmlsbFN0YXR1cyA9
PSAxMDAuMDsKLSAgICBpZiAoIW1fZG93bmxvYWRGaW5pc2hlZCkgeworICAgIGlmICgoZG93bmxv
YWRBbHJlYWR5RmluaXNoZWQgIT0gbV9kb3dubG9hZEZpbmlzaGVkKSAmJiAgIW1fZG93bmxvYWRG
aW5pc2hlZCkgewogICAgICAgICB1cGRhdGVTdGF0ZXMoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE2NDQsMTEgKzE2NTAsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIG1fcGxheWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdl
ZCgpOwogCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0ZSkgewotICAg
ICAgICBHU1RfREVCVUcoIk5ldHdvcmsgU3RhdGUgQ2hhbmdlZCBmcm9tICV1IHRvICV1Iiwgb2xk
TmV0d29ya1N0YXRlLCBtX25ldHdvcmtTdGF0ZSk7CisgICAgICAgIEdTVF9ERUJVRygiTmV0d29y
ayBTdGF0ZSBDaGFuZ2VkIGZyb20gJXMgdG8gJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmlu
ZyhvbGROZXR3b3JrU3RhdGUpLnV0ZjgoKS5kYXRhKCksIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKG1fbmV0d29ya1N0YXRlKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgbV9wbGF5ZXItPm5l
dHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB9CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBvbGRS
ZWFkeVN0YXRlKSB7Ci0gICAgICAgIEdTVF9ERUJVRygiUmVhZHkgU3RhdGUgQ2hhbmdlZCBmcm9t
ICV1IHRvICV1Iiwgb2xkUmVhZHlTdGF0ZSwgbV9yZWFkeVN0YXRlKTsKKyAgICAgICAgR1NUX0RF
QlVHKCJSZWFkeSBTdGF0ZSBDaGFuZ2VkIGZyb20gJXMgdG8gJXMiLCBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhvbGRSZWFkeVN0YXRlKS51dGY4KCkuZGF0YSgpLCBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhtX3JlYWR5U3RhdGUpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBtX3BsYXll
ci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKICAgICB9CiAKQEAgLTE5ODgsMTEgKzE5OTQsMTEgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldERvd25sb2FkQnVmZmVyaW5nKCkK
IAogICAgIGJvb2wgc2hvdWxkRG93bmxvYWQgPSAhaXNMaXZlU3RyZWFtKCkgJiYgbV9wcmVsb2Fk
ID09IE1lZGlhUGxheWVyOjpBdXRvOwogICAgIGlmIChzaG91bGREb3dubG9hZCkgewotICAgICAg
ICBHU1RfREVCVUcoIkVuYWJsaW5nIG9uLWRpc2sgYnVmZmVyaW5nIik7CisgICAgICAgIEdTVF9J
TkZPKCJFbmFibGluZyBvbi1kaXNrIGJ1ZmZlcmluZyIpOwogICAgICAgICBnX29iamVjdF9zZXQo
bV9waXBlbGluZS5nZXQoKSwgImZsYWdzIiwgZmxhZ3MgfCBmbGFnRG93bmxvYWQsIG51bGxwdHIp
OwogICAgICAgICBtX2ZpbGxUaW1lci5zdGFydFJlcGVhdGluZygyMDBfbXMpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIEdTVF9ERUJVRygiRGlzYWJsaW5nIG9uLWRpc2sgYnVmZmVyaW5nIik7Cisg
ICAgICAgIEdTVF9JTkZPKCJEaXNhYmxpbmcgb24tZGlzayBidWZmZXJpbmciKTsKICAgICAgICAg
Z19vYmplY3Rfc2V0KG1fcGlwZWxpbmUuZ2V0KCksICJmbGFncyIsIGZsYWdzICYgfmZsYWdEb3du
bG9hZCwgbnVsbHB0cik7CiAgICAgICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKICAgICB9CkBAIC0y
MTkzLDExICsyMTk5LDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNhblNh
dmVNZWRpYURhdGEoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVN5bmNNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3Nh
Z2UpCi17Ci0gICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmhhbmRs
ZVN5bmNNZXNzYWdlKG1lc3NhZ2UpOwotfQotCiB9CiAKICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDNk
NzdlYTE0MzhhN2VkZjNkNjllZWMzY2M5M2E0OTY1NDVjNmVlODEuLmI0M2MzYzAyMzg5ZGIyZjBm
MDIyYzNjYTBhOGQxZjdhZTE4YzMxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKQEAgLTEzMSw4ICsxMzEsNiBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzTGl2ZVN0cmVhbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNTdHJlYW1pbmc7IH0K
IAotICAgIGJvb2wgaGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSopIG92ZXJyaWRlOwotCiBw
cml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcAppbmRleCA4OTJlNmNlOWNmNzE3NDgxNmZmYzg2ZjRmY2I0NmYyZThjNzdiMmJkLi5h
MTY1NDNhMzFhYmNjMmNmNDY0MmEzYzRkZmZmY2UxOGRlZmFlY2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8
d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKICNpbmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFtdm9s
dW1lLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL2dzdHZpZGVvbWV0YS5oPgpAQCAtNjA5LDEzICs2
MTAsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzaXplQ2hhbmdl
ZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpzZXRNdXRlZChib29sIG11dGVkKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpzZXRNdXRlZChib29sIG11dGUpCiB7CiAgICAgaWYgKCFtX3ZvbHVt
ZUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdTVF9JTkZPKCJTZXQgbXV0ZWQgdG8g
JWQiLCBtdXRlZCk7Ci0gICAgZ19vYmplY3Rfc2V0KG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm11
dGUiLCBtdXRlZCwgbnVsbHB0cik7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBtdXRlZCgpOwor
ICAgIGlmIChjdXJyZW50VmFsdWUgPT0gbXV0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR1NU
X0lORk8oIlNldCBtdXRlZCB0byAlcyIsIHRvU3RyaW5nKG11dGUpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJtdXRlIiwgbXV0ZSwgbnVs
bHB0cik7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZWQo
KSBjb25zdApAQCAtNjI1LDYgKzYzMCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6bXV0ZWQoKSBjb25zdAogCiAgICAgZ2Jvb2xlYW4gbXV0ZWQ7CiAgICAgZ19vYmpl
Y3RfZ2V0KG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm11dGUiLCAmbXV0ZWQsIG51bGxwdHIpOwor
ICAgIEdTVF9JTkZPKCJQbGF5ZXIgaXMgbXV0ZWQ6ICVzIiwgdG9TdHJpbmcoc3RhdGljX2Nhc3Q8
Ym9vbD4obXV0ZWQpKS51dGY4KCkuZGF0YSgpKTsKICAgICByZXR1cm4gbXV0ZWQ7CiB9CiAKQEAg
LTExMTQsNyArMTEyMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
c2V0U3RyZWFtVm9sdW1lRWxlbWVudChHc3RTdHJlYW1Wb2x1bWUqIHZvCiAgICAgfSBlbHNlCiAg
ICAgICAgIEdTVF9ERUJVRygiTm90IHNldHRpbmcgc3RyZWFtIHZvbHVtZSwgdHJ1c3Rpbmcgc3lz
dGVtIG9uZSIpOwogCi0gICAgR1NUX0RFQlVHKCJTZXR0aW5nIHN0cmVhbSBtdXRlZCAlZCIsICBt
X3BsYXllci0+bXV0ZWQoKSk7CisgICAgR1NUX0RFQlVHKCJTZXR0aW5nIHN0cmVhbSBtdXRlZCAl
cyIsICB0b1N0cmluZyhtX3BsYXllci0+bXV0ZWQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgZ19v
YmplY3Rfc2V0KG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm11dGUiLCBtX3BsYXllci0+bXV0ZWQo
KSwgbnVsbHB0cik7CiAKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV92b2x1bWVFbGVt
ZW50LmdldCgpLCAibm90aWZ5Ojp2b2x1bWUiLCBHX0NBTExCQUNLKHZvbHVtZUNoYW5nZWRDYWxs
YmFjayksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cAppbmRleCAzYTM2YWE2NWQ3NThjNmY4NDdkNDZhOWVkMzY0NzFmNzlmYmFlZWNmLi44ZWE0ODBk
ODA4N2U1ZDcwM2I4YTkyOTAwZjIxZWMwMzhjYTRkNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjgsMjcgKzI4LDE0IEBACiAjaW5jbHVkZSAi
SFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJy
b3IuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPGdz
dC9hcHAvZ3N0YXBwc3JjLmg+Ci0jaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPGdzdC9w
YnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKLSNpZiBVU0UoU09VUCkKLSNpbmNsdWRlICJTb3VwTmV0d29ya1Nlc3Npb24u
aCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgQ2FjaGVkUmVz
b3VyY2VTdHJlYW1pbmdDbGllbnQgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVJlc291cmNl
Q2xpZW50IHsKQEAgLTE4OCw3ICsxNzUsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NyY19j
bGFzc19pbml0KFdlYktpdFdlYlNyY0NsYXNzKiBrbGFzcykKIAogICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkob2tsYXNzLCBQUk9QX0tFRVBfQUxJVkUsCiAgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKCJrZWVwLWFsaXZlIiwgImtlZXAtYWxpdmUiLCAiVXNlIEhUVFAgcGVy
c2lzdGVudCBjb25uZWN0aW9ucyIsCi0gICAgICAgICAgICBGQUxTRSwgc3RhdGljX2Nhc3Q8R1Bh
cmFtRmxhZ3M+KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfU1RSSU5HUykpKTsK
KyAgICAgICAgICAgIFRSVUUsIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURX
UklURSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKSk7CiAKICAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KG9rbGFzcywgUFJPUF9FWFRSQV9IRUFERVJTLAogICAgICAgICBnX3Bh
cmFtX3NwZWNfYm94ZWQoImV4dHJhLWhlYWRlcnMiLCAiRXh0cmEgSGVhZGVycyIsICJFeHRyYSBo
ZWFkZXJzIHRvIGFwcGVuZCB0byB0aGUgSFRUUCByZXF1ZXN0IiwKQEAgLTIxNCw2ICsyMDEsOCBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NyY19pbml0KFdlYktpdFdlYlNyYyogc3JjKQogICAg
IHNyYy0+cHJpdiA9IHByaXY7CiAgICAgbmV3IChwcml2KSBXZWJLaXRXZWJTcmNQcml2YXRlKCk7
CiAKKyAgICBwcml2LT5rZWVwQWxpdmUgPSB0cnVlOworCiAgICAgcHJpdi0+bm90aWZpZXIgPSBN
YWluVGhyZWFkTm90aWZpZXI8TWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbj46OmNyZWF0ZSgp
OwogCiAgICAgcHJpdi0+YXBwc3JjID0gR1NUX0FQUF9TUkMoZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJhcHBzcmMiLCBudWxscHRyKSk7CkBAIC00OTAsOCArNDc5LDggQEAgc3RhdGljIHZvaWQg
d2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgfQogICAgIHByaXYtPm9m
ZnNldCA9IHByaXYtPnJlcXVlc3RlZE9mZnNldDsKIAorICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3Jj
LCAiUGVyc2lzdGVudCBjb25uZWN0aW9uIHN1cHBvcnQgJXMiLCBwcml2LT5rZWVwQWxpdmUgPyAi
ZW5hYmxlZCIgOiAiZGlzYWJsZWQiKTsKICAgICBpZiAoIXByaXYtPmtlZXBBbGl2ZSkgewotICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBlcnNpc3RlbnQgY29ubmVjdGlvbiBzdXBwb3J0
IGRpc2FibGVkIik7CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFk
ZXJOYW1lOjpDb25uZWN0aW9uLCAiY2xvc2UiKTsKICAgICB9CiAKQEAgLTU4MCw3ICs1NjksNyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjUXVlcnlXaXRoUGFyZW50KEdzdFBhZCogcGFk
LCBHc3RPYmplY3QqIHBhcmVudCwgR3N0UQogCiAgICAgICAgIGdzdF9xdWVyeV9wYXJzZV9kdXJh
dGlvbihxdWVyeSwgJmZvcm1hdCwgbnVsbHB0cik7CiAKLSAgICAgICAgR1NUX0RFQlVHX09CSkVD
VChzcmMsICJkdXJhdGlvbiBxdWVyeSBpbiBmb3JtYXQgJXMiLCBnc3RfZm9ybWF0X2dldF9uYW1l
KGZvcm1hdCkpOworICAgICAgICBHU1RfTE9HX09CSkVDVChzcmMsICJkdXJhdGlvbiBxdWVyeSBp
biBmb3JtYXQgJXMsIGN1cnJlbnQgc2l6ZTogJWx1IiwgZ3N0X2Zvcm1hdF9nZXRfbmFtZShmb3Jt
YXQpLCBwcml2LT5zaXplKTsKICAgICAgICAgaWYgKGZvcm1hdCA9PSBHU1RfRk9STUFUX0JZVEVT
ICYmIHByaXYtPnNpemUgPiAwKSB7CiAgICAgICAgICAgICBnc3RfcXVlcnlfc2V0X2R1cmF0aW9u
KHF1ZXJ5LCBmb3JtYXQsIHByaXYtPnNpemUpOwogICAgICAgICAgICAgcmVzdWx0ID0gVFJVRTsK
QEAgLTY4OCw3ICs2NzcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNOZWVkRGF0YShXZWJL
aXRXZWJTcmMqIHNyYykKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5w
cml2OwogCi0gICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJOZWVkIG1vcmUgZGF0YSIpOworICAg
IEdTVF9MT0dfT0JKRUNUKHNyYywgIk5lZWQgbW9yZSBkYXRhIik7CiAKICAgICBpZiAoIXByaXYt
PnBhdXNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtODA3LDExICs3OTYsMTUgQEAgdm9pZCBDYWNo
ZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb24KICAgICBwcml2LT5zaXplID0gbGVuZ3RoID49IDAgPyBsZW5ndGggOiAw
OwogICAgIHByaXYtPnNlZWthYmxlID0gbGVuZ3RoID4gMCAmJiBnX2FzY2lpX3N0cmNhc2VjbXAo
Im5vbmUiLCByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2VwdFJh
bmdlcykudXRmOCgpLmRhdGEoKSk7CiAKKyAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlNpemU6
ICUiIEdfR0lOVDY0X0ZPUk1BVCAiLCBzZWVrYWJsZTogJXMiLCBwcml2LT5zaXplLCBwcml2LT5z
ZWVrYWJsZSA/ICJ5ZXMiIDogIm5vIik7CiAgICAgLy8gbm90aWZ5IHNpemUvZHVyYXRpb24KLSAg
ICBpZiAobGVuZ3RoID4gMCkgeworICAgIGlmIChsZW5ndGggPiAwKQogICAgICAgICBnc3RfYXBw
X3NyY19zZXRfc2l6ZShwcml2LT5hcHBzcmMsIGxlbmd0aCk7Ci0gICAgfSBlbHNlCisgICAgZWxz
ZSB7CiAgICAgICAgIGdzdF9hcHBfc3JjX3NldF9zaXplKHByaXYtPmFwcHNyYywgLTEpOworICAg
ICAgICBpZiAoIXByaXYtPnNlZWthYmxlKQorICAgICAgICAgICAgZ3N0X2FwcF9zcmNfc2V0X3N0
cmVhbV90eXBlKHByaXYtPmFwcHNyYywgR1NUX0FQUF9TVFJFQU1fVFlQRV9TVFJFQU0pOworICAg
IH0KIAogICAgIC8vIFNpZ25hbCB0byBkb3duc3RyZWFtIGlmIHRoaXMgaXMgYW4gSWNlY2FzdCBz
dHJlYW0uCiAgICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzOwpAQCAtODE5LDkgKzgxMiwxNyBAQCB2
b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbgogICAgIGlmICghbWV0YWRhdGFJbnRlcnZhbEFzU3RyaW5n
LmlzRW1wdHkoKSkgewogICAgICAgICBib29sIGlzTWV0YWRhdGFJbnRlcnZhbFBhcnNlZDsKICAg
ICAgICAgaW50IG1ldGFkYXRhSW50ZXJ2YWwgPSBtZXRhZGF0YUludGVydmFsQXNTdHJpbmcudG9J
bnQoJmlzTWV0YWRhdGFJbnRlcnZhbFBhcnNlZCk7Ci0gICAgICAgIGlmIChpc01ldGFkYXRhSW50
ZXJ2YWxQYXJzZWQgJiYgbWV0YWRhdGFJbnRlcnZhbCA+IDApCisgICAgICAgIGlmIChpc01ldGFk
YXRhSW50ZXJ2YWxQYXJzZWQgJiYgbWV0YWRhdGFJbnRlcnZhbCA+IDApIHsKICAgICAgICAgICAg
IGNhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNfbmV3X3NpbXBsZSgiYXBwbGljYXRpb24veC1pY3ki
LCAibWV0YWRhdGEtaW50ZXJ2YWwiLCBHX1RZUEVfSU5ULCBtZXRhZGF0YUludGVydmFsLCBudWxs
cHRyKSk7CisKKyAgICAgICAgICAgIFN0cmluZyBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmh0dHBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpOworICAgICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVChzcmMsICJSZXNwb25zZSBDb250ZW50VHlwZTogJXMiLCBjb250ZW50VHlw
ZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGdzdF9jYXBzX3NldF9zaW1wbGUoY2Fwcy5n
ZXQoKSwgImNvbnRlbnQtdHlwZSIsIEdfVFlQRV9TVFJJTkcsIGNvbnRlbnRUeXBlLnV0ZjgoKS5k
YXRhKCksIG51bGxwdHIpOworCisgICAgICAgICAgICBnc3RfYXBwX3NyY19zZXRfc3RyZWFtX3R5
cGUocHJpdi0+YXBwc3JjLCBHU1RfQVBQX1NUUkVBTV9UWVBFX1NUUkVBTSk7CisgICAgICAgIH0K
ICAgICB9CisKICAgICBnc3RfYXBwX3NyY19zZXRfY2Fwcyhwcml2LT5hcHBzcmMsIGNhcHMuZ2V0
KCkpOwogCiAgICAgLy8gRW1pdCBhIEdTVF9FVkVOVF9DVVNUT01fRE9XTlNUUkVBTV9TVElDS1kg
ZXZlbnQgdG8gbGV0IEdTdHJlYW1lciBrbm93IGFib3V0IHRoZSBIVFRQIGhlYWRlcnMgc2VudCBh
bmQgcmVjZWl2ZWQuCkBAIC05MzQsNSArOTM1LDQgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVh
bWluZ0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpCiAgICAgICAg
IGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+YXBwc3JjKTsKIH0KIAotI2VuZGlmIC8v
IFVTRShHU1RSRUFNRVIpCi0KKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFN
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKaW5kZXggN2ViYTlj
YmFiYzc4YWY0ZmQ5ZDEzMjMyZjEyYWZkYzUyY2NkZDY1ZS4uYWE1ODg3Mjg3ZmUyNWVhMmQzYWJl
YjIwZWNjNTg4MzE4MDkxN2M2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuaApAQCAtMTYsMTMgKzE2LDE2IEBACiAgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCiAg
Ki8KIAotI2lmbmRlZiBXZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXJfaAotI2RlZmluZSBXZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXJfaAorI3ByYWdtYSBvbmNlCisKICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgPGdz
dC9nc3QuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFQbGF5ZXI7Cit9CisK
IEdfQkVHSU5fREVDTFMKIAogI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJfU1JDICAgICAgICAgICAg
KHdlYmtpdF93ZWJfc3JjX2dldF90eXBlICgpKQpAQCAtNTEsNSArNTQsNCBAQCBib29sIHdlYktp
dFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMqKTsKIAogR19FTkRfREVDTFMK
IAotI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU8pICYmIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFT
b3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwCmluZGV4IDRiMGY0ZTM2OTVmZmI3NWVlN2E2MDFj
N2E1NjZiZjk3OGMwNWYzNTEuLmNhOGI5YzAyZjc4MDUwOTJjNzU3NWVhNzc0NzA3NGVjNDY0MzMw
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3Ry
ZWFtZXJNU0UuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBNZWRpYVNvdXJjZUNsaWVudEdT
dHJlYW1lck1TRTo6YXBwZW5kKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPgog
ewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAotICAgIEdTVF9ERUJVRygiQXBw
ZW5kaW5nICV1IGJ5dGVzIiwgZGF0YS5zaXplKCkpOworICAgIEdTVF9ERUJVRygiQXBwZW5kaW5n
ICV6dSBieXRlcyIsIGRhdGEuc2l6ZSgpKTsKIAogICAgIGlmICghbV9wbGF5ZXJQcml2YXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Cg==
</data>
<flag name="review"
          id="350334"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>