<?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>156901</bug_id>
          
          <creation_ts>2016-04-22 02:21:18 -0700</creation_ts>
          <short_desc>Drop [UsePointersEvenForNonNullableObjectArguments] from SpeechSynthesis</short_desc>
          <delta_ts>2016-04-26 06:20:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>156844</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186185</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-22 02:21:18 -0700</bug_when>
    <thetext>Drop [UsePointersEvenForNonNullableObjectArguments] from SpeechSynthesis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186186</commentid>
    <comment_count>1</comment_count>
      <attachid>277030</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-22 02:24:58 -0700</bug_when>
    <thetext>Created attachment 277030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186246</commentid>
    <comment_count>2</comment_count>
      <attachid>277030</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-22 07:39:04 -0700</bug_when>
    <thetext>Comment on attachment 277030
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechSynthesis.idl:35
&gt; -    void speak(SpeechSynthesisUtterance utterance);
&gt; +    // FIXME: utterance should not be nullable.
&gt; +    void speak(SpeechSynthesisUtterance? utterance);

Maybe we can change this one right now rather than leaving the FIXME. I don’t think any of the ports is currently shipping with this feature turned on, so it seems we could fix this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186730</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-24 04:54:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 277030 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277030&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesis.idl:35
&gt; &gt; -    void speak(SpeechSynthesisUtterance utterance);
&gt; &gt; +    // FIXME: utterance should not be nullable.
&gt; &gt; +    void speak(SpeechSynthesisUtterance? utterance);
&gt; 
&gt; Maybe we can change this one right now rather than leaving the FIXME. I
&gt; don’t think any of the ports is currently shipping with this feature turned
&gt; on, so it seems we could fix this now.

Thanks for the review.
I&apos;ll update it accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186886</commentid>
    <comment_count>4</comment_count>
      <attachid>277233</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-25 02:05:14 -0700</bug_when>
    <thetext>Created attachment 277233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186945</commentid>
    <comment_count>5</comment_count>
      <attachid>277233</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-25 08:56:01 -0700</bug_when>
    <thetext>Comment on attachment 277233
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechSynthesis.h:54
&gt; -    void speak(SpeechSynthesisUtterance*);
&gt; +    void speak(Ref&lt;SpeechSynthesisUtterance&gt;&amp;&amp;);

Does anyone calling this hand over ownership of the utterance? I ask because the JavaScript language binding isn’t in a position to do that, so normally we would just use SpeechSynthesisUtterance&amp;, unless there is a client that can move in an existing smart pointer.

I suggest changing this to a plain old reference instead of a Ref unless there is a client that is actually transferring ownership.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186946</commentid>
    <comment_count>6</comment_count>
      <attachid>277233</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-25 08:58:17 -0700</bug_when>
    <thetext>Comment on attachment 277233
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechSynthesis.cpp:193
&gt; +    ASSERT(utterance);

We should return and change all these functions to take PlatformSpeechSynthesisUtterance&amp;. I believe there is no reason for them to take over ownership of the passed-in utterance, and there is also no need to call them with a null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186959</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-25 09:42:45 -0700</bug_when>
    <thetext>Thanks for the review.

&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesis.h:54
&gt; &gt; -    void speak(SpeechSynthesisUtterance*);
&gt; &gt; +    void speak(Ref&lt;SpeechSynthesisUtterance&gt;&amp;&amp;);
&gt; 
&gt; Does anyone calling this hand over ownership of the utterance? I ask because
&gt; the JavaScript language binding isn’t in a position to do that, so normally
&gt; we would just use SpeechSynthesisUtterance&amp;, unless there is a client that
&gt; can move in an existing smart pointer.
&gt; 
&gt; I suggest changing this to a plain old reference instead of a Ref unless
&gt; there is a client that is actually transferring ownership.

Some other APIs, like MediaStream::addTrack use Ref&lt;&gt;&amp;&amp;/RefPtr&lt;&gt;&amp;&amp; even though they only have JS binding code as client AFAIK.
speak is similar to addToSpeakingQueue, hence why I used Ref&lt;&gt;&amp;&amp;.

Anyway, I can make the change.

&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesis.cpp:193
&gt; &gt; +    ASSERT(utterance);
&gt; 
&gt; We should return and change all these functions to take
&gt; PlatformSpeechSynthesisUtterance&amp;. I believe there is no reason for them to
&gt; take over ownership of the passed-in utterance, and there is also no need to
&gt; call them with a null.

Agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187091</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-25 15:52:53 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Some other APIs, like MediaStream::addTrack use Ref&lt;&gt;&amp;&amp;/RefPtr&lt;&gt;&amp;&amp; even
&gt; though they only have JS binding code as client AFAIK.
&gt; speak is similar to addToSpeakingQueue, hence why I used Ref&lt;&gt;&amp;&amp;.

Generally, I don’t think we want the extra visual and conceptual complexity of passing a Ref&amp;&amp; or RefPtr&amp;&amp; unless the optimization of transferring ownership by moving is actually paying off.

So I would suggest using references for all of these, and not Ref&amp;&amp;.

A counter argument would be that these operations *could* take ownership and so we are ready for future callers that are in a position to hand over ownership. But I don’t think that’s sufficient reason to do it that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187327</commentid>
    <comment_count>9</comment_count>
      <attachid>277358</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-26 05:20:21 -0700</bug_when>
    <thetext>Created attachment 277358
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187341</commentid>
    <comment_count>10</comment_count>
      <attachid>277358</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-26 06:20:12 -0700</bug_when>
    <thetext>Comment on attachment 277358
Patch for landing

Clearing flags on attachment: 277358

Committed r200080: &lt;http://trac.webkit.org/changeset/200080&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187342</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-26 06:20:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277030</attachid>
            <date>2016-04-22 02:24:58 -0700</date>
            <delta_ts>2016-04-25 02:05:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156901-20160422112520.patch</filename>
            <type>text/plain</type>
            <size>1630</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBhY2Y0ZTA2MzEwMTM5
