<?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>143363</bug_id>
          
          <creation_ts>2015-04-03 00:19:52 -0700</creation_ts>
          <short_desc>[Streams API] ReadableStream constructor start function should be able to close the stream</short_desc>
          <delta_ts>2015-04-27 06:33: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>WebKit Misc.</component>
          <version>528+ (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>
          <dependson>141160</dependson>
    
    <dependson>143714</dependson>
    
    <dependson>143774</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1082481</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-03 00:19:52 -0700</bug_when>
    <thetext>Support for the close function passed as parameter to &quot;start&quot; and &quot;pull&quot; source functions should be implemented.
THis should end up putting the stream and reader in closed state and fulfilling the reader closed promise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082517</commentid>
    <comment_count>1</comment_count>
      <attachid>250060</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-03 04:52:58 -0700</bug_when>
    <thetext>Created attachment 250060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083938</commentid>
    <comment_count>2</comment_count>
      <attachid>250434</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-09 03:36:15 -0700</bug_when>
    <thetext>Created attachment 250434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084195</commentid>
    <comment_count>3</comment_count>
      <attachid>250434</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-09 21:51:17 -0700</bug_when>
    <thetext>Comment on attachment 250434
Patch

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

Very quick review. Something is fishy. If that&apos;s right, please add tests for the controller.

Can you please add the type exception on errored? It is not testable yet, but it may be harder to forget if there is already if branch for it.

&gt; Source/WebCore/Modules/streams/ReadableStream.cpp:61
&gt; +void ReadableStream::changeStateToClosed()

How will you raise the TypeError when closeRequested == true or state == &quot;errored&quot;?

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.cpp:127
&gt; +    getReadableJSStream(exec).changeStateToClosed();
&gt; +    return JSValue::encode(jsUndefined());

Hum, reading the spec side by side with the code...I don&apos;t think that is quite correct.

Say I keep the function close in a variable close. I could do:
    close.call(&quot;foobar&quot;);
and that would still close the original stream.

The specs says to get the internal slot on the this object. If the this object is not a controller:
    If IsReadableStreamController(this) is false, throw a TypeError exception.

Note that this also let you do close.call(otherController) to close the controller of one object with the close function from an other object.

If I am reading this correctly, you need to have the internal slot on the controller object, and get it out through the this object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084261</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-10 03:31:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 250434 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250434&amp;action=review
&gt; 
&gt; Very quick review. Something is fishy. If that&apos;s right, please add tests for
&gt; the controller.
&gt; 
&gt; Can you please add the type exception on errored? It is not testable yet,
&gt; but it may be harder to forget if there is already if branch for it.
&gt; 
&gt; &gt; Source/WebCore/Modules/streams/ReadableStream.cpp:61
&gt; &gt; +void ReadableStream::changeStateToClosed()
&gt; 
&gt; How will you raise the TypeError when closeRequested == true or state ==
&gt; &quot;errored&quot;?
&gt; 
&gt; &gt; Source/WebCore/bindings/js/ReadableStreamJSSource.cpp:127
&gt; &gt; +    getReadableJSStream(exec).changeStateToClosed();
&gt; &gt; +    return JSValue::encode(jsUndefined());
&gt; 
&gt; Hum, reading the spec side by side with the code...I don&apos;t think that is
&gt; quite correct.
&gt; 
&gt; Say I keep the function close in a variable close. I could do:
&gt;     close.call(&quot;foobar&quot;);
&gt; and that would still close the original stream.
&gt; 
&gt; The specs says to get the internal slot on the this object. If the this
&gt; object is not a controller:
&gt;     If IsReadableStreamController(this) is false, throw a TypeError
&gt; exception.
&gt; 
&gt; Note that this also let you do close.call(otherController) to close the
&gt; controller of one object with the close function from an other object.
&gt; 
&gt; If I am reading this correctly, you need to have the internal slot on the
&gt; controller object, and get it out through the this object.

You are reading correctly.
I was expecting to first do that patch and then upgrade the controller implementation so that it matches the spec and ensure close is still working.
But I can do it the other way as well.

For the controller, I am not yet sure whether going the IDL way or making a full custom implementation of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084675</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-12 12:46:33 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; If I am reading this correctly, you need to have the internal slot on the
&gt; &gt; controller object, and get it out through the this object.
&gt; 
&gt; You are reading correctly.
&gt; I was expecting to first do that patch and then upgrade the controller
&gt; implementation so that it matches the spec and ensure close is still working.
&gt; But I can do it the other way as well.
&gt; 
&gt; For the controller, I am not yet sure whether going the IDL way or making a
&gt; full custom implementation of it.

A fix in a follow up is okay with me. I r+ed this one.

Poke me when you have the follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085118</commentid>
    <comment_count>6</comment_count>
      <attachid>250702</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-14 05:58:51 -0700</bug_when>
    <thetext>Created attachment 250702
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085124</commentid>
    <comment_count>7</comment_count>
      <attachid>250702</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-14 06:54:00 -0700</bug_when>
    <thetext>Comment on attachment 250702
Patch for landing

Clearing flags on attachment: 250702

Committed r182794: &lt;http://trac.webkit.org/changeset/182794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085125</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-14 06:54:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085149</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-14 09:09:19 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 143714</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087779</commentid>
    <comment_count>10</comment_count>
      <attachid>251421</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-04-23 02:00:10 -0700</bug_when>
    <thetext>Created attachment 251421
Patch

Rebased against trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089009</commentid>
    <comment_count>11</comment_count>
      <attachid>251421</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-27 06:33:13 -0700</bug_when>
    <thetext>Comment on attachment 251421
Patch

Clearing flags on attachment: 251421

Committed r183395: &lt;http://trac.webkit.org/changeset/183395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089010</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-27 06:33:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250060</attachid>
            <date>2015-04-03 04:52:58 -0700</date>
            <delta_ts>2015-04-09 03:36:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143363-20150403135211.patch</filename>
            <type>text/plain</type>
            <size>15208</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0ZTNlMjNhODE5MGQ3
NjJiODM3MzE5MTFlYjZjMzUyYTk4MWRlMC4uZTE3ZmU1MTYxMDUwYTdmYjVkODZlMDhmYWE4YmFl
NTIxZTVlMTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE1LTA0LTAzIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxl
dCA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBS
ZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzdGFydCBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0
byBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDMzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRzIGh0dHBzOi8vc3RyZWFtcy5zcGVjLndoYXR3Zy5vcmcvI2Ns
b3NlLXJlYWRhYmxlLXN0cmVhbS4KKyAgICAgICAgV2hlbiB0aGUgImNsb3NlIiBKUyBmdW5jdGlv
biBpcyBjYWxsZWQsIHRoZSBzdHJlYW0gaXMgZ2V0dGluZyBjbG9zZWQ6CisgICAgICAgIFRoZSBz
dHJlYW0gc3RhdGUgaXMgY2hhbmdlZCB0byBjbG9zZSBhbmQgaWYgaXQgaGFzIGEgcmVhZGVyLCB0
aGUgcmVhZGVyIGdldHMgY2xvc2VkIGFzIHdlbGw6CisgICAgICAgIFRoZSByZWFkZXIgcmVzb2x2
ZXMgdGhlIGNsb3NlZCBwcm9taXNlIGFuZCByZWxlYXNlIHRoZSBzdHJlYW0uCisKKyAgICAgICAg
RW5hYmxlZCB0aGUgcG9zc2liaWxpdHkgdG8gcmVzb2x2ZSBhIHByb21pc2Ugd2l0aCBhbnkgSlMg
dmFsdWUuCisgICAgICAgIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIGNsb3NlZCBwcm9taXNlIHdp
dGgganNVbmRlZmluZWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcmVhZCBwcm9taXNlcy4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGFkZGVkIHRlc3RzIGluIHN0cmVhbXMvcmVhZGFibGVzdHJlYW0tc3Rh
cnQuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6Y2hhbmdlU3RhdGVUb0Nsb3NlZCk6
IENhbGxlZCBieSB0aGUgSlMgZnVuY3Rpb24gJ2Nsb3NlJy4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFk
ZXI6OlJlYWRhYmxlU3RyZWFtUmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3Ry
ZWFtUmVhZGVyOjp+UmVhZGFibGVTdHJlYW1SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVh
ZGFibGVTdHJlYW1SZWFkZXI6OmluaXRpYWxpemUpOiBBZGRlZCB0byBoYW5kbGUgc3RhdGUgY2hh
bmdlIGF0IGNvbnN0cnVjdG9yIHRpbWUgKGluIHBhcnRpY3VsYXIgY2xvc2VkL2Vycm9yZWQgc3Rh
dGUpLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OnJlbGVhc2VTdHJl
YW0pOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZCk6IFN0
b3JpbmcgdGhlIGNsb3NlZCBwcm9taXNlIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6OlJl
YWRhYmxlU3RyZWFtUmVhZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKTogUmVzb2x1dGlvbiBvZiBj
bG9zZWQgcHJvbWlzZS4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1S
ZWFkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmVycmVkV3JhcHBlcjo6cmVzb2x2ZTxKU0M6OkpTVmFsdWU+KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpnZXRSZWFkYWJsZUpTU3RyZWFtKTogSGVscGVyIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBz
dHJlYW0gZnJvbSB0aGUgZXhlYyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlUmVhZGFi
bGVTdHJlYW1GdW5jdGlvbik6CisKIDIwMTUtMDQtMDEgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIg
PGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0QGNy
Zi5jYW5vbi5mcj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFNwbGl0IFJlYWRhYmxlU3RyZWFt
L1JlYWRlciBpbXBsZW1lbnRhdGlvbiBhY2NvcmRpbmcgc291cmNlIHR5cGUgKEpTIHZzIG5hdGl2
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0u
Y3BwCmluZGV4IDBiZDliNGUxZDQwZTViZjNlMjliYmEwYjk5NTNiYWZjNDY0NTExNzcuLjNmZTNm
Mzc3NjY3OTExNzkzOWZkYTVjMWJkZDIzNTZlMWY0YzVjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcApAQCAtNTgsNiArNTgsMTYg
QEAgUmVhZGFibGVTdHJlYW06On5SZWFkYWJsZVN0cmVhbSgpCiAjZW5kaWYKIH0KIAordm9pZCBS
ZWFkYWJsZVN0cmVhbTo6Y2hhbmdlU3RhdGVUb0Nsb3NlZCgpCit7CisgICAgaWYgKG1fc3RhdGUg
IT0gU3RhdGU6OlJlYWRhYmxlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZSA9IFN0YXRl
OjpDbG9zZWQ7CisgICAgaWYgKG1fcmVhZGVyKQorICAgICAgICBtX3JlYWRlci0+Y2hhbmdlU3Rh
dGVUb0Nsb3NlZCgpOworICAgIEFTU0VSVCghbV9yZWFkZXIpOworfQorCiB2b2lkIFJlYWRhYmxl
U3RyZWFtOjpzdGFydCgpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBwdWxsaW5nIGRhdGEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKaW5k
ZXggYjBmODI3ZWViYmNiMDQ5NGZmMThiM2E4Y2U5ZTc2YWExNDYxMjcxYi4uOGEwMDRlODJmY2Ex
NWRmNjYwOWNlNDJmNWQzYTYwNWVjYTg1MDZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgog
ICAgIFN0YXRlIGludGVybmFsU3RhdGUoKSB7IHJldHVybiBtX3N0YXRlOyB9CiAKICAgICB2b2lk
IHN0YXJ0KCk7CisgICAgdm9pZCBjaGFuZ2VTdGF0ZVRvQ2xvc2VkKCk7CiAKIHByb3RlY3RlZDoK
ICAgICBSZWFkYWJsZVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxl
U3RyZWFtU291cmNlPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwCmluZGV4IGU2Y2MwNjg1MTU4OGM5MzBkYmQy
OWFkZTZmNmJhNjUxNDViODZiMDguLmU3N2VkMjM3MzM5NzJmYTNkNmY5YzMyNThkNGM5MmEwODc0
NDIyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtUmVhZGVyLmNwcApAQCAtNDEsMTQgKzQxLDEzIEBAIERFRklORV9ERUJVR19P
TkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgcmVhZGFibGVTdHJlYW1SZWFk
ZXJDb3VudGVyCiAKIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpSZWFkYWJsZVN0cmVhbVJlYWRlcihS
ZWFkYWJsZVN0cmVhbSYgc3RyZWFtKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KHN0cmVhbS5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgLCBtX3N0cmVhbSgmc3RyZWFtKQogewogI2lmbmRl
ZiBOREVCVUcKICAgICByZWFkYWJsZVN0cmVhbVJlYWRlckNvdW50ZXIuaW5jcmVtZW50KCk7CiAj
ZW5kaWYKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFz
dHJlYW0ucmVhZGVyKCksICJBIFJlYWRhYmxlU3RyZWFtIGNhbm5vdCBiZSBsb2NrZWQgYnkgdHdv
IHJlYWRlcnMgYXQgdGhlIHNhbWUgdGltZS4iKTsKLSAgICBtX3N0cmVhbSA9ICZzdHJlYW07Ci0g
ICAgc3RyZWFtLmxvY2soKnRoaXMpOworICAgIGluaXRpYWxpemUoKTsKIH0KIAogUmVhZGFibGVT
dHJlYW1SZWFkZXI6On5SZWFkYWJsZVN0cmVhbVJlYWRlcigpCkBAIC01NiwxNSArNTUsNDggQEAg
UmVhZGFibGVTdHJlYW1SZWFkZXI6On5SZWFkYWJsZVN0cmVhbVJlYWRlcigpCiAjaWZuZGVmIE5E
RUJVRwogICAgIHJlYWRhYmxlU3RyZWFtUmVhZGVyQ291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRp
ZgotICAgIGlmIChtX3N0cmVhbSkgewotICAgICAgICBtX3N0cmVhbS0+cmVsZWFzZSh0cnVlKTsK
LSAgICAgICAgbV9zdHJlYW0gPSBudWxscHRyOworICAgIGlmIChtX3N0cmVhbSkKKyAgICAgICAg
cmVsZWFzZVN0cmVhbSh0cnVlKTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6aW5p
dGlhbGl6ZSgpCit7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9zdHJlYW0tPmlzTG9ja2Vk
KCksICJBIFJlYWRhYmxlU3RyZWFtIGNhbm5vdCBiZSBsb2NrZWQgYnkgdHdvIHJlYWRlcnMgYXQg
dGhlIHNhbWUgdGltZS4iKTsKKyAgICBtX3N0cmVhbS0+bG9jaygqdGhpcyk7CisgICAgaWYgKG1f
c3RyZWFtLT5pbnRlcm5hbFN0YXRlKCkgPT0gUmVhZGFibGVTdHJlYW06OlN0YXRlOjpDbG9zZWQp
IHsKKyAgICAgICAgY2hhbmdlU3RhdGVUb0Nsb3NlZCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpyZWxlYXNlU3RyZWFtKGJvb2wga2Vl
cExvY2tpbmcpCit7CisgICAgQVNTRVJUKG1fc3RyZWFtKTsKKyAgICBtX3N0cmVhbS0+cmVsZWFz
ZShrZWVwTG9ja2luZyk7CisgICAgbV9zdHJlYW0gPSBudWxscHRyOworfQorCit2b2lkIFJlYWRh
YmxlU3RyZWFtUmVhZGVyOjpjbG9zZWQoQ2xvc2VkU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjaywgQ2xvc2VkRXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6
Q2xvc2VkKSB7CisgICAgICAgIHN1Y2Nlc3NDYWxsYmFjaygpOworICAgICAgICByZXR1cm47CiAg
ICAgfQorICAgIG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrID0gV1RGOjptb3ZlKHN1Y2Nlc3NDYWxs
YmFjayk7CiB9CiAKLXZvaWQgUmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZChDbG9zZWRTdWNj
ZXNzQ2FsbGJhY2ssIENsb3NlZEVycm9yQ2FsbGJhY2spCit2b2lkIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOyAgICAK
KyAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6UmVhZGFibGUpOworICAgIG1fc3RhdGUgPSBT
dGF0ZTo6Q2xvc2VkOworCisgICAgaWYgKG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrKSB7CisgICAg
ICAgIENsb3NlZFN1Y2Nlc3NDYWxsYmFjayBjbG9zZWRTdWNjZXNzQ2FsbGJhY2sgPSBXVEY6Om1v
dmUobV9jbG9zZWRTdWNjZXNzQ2FsbGJhY2spOworICAgICAgICBjbG9zZWRTdWNjZXNzQ2FsbGJh
Y2soKTsKKyAgICB9CisgICAgQVNTRVJUKCFtX2Nsb3NlZFN1Y2Nlc3NDYWxsYmFjayk7CisgICAg
cmVsZWFzZVN0cmVhbSgpOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcmVhZCBwcm9taXNlIGZ1
bGZpbGxpbmcuCiB9CiAKIGNvbnN0IGNoYXIqIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmgKaW5kZXggYjliZjJiZGQ4MjViOTQwN2Y2YjQ2
ZjY4NjdkODE2NjJmOTBiNDYzMS4uYTVjOTdmNzUzNGI1ZmNiMWVmNTVhNTc2NGJlMDhjNTgzYjUy
MGUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtUmVhZGVyLmgKQEAgLTQ2LDYgKzQ2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IC8vIFNlZSBodHRwczovL3N0cmVhbXMuc3BlYy53aGF0d2cub3JnLyNyZWFkZXItY2xhc3MgZm9y
IG1vcmUgaW5mb3JtYXRpb24uCiBjbGFzcyBSZWFkYWJsZVN0cmVhbVJlYWRlciA6IHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVk
PFJlYWRhYmxlU3RyZWFtUmVhZGVyPiB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7
CisgICAgICAgIFJlYWRhYmxlLAorICAgICAgICBDbG9zZWQsCisgICAgICAgIEVycm9yZWQKKyAg
ICB9OworCiAgICAgdmlydHVhbCB+UmVhZGFibGVTdHJlYW1SZWFkZXIoKTsKIAogICAgIFJlYWRh
YmxlU3RyZWFtKiBzdHJlYW0oKSB7IHJldHVybiBtX3N0cmVhbS5nZXQoKTsgfQpAQCAtNTQsMTUg
KzYwLDIzIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBDbG9z
ZWRFcnJvckNhbGxiYWNrOwogICAgIHZvaWQgY2xvc2VkKENsb3NlZFN1Y2Nlc3NDYWxsYmFjaywg
Q2xvc2VkRXJyb3JDYWxsYmFjayk7CiAKKyAgICB2b2lkIGNoYW5nZVN0YXRlVG9DbG9zZWQoKTsK
KwogcHJvdGVjdGVkOgogICAgIFJlYWRhYmxlU3RyZWFtUmVhZGVyKFJlYWRhYmxlU3RyZWFtJik7
CiAKKyAgICB2b2lkIHJlbGVhc2VTdHJlYW0oYm9vbCBrZWVwTG9ja2luZyA9IGZhbHNlKTsKKwog
cHJpdmF0ZToKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKIAogICAgIFJlZlB0cjxS
ZWFkYWJsZVN0cmVhbT4gbV9zdHJlYW07CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpSZWFk
YWJsZSB9OworCisgICAgQ2xvc2VkU3VjY2Vzc0NhbGxiYWNrIG1fY2xvc2VkU3VjY2Vzc0NhbGxi
YWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Qcm9taXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaApp
bmRleCBkOTU2ODEyYzQzZTIzMWNlNmE1MDhmNTQ5MTgwYmZkMGYyOTVlZDRkLi41OTJlYjBjN2Ez
ZjNiODcxNTI4OTliYjJmZDRmZDE1MWFmYmFhNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVByb21pc2UuaApAQCAtOTgsNiArOTgsMTMgQEAgaW5saW5lIHZvaWQgRGVmZXJy
ZWRXcmFwcGVyOjpyZXNvbHZlPGJvb2w+KGNvbnN0IGJvb2wmIHJlc3VsdCkKIH0KIAogdGVtcGxh
dGU8PgoraW5saW5lIHZvaWQgRGVmZXJyZWRXcmFwcGVyOjpyZXNvbHZlPEpTQzo6SlNWYWx1ZT4o
Y29uc3QgSlNDOjpKU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9
IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
a2VyKGV4ZWMpOworICAgIHJlc29sdmUoZXhlYywgdmFsdWUpOworfQordGVtcGxhdGU8PgogaW5s
aW5lIHZvaWQgRGVmZXJyZWRXcmFwcGVyOjpyZXNvbHZlPFZlY3Rvcjx1bnNpZ25lZCBjaGFyPj4o
Y29uc3QgVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiByZXN1bHQpCiB7CiAgICAgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVJlYWRlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9t
LmNwcAppbmRleCBmMDZjYjAyMmI0NDMxODc1ZGYwMTI5YTA5ZGYzMWI5ZTA4Zjk5MTZiLi5lNGFk
ZGE3MDE1OTA3ZTBlZDM3YjMwM2U4ZTJjMTU0Zjc0ODA4NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9t
LmNwcApAQCAtNzEsOSArNzEsOCBAQCBKU1ZhbHVlIEpTUmVhZGFibGVTdHJlYW1SZWFkZXI6OmNs
b3NlZChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgSlNQcm9taXNlRGVmZXJyZWQqIHBy
b21pc2VEZWZlcnJlZCA9IGdldE9yQ3JlYXRlUHJvbWlzZURlZmVycmVkRnJvbU9iamVjdChleGVj
LCB0aGlzLCBnbG9iYWxPYmplY3QoKSwgY2xvc2VkUHJvbWlzZVNsb3ROYW1lKCkpOwogICAgIERl
ZmVycmVkV3JhcHBlciB3cmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJy
ZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3RoaXMsIHdyYXBwZXJdKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIC8vIEZJWE1FOiByZXR1cm4ganNVbmRlZmluZWQoKS4KLSAgICAgICAgd3Jh
cHBlci5yZXNvbHZlKCZpbXBsKCkpOworICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBw
ZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVzb2x2ZShqc1VuZGVmaW5lZCgpKTsK
ICAgICB9OwogICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3RoaXMsIHdyYXBwZXJdKCkgbXV0
YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiByZXR1cm4gc3RvcmVkIGVycm9yLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcApp
bmRleCBmOWM2Y2RhNjM3ZWQ5M2QxMGVhMTg1MTNiNGVmZTYyYTMyYjIyNGNhLi44NzhhMDI4ZDc1
MDljODQ2NTEzYTdlMThiYWY5ZjczNDRhZWI1Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcApAQCAtNzMsNiArNzMs
MTMgQEAgc3RhdGljIEpTQzo6UHJpdmF0ZU5hbWUmIHJlYWRhYmxlU3RyZWFtU2xvdE5hbWUoKQog
ICAgIHJldHVybiByZWFkYWJsZVN0cmVhbVNsb3ROYW1lOwogfQogCitzdGF0aWMgUmVhZGFibGVK
U1N0cmVhbSYgZ2V0UmVhZGFibGVKU1N0cmVhbShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNS
ZWFkYWJsZVN0cmVhbSoganNSZWFkYWJsZVN0cmVhbSA9IGpzRHluYW1pY0Nhc3Q8SlNSZWFkYWJs
ZVN0cmVhbSo+KGdldEludGVybmFsU2xvdEZyb21PYmplY3QoZXhlYywgZXhlYy0+Y2FsbGVlKCks
IHJlYWRhYmxlU3RyZWFtU2xvdE5hbWUoKSkpOworICAgIEFTU0VSVChqc1JlYWRhYmxlU3RyZWFt
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVhZGFibGVKU1N0cmVhbSY+KGpzUmVhZGFibGVT
dHJlYW0tPmltcGwoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBnZXRQcm9wZXJ0eUZy
b21PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBp
ZGVudGlmaWVyKQogewogICAgIHJldHVybiBvYmplY3QtPmdldChleGVjLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIpKTsKQEAgLTEwOSw5ICsxMTYsOSBAQCBzdGF0aWMg
aW5saW5lIEpTRnVuY3Rpb24qIGNyZWF0ZVJlYWRhYmxlU3RyZWFtRW5xdWV1ZUZ1bmN0aW9uKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCks
IGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwgMSwgU3RyaW5nKCksIGVucXVldWVSZWFk
YWJsZVN0cmVhbUZ1bmN0aW9uKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2xvc2VSZWFkYWJsZVN0cmVhbUZ1bmN0aW9uKEV4ZWNTdGF0ZSopCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjbG9zZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24oRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZ2V0UmVhZGFibGVK
U1N0cmVhbShleGVjKS5jaGFuZ2VTdGF0ZVRvQ2xvc2VkKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVhZTA5MjJiYjkyOWJlNTI0OTM5
MWM1Y2IzNjkxM2E4OGJmZjY0MWMuLjYwMjY4NDRiNGFhYjQ5M2YwZTExYWQ0Nzc1ZGRhNzI2NDkx
YjkwYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wNC0wMyBYYWJpZXIgUm9kcmlndWV6
IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgPHlvdWVubi5m
YWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVhZGFibGVTdHJl
YW0gY29uc3RydWN0b3Igc3RhcnQgZnVuY3Rpb24gc2hvdWxkIGJlIGFibGUgdG8gY2xvc2UgdGhl
IHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQzMzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBzdHJlYW1zL3JlYWRhYmxlc3RyZWFtLXN0YXJ0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dHJlYW1zL3JlYWRhYmxlc3RyZWFtLXN0YXJ0Lmh0bWw6CisKIDIwMTUtMDQtMDIgIFRpbW90aHkg
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbGJhcnMg
YXJlIGxlZnQgaW4gdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gcmVzaXppbmcgYSBmaXhlZCBsYXlv
dXQgdmlldwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZXN0cmVhbS1z
dGFydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlc3RyZWFtLXN0
YXJ0LWV4cGVjdGVkLnR4dAppbmRleCBkMzNiMjE4MDkwN2EyNmUyZTVlMmFkNzdmYTdkOTVmMzVm
OTMxZjM0Li5kNTNiYWEyMTk4MTYxYTdlMmQwZGFiYTg1OTg5MTQ5N2Q4MTkwNzNkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlc3RyZWFtLXN0YXJ0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlc3RyZWFtLXN0YXJ0LWV4cGVjdGVk
LnR4dApAQCAtMiw0ICsyLDggQEAKIFBBU1MgUmVhZGFibGVTdHJlYW0gc3RhcnQgc2hvdWxkIGJl
IGNhbGxlZCB3aXRoIHRoZSBwcm9wZXIgcGFyYW1ldGVycyAKIFBBU1MgUmVhZGFibGVTdHJlYW0g
c3RhcnQgc2hvdWxkIGJlIGFibGUgdG8gdGhyb3cgCiBQQVNTIFJlYWRhYmxlU3RyZWFtIGNvbnN0
cnVjdG9yIHNob3VsZCBnZXQgYSBmdW5jdGlvbiBhcyBzdGFydCBhcmd1bWVudCAKK1BBU1MgUmVh
ZGFibGVTdHJlYW0gc3RhcnQgc2hvdWxkIGJlIGFibGUgdG8gY2xvc2UgdGhlIHN0cmVhbSAKK1BB
U1MgUmVhZGFibGVTdHJlYW0gc3RhcnQgY2xvc2UgZnVuY3Rpb24gc2hvdWxkIGJlIGFibGUgdG8g
Y2xvc2UgdGhlIHN0cmVhbSBhdCBhbnkgdGltZSAKK1BBU1MgQ2FsbGluZyBSZWFkYWJsZVN0cmVh
bSBjbG9zZSBmdW5jdGlvbiBzZXZlcmFsIHRpbWVzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCAKK1BB
U1MgUmVhZGFibGVTdHJlYW0gaW4gY2xvc2VkIHN0YXRlIHNob3VsZCBub3QgYmUgdGllZCB0byBh
IHBhcnRpY3VsYXIgcmVhZGVyIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
YWRhYmxlc3RyZWFtLXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlc3Ry
ZWFtLXN0YXJ0Lmh0bWwKaW5kZXggZDFlMDQwOTM2OTFjMjFjYzk4MWUxNWIzZDk4OTFjMGMyOGMx
OTk2OS4uNTM2NzZiZmQxOTFiZjgyODBmZmVmNGNhODgwMjY0N2QzMDcwMTczMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZXN0cmVhbS1zdGFydC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGVzdHJlYW0tc3RhcnQuaHRtbApAQCAtNTMsNCArNTMs
OTEgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICB9KTsKIH0sICdSZWFkYWJsZVN0cmVhbSBjb25z
dHJ1Y3RvciBzaG91bGQgZ2V0IGEgZnVuY3Rpb24gYXMgc3RhcnQgYXJndW1lbnQnKTsKIAordDEg
PSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVhbSBzdGFydCBzaG91bGQgYmUgYWJsZSB0byBjbG9z
ZSB0aGUgc3RyZWFtJyk7Cit0MS5zdGVwKGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgcnMgPSBuZXcg
UmVhZGFibGVTdHJlYW0oCisgICAgeyBzdGFydDoKKyAgICAgICAgZnVuY3Rpb24oZW5xdWV1ZSwg
Y2xvc2UsIGVycm9yKSB7CisgICAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgfSk7
CisgICAgdmFyIHJlYWRlciA9IHJzLmdldFJlYWRlcigpOworICAgIHZhciBjbG9zZWQgPSBmYWxz
ZTsKKyAgICByZWFkZXIuY2xvc2VkLnRoZW4odDEuc3RlcF9mdW5jKGZ1bmN0aW9uKHYpIHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdiwgJ3VuZGVmaW5lZCcpOworICAgICAgICBjbG9z
ZWQgPSB0cnVlOworICAgIH0pKTsKKyAgICBzZXRUaW1lb3V0KHQxLnN0ZXBfZnVuYyhmdW5jdGlv
bigpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoY2xvc2VkKTsKKyAgICAgICAgdDEuZG9uZSgpOwor
ICAgIH0pLCA1MCk7Cit9KTsKKwordDIgPSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVhbSBzdGFy
dCBjbG9zZSBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSB0aGUgc3RyZWFtIGF0IGFu
eSB0aW1lJyk7Cit0Mi5zdGVwKGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgY2xvc2VGdW5jdGlvbjsK
KyAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oCisgICAgeyBzdGFydDoKKyAgICAgICAg
ZnVuY3Rpb24oZW5xdWV1ZSwgY2xvc2UsIGVycm9yKSB7CisgICAgICAgICAgICBjbG9zZUZ1bmN0
aW9uID0gY2xvc2U7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICB2YXIgcmVhZGVyID0gcnMuZ2V0
UmVhZGVyKCk7CisgICAgdmFyIGNsb3NlZCA9IGZhbHNlOworICAgIHJlYWRlci5jbG9zZWQudGhl
bih0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24odikgeworICAgICAgICBjbG9zZWQgPSB0cnVlOworICAg
IH0pKTsKKyAgICBhc3NlcnRfZmFsc2UoY2xvc2VkKTsKKyAgICBjbG9zZUZ1bmN0aW9uKCk7Cisg
ICAgc2V0VGltZW91dCh0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90
cnVlKGNsb3NlZCk7CisgICAgICAgIHQyLmRvbmUoKTsKKyAgICB9KSwgNTApOworfSk7CisKK3Qz
ID0gYXN5bmNfdGVzdCgnQ2FsbGluZyBSZWFkYWJsZVN0cmVhbSBjbG9zZSBmdW5jdGlvbiBzZXZl
cmFsIHRpbWVzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCcpOwordDMuc3RlcChmdW5jdGlvbigpCit7
CisgICAgdmFyIGNsb3NlRnVuY3Rpb247CisgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFt
KAorICAgIHsgc3RhcnQ6CisgICAgICAgIGZ1bmN0aW9uKGVucXVldWUsIGNsb3NlLCBlcnJvcikg
eworICAgICAgICAgICAgY2xvc2VGdW5jdGlvbiA9IGNsb3NlOworICAgICAgICB9CisgICAgfSk7
CisgICAgdmFyIHJlYWRlciA9IHJzLmdldFJlYWRlcigpOworICAgIHZhciBjbG9zZWQgPSAwOwor
ICAgIHJlYWRlci5jbG9zZWQudGhlbih0My5zdGVwX2Z1bmMoZnVuY3Rpb24odikgeworICAgICAg
ICBjbG9zZWQrKzsKKyAgICB9KSk7CisgICAgYXNzZXJ0X2VxdWFscyhjbG9zZWQsIDApOworICAg
IGNsb3NlRnVuY3Rpb24oKTsKKyAgICBjbG9zZUZ1bmN0aW9uKCk7CisgICAgc2V0VGltZW91dCh0
My5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2xvc2VkLCAx
KTsKKyAgICAgICAgdDMuZG9uZSgpOworICAgIH0pLCA1MCk7Cit9KTsKKwordDQgPSBhc3luY190
ZXN0KCdSZWFkYWJsZVN0cmVhbSBpbiBjbG9zZWQgc3RhdGUgc2hvdWxkIG5vdCBiZSB0aWVkIHRv
IGEgcGFydGljdWxhciByZWFkZXInKTsKK3Q0LnN0ZXAoZnVuY3Rpb24oKQoreworICAgIHZhciBy
cyA9IG5ldyBSZWFkYWJsZVN0cmVhbSgKKyAgICB7IHN0YXJ0OgorICAgICAgICBmdW5jdGlvbihl
bnF1ZXVlLCBjbG9zZSwgZXJyb3IpIHsKKyAgICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0K
KyAgICB9KTsKKyAgICB2YXIgcmVhZGVyID0gcnMuZ2V0UmVhZGVyKCk7CisgICAgcmVhZGVyLmNs
b3NlZC50aGVuKHQ0LnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7CisgICAgICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKHJlYWRlciwgcnMuZ2V0UmVhZGVyKCkpOworICAgICAgICBjbG9zZWQgPSB0cnVlOwor
ICAgIH0pKTsKKyAgICBzZXRUaW1lb3V0KHQ0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAg
ICAgdDQuZG9uZSgpOworICAgIH0pLCA1MCk7Cit9KTsKKwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250434</attachid>
            <date>2015-04-09 03:36:15 -0700</date>
            <delta_ts>2015-04-14 05:58:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143363-20150409123523.patch</filename>
            <type>text/plain</type>
            <size>17253</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY5YTY1M2Y3ZTY2ODZk
NjI4OTkxNzUwNTJhNWZkYWQ2OWYyMDQzNC4uOTU4YWQ2MDkzZGZlYjJlZjc1Yzc4Y2RhM2Y4OTk1
YzQyMDdlYmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE1LTA0LTAzIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxl
dCA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBS
ZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzdGFydCBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0
byBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDMzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRzIGh0dHBzOi8vc3RyZWFtcy5zcGVjLndoYXR3Zy5vcmcvI2Ns
b3NlLXJlYWRhYmxlLXN0cmVhbS4KKyAgICAgICAgV2hlbiB0aGUgImNsb3NlIiBKUyBmdW5jdGlv
biBpcyBjYWxsZWQsIHRoZSBzdHJlYW0gaXMgZ2V0dGluZyBjbG9zZWQ6CisgICAgICAgIFRoZSBz
dHJlYW0gc3RhdGUgaXMgY2hhbmdlZCB0byBjbG9zZSBhbmQgaWYgaXQgaGFzIGEgcmVhZGVyLCB0
aGUgcmVhZGVyIGdldHMgY2xvc2VkIGFzIHdlbGw6CisgICAgICAgIFRoZSByZWFkZXIgcmVzb2x2
ZXMgdGhlIGNsb3NlZCBwcm9taXNlIGFuZCByZWxlYXNlIHRoZSBzdHJlYW0uCisKKyAgICAgICAg
RW5hYmxlZCB0aGUgcG9zc2liaWxpdHkgdG8gcmVzb2x2ZSBhIHByb21pc2Ugd2l0aCBhbnkgSlMg
dmFsdWUuCisgICAgICAgIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIGNsb3NlZCBwcm9taXNlIHdp
dGgganNVbmRlZmluZWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcmVhZCBwcm9taXNlcy4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGFkZGVkIHRlc3RzIGluIHN0cmVhbXMvcmVhZGFibGVzdHJlYW0tc3Rh
cnQuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6Y2hhbmdlU3RhdGVUb0Nsb3NlZCk6
IENhbGxlZCBieSB0aGUgSlMgZnVuY3Rpb24gJ2Nsb3NlJy4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFk
ZXI6OlJlYWRhYmxlU3RyZWFtUmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3Ry
ZWFtUmVhZGVyOjp+UmVhZGFibGVTdHJlYW1SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVh
ZGFibGVTdHJlYW1SZWFkZXI6OmluaXRpYWxpemUpOiBBZGRlZCB0byBoYW5kbGUgc3RhdGUgY2hh
bmdlIGF0IGNvbnN0cnVjdG9yIHRpbWUgKGluIHBhcnRpY3VsYXIgY2xvc2VkL2Vycm9yZWQgc3Rh
dGUpLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OnJlbGVhc2VTdHJl
YW0pOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZCk6IFN0
b3JpbmcgdGhlIGNsb3NlZCBwcm9taXNlIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6OlJl
YWRhYmxlU3RyZWFtUmVhZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKTogUmVzb2x1dGlvbiBvZiBj
bG9zZWQgcHJvbWlzZS4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1S
ZWFkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmVycmVkV3JhcHBlcjo6cmVzb2x2ZTxKU0M6OkpTVmFsdWU+KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpnZXRSZWFkYWJsZUpTU3RyZWFtKTogSGVscGVyIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBz
dHJlYW0gZnJvbSB0aGUgZXhlYyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlUmVhZGFi
bGVTdHJlYW1GdW5jdGlvbik6CisKIDIwMTUtMDQtMDggIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFy
ICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0
QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFN1cHBvcnQgdGhlIHN0YXJ0
IGZ1bmN0aW9uIHBhcmFtZXRlciBpbiBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXgg
MGY1ZmUwMzAxYTY2MTVlNjQ5ZTU5NjZkYmE5OTNjMTQ0ZTliYTIzMC4uMjFiZTZiZDkzZmM2YTQ1
MWYyODQxZjliZWM4YmJhMjdlMDY1MDFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCkBAIC01OCw2ICs1OCwxNiBAQCBSZWFkYWJs
ZVN0cmVhbTo6flJlYWRhYmxlU3RyZWFtKCkKICNlbmRpZgogfQogCit2b2lkIFJlYWRhYmxlU3Ry
ZWFtOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6
UmVhZGFibGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkNsb3NlZDsK
KyAgICBpZiAobV9yZWFkZXIpCisgICAgICAgIG1fcmVhZGVyLT5jaGFuZ2VTdGF0ZVRvQ2xvc2Vk
KCk7CisgICAgQVNTRVJUKCFtX3JlYWRlcik7Cit9CisKIHZvaWQgUmVhZGFibGVTdHJlYW06OnN0
YXJ0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAppbmRleCA0ZTkyNjkzMTg0OTFjYmJiYjBlMjhj
MWVhYmM5Yjc5YmQ2MWQ4OGQ0Li41YjU3MjdiZGU4YmNhZjdmNWEzYmJkMjg3MTU0ZjUwNTUzZjY4
MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uaApAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgU3RhdGUgaW50ZXJuYWxTdGF0ZSgp
IHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogICAgIHZvaWQgc3RhcnQoKTsKKyAgICB2b2lkIGNoYW5n
ZVN0YXRlVG9DbG9zZWQoKTsKIAogcHJvdGVjdGVkOgogICAgIFJlYWRhYmxlU3RyZWFtKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJlYW1Tb3VyY2U+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRl
ci5jcHAKaW5kZXggY2Q2Zjk0MmQyNzZlOGZhZGMzN2MyNjk4YTU1MWM1YjA0YWRmMzM4NS4uM2M0
NWIxYTYxMmE3OTYzMzRhY2Y3OGQxYjAwMjYxZTY3MjM3MjMzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwCkBA
IC00MSwxNCArNDEsMTMgQEAgREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRl
ZExlYWtDb3VudGVyLCByZWFkYWJsZVN0cmVhbVJlYWRlckNvdW50ZXIKIAogUmVhZGFibGVTdHJl
YW1SZWFkZXI6OlJlYWRhYmxlU3RyZWFtUmVhZGVyKFJlYWRhYmxlU3RyZWFtJiBzdHJlYW0pCiAg
ICAgOiBBY3RpdmVET01PYmplY3Qoc3RyZWFtLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAg
ICAsIG1fc3RyZWFtKCZzdHJlYW0pCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIHJlYWRhYmxlU3Ry
ZWFtUmVhZGVyQ291bnRlci5pbmNyZW1lbnQoKTsKICNlbmRpZgogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXN0cmVhbS5yZWFkZXIoKSwgIkEgUmVhZGFi
bGVTdHJlYW0gY2Fubm90IGJlIGxvY2tlZCBieSB0d28gcmVhZGVycyBhdCB0aGUgc2FtZSB0aW1l
LiIpOwotICAgIG1fc3RyZWFtID0gJnN0cmVhbTsKLSAgICBzdHJlYW0ubG9jaygqdGhpcyk7Cisg
ICAgaW5pdGlhbGl6ZSgpOwogfQogCiBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6flJlYWRhYmxlU3Ry
ZWFtUmVhZGVyKCkKQEAgLTYyLDkgKzYxLDQ0IEBAIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjp+UmVh
ZGFibGVTdHJlYW1SZWFkZXIoKQogICAgIH0KIH0KIAotdm9pZCBSZWFkYWJsZVN0cmVhbVJlYWRl
cjo6Y2xvc2VkKENsb3NlZFN1Y2Nlc3NDYWxsYmFjaywgQ2xvc2VkRXJyb3JDYWxsYmFjaykKK3Zv
aWQgUmVhZGFibGVTdHJlYW1SZWFkZXI6OmluaXRpYWxpemUoKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7ICAgIAorICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fc3RyZWFtLT5pc0xvY2tlZCgp
LCAiQSBSZWFkYWJsZVN0cmVhbSBjYW5ub3QgYmUgbG9ja2VkIGJ5IHR3byByZWFkZXJzIGF0IHRo
ZSBzYW1lIHRpbWUuIik7CisgICAgbV9zdHJlYW0tPmxvY2soKnRoaXMpOworICAgIGlmIChtX3N0
cmVhbS0+aW50ZXJuYWxTdGF0ZSgpID09IFJlYWRhYmxlU3RyZWFtOjpTdGF0ZTo6Q2xvc2VkKSB7
CisgICAgICAgIGNoYW5nZVN0YXRlVG9DbG9zZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6cmVsZWFzZVN0cmVhbSgpCit7CisgICAg
QVNTRVJUKG1fc3RyZWFtKTsKKyAgICBtX3N0cmVhbS0+cmVsZWFzZSgpOworICAgIG1fc3RyZWFt
ID0gbnVsbHB0cjsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6Y2xvc2VkKENsb3Nl
ZFN1Y2Nlc3NDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIENsb3NlZEVycm9yQ2FsbGJhY2spCit7
CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkNsb3NlZCkgeworICAgICAgICBzdWNjZXNzQ2Fs
bGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2Nsb3NlZFN1Y2Nlc3NDYWxs
YmFjayA9IFdURjo6bW92ZShzdWNjZXNzQ2FsbGJhY2spOworfQorCit2b2lkIFJlYWRhYmxlU3Ry
ZWFtUmVhZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKCkKK3sKKyAgICBBU1NFUlQobV9zdGF0ZSA9
PSBTdGF0ZTo6UmVhZGFibGUpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2xvc2VkOworCisgICAg
aWYgKG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrKSB7CisgICAgICAgIENsb3NlZFN1Y2Nlc3NDYWxs
YmFjayBjbG9zZWRTdWNjZXNzQ2FsbGJhY2sgPSBXVEY6Om1vdmUobV9jbG9zZWRTdWNjZXNzQ2Fs
bGJhY2spOworICAgICAgICBjbG9zZWRTdWNjZXNzQ2FsbGJhY2soKTsKKyAgICB9CisgICAgQVNT
RVJUKCFtX2Nsb3NlZFN1Y2Nlc3NDYWxsYmFjayk7CisgICAgcmVsZWFzZVN0cmVhbSgpOworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgcmVhZCBwcm9taXNlIGZ1bGZpbGxpbmcuCiB9CiAKIGNvbnN0
IGNoYXIqIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
UmVhZGVyLmgKaW5kZXggZjYwMTRiMzk1MWFjMzIwMjA4YTQwMmIwMjhiZjAxNWVkNTllM2MxOC4u
ZDU0N2QyY2NiMDU4MmY1MjlhNTVhZGJkMzNlMGVjY2E1YWNmOWY5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmgKQEAg
LTQ2LDYgKzQ2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFNlZSBodHRwczovL3N0cmVh
bXMuc3BlYy53aGF0d2cub3JnLyNyZWFkZXItY2xhc3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiBj
bGFzcyBSZWFkYWJsZVN0cmVhbVJlYWRlciA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFJlYWRhYmxlU3RyZWFtUmVhZGVy
PiB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIFJlYWRhYmxlLAor
ICAgICAgICBDbG9zZWQsCisgICAgICAgIEVycm9yZWQKKyAgICB9OworCiAgICAgdmlydHVhbCB+
UmVhZGFibGVTdHJlYW1SZWFkZXIoKTsKIAogICAgIFJlYWRhYmxlU3RyZWFtKiBzdHJlYW0oKSB7
IHJldHVybiBtX3N0cmVhbS5nZXQoKTsgfQpAQCAtNTQsMTUgKzYwLDIzIEBAIHB1YmxpYzoKICAg
ICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBDbG9zZWRFcnJvckNhbGxiYWNrOwogICAg
IHZvaWQgY2xvc2VkKENsb3NlZFN1Y2Nlc3NDYWxsYmFjaywgQ2xvc2VkRXJyb3JDYWxsYmFjayk7
CiAKKyAgICB2b2lkIGNoYW5nZVN0YXRlVG9DbG9zZWQoKTsKKwogcHJvdGVjdGVkOgogICAgIFJl
YWRhYmxlU3RyZWFtUmVhZGVyKFJlYWRhYmxlU3RyZWFtJik7CiAKKyAgICB2b2lkIHJlbGVhc2VT
dHJlYW0oKTsKKwogcHJpdmF0ZToKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29s
IGNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRp
YWxpemUoKTsKIAogICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4gbV9zdHJlYW07CisgICAgU3Rh
dGUgbV9zdGF0ZSB7IFN0YXRlOjpSZWFkYWJsZSB9OworCisgICAgQ2xvc2VkU3VjY2Vzc0NhbGxi
YWNrIG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVByb21pc2UuaAppbmRleCBkOTU2ODEyYzQzZTIzMWNlNmE1MDhmNTQ5MTgw
YmZkMGYyOTVlZDRkLi41OTJlYjBjN2EzZjNiODcxNTI4OTliYjJmZDRmZDE1MWFmYmFhNjVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaApAQCAtOTgsNiArOTgs
MTMgQEAgaW5saW5lIHZvaWQgRGVmZXJyZWRXcmFwcGVyOjpyZXNvbHZlPGJvb2w+KGNvbnN0IGJv
b2wmIHJlc3VsdCkKIH0KIAogdGVtcGxhdGU8PgoraW5saW5lIHZvaWQgRGVmZXJyZWRXcmFwcGVy
OjpyZXNvbHZlPEpTQzo6SlNWYWx1ZT4oY29uc3QgSlNDOjpKU1ZhbHVlJiB2YWx1ZSkKK3sKKyAg
ICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Cisg
ICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKGV4ZWMpOworICAgIHJlc29sdmUoZXhlYywgdmFs
dWUpOworfQordGVtcGxhdGU8PgogaW5saW5lIHZvaWQgRGVmZXJyZWRXcmFwcGVyOjpyZXNvbHZl
PFZlY3Rvcjx1bnNpZ25lZCBjaGFyPj4oY29uc3QgVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiByZXN1
bHQpCiB7CiAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbVJlYWRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcAppbmRleCBmMDZjYjAyMmI0NDMxODc1ZGYwMTI5
YTA5ZGYzMWI5ZTA4Zjk5MTZiLi5lNGFkZGE3MDE1OTA3ZTBlZDM3YjMwM2U4ZTJjMTU0Zjc0ODA4
NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3Ry
ZWFtUmVhZGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcApAQCAtNzEsOSArNzEsOCBAQCBKU1ZhbHVlIEpT
UmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAg
ICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IGdldE9yQ3JlYXRlUHJvbWlz
ZURlZmVycmVkRnJvbU9iamVjdChleGVjLCB0aGlzLCBnbG9iYWxPYmplY3QoKSwgY2xvc2VkUHJv
bWlzZVNsb3ROYW1lKCkpOwogICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKGV4ZWMsIGdsb2Jh
bE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0g
W3RoaXMsIHdyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIC8vIEZJWE1FOiByZXR1cm4ganNV
bmRlZmluZWQoKS4KLSAgICAgICAgd3JhcHBlci5yZXNvbHZlKCZpbXBsKCkpOworICAgIGF1dG8g
c3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIu
cmVzb2x2ZShqc1VuZGVmaW5lZCgpKTsKICAgICB9OwogICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNr
ID0gW3RoaXMsIHdyYXBwZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiByZXR1cm4g
c3RvcmVkIGVycm9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVh
ZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZVN0cmVhbUpTU291cmNlLmNwcAppbmRleCA2ZjlkN2JhNzlmZTQxOWM1ZTUyMmQ0YWYzYWQ5
NzdiODNmNWQ5MTEwLi5iODMyMzRiZjMxMjBhODk4M2ZlZWE2MTU4ZDQ1OTJhMDkzZmMwYWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpT
U291cmNlLmNwcApAQCAtNjQsNiArNjQsMjEgQEAgSlNWYWx1ZSBnZXRJbnRlcm5hbFNsb3RGcm9t
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBvYmplY3RWYWx1ZSwgUHJpdmF0ZU4KICAg
ICByZXR1cm4gcHJvcGVydHlTbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAK
Ky8vIFRoaXMgc2xvdCBuYW1lIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEpTUmVhZGFibGVTdHJlYW0g
aW4gY3JlYXRlZCBKUyBmdW5jdGlvbnMgKGVucXVldWUsIGNsb3NlLi4uKS4KKy8vIFRoaXMgYWxs
b3dzIHJldHJpZXZpbmcgdGhlIGNvcnJlc3BvbmRpbmcgSlNSZWFkYWJsZVN0cmVhbSB3aGVuIGV4
ZWN1dGluZyB0aGUgSlMgZnVuY3Rpb24uCitzdGF0aWMgSlNDOjpQcml2YXRlTmFtZSYgcmVhZGFi
bGVTdHJlYW1TbG90TmFtZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTQzo6UHJp
dmF0ZU5hbWU+IHJlYWRhYmxlU3RyZWFtU2xvdE5hbWUoInJlYWRhYmxlU3RyZWFtIik7CisgICAg
cmV0dXJuIHJlYWRhYmxlU3RyZWFtU2xvdE5hbWU7Cit9CisKK3N0YXRpYyBSZWFkYWJsZUpTU3Ry
ZWFtJiBnZXRSZWFkYWJsZUpTU3RyZWFtKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1JlYWRh
YmxlU3RyZWFtKiBqc1JlYWRhYmxlU3RyZWFtID0ganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3Ry
ZWFtKj4oZ2V0SW50ZXJuYWxTbG90RnJvbU9iamVjdChleGVjLCBleGVjLT5jYWxsZWUoKSwgcmVh
ZGFibGVTdHJlYW1TbG90TmFtZSgpKSk7CisgICAgQVNTRVJUKGpzUmVhZGFibGVTdHJlYW0pOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWFkYWJsZUpTU3RyZWFtJj4oanNSZWFkYWJsZVN0cmVh
bS0+aW1wbCgpKTsKK30KKwogc3RhdGljIGlubGluZSBKU1ZhbHVlIGdldFByb3BlcnR5RnJvbU9i
amVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIGlkZW50
aWZpZXIpCiB7CiAgICAgcmV0dXJuIG9iamVjdC0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoZXhlYywgaWRlbnRpZmllcikpOwpAQCAtMTA2LDkgKzEyMSwxNyBAQCBzdGF0aWMgaW5s
aW5lIEpTRnVuY3Rpb24qIGNyZWF0ZVJlYWRhYmxlU3RyZWFtRW5xdWV1ZUZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4
ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwgMSwgU3RyaW5nKCksIG5vdEltcGxlbWVudGVk
RnVuY3Rpb24pOwogfQogCi1zdGF0aWMgaW5saW5lIEpTRnVuY3Rpb24qIGNyZWF0ZVJlYWRhYmxl
U3RyZWFtQ2xvc2VGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjbG9zZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIGdldFJlYWRhYmxlSlNTdHJlYW0oZXhlYykuY2hhbmdlU3RhdGVUb0Nsb3Nl
ZCgpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgSlNGdW5jdGlvbiogY3JlYXRlUmVhZGFibGVTdHJlYW1DbG9zZUZ1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFibGVTdHJlYW0pCiB7Ci0g
ICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5jYWxsZWUoKS0+
Z2xvYmFsT2JqZWN0KCksIDAsIFN0cmluZygpLCBub3RJbXBsZW1lbnRlZEZ1bmN0aW9uKTsKKyAg
ICBKU0Z1bmN0aW9uKiBjbG9zZUZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZt
KCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5nKCksIGNsb3NlUmVh
ZGFibGVTdHJlYW1GdW5jdGlvbik7CisgICAgc2V0SW50ZXJuYWxTbG90VG9PYmplY3QoZXhlYywg
Y2xvc2VGdW5jdGlvbiwgcmVhZGFibGVTdHJlYW1TbG90TmFtZSgpLCByZWFkYWJsZVN0cmVhbSk7
CisgICAgcmV0dXJuIGNsb3NlRnVuY3Rpb247CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNGdW5jdGlv
biogY3JlYXRlUmVhZGFibGVTdHJlYW1FcnJvckZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKQEAg
LTEyNCwxMCArMTQ3LDEwIEBAIHN0YXRpYyB2b2lkIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhS
ZWFkYWJsZVN0cmVhbSYgcmVhZGFibGVTdHJlYW0pCiAgICAgfSk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihKU0M6OkV4ZWNTdGF0
ZSogZXhlYykKK3N0YXRpYyBpbmxpbmUgSlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFibGVT
dHJlYW0pCiB7CiAgICAgSlNGdW5jdGlvbiogZW5xdWV1ZUZ1bmN0aW9uID0gY3JlYXRlUmVhZGFi
bGVTdHJlYW1FbnF1ZXVlRnVuY3Rpb24oZXhlYyk7Ci0gICAgSlNGdW5jdGlvbiogY2xvc2VGdW5j
dGlvbiA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ2xvc2VGdW5jdGlvbihleGVjKTsKKyAgICBKU0Z1
bmN0aW9uKiBjbG9zZUZ1bmN0aW9uID0gY3JlYXRlUmVhZGFibGVTdHJlYW1DbG9zZUZ1bmN0aW9u
KGV4ZWMsIHJlYWRhYmxlU3RyZWFtKTsKICAgICBKU0Z1bmN0aW9uKiBlcnJvckZ1bmN0aW9uID0g
Y3JlYXRlUmVhZGFibGVTdHJlYW1FcnJvckZ1bmN0aW9uKGV4ZWMpOwogCiAgICAgSlNPYmplY3Qq
IGNvbnRyb2xsZXIgPSAgSlNGaW5hbE9iamVjdDo6Y3JlYXRlKGV4ZWMtPnZtKCksIEpTRmluYWxP
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFs
T2JqZWN0KCksIGpzTnVsbCgpLCAzKSk7CkBAIC0xNDEsNyArMTY0LDcgQEAgdm9pZCBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlOjpzdGFydChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNSZWFkYWJsZVN0
cmVhbSogcmVhZGEKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKIAotICAgIG1fY29u
dHJvbGxlci5zZXQoZXhlYy0+dm0oKSwgY3JlYXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKGV4
ZWMpKTsKKyAgICBtX2NvbnRyb2xsZXIuc2V0KGV4ZWMtPnZtKCksIGNyZWF0ZVJlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlcihleGVjLCByZWFkYWJsZVN0cmVhbSkpOwogCiAgICAgSlNWYWx1ZSBzdGFy
dEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlGcm9tT2JqZWN0KGV4ZWMsIG1fc291cmNlLmdldCgpLCAi
c3RhcnQiKTsKICAgICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NGQxM2VkNzllYjBjMzlhNTJkMDAzNGNjNmVmZDRmYWUzYjg2MWM5OS4uMzI1MzY2MDEzODc3MjJh
NTIyZTJmMmY1YzExOWYyZTM5MDg0MWY2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA0
LTAzIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91
ZW5uIEZhYmxldCA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVh
bXMgQVBJXSBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzdGFydCBmdW5jdGlvbiBzaG91bGQg
YmUgYWJsZSB0byBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGVzdHJlYW0tc3RhcnQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGVzdHJlYW0tc3RhcnQuaHRtbDoKKwog
MjAxNS0wNC0wNCBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4g
YW5kIFlvdWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAg
IFtTdHJlYW1zIEFQSV0gU3VwcG9ydCB0aGUgc3RhcnQgZnVuY3Rpb24gcGFyYW1ldGVyIGluIFJl
YWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlYWRhYmxlc3RyZWFtLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVhZGFibGVzdHJlYW0tc3RhcnQtZXhwZWN0ZWQudHh0CmluZGV4IDVhMmQ5YjM4YjU2YmFmN2E2
ODNmN2FhMDIyZGVmM2MxMzY0NWU2NDguLmJlOGVmMzkxNDRlN2FlNTkyMWNhZDcxNDU5ZGE4ZjZl
YzhmN2NlYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGVzdHJlYW0t
c3RhcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGVzdHJl
YW0tc3RhcnQtZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsOCBAQCBQQVNTIFJlYWRhYmxlU3RyZWFt
IHN0YXJ0IGNvbnRyb2xsZXIgcGFyYW1ldGVyIHNob3VsZCBiZSB1cGRhdGFibGUKIFBBU1MgUmVh
ZGFibGVTdHJlYW0gc2hvdWxkIGJlIGFibGUgdG8gY2FsbCBzdGFydCBtZXRob2Qgd2l0aGluIHBy
b3RvdHlwZSBjaGFpbiBvZiBpdHMgc291cmNlIAogUEFTUyBSZWFkYWJsZVN0cmVhbSBzdGFydCBz
aG91bGQgYmUgYWJsZSB0byB0aHJvdyAKIFBBU1MgUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Ig
c2hvdWxkIGdldCBhIGZ1bmN0aW9uIGFzIHN0YXJ0IGFyZ3VtZW50IAorUEFTUyBSZWFkYWJsZVN0
cmVhbSBzdGFydCBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSB0aGUgc3RyZWFtIAorUEFTUyBSZWFk
YWJsZVN0cmVhbSBzdGFydCBjbG9zZSBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSB0
aGUgc3RyZWFtIGF0IGFueSB0aW1lIAorUEFTUyBDYWxsaW5nIFJlYWRhYmxlU3RyZWFtIGNsb3Nl
IGZ1bmN0aW9uIHNldmVyYWwgdGltZXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0IAorUEFTUyBSZWFk
YWJsZVN0cmVhbSBpbiBjbG9zZWQgc3RhdGUgc2hvdWxkIG5vdCBiZSB0aWVkIHRvIGEgcGFydGlj
dWxhciByZWFkZXIgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGVz
dHJlYW0tc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGVzdHJlYW0tc3Rh
cnQuaHRtbAppbmRleCBjOGU2Mjk4ZWIzZDJiMzJkN2RkMDVmZDc2NjQ3YTQ2YWM2YjliY2ViLi5h
NTVlY2EwYTYxZThkNGQzZTVlZTU0Njg1NDhmODYwMDczZDM1NmFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlc3RyZWFtLXN0YXJ0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RyZWFtcy9yZWFkYWJsZXN0cmVhbS1zdGFydC5odG1sCkBAIC04Nyw0ICs4Nyw5MSBAQCB0
ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0pOwogfSwgJ1JlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9y
IHNob3VsZCBnZXQgYSBmdW5jdGlvbiBhcyBzdGFydCBhcmd1bWVudCcpOwogCit0MSA9IGFzeW5j
X3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIHN0YXJ0IHNob3VsZCBiZSBhYmxlIHRvIGNsb3NlIHRoZSBz
dHJlYW0nKTsKK3QxLnN0ZXAoZnVuY3Rpb24oKQoreworICAgIHZhciBycyA9IG5ldyBSZWFkYWJs
ZVN0cmVhbSgKKyAgICB7IHN0YXJ0OgorICAgICAgICBmdW5jdGlvbihjb250cm9sbGVyKSB7Cisg
ICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICB2
YXIgcmVhZGVyID0gcnMuZ2V0UmVhZGVyKCk7CisgICAgdmFyIGNsb3NlZCA9IGZhbHNlOworICAg
IHJlYWRlci5jbG9zZWQudGhlbih0MS5zdGVwX2Z1bmMoZnVuY3Rpb24odikgeworICAgICAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZiB2LCAndW5kZWZpbmVkJyk7CisgICAgICAgIGNsb3NlZCA9IHRy
dWU7CisgICAgfSkpOworICAgIHNldFRpbWVvdXQodDEuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewor
ICAgICAgICBhc3NlcnRfdHJ1ZShjbG9zZWQpOworICAgICAgICB0MS5kb25lKCk7CisgICAgfSks
IDUwKTsKK30pOworCit0MiA9IGFzeW5jX3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIHN0YXJ0IGNsb3Nl
IGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGNsb3NlIHRoZSBzdHJlYW0gYXQgYW55IHRpbWUn
KTsKK3QyLnN0ZXAoZnVuY3Rpb24oKQoreworICAgIHZhciBjbG9zZUZ1bmN0aW9uOworICAgIHZh
ciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSgKKyAgICB7IHN0YXJ0OgorICAgICAgICBmdW5jdGlv
bihjb250cm9sbGVyKSB7CisgICAgICAgICAgICBjbG9zZUZ1bmN0aW9uID0gY29udHJvbGxlci5j
bG9zZTsKKyAgICAgICAgfQorICAgIH0pOworICAgIHZhciByZWFkZXIgPSBycy5nZXRSZWFkZXIo
KTsKKyAgICB2YXIgY2xvc2VkID0gZmFsc2U7CisgICAgcmVhZGVyLmNsb3NlZC50aGVuKHQyLnN0
ZXBfZnVuYyhmdW5jdGlvbih2KSB7CisgICAgICAgIGNsb3NlZCA9IHRydWU7CisgICAgfSkpOwor
ICAgIGFzc2VydF9mYWxzZShjbG9zZWQpOworICAgIGNsb3NlRnVuY3Rpb24oKTsKKyAgICBzZXRU
aW1lb3V0KHQyLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoY2xv
c2VkKTsKKyAgICAgICAgdDIuZG9uZSgpOworICAgIH0pLCA1MCk7Cit9KTsKKwordDMgPSBhc3lu
Y190ZXN0KCdDYWxsaW5nIFJlYWRhYmxlU3RyZWFtIGNsb3NlIGZ1bmN0aW9uIHNldmVyYWwgdGlt
ZXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0Jyk7Cit0My5zdGVwKGZ1bmN0aW9uKCkKK3sKKyAgICB2
YXIgY2xvc2VGdW5jdGlvbjsKKyAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oCisgICAg
eyBzdGFydDoKKyAgICAgICAgZnVuY3Rpb24oY29udHJvbGxlcikgeworICAgICAgICAgICAgY2xv
c2VGdW5jdGlvbiA9IGNvbnRyb2xsZXIuY2xvc2U7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICB2
YXIgcmVhZGVyID0gcnMuZ2V0UmVhZGVyKCk7CisgICAgdmFyIGNsb3NlZCA9IDA7CisgICAgcmVh
ZGVyLmNsb3NlZC50aGVuKHQzLnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7CisgICAgICAgIGNsb3Nl
ZCsrOworICAgIH0pKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNsb3NlZCwgMCk7CisgICAgY2xvc2VG
dW5jdGlvbigpOworICAgIGNsb3NlRnVuY3Rpb24oKTsKKyAgICBzZXRUaW1lb3V0KHQzLnN0ZXBf
ZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjbG9zZWQsIDEpOworICAg
ICAgICB0My5kb25lKCk7CisgICAgfSksIDUwKTsKK30pOworCit0NCA9IGFzeW5jX3Rlc3QoJ1Jl
YWRhYmxlU3RyZWFtIGluIGNsb3NlZCBzdGF0ZSBzaG91bGQgbm90IGJlIHRpZWQgdG8gYSBwYXJ0
aWN1bGFyIHJlYWRlcicpOwordDQuc3RlcChmdW5jdGlvbigpCit7CisgICAgdmFyIHJzID0gbmV3
IFJlYWRhYmxlU3RyZWFtKAorICAgIHsgc3RhcnQ6CisgICAgICAgIGZ1bmN0aW9uKGNvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0p
OworICAgIHZhciByZWFkZXIgPSBycy5nZXRSZWFkZXIoKTsKKyAgICByZWFkZXIuY2xvc2VkLnRo
ZW4odDQuc3RlcF9mdW5jKGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMo
cmVhZGVyLCBycy5nZXRSZWFkZXIoKSk7CisgICAgICAgIGNsb3NlZCA9IHRydWU7CisgICAgfSkp
OworICAgIHNldFRpbWVvdXQodDQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICB0NC5k
b25lKCk7CisgICAgfSksIDUwKTsKK30pOworCiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250702</attachid>
            <date>2015-04-14 05:58:51 -0700</date>
            <delta_ts>2015-04-23 02:00:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-143363-20150414145755.patch</filename>
            <type>text/plain</type>
            <size>16602</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRhNzM1M2EzMTM2NjEy
OTczZmUzNzc1ZDMxYThjMWUxZDQ0ZTFkNS4uNmE3NmM3NDg4Y2NjODIxMWM5YjJhNzJiNzUxN2Y3
NDMyZjExYjVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTA0LTE0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJ
XSBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzdGFydCBmdW5jdGlvbiBzaG91bGQgYmUgYWJs
ZSB0byBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDMzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3Vs
YWluLgorCisgICAgICAgIEltcGxlbWVudHMgaHR0cHM6Ly9zdHJlYW1zLnNwZWMud2hhdHdnLm9y
Zy8jY2xvc2UtcmVhZGFibGUtc3RyZWFtLgorICAgICAgICBXaGVuIHRoZSAiY2xvc2UiIEpTIGZ1
bmN0aW9uIGlzIGNhbGxlZCwgdGhlIHN0cmVhbSBpcyBnZXR0aW5nIGNsb3NlZC4KKyAgICAgICAg
VGhlIHN0cmVhbSBzdGF0ZSBpcyBjaGFuZ2VkIHRvIGNsb3NlIGFuZCBpZiBpdCBoYXMgYSByZWFk
ZXIsIHRoZSByZWFkZXIgZ2V0cyBjbG9zZWQgYXMgd2VsbDoKKyAgICAgICAgVGhlIHJlYWRlciBy
ZXNvbHZlcyB0aGUgY2xvc2VkIHByb21pc2UgYW5kIHJlbGVhc2UgdGhlIHN0cmVhbS4KKworICAg
ICAgICBFbmFibGVkIHRoZSBwb3NzaWJpbGl0eSB0byByZXNvbHZlIGEgcHJvbWlzZSB3aXRoIGFu
eSBKUyB2YWx1ZS4KKyAgICAgICAgVGhpcyBpcyB1c2VkIHRvIHJlc29sdmUgY2xvc2VkIHByb21p
c2Ugd2l0aCBqc1VuZGVmaW5lZCBhbmQgd2lsbCBiZSB1c2VkIGZvciByZWFkIHByb21pc2VzLgor
CisgICAgICAgIENvdmVyZWQgYnkgcmVmZXJlbmNlIHRlc3RzIHRoYXQgYXJlIG5vdyBwYXNzaW5n
LgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKTogQ2FsbGVk
IGJ5IHRoZSBKUyBmdW5jdGlvbiAnY2xvc2UnLgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVJlYWRlcjo6UmVh
ZGFibGVTdHJlYW1SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFk
ZXI6OmluaXRpYWxpemUpOiBBZGRlZCB0byBoYW5kbGUgc3RhdGUgY2hhbmdlIGF0IGNvbnN0cnVj
dG9yIHRpbWUgKGluIHBhcnRpY3VsYXIgY2xvc2VkL2Vycm9yZWQgc3RhdGUpLgorICAgICAgICAo
V2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OnJlbGVhc2VTdHJlYW0pOgorICAgICAgICAo
V2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZCk6IFN0b3JpbmcgdGhlIGNsb3Nl
ZCBwcm9taXNlIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtUmVh
ZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKTogUmVzb2x1dGlvbiBvZiBjbG9zZWQgcHJvbWlzZS4K
KyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVy
cmVkV3JhcHBlcjo6cmVzb2x2ZTxKU0M6OkpTVmFsdWU+KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
UmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvUmVh
ZGFibGVTdHJlYW1KU1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWFkYWJsZVN0cmVh
bVNsb3ROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFJlYWRhYmxlSlNTdHJlYW0pOiBIZWxw
ZXIgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIHN0cmVhbSBmcm9tIHRoZSBleGVjIHN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6Y2xvc2VSZWFkYWJsZVN0cmVhbUZ1bmN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVJlYWRhYmxlU3RyZWFtQ2xvc2VGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVh
ZGFibGVKU1N0cmVhbVJlYWRlcjo6UmVhZGFibGVKU1N0cmVhbVJlYWRlcik6IERlbGV0ZWQuCisK
IDIwMTUtMDQtMTMgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFVzZSBtb2Rlcm4gZm9yLWxvb3BzIGluIERvY3VtZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcAppbmRleCAwZjVmZTAzMDFh
NjYxNWU2NDllNTk2NmRiYTk5M2MxNDRlOWJhMjMwLi4yMWJlNmJkOTNmYzZhNDUxZjI4NDFmOWJl
YzhiYmEyN2UwNjUwMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTU4LDYgKzU4LDE2IEBAIFJlYWRhYmxlU3RyZWFtOjp+
UmVhZGFibGVTdHJlYW0oKQogI2VuZGlmCiB9CiAKK3ZvaWQgUmVhZGFibGVTdHJlYW06OmNoYW5n
ZVN0YXRlVG9DbG9zZWQoKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpSZWFkYWJsZSkK
KyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2xvc2VkOworICAgIGlmICht
X3JlYWRlcikKKyAgICAgICAgbV9yZWFkZXItPmNoYW5nZVN0YXRlVG9DbG9zZWQoKTsKKyAgICBB
U1NFUlQoIW1fcmVhZGVyKTsKK30KKwogdm9pZCBSZWFkYWJsZVN0cmVhbTo6c3RhcnQoKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5oCmluZGV4IDRlOTI2OTMxODQ5MWNiYmJiMGUyOGMxZWFiYzliNzli
ZDYxZDg4ZDQuLjViNTcyN2JkZThiY2FmN2Y1YTNiYmQyODcxNTRmNTA1NTNmNjgyMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC02
OCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBpbnRlcm5hbFN0YXRlKCkgeyByZXR1cm4g
bV9zdGF0ZTsgfQogCiAgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgY2hhbmdlU3RhdGVUb0Ns
b3NlZCgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVhZGFibGVTdHJlYW0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFJlZjxSZWFkYWJsZVN0cmVhbVNvdXJjZT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcAppbmRl
eCBjZDZmOTQyZDI3NmU4ZmFkYzM3YzI2OThhNTUxYzViMDRhZGYzMzg1Li4zYzQ1YjFhNjEyYTc5
NjMzNGFjZjc4ZDFiMDAyNjFlNjcyMzcyMzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAKQEAgLTQxLDE0ICs0
MSwxMyBAQCBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50
ZXIsIHJlYWRhYmxlU3RyZWFtUmVhZGVyQ291bnRlcgogCiBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6
UmVhZGFibGVTdHJlYW1SZWFkZXIoUmVhZGFibGVTdHJlYW0mIHN0cmVhbSkKICAgICA6IEFjdGl2
ZURPTU9iamVjdChzdHJlYW0uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9zdHJl
YW0oJnN0cmVhbSkKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgcmVhZGFibGVTdHJlYW1SZWFkZXJD
b3VudGVyLmluY3JlbWVudCgpOwogI2VuZGlmCiAgICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0gICAg
QVNTRVJUX1dJVEhfTUVTU0FHRSghc3RyZWFtLnJlYWRlcigpLCAiQSBSZWFkYWJsZVN0cmVhbSBj
YW5ub3QgYmUgbG9ja2VkIGJ5IHR3byByZWFkZXJzIGF0IHRoZSBzYW1lIHRpbWUuIik7Ci0gICAg
bV9zdHJlYW0gPSAmc3RyZWFtOwotICAgIHN0cmVhbS5sb2NrKCp0aGlzKTsKKyAgICBpbml0aWFs
aXplKCk7CiB9CiAKIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjp+UmVhZGFibGVTdHJlYW1SZWFkZXIo
KQpAQCAtNjIsOSArNjEsNDQgQEAgUmVhZGFibGVTdHJlYW1SZWFkZXI6On5SZWFkYWJsZVN0cmVh
bVJlYWRlcigpCiAgICAgfQogfQogCi12b2lkIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpjbG9zZWQo
Q2xvc2VkU3VjY2Vzc0NhbGxiYWNrLCBDbG9zZWRFcnJvckNhbGxiYWNrKQordm9pZCBSZWFkYWJs
ZVN0cmVhbVJlYWRlcjo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsgICAg
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9zdHJlYW0tPmlzTG9ja2VkKCksICJBIFJlYWRh
YmxlU3RyZWFtIGNhbm5vdCBiZSBsb2NrZWQgYnkgdHdvIHJlYWRlcnMgYXQgdGhlIHNhbWUgdGlt
ZS4iKTsKKyAgICBtX3N0cmVhbS0+bG9jaygqdGhpcyk7CisgICAgaWYgKG1fc3RyZWFtLT5pbnRl
cm5hbFN0YXRlKCkgPT0gUmVhZGFibGVTdHJlYW06OlN0YXRlOjpDbG9zZWQpIHsKKyAgICAgICAg
Y2hhbmdlU3RhdGVUb0Nsb3NlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lk
IFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpyZWxlYXNlU3RyZWFtKCkKK3sKKyAgICBBU1NFUlQobV9z
dHJlYW0pOworICAgIG1fc3RyZWFtLT5yZWxlYXNlKCk7CisgICAgbV9zdHJlYW0gPSBudWxscHRy
OworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpjbG9zZWQoQ2xvc2VkU3VjY2Vzc0Nh
bGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgQ2xvc2VkRXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAo
bV9zdGF0ZSA9PSBTdGF0ZTo6Q2xvc2VkKSB7CisgICAgICAgIHN1Y2Nlc3NDYWxsYmFjaygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrID0gV1RG
Ojptb3ZlKHN1Y2Nlc3NDYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVhZGFibGVTdHJlYW1SZWFkZXI6
OmNoYW5nZVN0YXRlVG9DbG9zZWQoKQoreworICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpS
ZWFkYWJsZSk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDbG9zZWQ7CisKKyAgICBpZiAobV9jbG9z
ZWRTdWNjZXNzQ2FsbGJhY2spIHsKKyAgICAgICAgQ2xvc2VkU3VjY2Vzc0NhbGxiYWNrIGNsb3Nl
ZFN1Y2Nlc3NDYWxsYmFjayA9IFdURjo6bW92ZShtX2Nsb3NlZFN1Y2Nlc3NDYWxsYmFjayk7Cisg
ICAgICAgIGNsb3NlZFN1Y2Nlc3NDYWxsYmFjaygpOworICAgIH0KKyAgICBBU1NFUlQoIW1fY2xv
c2VkU3VjY2Vzc0NhbGxiYWNrKTsKKyAgICByZWxlYXNlU3RyZWFtKCk7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudCByZWFkIHByb21pc2UgZnVsZmlsbGluZy4KIH0KIAogY29uc3QgY2hhciogUmVh
ZGFibGVTdHJlYW1SZWFkZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaApp
bmRleCBmNjAxNGIzOTUxYWMzMjAyMDhhNDAyYjAyOGJmMDE1ZWQ1OWUzYzE4Li5kNTQ3ZDJjY2Iw
NTgyZjUyOWE1NWFkYmQzM2UwZWNjYTVhY2Y5Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaApAQCAtNDYsNiArNDYs
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gU2VlIGh0dHBzOi8vc3RyZWFtcy5zcGVjLndo
YXR3Zy5vcmcvI3JlYWRlci1jbGFzcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIGNsYXNzIFJlYWRh
YmxlU3RyZWFtUmVhZGVyIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFNjcmlwdFdy
YXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8UmVhZGFibGVTdHJlYW1SZWFkZXI+IHsKIHB1Ymxp
YzoKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgUmVhZGFibGUsCisgICAgICAgIENs
b3NlZCwKKyAgICAgICAgRXJyb3JlZAorICAgIH07CisKICAgICB2aXJ0dWFsIH5SZWFkYWJsZVN0
cmVhbVJlYWRlcigpOwogCiAgICAgUmVhZGFibGVTdHJlYW0qIHN0cmVhbSgpIHsgcmV0dXJuIG1f
c3RyZWFtLmdldCgpOyB9CkBAIC01NCwxNSArNjAsMjMgQEAgcHVibGljOgogICAgIHR5cGVkZWYg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IENsb3NlZEVycm9yQ2FsbGJhY2s7CiAgICAgdm9pZCBjbG9z
ZWQoQ2xvc2VkU3VjY2Vzc0NhbGxiYWNrLCBDbG9zZWRFcnJvckNhbGxiYWNrKTsKIAorICAgIHZv
aWQgY2hhbmdlU3RhdGVUb0Nsb3NlZCgpOworCiBwcm90ZWN0ZWQ6CiAgICAgUmVhZGFibGVTdHJl
YW1SZWFkZXIoUmVhZGFibGVTdHJlYW0mKTsKIAorICAgIHZvaWQgcmVsZWFzZVN0cmVhbSgpOwor
CiBwcml2YXRlOgogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCiAgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY2FuU3VzcGVu
ZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwog
CiAgICAgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiBtX3N0cmVhbTsKKyAgICBTdGF0ZSBtX3N0YXRl
IHsgU3RhdGU6OlJlYWRhYmxlIH07CisKKyAgICBDbG9zZWRTdWNjZXNzQ2FsbGJhY2sgbV9jbG9z
ZWRTdWNjZXNzQ2FsbGJhY2s7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NUHJvbWlzZS5oCmluZGV4IGQ5NTY4MTJjNDNlMjMxY2U2YTUwOGY1NDkxODBiZmQwZjI5NWVk
NGQuLjU5MmViMGM3YTNmM2I4NzE1Mjg5OWJiMmZkNGZkMTUxYWZiYWE2NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCkBAIC05OCw2ICs5OCwxMyBAQCBpbmxp
bmUgdm9pZCBEZWZlcnJlZFdyYXBwZXI6OnJlc29sdmU8Ym9vbD4oY29uc3QgYm9vbCYgcmVzdWx0
KQogfQogCiB0ZW1wbGF0ZTw+CitpbmxpbmUgdm9pZCBEZWZlcnJlZFdyYXBwZXI6OnJlc29sdmU8
SlNDOjpKU1ZhbHVlPihjb25zdCBKU0M6OkpTVmFsdWUmIHZhbHVlKQoreworICAgIEpTQzo6RXhl
Y1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICBKU0M6OkpT
TG9ja0hvbGRlciBsb2NrZXIoZXhlYyk7CisgICAgcmVzb2x2ZShleGVjLCB2YWx1ZSk7Cit9Cit0
ZW1wbGF0ZTw+CiBpbmxpbmUgdm9pZCBEZWZlcnJlZFdyYXBwZXI6OnJlc29sdmU8VmVjdG9yPHVu
c2lnbmVkIGNoYXI+Pihjb25zdCBWZWN0b3I8dW5zaWduZWQgY2hhcj4mIHJlc3VsdCkKIHsKICAg
ICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVh
ZGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJl
YW1SZWFkZXJDdXN0b20uY3BwCmluZGV4IGYwNmNiMDIyYjQ0MzE4NzVkZjAxMjlhMDlkZjMxYjll
MDhmOTkxNmIuLmU0YWRkYTcwMTU5MDdlMGVkMzdiMzAzZThlMmMxNTRmNzQ4MDg3NDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJl
YW1SZWFkZXJDdXN0b20uY3BwCkBAIC03MSw5ICs3MSw4IEBAIEpTVmFsdWUgSlNSZWFkYWJsZVN0
cmVhbVJlYWRlcjo6Y2xvc2VkKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBKU1Byb21p
c2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gZ2V0T3JDcmVhdGVQcm9taXNlRGVmZXJyZWRG
cm9tT2JqZWN0KGV4ZWMsIHRoaXMsIGdsb2JhbE9iamVjdCgpLCBjbG9zZWRQcm9taXNlU2xvdE5h
bWUoKSk7CiAgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0KCks
IHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbdGhpcywgd3Jh
cHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgLy8gRklYTUU6IHJldHVybiBqc1VuZGVmaW5lZCgp
LgotICAgICAgICB3cmFwcGVyLnJlc29sdmUoJmltcGwoKSk7CisgICAgYXV0byBzdWNjZXNzQ2Fs
bGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZXNvbHZlKGpz
VW5kZWZpbmVkKCkpOwogICAgIH07CiAgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbdGhpcywg
d3JhcHBlcl0oKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IHJldHVybiBzdG9yZWQgZXJy
b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVh
bUpTU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFt
SlNTb3VyY2UuY3BwCmluZGV4IDZmOWQ3YmE3OWZlNDE5YzVlNTIyZDRhZjNhZDk3N2I4M2Y1ZDkx
MTAuLmI4MzIzNGJmMzEyMGE4OTgzZmVlYTYxNThkNDU5MmEwOTNmYzBhZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3Bw
CkBAIC02NCw2ICs2NCwyMSBAQCBKU1ZhbHVlIGdldEludGVybmFsU2xvdEZyb21PYmplY3QoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIG9iamVjdFZhbHVlLCBQcml2YXRlTgogICAgIHJldHVybiBw
cm9wZXJ0eVNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAorLy8gVGhpcyBz
bG90IG5hbWUgaXMgdXNlZCB0byBzdG9yZSB0aGUgSlNSZWFkYWJsZVN0cmVhbSBpbiBjcmVhdGVk
IEpTIGZ1bmN0aW9ucyAoZW5xdWV1ZSwgY2xvc2UuLi4pLgorLy8gVGhpcyBhbGxvd3MgcmV0cmll
dmluZyB0aGUgY29ycmVzcG9uZGluZyBKU1JlYWRhYmxlU3RyZWFtIHdoZW4gZXhlY3V0aW5nIHRo
ZSBKUyBmdW5jdGlvbi4KK3N0YXRpYyBKU0M6OlByaXZhdGVOYW1lJiByZWFkYWJsZVN0cmVhbVNs
b3ROYW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNDOjpQcml2YXRlTmFtZT4g
cmVhZGFibGVTdHJlYW1TbG90TmFtZSgicmVhZGFibGVTdHJlYW0iKTsKKyAgICByZXR1cm4gcmVh
ZGFibGVTdHJlYW1TbG90TmFtZTsKK30KKworc3RhdGljIFJlYWRhYmxlSlNTdHJlYW0mIGdldFJl
YWRhYmxlSlNTdHJlYW0oRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTUmVhZGFibGVTdHJlYW0q
IGpzUmVhZGFibGVTdHJlYW0gPSBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPihnZXRJ
bnRlcm5hbFNsb3RGcm9tT2JqZWN0KGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLCByZWFkYWJsZVN0cmVh
bVNsb3ROYW1lKCkpKTsKKyAgICBBU1NFUlQoanNSZWFkYWJsZVN0cmVhbSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlYWRhYmxlSlNTdHJlYW0mPihqc1JlYWRhYmxlU3RyZWFtLT5pbXBsKCkp
OworfQorCiBzdGF0aWMgaW5saW5lIEpTVmFsdWUgZ2V0UHJvcGVydHlGcm9tT2JqZWN0KEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgY29uc3QgY2hhciogaWRlbnRpZmllcikKIHsK
ICAgICByZXR1cm4gb2JqZWN0LT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVj
LCBpZGVudGlmaWVyKSk7CkBAIC0xMDYsOSArMTIxLDE3IEBAIHN0YXRpYyBpbmxpbmUgSlNGdW5j
dGlvbiogY3JlYXRlUmVhZGFibGVTdHJlYW1FbnF1ZXVlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVj
KQogICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+Y2FsbGVl
KCktPmdsb2JhbE9iamVjdCgpLCAxLCBTdHJpbmcoKSwgbm90SW1wbGVtZW50ZWRGdW5jdGlvbik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNGdW5jdGlvbiogY3JlYXRlUmVhZGFibGVTdHJlYW1DbG9z
ZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNsb3NlUmVhZGFibGVTdHJlYW1GdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgZ2V0UmVhZGFibGVKU1N0cmVhbShleGVjKS5jaGFuZ2VTdGF0ZVRvQ2xvc2VkKCk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworc3RhdGljIGlubGlu
ZSBKU0Z1bmN0aW9uKiBjcmVhdGVSZWFkYWJsZVN0cmVhbUNsb3NlRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU1JlYWRhYmxlU3RyZWFtKiByZWFkYWJsZVN0cmVhbSkKIHsKLSAgICByZXR1cm4g
SlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmpl
Y3QoKSwgMCwgU3RyaW5nKCksIG5vdEltcGxlbWVudGVkRnVuY3Rpb24pOworICAgIEpTRnVuY3Rp
b24qIGNsb3NlRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+
Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLCAwLCBTdHJpbmcoKSwgY2xvc2VSZWFkYWJsZVN0cmVh
bUZ1bmN0aW9uKTsKKyAgICBzZXRJbnRlcm5hbFNsb3RUb09iamVjdChleGVjLCBjbG9zZUZ1bmN0
aW9uLCByZWFkYWJsZVN0cmVhbVNsb3ROYW1lKCksIHJlYWRhYmxlU3RyZWFtKTsKKyAgICByZXR1
cm4gY2xvc2VGdW5jdGlvbjsKIH0KIAogc3RhdGljIGlubGluZSBKU0Z1bmN0aW9uKiBjcmVhdGVS
ZWFkYWJsZVN0cmVhbUVycm9yRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQpAQCAtMTI0LDEwICsx
NDcsMTAgQEAgc3RhdGljIHZvaWQgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKFJlYWRhYmxlU3Ry
ZWFtJiByZWFkYWJsZVN0cmVhbSkKICAgICB9KTsKIH0KIAotc3RhdGljIGlubGluZSBKU09iamVj
dCogY3JlYXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjKQor
c3RhdGljIGlubGluZSBKU09iamVjdCogY3JlYXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU1JlYWRhYmxlU3RyZWFtKiByZWFkYWJsZVN0cmVhbSkKIHsK
ICAgICBKU0Z1bmN0aW9uKiBlbnF1ZXVlRnVuY3Rpb24gPSBjcmVhdGVSZWFkYWJsZVN0cmVhbUVu
cXVldWVGdW5jdGlvbihleGVjKTsKLSAgICBKU0Z1bmN0aW9uKiBjbG9zZUZ1bmN0aW9uID0gY3Jl
YXRlUmVhZGFibGVTdHJlYW1DbG9zZUZ1bmN0aW9uKGV4ZWMpOworICAgIEpTRnVuY3Rpb24qIGNs
b3NlRnVuY3Rpb24gPSBjcmVhdGVSZWFkYWJsZVN0cmVhbUNsb3NlRnVuY3Rpb24oZXhlYywgcmVh
ZGFibGVTdHJlYW0pOwogICAgIEpTRnVuY3Rpb24qIGVycm9yRnVuY3Rpb24gPSBjcmVhdGVSZWFk
YWJsZVN0cmVhbUVycm9yRnVuY3Rpb24oZXhlYyk7CiAKICAgICBKU09iamVjdCogY29udHJvbGxl
ciA9ICBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYy0+dm0oKSwgSlNGaW5hbE9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPnZtKCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwg
anNOdWxsKCksIDMpKTsKQEAgLTE0MSw3ICsxNjQsNyBAQCB2b2lkIFJlYWRhYmxlU3RyZWFtSlNT
b3VyY2U6OnN0YXJ0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU1JlYWRhYmxlU3RyZWFtKiByZWFk
YQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogCi0gICAgbV9jb250cm9sbGVyLnNl
dChleGVjLT52bSgpLCBjcmVhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIoZXhlYykpOworICAg
IG1fY29udHJvbGxlci5zZXQoZXhlYy0+dm0oKSwgY3JlYXRlUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyKGV4ZWMsIHJlYWRhYmxlU3RyZWFtKSk7CiAKICAgICBKU1ZhbHVlIHN0YXJ0RnVuY3Rpb24g
PSBnZXRQcm9wZXJ0eUZyb21PYmplY3QoZXhlYywgbV9zb3VyY2UuZ2V0KCksICJzdGFydCIpOwog
ICAgIGlmICghc3RhcnRGdW5jdGlvbi5pc0Z1bmN0aW9uKCkpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MDA3NDg0NGE5
NjM2Mzg1NzlhZjkwMzU5ODcyZjdjYzFiY2NmMmQ0Li4zZGVlOWUzNmE0YjkxZDEzNTI2NmU1N2Ix
ZTk0NWUwZDQ1YzIyMzFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDQtMTQgIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIHN0YXJ0IGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxl
IHRvIGNsb3NlIHRoZSBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MzM2MworCisgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxh
aW4uCisKKyAgICAgICAgUmViYXNlZCB0ZXN0cyBhcyBzb21lIGFyZSBub3cgcGFzc2luZy4KKwor
ICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVh
bS1yZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQtZXhwZWN0ZWQudHh0OgorCiAyMDE1
LTA0LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+IGFuZCBY
YWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBT
eW5jIFN0cmVhbXMgQVBJIHRlc3RzIHdpdGggc3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXJlYWRlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9yZWFkYWJsZS1zdHJlYW0tcmVhZGVyLWV4cGVjdGVkLnR4dAppbmRleCBjM2U1MTQyZDQ2OTk1
MWU5ZDNhNjJiNjVjZmI0MzRhYjE3NWUzNTQzLi40Yzk1MmM4M2I3OGNiN2QxOTFhYjdlYjYwODg4
YjRmYmMxNTI5NWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tcmVhZGVyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJl
YW0tcmVhZGVyLWV4cGVjdGVkLnR4dApAQCAtMTEsNyArMTEsNyBAQCBQQVNTIENvbnN0cnVjdGlu
ZyBhIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGRpcmVjdGx5IHNob3VsZCBiZSBPSyBpZiB0aGUgc3Ry
ZWFtIGlzCiBQQVNTIENvbnN0cnVjdGluZyBhIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGRpcmVjdGx5
IHNob3VsZCBiZSBPSyBpZiB0aGUgc3RyZWFtIGlzIGVycm9yZWQgCiBGQUlMIFJlYWRpbmcgZnJv
bSBhIHJlYWRlciBmb3IgYW4gZW1wdHkgc3RyZWFtIHdpbGwgd2FpdCB1bnRpbCBhIGNodW5rIGlz
IGF2YWlsYWJsZSByZWFkIGlzIG5vdCBpbXBsZW1lbnRlZAogRkFJTCBjYW5jZWwoKSBvbiBhIHJl
YWRlciByZWxlYXNlcyB0aGUgcmVhZGVyIGJlZm9yZSBjYWxsaW5nIHRocm91Z2ggY2FuY2VsIGlz
IG5vdCBpbXBsZW1lbnRlZAotVElNRU9VVCBjbG9zZWQgc2hvdWxkIGJlIGZ1bGZpbGxlZCBhZnRl
ciBzdHJlYW0gaXMgY2xvc2VkICguY2xvc2VkIGFjY2VzcyBiZWZvcmUgYWNxdWlyaW5nKSBUZXN0
IHRpbWVkIG91dAorUEFTUyBjbG9zZWQgc2hvdWxkIGJlIGZ1bGZpbGxlZCBhZnRlciBzdHJlYW0g
aXMgY2xvc2VkICguY2xvc2VkIGFjY2VzcyBiZWZvcmUgYWNxdWlyaW5nKSAKIEZBSUwgY2xvc2Vk
IHNob3VsZCBiZSBmdWxmaWxsZWQgYWZ0ZXIgcmVhZGVyIHJlbGVhc2VzIGl0cyBsb2NrIChtdWx0
aXBsZSBzdHJlYW0gbG9ja3MpIHJlbGVhc2VMb2NrIGlzIG5vdCBpbXBsZW1lbnRlZAogRkFJTCBN
dWx0aXBsZSByZWFkZXJzIGNhbiBhY2Nlc3MgdGhlIHN0cmVhbSBpbiBzZXF1ZW5jZSByZWFkIGlz
IG5vdCBpbXBsZW1lbnRlZAogRkFJTCBDYW5ub3QgdXNlIGFuIGFscmVhZHktcmVsZWFzZWQgcmVh
ZGVyIHRvIHVubG9jayBhIHN0cmVhbSBhZ2FpbiByZWxlYXNlTG9jayBpcyBub3QgaW1wbGVtZW50
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0
aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRl
ZC1leHBlY3RlZC50eHQKaW5kZXggZDc0MjcxMDYzZGY4NGI4ZjQ2MWY0MTc0NGE4MDUyOTllY2Fh
NWZlYi4uYTRlMjQ3ODkxZjI3Y2EyYzQ2NDNjOTY0NWQxYzdjODJiNzk4ZDI4ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3Rl
ZC50eHQKQEAgLTE1LDEwICsxNSwxMCBAQCBGQUlMIGNhbmNlbGluZyB2aWEgdGhlIHN0cmVhbSBz
aG91bGQgZmFpbCBjYW5jZWwgaXMgbm90IGltcGxlbWVudGVkCiBQQVNTIFJ1bm5pbmcgdGVtcGxh
dGVkUlNDbG9zZWQgd2l0aCBSZWFkYWJsZVN0cmVhbSAoY2xvc2VkIHZpYSBjYWxsIGluIHN0YXJ0
KSAKIEZBSUwgY2FuY2VsKCkgc2hvdWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1bGZpbGxlZCBwcm9t
aXNlIGVhY2ggdGltZSBjYW5jZWwgaXMgbm90IGltcGxlbWVudGVkCiBQQVNTIGdldFJlYWRlcigp
IHNob3VsZCBiZSBPSyAKLUZBSUwgc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSBy
ZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0by1yZWxlYXNlZCBSZWFkYWJsZVN0cmVhbSBp
cyBsb2NrZWQKK1BBU1Mgc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJz
LCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0by1yZWxlYXNlZCAKIFBBU1MgUnVubmluZyB0ZW1wbGF0
ZWRSU0Nsb3NlZFJlYWRlciB3aXRoIFJlYWRhYmxlU3RyZWFtIChjbG9zZWQgdmlhIGNhbGwgaW4g
c3RhcnQpIHJlYWRlciAKIEZBSUwgcmVhZCgpIHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1ZTog
dW5kZWZpbmVkLCBkb25lOiB0cnVlIH0gcmVhZCBpcyBub3QgaW1wbGVtZW50ZWQKLVRJTUVPVVQg
Y2xvc2VkIHNob3VsZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVkIFRlc3QgdGltZWQgb3V0CitQQVNT
IGNsb3NlZCBzaG91bGQgZnVsZmlsbCB3aXRoIHVuZGVmaW5lZCAKIEZBSUwgY2FuY2VsKCkgc2hv
dWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZSBjYW5jZWwg
aXMgbm90IGltcGxlbWVudGVkCiBQQVNTIFJ1bm5pbmcgdGVtcGxhdGVkUlNDbG9zZWQgd2l0aCBS
ZWFkYWJsZVN0cmVhbSAoY2xvc2VkIHZpYSBjYW5jZWwpIAogRkFJTCBjYW5jZWwoKSBzaG91bGQg
cmV0dXJuIGEgZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFjaCB0aW1lIGNhbmNlbCBpcyBu
b3QgaW1wbGVtZW50ZWQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251421</attachid>
            <date>2015-04-23 02:00:10 -0700</date>
            <delta_ts>2015-04-27 06:33:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143363-20150423105905.patch</filename>
            <type>text/plain</type>
            <size>15740</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI4YTEzOWM0ZDhiMWFk
NjdhY2U0ODY5YzBhMDE5YTlhZmVkMDczMi4uNmMwMjQ4MzY3MDAwYTYwYzdiMDBiMGY0ZTk3NGE1
ZGZlZjVkMDgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTA0LTIzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJ
XSBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzdGFydCBmdW5jdGlvbiBzaG91bGQgYmUgYWJs
ZSB0byBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDMzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3Vs
YWluLgorCisgICAgICAgIEltcGxlbWVudHMgaHR0cHM6Ly9zdHJlYW1zLnNwZWMud2hhdHdnLm9y
Zy8jY2xvc2UtcmVhZGFibGUtc3RyZWFtLgorICAgICAgICBXaGVuIHRoZSAiY2xvc2UiIEpTIGZ1
bmN0aW9uIGlzIGNhbGxlZCwgdGhlIHN0cmVhbSBpcyBnZXR0aW5nIGNsb3NlZC4KKyAgICAgICAg
VGhlIHN0cmVhbSBzdGF0ZSBpcyBjaGFuZ2VkIHRvIGNsb3NlIGFuZCBpZiBpdCBoYXMgYSByZWFk
ZXIsIHRoZSByZWFkZXIgZ2V0cyBjbG9zZWQgYXMgd2VsbDoKKyAgICAgICAgVGhlIHJlYWRlciBy
ZXNvbHZlcyB0aGUgY2xvc2VkIHByb21pc2UgYW5kIHJlbGVhc2VzIHRoZSBzdHJlYW0uCisKKyAg
ICAgICAgRW5hYmxlZCB0aGUgcG9zc2liaWxpdHkgdG8gcmVzb2x2ZSBhIHByb21pc2Ugd2l0aCBh
bnkgSlMgdmFsdWUuCisgICAgICAgIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIGNsb3NlZCBwcm9t
aXNlIHdpdGgganNVbmRlZmluZWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcmVhZCBwcm9taXNlcyBp
bgorICAgICAgICB0aGUgZnV0dXJlIGFzIHdlbGwsIHRob3VnaCBvZiBjb3Vyc2UgaXQgaXMgbm90
IHJlc3RyaWN0ZWQgdG8gU3RyZWFtcy4KKworICAgICAgICBDb3ZlcmVkIGJ5IHJlZmVyZW5jZSB0
ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6Y2hhbmdlU3RhdGVUb0Ns
b3NlZCk6IENhbGxlZCBieSB0aGUgSlMgZnVuY3Rpb24gJ2Nsb3NlJy4KKyAgICAgICAgKiBNb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVhZGFibGVTdHJlYW1SZWFkZXI6OlJlYWRhYmxlU3RyZWFtUmVhZGVyKTogSW5pdGlhbGl6ZWQg
c3RyZWFtLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6OmluaXRpYWxp
emUpOiBBZGRlZCB0byBoYW5kbGUgc3RhdGUgY2hhbmdlIGF0IGNvbnN0cnVjdG9yIHRpbWUKKyAg
ICAgICAgaW4gcGFydGljdWxhciBjbG9zZWQvZXJyb3JlZCBzdGF0ZS4KKyAgICAgICAgKFdlYkNv
cmU6OlJlYWRhYmxlU3RyZWFtUmVhZGVyOjpyZWxlYXNlU3RyZWFtKTogUmVsZWFzZXMgdGhlIHN0
cmVhbS4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtUmVhZGVyOjpjbG9zZWQpOiBT
dG9yZXMgdGhlIHByb21pc2UgY2FsbGJhY2tzIGFuZCBpbnZva2VzIHN1Y2Nlc3MKKyAgICAgICAg
aW1tZWRpYXRlbHkgaWYgdGhlIHN0cmVhbSBpcyBhbHJlYWR5IGNsb3NlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWRhYmxlU3RyZWFtUmVhZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKTogQ2hhbmdl
cyB0aGUgaW50ZXJuYWwgc3RhdGUgdG8gY2xvc2VkLAorICAgICAgICByZXNvbHZlcyB0aGUgcHJv
bWlzZSBhbmQgcmVsZWFzZXMgdGhlIHN0cmVhbS4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1SZWFkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFt
UmVhZGVyOjpTdGF0ZSk6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyZWRXcmFwcGVyOjpyZXNvbHZlPEpTQzo6SlNW
YWx1ZT4pOiBBZGRzIHRoZSBhYmlsaXR5IHRvIHJlc29sdmUgYSBwcm9taXNlIHdpdGgKKyAgICAg
ICAgYSBjdXN0b20gSlMgdmFsdWUuCisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXI6OmNsb3NlKTogTm90ICJub3RJbXBsZW1lbnRlZCIgYW55bW9yZS4gTm93
IGl0IGNsb3NlcyB0aGUKKyAgICAgICAgc3RyZWFtLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
UmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNSZWFk
YWJsZVN0cmVhbVJlYWRlcjo6Y2xvc2VkKTogUmVzb2x2ZXMgdGhlIHByb21pc2Ugd2l0aCB1bmRl
ZmluZWQuCisKIDIwMTUtMDQtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIGEgdHlwZWRlZiBmb3IgVGlsZUdyaWQgdGlsZSB2YWxpZGF0aW9u
IHBvbGljeSBmbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5jcHAKaW5kZXggMGY1ZmUwMzAxYTY2MTVlNjQ5ZTU5NjZkYmE5OTNjMTQ0ZTli
YTIzMC4uMjFiZTZiZDkzZmM2YTQ1MWYyODQxZjliZWM4YmJhMjdlMDY1MDFlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCkBAIC01
OCw2ICs1OCwxNiBAQCBSZWFkYWJsZVN0cmVhbTo6flJlYWRhYmxlU3RyZWFtKCkKICNlbmRpZgog
fQogCit2b2lkIFJlYWRhYmxlU3RyZWFtOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKCkKK3sKKyAgICBp
ZiAobV9zdGF0ZSAhPSBTdGF0ZTo6UmVhZGFibGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0
YXRlID0gU3RhdGU6OkNsb3NlZDsKKyAgICBpZiAobV9yZWFkZXIpCisgICAgICAgIG1fcmVhZGVy
LT5jaGFuZ2VTdGF0ZVRvQ2xvc2VkKCk7CisgICAgQVNTRVJUKCFtX3JlYWRlcik7Cit9CisKIHZv
aWQgUmVhZGFibGVTdHJlYW06OnN0YXJ0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAppbmRleCA0
ZTkyNjkzMTg0OTFjYmJiYjBlMjhjMWVhYmM5Yjc5YmQ2MWQ4OGQ0Li41YjU3MjdiZGU4YmNhZjdm
NWEzYmJkMjg3MTU0ZjUwNTUzZjY4MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaApAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAg
U3RhdGUgaW50ZXJuYWxTdGF0ZSgpIHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogICAgIHZvaWQgc3Rh
cnQoKTsKKyAgICB2b2lkIGNoYW5nZVN0YXRlVG9DbG9zZWQoKTsKIAogcHJvdGVjdGVkOgogICAg
IFJlYWRhYmxlU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJl
YW1Tb3VyY2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAKaW5kZXggY2Q2Zjk0MmQyNzZlOGZhZGMzN2MyNjk4
YTU1MWM1YjA0YWRmMzM4NS4uM2M0NWIxYTYxMmE3OTYzMzRhY2Y3OGQxYjAwMjYxZTY3MjM3MjMz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwCkBAIC00MSwxNCArNDEsMTMgQEAgREVGSU5FX0RFQlVHX09OTFlf
R0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCByZWFkYWJsZVN0cmVhbVJlYWRlckNv
dW50ZXIKIAogUmVhZGFibGVTdHJlYW1SZWFkZXI6OlJlYWRhYmxlU3RyZWFtUmVhZGVyKFJlYWRh
YmxlU3RyZWFtJiBzdHJlYW0pCiAgICAgOiBBY3RpdmVET01PYmplY3Qoc3RyZWFtLnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fc3RyZWFtKCZzdHJlYW0pCiB7CiAjaWZuZGVmIE5E
RUJVRwogICAgIHJlYWRhYmxlU3RyZWFtUmVhZGVyQ291bnRlci5pbmNyZW1lbnQoKTsKICNlbmRp
ZgogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXN0cmVh
bS5yZWFkZXIoKSwgIkEgUmVhZGFibGVTdHJlYW0gY2Fubm90IGJlIGxvY2tlZCBieSB0d28gcmVh
ZGVycyBhdCB0aGUgc2FtZSB0aW1lLiIpOwotICAgIG1fc3RyZWFtID0gJnN0cmVhbTsKLSAgICBz
dHJlYW0ubG9jaygqdGhpcyk7CisgICAgaW5pdGlhbGl6ZSgpOwogfQogCiBSZWFkYWJsZVN0cmVh
bVJlYWRlcjo6flJlYWRhYmxlU3RyZWFtUmVhZGVyKCkKQEAgLTYyLDkgKzYxLDQ0IEBAIFJlYWRh
YmxlU3RyZWFtUmVhZGVyOjp+UmVhZGFibGVTdHJlYW1SZWFkZXIoKQogICAgIH0KIH0KIAotdm9p
ZCBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6Y2xvc2VkKENsb3NlZFN1Y2Nlc3NDYWxsYmFjaywgQ2xv
c2VkRXJyb3JDYWxsYmFjaykKK3ZvaWQgUmVhZGFibGVTdHJlYW1SZWFkZXI6OmluaXRpYWxpemUo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7ICAgIAorICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
IW1fc3RyZWFtLT5pc0xvY2tlZCgpLCAiQSBSZWFkYWJsZVN0cmVhbSBjYW5ub3QgYmUgbG9ja2Vk
IGJ5IHR3byByZWFkZXJzIGF0IHRoZSBzYW1lIHRpbWUuIik7CisgICAgbV9zdHJlYW0tPmxvY2so
KnRoaXMpOworICAgIGlmIChtX3N0cmVhbS0+aW50ZXJuYWxTdGF0ZSgpID09IFJlYWRhYmxlU3Ry
ZWFtOjpTdGF0ZTo6Q2xvc2VkKSB7CisgICAgICAgIGNoYW5nZVN0YXRlVG9DbG9zZWQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6cmVs
ZWFzZVN0cmVhbSgpCit7CisgICAgQVNTRVJUKG1fc3RyZWFtKTsKKyAgICBtX3N0cmVhbS0+cmVs
ZWFzZSgpOworICAgIG1fc3RyZWFtID0gbnVsbHB0cjsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVh
bVJlYWRlcjo6Y2xvc2VkKENsb3NlZFN1Y2Nlc3NDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIENs
b3NlZEVycm9yQ2FsbGJhY2spCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkNsb3NlZCkg
eworICAgICAgICBzdWNjZXNzQ2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBtX2Nsb3NlZFN1Y2Nlc3NDYWxsYmFjayA9IFdURjo6bW92ZShzdWNjZXNzQ2FsbGJhY2spOwor
fQorCit2b2lkIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpjaGFuZ2VTdGF0ZVRvQ2xvc2VkKCkKK3sK
KyAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6UmVhZGFibGUpOworICAgIG1fc3RhdGUgPSBT
dGF0ZTo6Q2xvc2VkOworCisgICAgaWYgKG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrKSB7CisgICAg
ICAgIENsb3NlZFN1Y2Nlc3NDYWxsYmFjayBjbG9zZWRTdWNjZXNzQ2FsbGJhY2sgPSBXVEY6Om1v
dmUobV9jbG9zZWRTdWNjZXNzQ2FsbGJhY2spOworICAgICAgICBjbG9zZWRTdWNjZXNzQ2FsbGJh
Y2soKTsKKyAgICB9CisgICAgQVNTRVJUKCFtX2Nsb3NlZFN1Y2Nlc3NDYWxsYmFjayk7CisgICAg
cmVsZWFzZVN0cmVhbSgpOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcmVhZCBwcm9taXNlIGZ1
bGZpbGxpbmcuCiB9CiAKIGNvbnN0IGNoYXIqIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmgKaW5kZXggZjYwMTRiMzk1MWFjMzIwMjA4YTQw
MmIwMjhiZjAxNWVkNTllM2MxOC4uZDU0N2QyY2NiMDU4MmY1MjlhNTVhZGJkMzNlMGVjY2E1YWNm
OWY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtUmVhZGVyLmgKQEAgLTQ2LDYgKzQ2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IC8vIFNlZSBodHRwczovL3N0cmVhbXMuc3BlYy53aGF0d2cub3JnLyNyZWFkZXItY2xhc3MgZm9y
IG1vcmUgaW5mb3JtYXRpb24uCiBjbGFzcyBSZWFkYWJsZVN0cmVhbVJlYWRlciA6IHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVk
PFJlYWRhYmxlU3RyZWFtUmVhZGVyPiB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7
CisgICAgICAgIFJlYWRhYmxlLAorICAgICAgICBDbG9zZWQsCisgICAgICAgIEVycm9yZWQKKyAg
ICB9OworCiAgICAgdmlydHVhbCB+UmVhZGFibGVTdHJlYW1SZWFkZXIoKTsKIAogICAgIFJlYWRh
YmxlU3RyZWFtKiBzdHJlYW0oKSB7IHJldHVybiBtX3N0cmVhbS5nZXQoKTsgfQpAQCAtNTQsMTUg
KzYwLDIzIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBDbG9z
ZWRFcnJvckNhbGxiYWNrOwogICAgIHZvaWQgY2xvc2VkKENsb3NlZFN1Y2Nlc3NDYWxsYmFjaywg
Q2xvc2VkRXJyb3JDYWxsYmFjayk7CiAKKyAgICB2b2lkIGNoYW5nZVN0YXRlVG9DbG9zZWQoKTsK
KwogcHJvdGVjdGVkOgogICAgIFJlYWRhYmxlU3RyZWFtUmVhZGVyKFJlYWRhYmxlU3RyZWFtJik7
CiAKKyAgICB2b2lkIHJlbGVhc2VTdHJlYW0oKTsKKwogcHJpdmF0ZToKICAgICAvLyBBY3RpdmVE
T01PYmplY3QgQVBJLgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKIAogICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVh
bT4gbV9zdHJlYW07CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpSZWFkYWJsZSB9OworCisg
ICAgQ2xvc2VkU3VjY2Vzc0NhbGxiYWNrIG1fY2xvc2VkU3VjY2Vzc0NhbGxiYWNrOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaAppbmRleCBkOTU2ODEy
YzQzZTIzMWNlNmE1MDhmNTQ5MTgwYmZkMGYyOTVlZDRkLi41OTJlYjBjN2EzZjNiODcxNTI4OTli
YjJmZDRmZDE1MWFmYmFhNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVByb21pc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBy
b21pc2UuaApAQCAtOTgsNiArOTgsMTMgQEAgaW5saW5lIHZvaWQgRGVmZXJyZWRXcmFwcGVyOjpy
ZXNvbHZlPGJvb2w+KGNvbnN0IGJvb2wmIHJlc3VsdCkKIH0KIAogdGVtcGxhdGU8PgoraW5saW5l
IHZvaWQgRGVmZXJyZWRXcmFwcGVyOjpyZXNvbHZlPEpTQzo6SlNWYWx1ZT4oY29uc3QgSlNDOjpK
U1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKGV4ZWMpOwor
ICAgIHJlc29sdmUoZXhlYywgdmFsdWUpOworfQordGVtcGxhdGU8PgogaW5saW5lIHZvaWQgRGVm
ZXJyZWRXcmFwcGVyOjpyZXNvbHZlPFZlY3Rvcjx1bnNpZ25lZCBjaGFyPj4oY29uc3QgVmVjdG9y
PHVuc2lnbmVkIGNoYXI+JiByZXN1bHQpCiB7CiAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBt
X2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3Bw
CmluZGV4IDE1ZjdhNGE1YjBlNjVlYzY5YmI2NjIzMjQ0ZWNhYzRkZjEyYmVlNGEuLjg0NmFjNzBk
OTUzMzNkODYwODg5MzI5MmJlYzAwYWFmZDdlNzA1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1
c3RvbS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgSlNWYWx1ZSBKU1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlcjo6Y2xvc2UoRXhlY1N0YXRlKiBleGVjKQogICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIGNh
c2Ugb2YgZHJhaW5pbmcuCiAgICAgaWYgKHN0cmVhbS0+aW50ZXJuYWxTdGF0ZSgpICE9IFJlYWRh
YmxlU3RyZWFtOjpTdGF0ZTo6UmVhZGFibGUpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNh
bGxpbmcgY2xvc2Ugb24gYSBzdHJlYW0gd2hpY2ggaXMgbm90IHJlYWRhYmxlIikpKTsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHN0cmVhbS0+Y2hhbmdlU3RhdGVUb0Nsb3NlZCgpOwogICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwCmluZGV4IGYw
NmNiMDIyYjQ0MzE4NzVkZjAxMjlhMDlkZjMxYjllMDhmOTkxNmIuLmU0YWRkYTcwMTU5MDdlMGVk
MzdiMzAzZThlMmMxNTRmNzQ4MDg3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwCkBAIC03MSw5
ICs3MSw4IEBAIEpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbVJlYWRlcjo6Y2xvc2VkKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKIHsKICAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVk
ID0gZ2V0T3JDcmVhdGVQcm9taXNlRGVmZXJyZWRGcm9tT2JqZWN0KGV4ZWMsIHRoaXMsIGdsb2Jh
bE9iamVjdCgpLCBjbG9zZWRQcm9taXNlU2xvdE5hbWUoKSk7CiAgICAgRGVmZXJyZWRXcmFwcGVy
IHdyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0
byBzdWNjZXNzQ2FsbGJhY2sgPSBbdGhpcywgd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAg
Ly8gRklYTUU6IHJldHVybiBqc1VuZGVmaW5lZCgpLgotICAgICAgICB3cmFwcGVyLnJlc29sdmUo
JmltcGwoKSk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxl
IHsKKyAgICAgICAgd3JhcHBlci5yZXNvbHZlKGpzVW5kZWZpbmVkKCkpOwogICAgIH07CiAgICAg
YXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbdGhpcywgd3JhcHBlcl0oKSBtdXRhYmxlIHsKICAgICAg
ICAgLy8gRklYTUU6IHJldHVybiBzdG9yZWQgZXJyb3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTYwM2JlNTdjMmQyYTFm
NmRmMzkxNWUxY2E1ZjFjYzY4M2RiMWE0OS4uNDdiY2M2YmI0YjNkZmU0MGU0MDc3OGIzMzJlOTcx
NWIzNTNjOGZhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA0LTIzICBYYWJpZXIgUm9k
cmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBSZWFk
YWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzdGFydCBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0byBj
bG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDMzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgor
CisgICAgICAgIFVwZGF0ZWQgZXhwZWN0YXRpb25zIHdpdGggbmV3IHBhc3Nlcy4KKworICAgICAg
ICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJj
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0
aW9uL3JlYWRhYmxlLXN0cmVhbS1yZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0cmVh
bXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQtZXhw
ZWN0ZWQudHh0OgorCiAyMDE1LTA0LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQ3JlYXRlIFJlbmRlclJ1YnlUZXh0IGZvciA8cnQ+IG9ubHkgd2hlbiB0aGUg
cGFyZW50IHJlbmRlcmVyIGlzIGEgUmVuZGVyUnVieS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQKaW5kZXggZTMyYTczNDk2NWIx
YjZkYWQzNmNiOTNmMTA1NTBmMDY1YzNmN2Q1ZC4uMTMwNjlhOWMzOTc3ZDM3ODZkNDU4NTljNGVl
YWY0YjM0ZTAzNjEwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlp
bmctc291cmNlcy1leHBlY3RlZC50eHQKQEAgLTE3LDExICsxNywxMSBAQCBGQUlMIFVuZGVybHlp
bmcgc291cmNlOiB0aHJvd2luZyBzdHJhdGVneS5zaG91bGRBcHBseUJhY2twcmVzc3VyZSBtZXRo
b2QgYXNzZXJ0XwogRkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogc3RyYXRlZ3kuc2l6ZSByZXR1cm5p
bmcgTmFOIGFzc2VydF91bnJlYWNoZWQ6IGVucXVldWUgZGlkbid0IHRocm93IFJlYWNoZWQgdW5y
ZWFjaGFibGUgY29kZQogRkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogc3RyYXRlZ3kuc2l6ZSByZXR1
cm5pbmcgLUluZmluaXR5IGFzc2VydF91bnJlYWNoZWQ6IGVucXVldWUgZGlkbid0IHRocm93IFJl
YWNoZWQgdW5yZWFjaGFibGUgY29kZQogRkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogc3RyYXRlZ3ku
c2l6ZSByZXR1cm5pbmcgK0luZmluaXR5IGFzc2VydF91bnJlYWNoZWQ6IGVucXVldWUgZGlkbid0
IHRocm93IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotVElNRU9VVCBVbmRlcmx5aW5nIHNvdXJj
ZTogY2FsbGluZyBjbG9zZSB0d2ljZSBvbiBhbiBlbXB0eSBzdHJlYW0gc2hvdWxkIHRocm93IHRo
ZSBzZWNvbmQgdGltZSBUZXN0IHRpbWVkIG91dAorUEFTUyBVbmRlcmx5aW5nIHNvdXJjZTogY2Fs
bGluZyBjbG9zZSB0d2ljZSBvbiBhbiBlbXB0eSBzdHJlYW0gc2hvdWxkIHRocm93IHRoZSBzZWNv
bmQgdGltZSAKIEZBSUwgVW5kZXJseWluZyBzb3VyY2U6IGNhbGxpbmcgY2xvc2UgdHdpY2Ugb24g
YSBub24tZW1wdHkgc3RyZWFtIHNob3VsZCB0aHJvdyB0aGUgc2Vjb25kIHRpbWUgcmVhZCBpcyBu
b3QgaW1wbGVtZW50ZWQKIEZBSUwgVW5kZXJseWluZyBzb3VyY2U6IGNhbGxpbmcgY2xvc2Ugb24g
YW4gZW1wdHkgY2FuY2VsZWQgc3RyZWFtIHNob3VsZCBub3QgdGhyb3cgY2FuY2VsIGlzIG5vdCBp
bXBsZW1lbnRlZAogRkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogY2FsbGluZyBjbG9zZSBvbiBhIG5v
bi1lbXB0eSBjYW5jZWxlZCBzdHJlYW0gc2hvdWxkIG5vdCB0aHJvdyBjYW5jZWwgaXMgbm90IGlt
cGxlbWVudGVkCiBUSU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiBjYWxsaW5nIGNsb3NlIGFmdGVy
IGVycm9yIHNob3VsZCB0aHJvdyBUZXN0IHRpbWVkIG91dAogVElNRU9VVCBVbmRlcmx5aW5nIHNv
dXJjZTogY2FsbGluZyBlcnJvciB0d2ljZSBzaG91bGQgdGhyb3cgdGhlIHNlY29uZCB0aW1lIFRl
c3QgdGltZWQgb3V0Ci1USU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiBjYWxsaW5nIGVycm9yIGFm
dGVyIGNsb3NlIHNob3VsZCB0aHJvdyBUZXN0IHRpbWVkIG91dAorUEFTUyBVbmRlcmx5aW5nIHNv
dXJjZTogY2FsbGluZyBlcnJvciBhZnRlciBjbG9zZSBzaG91bGQgdGhyb3cgCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxl
LXN0cmVhbS1yZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVu
Y2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXJlYWRlci1leHBlY3RlZC50eHQKaW5k
ZXggMjkxYjQ0NzFjZTExMmM3ZTc2OWE3ZTU1ZmJlNTliNGYzNjM1OTBkNC4uNzU5ZjEzYzMwZThl
NmJiY2YyYTVjOTdkOTQxZjNlYzBjN2I1NDRjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXJlYWRlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vcmVhZGFibGUtc3RyZWFtLXJlYWRlci1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDcgQEAg
UEFTUyBDb25zdHJ1Y3RpbmcgYSBSZWFkYWJsZVN0cmVhbVJlYWRlciBkaXJlY3RseSBzaG91bGQg
YmUgT0sgaWYgdGhlIHN0cmVhbSBpcwogUEFTUyBDb25zdHJ1Y3RpbmcgYSBSZWFkYWJsZVN0cmVh
bVJlYWRlciBkaXJlY3RseSBzaG91bGQgYmUgT0sgaWYgdGhlIHN0cmVhbSBpcyBlcnJvcmVkIAog
RkFJTCBSZWFkaW5nIGZyb20gYSByZWFkZXIgZm9yIGFuIGVtcHR5IHN0cmVhbSB3aWxsIHdhaXQg
dW50aWwgYSBjaHVuayBpcyBhdmFpbGFibGUgcmVhZCBpcyBub3QgaW1wbGVtZW50ZWQKIEZBSUwg
Y2FuY2VsKCkgb24gYSByZWFkZXIgcmVsZWFzZXMgdGhlIHJlYWRlciBiZWZvcmUgY2FsbGluZyB0
aHJvdWdoIGNhbmNlbCBpcyBub3QgaW1wbGVtZW50ZWQKLVRJTUVPVVQgY2xvc2VkIHNob3VsZCBi
ZSBmdWxmaWxsZWQgYWZ0ZXIgc3RyZWFtIGlzIGNsb3NlZCAoLmNsb3NlZCBhY2Nlc3MgYmVmb3Jl
IGFjcXVpcmluZykgVGVzdCB0aW1lZCBvdXQKK1BBU1MgY2xvc2VkIHNob3VsZCBiZSBmdWxmaWxs
ZWQgYWZ0ZXIgc3RyZWFtIGlzIGNsb3NlZCAoLmNsb3NlZCBhY2Nlc3MgYmVmb3JlIGFjcXVpcmlu
ZykgCiBGQUlMIGNsb3NlZCBzaG91bGQgYmUgZnVsZmlsbGVkIGFmdGVyIHJlYWRlciByZWxlYXNl
cyBpdHMgbG9jayAobXVsdGlwbGUgc3RyZWFtIGxvY2tzKSByZWxlYXNlTG9jayBpcyBub3QgaW1w
bGVtZW50ZWQKIEZBSUwgQ2Fubm90IHVzZSBhbiBhbHJlYWR5LXJlbGVhc2VkIHJlYWRlciB0byB1
bmxvY2sgYSBzdHJlYW0gYWdhaW4gcmVsZWFzZUxvY2sgaXMgbm90IGltcGxlbWVudGVkCiBGQUlM
IEdldHRpbmcgYSBzZWNvbmQgcmVhZGVyIGFmdGVyIGVycm9yaW5nIHRoZSBzdHJlYW0gc2hvdWxk
IHN1Y2NlZWQgcmVhZCBpcyBub3QgaW1wbGVtZW50ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50
YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKaW5kZXggOTIxMmRl
ZTk2MzMzZThjMDEyNTEyM2ZiYTljZmRmMTcxMzUwZmYzOC4uYTcxNjk4ZDNjYzk1NjY1ZDg0MjAx
YjEwNWIzZWJmY2I2ZDQ5N2UyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVh
ZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKQEAgLTEyLDEwICsxMiwxMCBAQCBG
QUlMIGNhbmNlbGluZyB2aWEgdGhlIHN0cmVhbSBzaG91bGQgZmFpbCBjYW5jZWwgaXMgbm90IGlt
cGxlbWVudGVkCiBQQVNTIFJ1bm5pbmcgdGVtcGxhdGVkUlNDbG9zZWQgd2l0aCBSZWFkYWJsZVN0
cmVhbSAoY2xvc2VkIHZpYSBjYWxsIGluIHN0YXJ0KSAKIEZBSUwgY2FuY2VsKCkgc2hvdWxkIHJl
dHVybiBhIGRpc3RpbmN0IGZ1bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZSBjYW5jZWwgaXMgbm90
IGltcGxlbWVudGVkCiBQQVNTIGdldFJlYWRlcigpIHNob3VsZCBiZSBPSyAKLUZBSUwgc2hvdWxk
IGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwg
YXV0by1yZWxlYXNlZCBSZWFkYWJsZVN0cmVhbSBpcyBsb2NrZWQKK1BBU1Mgc2hvdWxkIGJlIGFi
bGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0by1y
ZWxlYXNlZCAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Nsb3NlZFJlYWRlciB3aXRoIFJlYWRh
YmxlU3RyZWFtIChjbG9zZWQgdmlhIGNhbGwgaW4gc3RhcnQpIHJlYWRlciAKIEZBSUwgcmVhZCgp
IHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0gcmVh
ZCBpcyBub3QgaW1wbGVtZW50ZWQKLVRJTUVPVVQgY2xvc2VkIHNob3VsZCBmdWxmaWxsIHdpdGgg
dW5kZWZpbmVkIFRlc3QgdGltZWQgb3V0CitQQVNTIGNsb3NlZCBzaG91bGQgZnVsZmlsbCB3aXRo
IHVuZGVmaW5lZCAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Nsb3NlZCB3aXRoIFJlYWRhYmxl
U3RyZWFtIChjbG9zZWQgdmlhIGNhbmNlbCkgCiBGQUlMIGNhbmNlbCgpIHNob3VsZCByZXR1cm4g
YSBkaXN0aW5jdCBmdWxmaWxsZWQgcHJvbWlzZSBlYWNoIHRpbWUgY2FuY2VsIGlzIG5vdCBpbXBs
ZW1lbnRlZAogRkFJTCBnZXRSZWFkZXIoKSBzaG91bGQgYmUgT0sgY2FuY2VsIGlzIG5vdCBpbXBs
ZW1lbnRlZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>