ZTQ2ODBmNmY0YjgxZWQyYmY5OTE3YWZmNi4uOWEwMWE4OTE5NWQzNjFjMTJjY2QwMzJiMTE0MmIz
MTk0NWM5ZmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA0LTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgRHJvcCBb
VXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gU3BlZWNo
U3ludGhlc2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTY5MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXMuaWRsOiBNYXJraW5nIHNwZWFrIHV0dGVyYW5jZSBwYXJhbWV0ZXIgYXMgbnVs
bGFibGUgdGVtcG9yYXJpbHkuCisKIDIwMTYtMDQtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBEcm9wIFtVc2VQb2ludGVyc0V2ZW5Gb3JOb25OdWxsYWJsZU9i
amVjdEFyZ3VtZW50c10gZnJvbSBEb2N1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKaW5kZXggMWY2NDhkNzg0NjgzMTA4MmViNzBm
YTc2MTNiODc2ZWUwZWFiNzU1NS4uYjk3NjczNGUwNjdhOTUxNTY0YjQ1MDI3ZTUxNGViMWFkNDQ1
NzcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuaWRsCkBAIC0yNCwxNSArMjQsMTUgQEAKICAqLwogIAogWwotICAgIE5vSW50ZXJmYWNl
T2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMsCi0gICAgVXNlUG9pbnRl
cnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHMsCisgICAgTm9JbnRlcmZhY2VPYmpl
Y3QsCiBdIGludGVyZmFjZSBTcGVlY2hTeW50aGVzaXMgIHsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBwZW5kaW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHNwZWFr
aW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBhdXNlZDsKIAotICAgIHZvaWQg
c3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHV0dGVyYW5jZSk7CisgICAgLy8gRklYTUU6
IHV0dGVyYW5jZSBzaG91bGQgbm90IGJlIG51bGxhYmxlLgorICAgIHZvaWQgc3BlYWsoU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlPyB1dHRlcmFuY2UpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAgICAg
dm9pZCBwYXVzZSgpOwogICAgIHZvaWQgcmVzdW1lKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277233</attachid>
            <date>2016-04-25 02:05:14 -0700</date>
            <delta_ts>2016-04-26 05:20:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156901-20160425110540.patch</filename>
            <type>text/plain</type>
            <size>13761</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRkNzdjZjI0M2I5OTMz
YmQ0MGRjMzIyMjhiZTAyOWZlODE2YzQxZC4uZDI3NzA2ODljMjllM2U4ZWY4MzIyZGJkZmUzOTJh
OGE4MThiYjFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgRHJvcCBb
VXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gU3BlZWNo
U3ludGhlc2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTY5MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTcGVlY2hTeW50aGVzaXMuc3BlYWsgd2lsbCBub3cgdGhyb3cgaW4gY2FzZSBvZiBiYWQgcGFy
YW1ldGVycyBpbnN0ZWFkIG9mIHNpbGVudGx5IGZhaWxpbmcuCisgICAgICAgIFN0YXJ0ZWQgcmVm
YWN0b3JpbmcgdG8gdXNlIG1vcmUgcmVmZXJlbmNlcyB3aGVyZSBwb3NzaWJsZS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0
YXJ0U3BlYWtpbmdJbW1lZGlhdGVseSk6IFJlZmFjdG9yZWQgdG8gZ2V0IGEgcmVmZXJlbmNlLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVhayk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hTeW50aGVzaXM6OmZpcmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXM6OmhhbmRsZVNwZWFraW5nQ29tcGxldGVkKTogUmVtb3ZpbmcgZmlyc3QgaXRl
bSBpbiB1dHRlcmFuY2VRdWV1ZSB1bmNvbmRpdGlvbmFsbHksCisgICAgICAgIHNpbmNlIHRoYXQg
d291bGQgY3Jhc2ggaW4gRGVidWcgbW9kZSBvdGhlcndpc2UuCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hTeW50aGVzaXM6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hTeW50aGVzaXM6OmRpZFN0YXJ0U3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoU3ludGhlc2lzOjpkaWRQYXVzZVNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFN5bnRoZXNpczo6ZGlkUmVzdW1lU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoU3ludGhlc2lzOjpkaWRGaW5pc2hTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXM6OnNwZWFraW5nRXJyb3JPY2N1cnJlZCk6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmlkbDoKKwogMjAxNi0wNC0yNSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxp
YS5jb20+CiAKICAgICAgICAgTWlub3IgcmVmYWN0b3JpbmcgaW4gUmVuZGVyTWF0aE1MT3BlcmF0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMu
Y3BwCmluZGV4IDdmMTc1MDNkNzE1ODI3NGI3NTRhY2UxYWMzOTcxYzU2NTQxNTZiYmUuLmJjNDRj
NTU5ODc4OWMxYmZhYzY2OGY3NWQyMmU2OGJhZDAzMmFiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcApAQCAtMTAwLDI5ICsxMDAs
MjYgQEAgYm9vbCBTcGVlY2hTeW50aGVzaXM6OnBhdXNlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
aXNQYXVzZWQ7CiB9CiAKLXZvaWQgU3BlZWNoU3ludGhlc2lzOjpzdGFydFNwZWFraW5nSW1tZWRp
YXRlbHkoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuY2UpCit2b2lkIFNwZWVjaFN5
bnRoZXNpczo6c3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZSYgdXR0ZXJhbmNlKQogewogICAgIEFTU0VSVCghbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlKTsK
LSAgICB1dHRlcmFuY2UtPnNldFN0YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSk7Ci0gICAgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlID0gdXR0ZXJhbmNlOworICAgIHV0dGVy
YW5jZS5zZXRTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOworICAgIG1f
Y3VycmVudFNwZWVjaFV0dGVyYW5jZSA9ICZ1dHRlcmFuY2U7CiAgICAgbV9pc1BhdXNlZCA9IGZh
bHNlOwogICAgIAogICAgIC8vIFplcm8gbGVuZ3RoZWQgc3RyaW5ncyBzaG91bGQgaW1tZWRpYXRl
bHkgbm90aWZ5IHRoYXQgdGhlIGV2ZW50IGlzIGNvbXBsZXRlLgotICAgIGlmICh1dHRlcmFuY2Ut
PnRleHQoKS5pc0VtcHR5KCkpIHsKKyAgICBpZiAodXR0ZXJhbmNlLnRleHQoKS5pc0VtcHR5KCkp
IHsKICAgICAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQodXR0ZXJhbmNlLCBmYWxzZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgaWYgKCFtX3BsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXIpCiAgICAgICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciA9IHN0ZDo6bWFr
ZV91bmlxdWU8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4odGhpcyk7Ci0gICAgbV9wbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyLT5zcGVhayh1dHRlcmFuY2UtPnBsYXRmb3JtVXR0ZXJhbmNlKCkp
OworICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci0+c3BlYWsodXR0ZXJhbmNlLnBsYXRm
b3JtVXR0ZXJhbmNlKCkpOwogfQogCi12b2lkIFNwZWVjaFN5bnRoZXNpczo6c3BlYWsoU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuY2UpCit2b2lkIFNwZWVjaFN5bnRoZXNpczo6c3Bl
YWsoUmVmPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4mJiB1dHRlcmFuY2UpCiB7Ci0gICAgaWYg
KCF1dHRlcmFuY2UpCi0gICAgICAgIHJldHVybjsKLSAKICAgICAvLyBMaWtlIEF1ZGlvLCB3ZSBz
aG91bGQgcmVxdWlyZSB0aGF0IHRoZSB1c2VyIGludGVyYWN0IHRvIHN0YXJ0IGEgc3BlZWNoIHN5
bnRoZXNpcyBzZXNzaW9uLgogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCkBAIC0xMzEsMTEgKzEyOCwxMSBAQCB2b2lk
IFNwZWVjaFN5bnRoZXNpczo6c3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFu
Y2UpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIAotICAgIG1fdXR0ZXJhbmNlUXVldWUu
YXBwZW5kKHV0dGVyYW5jZSk7CisgICAgbV91dHRlcmFuY2VRdWV1ZS5hcHBlbmQoV1RGTW92ZSh1
dHRlcmFuY2UpKTsKICAgICAKICAgICAvLyBJZiB0aGUgcXVldWUgd2FzIGVtcHR5LCBzcGVhayB0
aGlzIGltbWVkaWF0ZWx5IGFuZCBhZGQgaXQgdG8gdGhlIHF1ZXVlLgogICAgIGlmIChtX3V0dGVy
YW5jZVF1ZXVlLnNpemUoKSA9PSAxKQotICAgICAgICBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHko
dXR0ZXJhbmNlKTsKKyAgICAgICAgc3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KG1fdXR0ZXJhbmNl
UXVldWUuZmlyc3QoKSk7CiB9CiAKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpjYW5jZWwoKQpAQCAt
MTY0LDMwICsxNjEsMjcgQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OnJlc3VtZSgpCiAgICAgICAg
IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci0+cmVzdW1lKCk7CiB9CiAKLXZvaWQgU3BlZWNo
U3ludGhlc2lzOjpmaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5jZSwgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0
IFN0cmluZyYgbmFtZSkKK3ZvaWQgU3BlZWNoU3ludGhlc2lzOjpmaXJlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVyYW5jZSwgdW5z
aWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICB1dHRlcmFu
Y2UtPmRpc3BhdGNoRXZlbnQoU3BlZWNoU3ludGhlc2lzRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjaGFy
SW5kZXgsIChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHV0dGVyYW5jZS0+c3RhcnRU
aW1lKCkpLCBuYW1lKSk7CisgICAgdXR0ZXJhbmNlLmRpc3BhdGNoRXZlbnQoU3BlZWNoU3ludGhl
c2lzRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjaGFySW5kZXgsIChtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSAtIHV0dGVyYW5jZS5zdGFydFRpbWUoKSksIG5hbWUpKTsKIH0KICAgICAKLXZvaWQg
U3BlZWNoU3ludGhlc2lzOjpoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UqIHV0dGVyYW5jZSwgYm9vbCBlcnJvck9jY3VycmVkKQordm9pZCBTcGVlY2hTeW50
aGVzaXM6OmhhbmRsZVNwZWFraW5nQ29tcGxldGVkKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYg
dXR0ZXJhbmNlLCBib29sIGVycm9yT2NjdXJyZWQpCiB7Ci0gICAgQVNTRVJUKHV0dGVyYW5jZSk7
CiAgICAgQVNTRVJUKG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSk7Ci0gICAgUmVmUHRyPFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdCh1dHRlcmFuY2UpOworICAgIFJlZjxTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3QodXR0ZXJhbmNlKTsKICAgICAKICAgICBtX2N1cnJl
bnRTcGVlY2hVdHRlcmFuY2UgPSBudWxscHRyOwogCiAgICAgZmlyZUV2ZW50KGVycm9yT2NjdXJy
ZWQgPyBldmVudE5hbWVzKCkuZXJyb3JFdmVudCA6IGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgdXR0
ZXJhbmNlLCAwLCBTdHJpbmcoKSk7CiAKICAgICBpZiAobV91dHRlcmFuY2VRdWV1ZS5zaXplKCkp
IHsKLSAgICAgICAgUmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gZmlyc3RVdHRlcmFu
Y2UgPSBtX3V0dGVyYW5jZVF1ZXVlLmZpcnN0KCk7Ci0gICAgICAgIEFTU0VSVChmaXJzdFV0dGVy
YW5jZSA9PSB1dHRlcmFuY2UpOwotICAgICAgICBpZiAoZmlyc3RVdHRlcmFuY2UgPT0gdXR0ZXJh
bmNlKQotICAgICAgICAgICAgbV91dHRlcmFuY2VRdWV1ZS5yZW1vdmVGaXJzdCgpOwotICAgICAg
ICAKKyAgICAgICAgUmVmPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gZmlyc3RVdHRlcmFuY2Ug
PSBtX3V0dGVyYW5jZVF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICBBU1NFUlQoJnV0dGVyYW5j
ZSA9PSBmaXJzdFV0dGVyYW5jZS5wdHIoKSk7CisKICAgICAgICAgLy8gU3RhcnQgdGhlIG5leHQg
am9iIGlmIHRoZXJlIGlzIG9uZSBwZW5kaW5nLgogICAgICAgICBpZiAoIW1fdXR0ZXJhbmNlUXVl
dWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgc3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KG1fdXR0
ZXJhbmNlUXVldWUuZmlyc3QoKS5nZXQoKSk7CisgICAgICAgICAgICBzdGFydFNwZWFraW5nSW1t
ZWRpYXRlbHkobV91dHRlcmFuY2VRdWV1ZS5maXJzdCgpKTsKICAgICB9CiB9CiAgICAgCkBAIC0x
OTYsMTIgKzE5MCwxNSBAQCB2b2lkIFNwZWVjaFN5bnRoZXNpczo6Ym91bmRhcnlFdmVudE9jY3Vy
cmVkKFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdAogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHdvcmRCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwo
IndvcmQiKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gc2VudGVu
Y2VCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwoInNlbnRlbmNlIikpOwogCisgICAgQVNTRVJU
KHV0dGVyYW5jZSk7CisgICAgQVNTRVJUKHV0dGVyYW5jZS0+Y2xpZW50KCkpOworCiAgICAgc3dp
dGNoIChib3VuZGFyeSkgewogICAgIGNhc2UgU3BlZWNoV29yZEJvdW5kYXJ5OgotICAgICAgICBm
aXJlRXZlbnQoZXZlbnROYW1lcygpLmJvdW5kYXJ5RXZlbnQsIHN0YXRpY19jYXN0PFNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSo+KHV0dGVyYW5jZS0+Y2xpZW50KCkpLCBjaGFySW5kZXgsIHdvcmRC
b3VuZGFyeVN0cmluZyk7CisgICAgICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkuYm91bmRhcnlF
dmVudCwgc3RhdGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJj4oKnV0dGVyYW5jZS0+
Y2xpZW50KCkpLCBjaGFySW5kZXgsIHdvcmRCb3VuZGFyeVN0cmluZyk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3BlZWNoU2VudGVuY2VCb3VuZGFyeToKLSAgICAgICAgZmlyZUV2ZW50KGV2
ZW50TmFtZXMoKS5ib3VuZGFyeUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UqPih1dHRlcmFuY2UtPmNsaWVudCgpKSwgY2hhckluZGV4LCBzZW50ZW5jZUJvdW5kYXJ5
U3RyaW5nKTsKKyAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5ib3VuZGFyeUV2ZW50LCBz
dGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmPigqdXR0ZXJhbmNlLT5jbGllbnQo
KSksIGNoYXJJbmRleCwgc2VudGVuY2VCb3VuZGFyeVN0cmluZyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjExLDMzICsy
MDgsMzMgQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZChQYXNz
UmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXQKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpk
aWRTdGFydFNwZWFraW5nKFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2U+IHV0dGVyYW5jZSkKIHsKICAgICBpZiAodXR0ZXJhbmNlLT5jbGllbnQoKSkKLSAgICAgICAg
ZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqPih1dHRlcmFuY2UtPmNsaWVudCgpKSwgMCwgU3RyaW5nKCkpOworICAg
ICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIHN0YXRpY19jYXN0PFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZSY+KCp1dHRlcmFuY2UtPmNsaWVudCgpKSwgMCwgU3RyaW5nKCkp
OwogfQogICAgIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OmRpZFBhdXNlU3BlYWtpbmcoUGFzc1Jl
ZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNlKQogewogICAg
IG1faXNQYXVzZWQgPSB0cnVlOwogICAgIGlmICh1dHRlcmFuY2UtPmNsaWVudCgpKQotICAgICAg
ICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLnBhdXNlRXZlbnQsIHN0YXRpY19jYXN0PFNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSo+KHV0dGVyYW5jZS0+Y2xpZW50KCkpLCAwLCBTdHJpbmcoKSk7Cisg
ICAgICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkucGF1c2VFdmVudCwgc3RhdGljX2Nhc3Q8U3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlJj4oKnV0dGVyYW5jZS0+Y2xpZW50KCkpLCAwLCBTdHJpbmco
KSk7CiB9CiAKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpkaWRSZXN1bWVTcGVha2luZyhQYXNzUmVm
UHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiB1dHRlcmFuY2UpCiB7CiAgICAg
bV9pc1BhdXNlZCA9IGZhbHNlOwogICAgIGlmICh1dHRlcmFuY2UtPmNsaWVudCgpKQotICAgICAg
ICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLnJlc3VtZUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UqPih1dHRlcmFuY2UtPmNsaWVudCgpKSwgMCwgU3RyaW5nKCkpOwor
ICAgICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLnJlc3VtZUV2ZW50LCBzdGF0aWNfY2FzdDxT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmPigqdXR0ZXJhbmNlLT5jbGllbnQoKSksIDAsIFN0cmlu
ZygpKTsKIH0KIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OmRpZEZpbmlzaFNwZWFraW5nKFBhc3NS
ZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHV0dGVyYW5jZSkKIHsKICAg
ICBpZiAodXR0ZXJhbmNlLT5jbGllbnQoKSkKLSAgICAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0
ZWQoc3RhdGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKj4odXR0ZXJhbmNlLT5jbGll
bnQoKSksIGZhbHNlKTsKKyAgICAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoc3RhdGljX2Nh
c3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJj4oKnV0dGVyYW5jZS0+Y2xpZW50KCkpLCBmYWxz
ZSk7CiB9CiAgICAgCiB2b2lkIFNwZWVjaFN5bnRoZXNpczo6c3BlYWtpbmdFcnJvck9jY3VycmVk
KFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHV0dGVyYW5jZSkK
IHsKICAgICBpZiAodXR0ZXJhbmNlLT5jbGllbnQoKSkKLSAgICAgICAgaGFuZGxlU3BlYWtpbmdD
b21wbGV0ZWQoc3RhdGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKj4odXR0ZXJhbmNl
LT5jbGllbnQoKSksIHRydWUpOworICAgICAgICBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChzdGF0
aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmPigqdXR0ZXJhbmNlLT5jbGllbnQoKSks
IHRydWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCmluZGV4IDI5NDg1ZWRlNDMyMDZiYjY1
Mzk5YzE2YjkyNTNmYWNhMWZiYmJjOWMuLjI4NWFjY2Y5NzYyMDExMWQzOGFlYWExMzdiYzVhMzc0
OGZlZGI1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpcy5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNwZWFraW5nKCkg
Y29uc3Q7CiAgICAgYm9vbCBwYXVzZWQoKSBjb25zdDsKICAgICAKLSAgICB2b2lkIHNwZWFrKFNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSopOworICAgIHZvaWQgc3BlYWsoUmVmPFNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZT4mJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKICAgICB2b2lkIHBhdXNlKCk7
CiAgICAgdm9pZCByZXN1bWUoKTsKQEAgLTczLDkgKzczLDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNwZWFraW5nRXJyb3JPY2N1cnJlZChQYXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlPikgb3ZlcnJpZGU7CiAgICAgdm9pZCBib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFz
c1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4sIFNwZWVjaEJvdW5kYXJ5
LCB1bnNpZ25lZCBjaGFySW5kZXgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzdGFydFNwZWFraW5n
SW1tZWRpYXRlbHkoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKik7Ci0gICAgdm9pZCBoYW5kbGVT
cGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqLCBib29sIGVycm9yT2Nj
dXJyZWQpOwotICAgIHZvaWQgZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiwgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0
cmluZyYgbmFtZSk7CisgICAgdm9pZCBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkoU3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlJik7CisgICAgdm9pZCBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UmLCBib29sIGVycm9yT2NjdXJyZWQpOworICAgIHZvaWQgZmly
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
JiwgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIC8vIFJlc3RyaWN0aW9ucyB0byBjaGFuZ2UgZGVmYXVsdCBi
ZWhhdmlvcnMuCkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjsK
ICAgICBWZWN0b3I8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPj4gbV92b2ljZUxpc3Q7CiAg
ICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2U7Ci0g
ICAgRGVxdWU8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4+IG1fdXR0ZXJhbmNlUXVl
dWU7CisgICAgRGVxdWU8UmVmPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4+IG1fdXR0ZXJhbmNl
UXVldWU7CiAgICAgYm9vbCBtX2lzUGF1c2VkOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBCZWhh
dmlvclJlc3RyaWN0aW9ucyBtX3Jlc3RyaWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCmluZGV4IDFmNjQ4ZDc4NDY4MzEwODJl
YjcwZmE3NjEzYjg3NmVlMGVhYjc1NTUuLjAyNTAwM2U0YzY3YjcxZjM0NjA1NWRlNTc4YjZkNmZj
MjI2Yzg1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmlkbApAQCAtMjQsOSArMjQsOCBAQAogICovCiAgCiBbCi0gICAgTm9JbnRlcmZh
Y2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUywKLSAgICBVc2VQb2lu
dGVyc0V2ZW5Gb3JOb25OdWxsYWJsZU9iamVjdEFyZ3VtZW50cywKKyAgICBOb0ludGVyZmFjZU9i
amVjdCwKIF0gaW50ZXJmYWNlIFNwZWVjaFN5bnRoZXNpcyAgewogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIHBlbmRpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3Bl
YWtpbmc7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNWY3ZmMxNzk5NTc2ZTc5MzZlZDE3MWJjMWYzZjU2MGU0MDlkZDIxMy4u
OWU0NDJjNGE3ZWEyYWM4ODJhMGM3ZjgyZTFkMjdmMzc5NzU3YjdhNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE2LTA0LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fu
b24uZnI+CisKKyAgICAgICAgRHJvcCBbVXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmpl
Y3RBcmd1bWVudHNdIGZyb20gU3BlZWNoU3ludGhlc2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRlc3QgdG8gaGFuZGxlIHNwZWFrIHRo
cm93aW5nIGJlaGF2aW9yIGluIGNhc2Ugb2YgYmFkIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBm
YXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLWNyYXNoLW9uLWJhZC11dHRlcmFu
Y2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1z
eW50aGVzaXMtY3Jhc2gtb24tYmFkLXV0dGVyYW5jZS5odG1sOgorCiAyMDE2LTA0LTI0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbRUZMXSBTb21l
IG1lZGlhIHRlc3RzIGhhdmUgYmVlbiBmYWlsZWQgYWZ0ZXIgYnVtcGluZyBnc3RyZWFtZXIgdmVy
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5
bnRoZXNpcy1jcmFzaC1vbi1iYWQtdXR0ZXJhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtY3Jhc2gtb24tYmFkLXV0dGVy
YW5jZS1leHBlY3RlZC50eHQKaW5kZXggOTk1MzdiZmVhN2FjMWNkOWQ3NTc5Y2M2MDJkZjdjZjE2
ZjgyMDYzYS4uNTM2ZmE4ZWVmZDZkMzA5NjAyNDJmOTM5YTllZTJlOTQ0Zjc2YTQzYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1j
cmFzaC1vbi1iYWQtdXR0ZXJhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLWNyYXNoLW9uLWJhZC11dHRlcmFuY2Ut
ZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBUaGlzIHRlc3RzIHRoYXQgcGFzc2luZyBpbiB0
aGUgd3JvbmcgdHlwZSBvZiBkYXRhIHdvbid0IGNyYXNoIHNwZWVjaCBzeW50aGVzaXMgYwogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCdI
ZWxsbyBXb3JsZCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtY3Jhc2gt
b24tYmFkLXV0dGVyYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hzeW50aGVzaXMv
c3BlZWNoLXN5bnRoZXNpcy1jcmFzaC1vbi1iYWQtdXR0ZXJhbmNlLmh0bWwKaW5kZXggMjdkNGRm
MjBjMTkyNWM5ZWQwODMwNzE1MTA1YTk3MTI5ODNhODQ5NC4uOWQ1NDA5NGQ5NTQ4OTZlZTUyY2Ew
MmQwMGM0Y2JiZmUyZmIwYTc3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hz
eW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1jcmFzaC1vbi1iYWQtdXR0ZXJhbmNlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1jcmFz
aC1vbi1iYWQtdXR0ZXJhbmNlLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyB0aGF0IHBhc3NpbmcgaW4gdGhlIHdyb25nIHR5cGUgb2YgZGF0YSB3b24n
dCBjcmFzaCBzcGVlY2ggc3ludGhlc2lzIGNvZGUiKTsKIAogICAgICAvLyBEb24ndCBjcmFzaC4g
U3BlYWsgaXMgc3VwcG9zZWQgdG8gdGFrZSBhbiB1dHRlcmFuY2UsIG5vdCBhIHN0cmluZy4KLSAg
ICAgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCdIZWxsbyBXb3JsZCcpOworICAgICBzaG91bGRUaHJv
dygic3BlZWNoU3ludGhlc2lzLnNwZWFrKCdIZWxsbyBXb3JsZCcpIik7CiAKICAgICAgLy8gRG9u
J3QgY3Jhc2guIEFuIHV0dGVyYW5jZSB2b2ljZSBpcyBzdXBwb3NlZCB0byB0YWtlIGEgdm9pY2Ug
b2JqZWN0LCBub3QgYSBzdHJpbmcuCiAgICAgIHZhciB4ID0gbmV3IFNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZSgnSGVsbG8gV29ybGQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277358</attachid>
            <date>2016-04-26 05:20:21 -0700</date>
            <delta_ts>2016-04-26 06:20:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-156901-20160426142049.patch</filename>
            <type>text/plain</type>
            <size>13574</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzlmMTVjNjM2MGVlOTk0
NTU2ODZmZjRhNGUwYjE5N2QxOTliYzZhNy4uMTQ2ZGRjZWE2NDUyYzFiOTZhMWRiOTE3NWQ2ZTgw
NGJhMmE2MzFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTA0LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgRHJvcCBb
VXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gU3BlZWNo
U3ludGhlc2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTY5MDEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBT
cGVlY2hTeW50aGVzaXMuc3BlYWsgd2lsbCBub3cgdGhyb3cgaW4gY2FzZSBvZiBiYWQgcGFyYW1l
dGVycyBpbnN0ZWFkIG9mIHNpbGVudGx5IGZhaWxpbmcuCisgICAgICAgIFN0YXJ0ZWQgcmVmYWN0
b3JpbmcgdG8gdXNlIG1vcmUgcmVmZXJlbmNlcyB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0YXJ0
U3BlYWtpbmdJbW1lZGlhdGVseSk6IFJlZmFjdG9yZWQgdG8gZ2V0IGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVhayk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hTeW50aGVzaXM6OmZpcmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hT
eW50aGVzaXM6OmhhbmRsZVNwZWFraW5nQ29tcGxldGVkKTogUmVtb3ZpbmcgZmlyc3QgaXRlbSBp
biB1dHRlcmFuY2VRdWV1ZSB1bmNvbmRpdGlvbmFsbHksCisgICAgICAgIHNpbmNlIHRoYXQgd291
bGQgY3Jhc2ggaW4gRGVidWcgbW9kZSBvdGhlcndpc2UuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXM6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hTeW50aGVzaXM6OmRpZFN0YXJ0U3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoU3ludGhlc2lzOjpkaWRQYXVzZVNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFN5bnRoZXNpczo6ZGlkUmVzdW1lU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
U3ludGhlc2lzOjpkaWRGaW5pc2hTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hT
eW50aGVzaXM6OnNwZWFraW5nRXJyb3JPY2N1cnJlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmlkbDoKKwogMjAxNi0wNC0yNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgdGhlIGJ1aWxkIGZsYWcgZm9yIHRlbXBsYXRlIGVsZW1lbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNw
cAppbmRleCA3ZjE3NTAzZDcxNTgyNzRiNzU0YWNlMWFjMzk3MWM1NjU0MTU2YmJlLi43NDVjOWI5
Y2YxNmMwMDc1MThjOWQzMzgxMmNmZDU3MjJjNWQwNWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKQEAgLTEwMCwyOSArMTAwLDI2
IEBAIGJvb2wgU3BlZWNoU3ludGhlc2lzOjpwYXVzZWQoKSBjb25zdAogICAgIHJldHVybiBtX2lz
UGF1c2VkOwogfQogCi12b2lkIFNwZWVjaFN5bnRoZXNpczo6c3RhcnRTcGVha2luZ0ltbWVkaWF0
ZWx5KFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlKQordm9pZCBTcGVlY2hTeW50
aGVzaXM6OnN0YXJ0U3BlYWtpbmdJbW1lZGlhdGVseShTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Um
IHV0dGVyYW5jZSkKIHsKICAgICBBU1NFUlQoIW1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSk7Ci0g
ICAgdXR0ZXJhbmNlLT5zZXRTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkp
OwotICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9IHV0dGVyYW5jZTsKKyAgICB1dHRlcmFu
Y2Uuc2V0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICBtX2N1
cnJlbnRTcGVlY2hVdHRlcmFuY2UgPSAmdXR0ZXJhbmNlOwogICAgIG1faXNQYXVzZWQgPSBmYWxz
ZTsKICAgICAKICAgICAvLyBaZXJvIGxlbmd0aGVkIHN0cmluZ3Mgc2hvdWxkIGltbWVkaWF0ZWx5
IG5vdGlmeSB0aGF0IHRoZSBldmVudCBpcyBjb21wbGV0ZS4KLSAgICBpZiAodXR0ZXJhbmNlLT50
ZXh0KCkuaXNFbXB0eSgpKSB7CisgICAgaWYgKHV0dGVyYW5jZS50ZXh0KCkuaXNFbXB0eSgpKSB7
CiAgICAgICAgIGhhbmRsZVNwZWFraW5nQ29tcGxldGVkKHV0dGVyYW5jZSwgZmFsc2UpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyKQogICAgICAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+KHRoaXMpOwotICAgIG1fcGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplci0+c3BlYWsodXR0ZXJhbmNlLT5wbGF0Zm9ybVV0dGVyYW5jZSgpKTsK
KyAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXItPnNwZWFrKHV0dGVyYW5jZS5wbGF0Zm9y
bVV0dGVyYW5jZSgpKTsKIH0KIAotdm9pZCBTcGVlY2hTeW50aGVzaXM6OnNwZWFrKFNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlKQordm9pZCBTcGVlY2hTeW50aGVzaXM6OnNwZWFr
KFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYgdXR0ZXJhbmNlKQogewotICAgIGlmICghdXR0ZXJh
bmNlKQotICAgICAgICByZXR1cm47Ci0gCiAgICAgLy8gTGlrZSBBdWRpbywgd2Ugc2hvdWxkIHJl
cXVpcmUgdGhhdCB0aGUgdXNlciBpbnRlcmFjdCB0byBzdGFydCBhIHNwZWVjaCBzeW50aGVzaXMg
c2Vzc2lvbi4KICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQpAQCAtMTM1LDcgKzEzMiw3IEBAIHZvaWQgU3BlZWNoU3lu
dGhlc2lzOjpzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5jZSkKICAgICAK
ICAgICAvLyBJZiB0aGUgcXVldWUgd2FzIGVtcHR5LCBzcGVhayB0aGlzIGltbWVkaWF0ZWx5IGFu
ZCBhZGQgaXQgdG8gdGhlIHF1ZXVlLgogICAgIGlmIChtX3V0dGVyYW5jZVF1ZXVlLnNpemUoKSA9
PSAxKQotICAgICAgICBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkodXR0ZXJhbmNlKTsKKyAgICAg
ICAgc3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KG1fdXR0ZXJhbmNlUXVldWUuZmlyc3QoKSk7CiB9
CiAKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpjYW5jZWwoKQpAQCAtMTY0LDMwICsxNjEsMjcgQEAg
dm9pZCBTcGVlY2hTeW50aGVzaXM6OnJlc3VtZSgpCiAgICAgICAgIG1fcGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplci0+cmVzdW1lKCk7CiB9CiAKLXZvaWQgU3BlZWNoU3ludGhlc2lzOjpmaXJlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0
dGVyYW5jZSwgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3Zv
aWQgU3BlZWNoU3ludGhlc2lzOjpmaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVyYW5jZSwgdW5zaWduZWQgbG9uZyBjaGFySW5k
ZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICB1dHRlcmFuY2UtPmRpc3BhdGNoRXZlbnQo
U3BlZWNoU3ludGhlc2lzRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjaGFySW5kZXgsIChtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSAtIHV0dGVyYW5jZS0+c3RhcnRUaW1lKCkpLCBuYW1lKSk7Cisg
ICAgdXR0ZXJhbmNlLmRpc3BhdGNoRXZlbnQoU3BlZWNoU3ludGhlc2lzRXZlbnQ6OmNyZWF0ZSh0
eXBlLCBjaGFySW5kZXgsIChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHV0dGVyYW5j
ZS5zdGFydFRpbWUoKSksIG5hbWUpKTsKIH0KICAgICAKLXZvaWQgU3BlZWNoU3ludGhlc2lzOjpo
YW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5j
ZSwgYm9vbCBlcnJvck9jY3VycmVkKQordm9pZCBTcGVlY2hTeW50aGVzaXM6OmhhbmRsZVNwZWFr
aW5nQ29tcGxldGVkKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYgdXR0ZXJhbmNlLCBib29sIGVy
cm9yT2NjdXJyZWQpCiB7Ci0gICAgQVNTRVJUKHV0dGVyYW5jZSk7CiAgICAgQVNTRVJUKG1fY3Vy
cmVudFNwZWVjaFV0dGVyYW5jZSk7Ci0gICAgUmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZT4gcHJvdGVjdCh1dHRlcmFuY2UpOworICAgIFJlZjxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+
IHByb3RlY3QodXR0ZXJhbmNlKTsKICAgICAKICAgICBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2Ug
PSBudWxscHRyOwogCiAgICAgZmlyZUV2ZW50KGVycm9yT2NjdXJyZWQgPyBldmVudE5hbWVzKCku
ZXJyb3JFdmVudCA6IGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgdXR0ZXJhbmNlLCAwLCBTdHJpbmco
KSk7CiAKICAgICBpZiAobV91dHRlcmFuY2VRdWV1ZS5zaXplKCkpIHsKLSAgICAgICAgUmVmUHRy
PFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gZmlyc3RVdHRlcmFuY2UgPSBtX3V0dGVyYW5jZVF1
ZXVlLmZpcnN0KCk7Ci0gICAgICAgIEFTU0VSVChmaXJzdFV0dGVyYW5jZSA9PSB1dHRlcmFuY2Up
OwotICAgICAgICBpZiAoZmlyc3RVdHRlcmFuY2UgPT0gdXR0ZXJhbmNlKQotICAgICAgICAgICAg
bV91dHRlcmFuY2VRdWV1ZS5yZW1vdmVGaXJzdCgpOwotICAgICAgICAKKyAgICAgICAgUmVmPFNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gZmlyc3RVdHRlcmFuY2UgPSBtX3V0dGVyYW5jZVF1ZXVl
LnRha2VGaXJzdCgpOworICAgICAgICBBU1NFUlQoJnV0dGVyYW5jZSA9PSBmaXJzdFV0dGVyYW5j
ZS5wdHIoKSk7CisKICAgICAgICAgLy8gU3RhcnQgdGhlIG5leHQgam9iIGlmIHRoZXJlIGlzIG9u
ZSBwZW5kaW5nLgogICAgICAgICBpZiAoIW1fdXR0ZXJhbmNlUXVldWUuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgc3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KG1fdXR0ZXJhbmNlUXVldWUuZmlyc3Qo
KS5nZXQoKSk7CisgICAgICAgICAgICBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkobV91dHRlcmFu
Y2VRdWV1ZS5maXJzdCgpKTsKICAgICB9CiB9CiAgICAgCkBAIC0xOTYsMTIgKzE5MCwxNSBAQCB2
b2lkIFNwZWVjaFN5bnRoZXNpczo6Ym91bmRhcnlFdmVudE9jY3VycmVkKFBhc3NSZWZQdHI8UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBT
dHJpbmc+IHdvcmRCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwoIndvcmQiKSk7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gc2VudGVuY2VCb3VuZGFyeVN0cmluZyhB
U0NJSUxpdGVyYWwoInNlbnRlbmNlIikpOwogCisgICAgQVNTRVJUKHV0dGVyYW5jZSk7CisgICAg
QVNTRVJUKHV0dGVyYW5jZS0+Y2xpZW50KCkpOworCiAgICAgc3dpdGNoIChib3VuZGFyeSkgewog
ICAgIGNhc2UgU3BlZWNoV29yZEJvdW5kYXJ5OgotICAgICAgICBmaXJlRXZlbnQoZXZlbnROYW1l
cygpLmJvdW5kYXJ5RXZlbnQsIHN0YXRpY19jYXN0PFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSo+
KHV0dGVyYW5jZS0+Y2xpZW50KCkpLCBjaGFySW5kZXgsIHdvcmRCb3VuZGFyeVN0cmluZyk7Cisg
ICAgICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkuYm91bmRhcnlFdmVudCwgc3RhdGljX2Nhc3Q8
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJj4oKnV0dGVyYW5jZS0+Y2xpZW50KCkpLCBjaGFySW5k
ZXgsIHdvcmRCb3VuZGFyeVN0cmluZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlZWNo
U2VudGVuY2VCb3VuZGFyeToKLSAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5ib3VuZGFy
eUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqPih1dHRlcmFuY2Ut
PmNsaWVudCgpKSwgY2hhckluZGV4LCBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5nKTsKKyAgICAgICAg
ZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5ib3VuZGFyeUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UmPigqdXR0ZXJhbmNlLT5jbGllbnQoKSksIGNoYXJJbmRleCwgc2Vu
dGVuY2VCb3VuZGFyeVN0cmluZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjExLDMzICsyMDgsMzMgQEAgdm9pZCBTcGVl
Y2hTeW50aGVzaXM6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZChQYXNzUmVmUHRyPFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2lzVXQKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpkaWRTdGFydFNwZWFraW5nKFBh
c3NSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHV0dGVyYW5jZSkKIHsK
ICAgICBpZiAodXR0ZXJhbmNlLT5jbGllbnQoKSkKLSAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFt
ZXMoKS5zdGFydEV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqPih1
dHRlcmFuY2UtPmNsaWVudCgpKSwgMCwgU3RyaW5nKCkpOworICAgICAgICBmaXJlRXZlbnQoZXZl
bnROYW1lcygpLnN0YXJ0RXZlbnQsIHN0YXRpY19jYXN0PFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZSY+KCp1dHRlcmFuY2UtPmNsaWVudCgpKSwgMCwgU3RyaW5nKCkpOwogfQogICAgIAogdm9pZCBT
cGVlY2hTeW50aGVzaXM6OmRpZFBhdXNlU3BlYWtpbmcoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNlKQogewogICAgIG1faXNQYXVzZWQgPSB0cnVl
OwogICAgIGlmICh1dHRlcmFuY2UtPmNsaWVudCgpKQotICAgICAgICBmaXJlRXZlbnQoZXZlbnRO
YW1lcygpLnBhdXNlRXZlbnQsIHN0YXRpY19jYXN0PFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSo+
KHV0dGVyYW5jZS0+Y2xpZW50KCkpLCAwLCBTdHJpbmcoKSk7CisgICAgICAgIGZpcmVFdmVudChl
dmVudE5hbWVzKCkucGF1c2VFdmVudCwgc3RhdGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlJj4oKnV0dGVyYW5jZS0+Y2xpZW50KCkpLCAwLCBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU3Bl
ZWNoU3ludGhlc2lzOjpkaWRSZXN1bWVTcGVha2luZyhQYXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlPiB1dHRlcmFuY2UpCiB7CiAgICAgbV9pc1BhdXNlZCA9IGZhbHNl
OwogICAgIGlmICh1dHRlcmFuY2UtPmNsaWVudCgpKQotICAgICAgICBmaXJlRXZlbnQoZXZlbnRO
YW1lcygpLnJlc3VtZUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uq
Pih1dHRlcmFuY2UtPmNsaWVudCgpKSwgMCwgU3RyaW5nKCkpOworICAgICAgICBmaXJlRXZlbnQo
ZXZlbnROYW1lcygpLnJlc3VtZUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UmPigqdXR0ZXJhbmNlLT5jbGllbnQoKSksIDAsIFN0cmluZygpKTsKIH0KIAogdm9pZCBT
cGVlY2hTeW50aGVzaXM6OmRpZEZpbmlzaFNwZWFraW5nKFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2U+IHV0dGVyYW5jZSkKIHsKICAgICBpZiAodXR0ZXJhbmNlLT5j
bGllbnQoKSkKLSAgICAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoc3RhdGljX2Nhc3Q8U3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlKj4odXR0ZXJhbmNlLT5jbGllbnQoKSksIGZhbHNlKTsKKyAg
ICAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoc3RhdGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlJj4oKnV0dGVyYW5jZS0+Y2xpZW50KCkpLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lk
IFNwZWVjaFN5bnRoZXNpczo6c3BlYWtpbmdFcnJvck9jY3VycmVkKFBhc3NSZWZQdHI8UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHV0dGVyYW5jZSkKIHsKICAgICBpZiAodXR0ZXJh
bmNlLT5jbGllbnQoKSkKLSAgICAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoc3RhdGljX2Nh
c3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKj4odXR0ZXJhbmNlLT5jbGllbnQoKSksIHRydWUp
OworICAgICAgICBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChzdGF0aWNfY2FzdDxTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UmPigqdXR0ZXJhbmNlLT5jbGllbnQoKSksIHRydWUpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpcy5oCmluZGV4IDI5NDg1ZWRlNDMyMDZiYjY1Mzk5YzE2YjkyNTNmYWNhMWZi
YmJjOWMuLjY4OWViNDNmMmY3NzhmNDMxZDhhODM0ZjY0OTNkMzAyYzMxY2FmZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNwZWFraW5nKCkgY29uc3Q7CiAgICAgYm9vbCBw
YXVzZWQoKSBjb25zdDsKICAgICAKLSAgICB2b2lkIHNwZWFrKFNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZSopOworICAgIHZvaWQgc3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJik7CiAgICAg
dm9pZCBjYW5jZWwoKTsKICAgICB2b2lkIHBhdXNlKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKQEAg
LTczLDkgKzczLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNwZWFraW5nRXJyb3JPY2N1cnJlZChQ
YXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZT4sIFNwZWVjaEJvdW5kYXJ5LCB1bnNpZ25lZCBjaGFySW5kZXgpIG92
ZXJyaWRlOwogCi0gICAgdm9pZCBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkoU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlKik7Ci0gICAgdm9pZCBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UqLCBib29sIGVycm9yT2NjdXJyZWQpOwotICAgIHZvaWQgZmlyZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiwg
dW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBz
dGFydFNwZWFraW5nSW1tZWRpYXRlbHkoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJik7CisgICAg
dm9pZCBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmLCBi
b29sIGVycm9yT2NjdXJyZWQpOworICAgIHZvaWQgZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJiwgdW5zaWduZWQgbG9uZyBjaGFySW5k
ZXgsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8v
IFJlc3RyaWN0aW9ucyB0byBjaGFuZ2UgZGVmYXVsdCBiZWhhdmlvcnMuCkBAIC05MSw3ICs5MSw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXI+IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjsKICAgICBWZWN0b3I8UmVmUHRyPFNwZWVj
aFN5bnRoZXNpc1ZvaWNlPj4gbV92b2ljZUxpc3Q7CiAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlKiBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2U7Ci0gICAgRGVxdWU8UmVmUHRyPFNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZT4+IG1fdXR0ZXJhbmNlUXVldWU7CisgICAgRGVxdWU8UmVmPFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZT4+IG1fdXR0ZXJhbmNlUXVldWU7CiAgICAgYm9vbCBtX2lzUGF1
c2VkOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBCZWhhdmlvclJlc3RyaWN0aW9ucyBtX3Jlc3Ry
aWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuaWRsCmluZGV4IDFmNjQ4ZDc4NDY4MzEwODJlYjcwZmE3NjEzYjg3NmVlMGVhYjc1NTUu
LjAyNTAwM2U0YzY3YjcxZjM0NjA1NWRlNTc4YjZkNmZjMjI2Yzg1YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbApAQCAtMjQsOSAr
MjQsOCBAQAogICovCiAgCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9u
YWw9U1BFRUNIX1NZTlRIRVNJUywKLSAgICBVc2VQb2ludGVyc0V2ZW5Gb3JOb25OdWxsYWJsZU9i
amVjdEFyZ3VtZW50cywKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNlIFNwZWVj
aFN5bnRoZXNpcyAgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBlbmRpbmc7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3BlYWtpbmc7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTVlY2Y5ZTU1
OWVhNjE2ODU3OTU3YzEwMjgwNzA3Y2Y0NTM2MTNlMy4uMGZhOGJlYjJhYjk4MjM1ODZkZDhmZWYy
NjUwM2RlNDhmYmNkYWU4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA0LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgRHJvcCBb
VXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gU3BlZWNo
U3ludGhlc2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTY5MDEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBV
cGRhdGVkIHRlc3QgdG8gaGFuZGxlIHNwZWFrIHRocm93aW5nIGJlaGF2aW9yIGluIGNhc2Ugb2Yg
YmFkIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBmYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gt
c3ludGhlc2lzLWNyYXNoLW9uLWJhZC11dHRlcmFuY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtY3Jhc2gtb24tYmFkLXV0dGVy
YW5jZS5odG1sOgorCiAyMDE2LTA0LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVwZGF0ZSB0ZW1wbGF0ZSBlbGVtZW50IHRlc3RzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLWNyYXNoLW9u
LWJhZC11dHRlcmFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hzeW50
aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1jcmFzaC1vbi1iYWQtdXR0ZXJhbmNlLWV4cGVjdGVkLnR4
dAppbmRleCA5OTUzN2JmZWE3YWMxY2Q5ZDc1NzljYzYwMmRmN2NmMTZmODIwNjNhLi41MzZmYThl
ZWZkNmQzMDk2MDI0MmY5MzlhOWVlMmU5NDRmNzZhNDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLWNyYXNoLW9uLWJhZC11dHRl
cmFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtY3Jhc2gtb24tYmFkLXV0dGVyYW5jZS1leHBlY3RlZC50eHQKQEAg
LTMsNiArMyw3IEBAIFRoaXMgdGVzdHMgdGhhdCBwYXNzaW5nIGluIHRoZSB3cm9uZyB0eXBlIG9m
IGRhdGEgd29uJ3QgY3Jhc2ggc3BlZWNoIHN5bnRoZXNpcyBjCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAorUEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWsoJ0hlbGxvIFdvcmxkJykgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1jcmFzaC1vbi1iYWQtdXR0ZXJhbmNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lz
LWNyYXNoLW9uLWJhZC11dHRlcmFuY2UuaHRtbAppbmRleCAyN2Q0ZGYyMGMxOTI1YzllZDA4MzA3
MTUxMDVhOTcxMjk4M2E4NDk0Li45ZDU0MDk0ZDk1NDg5NmVlNTJjYTAyZDAwYzRjYmJmZTJmYjBh
NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gt
c3ludGhlc2lzLWNyYXNoLW9uLWJhZC11dHRlcmFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLWNyYXNoLW9uLWJhZC11dHRlcmFu
Y2UuaHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRo
YXQgcGFzc2luZyBpbiB0aGUgd3JvbmcgdHlwZSBvZiBkYXRhIHdvbid0IGNyYXNoIHNwZWVjaCBz
eW50aGVzaXMgY29kZSIpOwogCiAgICAgIC8vIERvbid0IGNyYXNoLiBTcGVhayBpcyBzdXBwb3Nl
ZCB0byB0YWtlIGFuIHV0dGVyYW5jZSwgbm90IGEgc3RyaW5nLgotICAgICBzcGVlY2hTeW50aGVz
aXMuc3BlYWsoJ0hlbGxvIFdvcmxkJyk7CisgICAgIHNob3VsZFRocm93KCJzcGVlY2hTeW50aGVz
aXMuc3BlYWsoJ0hlbGxvIFdvcmxkJykiKTsKIAogICAgICAvLyBEb24ndCBjcmFzaC4gQW4gdXR0
ZXJhbmNlIHZvaWNlIGlzIHN1cHBvc2VkIHRvIHRha2UgYSB2b2ljZSBvYmplY3QsIG5vdCBhIHN0
cmluZy4KICAgICAgdmFyIHggPSBuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKCdIZWxsbyBX
b3JsZCcpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>