<?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>225301</bug_id>
          
          <creation_ts>2021-05-03 06:34:21 -0700</creation_ts>
          <short_desc>REGRESSION (r260360): animation-wide timing function does not apply to 2-keyframe transform Web Animation</short_desc>
          <delta_ts>2021-05-04 10:14:55 -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>Animations</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=215918</see_also>
          <bug_file_loc>https://cldup.com/3gYZzqJk0K.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756156</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-03 06:34:21 -0700</bug_when>
    <thetext>The example https://cldup.com/3gYZzqJk0K.html regressed in r260360, it uses an animation-wide timing function with a y value outside of the [0-1] range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756157</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-03 06:34:57 -0700</bug_when>
    <thetext>This is a specific case of bug 215918 that we should be able to address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756158</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-03 06:35:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/77452933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756523</commentid>
    <comment_count>3</comment_count>
      <attachid>427661</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-04 07:03:49 -0700</bug_when>
    <thetext>Created attachment 427661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756557</commentid>
    <comment_count>4</comment_count>
      <attachid>427677</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-04 09:27:11 -0700</bug_when>
    <thetext>Created attachment 427677
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756575</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-04 10:14:54 -0700</bug_when>
    <thetext>Committed r276966 (237296@main): &lt;https://commits.webkit.org/237296@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427677.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427661</attachid>
            <date>2021-05-04 07:03:49 -0700</date>
            <delta_ts>2021-05-04 09:27:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225301-20210504160348.patch</filename>
            <type>text/plain</type>
            <size>33463</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE0ZGFjNDkwNjcxZjg4
MzI4ODhiNjBmY2I1ZGRiMzYxNGNlZGNlNS4uMmNlYTEyMjkxYjY0YmExODAxYmI5NWI5YmU5NDI0
Y2I5NmVmNjU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTA1LTA0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
NjAzNjApOiBhbmltYXRpb24td2lkZSB0aW1pbmcgZnVuY3Rpb24gZG9lcyBub3QgYXBwbHkgdG8g
Mi1rZXlmcmFtZSB0cmFuc2Zvcm0gV2ViIEFuaW1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MzAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83NzQ1MjkzMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDb3JlIEFuaW1hdGlvbiBoYXMgYSBsaW1pdGF0aW9uIHdoZXJlIGFuIGFuaW1hdGlvbi13
aWRlIGN1YmljIHRpbWluZyBmdW5jdGlvbiB3aXRoIHkgdmFsdWVzIG91dHNpZGUgb2YgdGhlIFsw
LTFdCisgICAgICAgIHJhbmdlIGFyZSBub3QgYXBwbGllZCBjb3JyZWN0bHkgc2luY2UgdGhvc2Ug
dmFsdWVzIGFyZSBjbGlwcGVkLiBUaGlzIGlzIG5vdCB0aGUgY2FzZSB3aXRoIHNpbWlsYXIgdGlt
aW5nIGZ1bmN0aW9ucworICAgICAgICBhcHBsaWVkIHRvIGEga2V5ZnJhbWUgaW50ZXJ2YWwuIFRo
aXMgaXMga25vd24gaXNzdWUgY292ZXJlZCBieSBidWcgMjE1OTE4LgorCisgICAgICAgIFdlIHdv
cmtlZCBhcm91bmQgdGhpcyBsaW1pdGF0aW9uIGZvciBDU1MgVHJhbnNpdGlvbnMgaW4gYnVnIDIx
NTgyNi4gSW5kZWVkLCBpbiB0aGlzIGNhc2Ugd2Uga25vdyB0aGF0IHRoZSBhbmltYXRpb24KKyAg
ICAgICAgaGFzIGEgc2luZ2xlIGludGVydmFsIGFuZCBubyBrZXlmcmFtZS1zcGVjaWZpYyB0aW1p
bmcgZnVuY3Rpb24sIHNvIEdyYXBoaWNzTGF5ZXJDQSB3b3VsZCBjaGVjayB3aGV0aGVyIHRoZSBB
bmltYXRpb24KKyAgICAgICAgb2JqZWN0IG9yaWdpbmF0ZWQgZnJvbSBhIENTUyBUcmFuc2l0aW9u
IGFuZCBzZXQgdGhlIGFuaW1hdGlvbi13aWRlIHRpbWluZyBmdW5jdGlvbiBvbiB0aGUgZ2VuZXJh
dGVkIEFuaW1hdGlvblZhbHVlLiAKKyAgICAgICAgCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCB3
ZSBnZW5lcmFsaXplIHRoaXMgYXBwcm9hY2ggdG8gYW55IGFuaW1hdGlvbiwgbm8gbWF0dGVyIGl0
cyBvcmlnaW4sIHRoYXQgaGFzIGEgc2luZ2xlIGtleWZyYW1lCisgICAgICAgIGludGVydmFsIHdp
dGggbm8gdGltaW5nIGZ1bmN0aW9uIG9yIGEgdGltaW5nIGZ1bmN0aW9uIHRoYXQgaGFzIGEgbGlu
ZWFyIGVmZmVjdC4gVG8gZG8gdGhpcywgd2UgZmlyc3QgY2hlY2sgaW4KKyAgICAgICAgR3JhcGhp
Y3NMYXllckNBOjphZGRBbmltYXRpb24qKCkgd2hldGhlciB3ZSBhcmUgZGVhbGluZyB3aXRoIGFu
IGFuaW1hdGlvbiB0aGF0IGhhcyBhbiBhbmltYXRpb24td2lkZSBjdWJpYyB0aW1pbmcKKyAgICAg
ICAgZnVuY3Rpb24gb3V0c2lkZSBvZiB0aGUgWzAtMV0gcmFuZ2UuIElmIHRoYXQgaXMgbm90IHRo
ZSBjYXNlLCB3ZSByZXR1cm4gZWFybHkgYW5kIGluZGljYXRlIHRoYXQgdGhpcyBhbmltYXRpb24K
KyAgICAgICAgY2Fubm90IGJlIHJ1biBhY2NlbGVyYXRlZC4KKworICAgICAgICBJZiBpbnN0ZWFk
IHRoYXQgaXMgdGhlIGNhc2UsIHdlIHBhc3MgYSBuZXcgYm9vbGVhbiBmbGFnIGRvd24gdGhyb3Vn
aCB0aGUgY2FsbCBzdGFjayB0byBzZXR1cEFuaW1hdGlvbigpIGFuZAorICAgICAgICB0aW1pbmdG
dW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKCkgd2hlcmUgd2UgY2hvb3NlIHRvIHVzZSB0aGUgYW5p
bWF0aW9uLXdpZGUgdGltaW5nIGZ1bmN0aW9uIG9uIHRoZSBmaXJzdCBrZXlmcmFtZQorICAgICAg
ICByYXRoZXIgdGhhbiB0aGUgYW5pbWF0aW9uIGl0c2VsZi4KKworICAgICAgICBUZXN0OiB3ZWJh
bmltYXRpb25zL2FjY2VsZXJhdGVkLXdlYi1hbmltYXRpb24td2l0aC1zaW5nbGUtaW50ZXJ2YWwt
YW5kLWVhc2luZy15LWF4aXMtYWJvdmUtMS5odG1sCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmJhY2tp
bmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
aW1pbmdGdW5jdGlvbklzQ3ViaWNUaW1pbmdGdW5jdGlvbldpdGhZVmFsdWVPdXRPZlJhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OmtleWZyYW1lVmFsdWVMaXN0SGFzU2luZ2xlSW50ZXJ2YWxXaXRo
TGluZWFyT3JFcXVpdmFsZW50VGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjphZGRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJv
bUtleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZp
bHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlQmFzaWNBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVLZXlmcmFtZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OmNyZWF0ZVNwcmluZ0FuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6dGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZy
YW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFuaW1h
dGlvbktleWZyYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmg6CisKIDIwMjEtMDUtMDMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIERlY29kaW5nIGFuIFNWRyBvZmYgdGhlIG1haW4gdGhyZWFkIGNhdXNlcyBhIGNy
YXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA0
MTc0ZGIyMmJkZWRiYzcxM2M2OWI3ODNiZGMwMGIzNjQ3MDZjODkzLi5jYmQ4MTY5OTA3MWJkMTU1
YzJiMmQ5YjQzMWJjOTBmMGI4MGUyNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTE4MjUsMTMgKzE4MjUsNiBAQCBSZWY8Y29uc3QgQW5pbWF0
aW9uPiBLZXlmcmFtZUVmZmVjdDo6YmFja2luZ0FuaW1hdGlvbkZvckNvbXBvc2l0ZWRSZW5kZXJl
cigpIGNvbgogICAgIGFuaW1hdGlvbi0+c2V0VGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24o
KS0+Y2xvbmUoKSk7CiAgICAgYW5pbWF0aW9uLT5zZXRQbGF5YmFja1JhdGUoZWZmZWN0QW5pbWF0
aW9uLT5wbGF5YmFja1JhdGUoKSk7CiAKLSAgICBpZiAobV9ibGVuZGluZ0tleWZyYW1lc1NvdXJj
ZSA9PSBCbGVuZGluZ0tleWZyYW1lc1NvdXJjZTo6Q1NTVHJhbnNpdGlvbiAmJiBpczxDdWJpY0Jl
emllclRpbWluZ0Z1bmN0aW9uPih0aW1pbmdGdW5jdGlvbigpKSkgewotICAgICAgICAvLyBGSVhN
RTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTkxOAotICAgICAg
ICAvLyBJZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgQ1NTIFRyYW5zaXRpb24gYW5kIHVzaW5nIGEg
Y3ViaWMgYmV6aWVyIHRpbWluZyBmdW5jdGlvbiwgd2Ugc2V0IHVwCi0gICAgICAgIC8vIHRoZSBB
bmltYXRpb24gb2JqZWN0IHNvIHRoYXQgR3JhcGhpY3NMYXllckNBIGNhbiB3b3JrIGFyb3VuZCBh
IENvcmUgQW5pbWF0aW9uIGxpbWl0YXRpb24uCi0gICAgICAgIGFuaW1hdGlvbi0+c2V0UHJvcGVy
dHkoeyBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpTaW5nbGVQcm9wZXJ0eSwgKm1fYmxlbmRp
bmdLZXlmcmFtZXMucHJvcGVydGllcygpLmJlZ2luKCkgfSk7Ci0gICAgfQotCiAgICAgc3dpdGNo
IChmaWxsKCkpIHsKICAgICBjYXNlIEZpbGxNb2RlOjpOb25lOgogICAgIGNhc2UgRmlsbE1vZGU6
OkF1dG86CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAppbmRleCAyMzQxZGNlZWMxYWExNDIzY2EyMmI2NTU1Yzk3OTE3
MTczNjE0MTQ5Li5iZDFiMjM1YjZhZjQzM2VlYWQyMGE1YTk4OGIxNDJjMGMyY2ZjODMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKQEAgLTEwNDcsNiArMTA0NywzMSBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6
YW5pbWF0aW9uSXNSdW5uaW5nKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkgY29uc3QKICAg
ICByZXR1cm4gaW5kZXggIT0gbm90Rm91bmQgJiYgbV9hbmltYXRpb25zW2luZGV4XS5tX3BsYXlT
dGF0ZSA9PSBQbGF5U3RhdGU6OlBsYXlpbmc7CiB9CiAKK3N0YXRpYyBib29sIHRpbWluZ0Z1bmN0
aW9uSXNDdWJpY1RpbWluZ0Z1bmN0aW9uV2l0aFlWYWx1ZU91dE9mUmFuZ2UoY29uc3QgVGltaW5n
RnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQoreworICAgIGlmICghaXM8Q3ViaWNCZXppZXJUaW1p
bmdGdW5jdGlvbj4odGltaW5nRnVuY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvIHlWYWx1ZUlzT3V0T2ZSYW5nZSA9IFtdKGRvdWJsZSB5KSAtPiBib29sIHsKKyAgICAg
ICAgcmV0dXJuIHkgPCAwIHx8IHkgPiAxOworICAgIH07CisKKyAgICBhdXRvJiBjdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uID0gZG93bmNhc3Q8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj4oKnRp
bWluZ0Z1bmN0aW9uKTsKKyAgICByZXR1cm4geVZhbHVlSXNPdXRPZlJhbmdlKGN1YmljQmV6aWVy
VGltaW5nRnVuY3Rpb24ueTEoKSkgfHwgeVZhbHVlSXNPdXRPZlJhbmdlKGN1YmljQmV6aWVyVGlt
aW5nRnVuY3Rpb24ueTIoKSk7Cit9CisKK3N0YXRpYyBib29sIGtleWZyYW1lVmFsdWVMaXN0SGFz
U2luZ2xlSW50ZXJ2YWxXaXRoTGluZWFyT3JFcXVpdmFsZW50VGltaW5nRnVuY3Rpb24oY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCkKK3sKKyAgICBpZiAodmFsdWVMaXN0LnNpemUo
KSAhPSAyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiB0aW1pbmdGdW5jdGlv
biA9IHZhbHVlTGlzdC5hdCgwKS50aW1pbmdGdW5jdGlvbigpOworICAgIGlmICghdGltaW5nRnVu
Y3Rpb24gfHwgaXM8TGluZWFyVGltaW5nRnVuY3Rpb24+KHRpbWluZ0Z1bmN0aW9uKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXM8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlv
bj4odGltaW5nRnVuY3Rpb24pICYmIGRvd25jYXN0PEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+
KCp0aW1pbmdGdW5jdGlvbikuaXNMaW5lYXIoKTsKK30KKwogc3RhdGljIGJvb2wgYW5pbWF0aW9u
Q2FuQmVBY2NlbGVyYXRlZChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25z
dCBBbmltYXRpb24qIGFuaW0pCiB7CiAgICAgaWYgKGFuaW0tPnBsYXliYWNrUmF0ZSgpICE9IDEg
fHwgIWFuaW0tPmRpcmVjdGlvbklzRm9yd2FyZHMoKSkKQEAgLTEwNzAsMjEgKzEwOTUsMjkgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OmFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlz
dCYgdmFsdWVMaXN0LCBjb25zdCBGbG8KICAgICBpZiAoIWFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0
ZWQodmFsdWVMaXN0LCBhbmltKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYm9vbCBr
ZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24gPSBmYWxzZTsKKyAg
ICAvLyBDb3JlIEFuaW1hdGlvbiBjbGlwcyB2YWx1ZXMgb3V0c2lkZSBvZiB0aGUgWzAtMV0gcmFu
Z2UgZm9yIGFuaW1hdGlvbi13aWRlIGN1YmljIHRpbWluZyBmdW5jdGlvbnMuCisgICAgaWYgKHRp
bWluZ0Z1bmN0aW9uSXNDdWJpY1RpbWluZ0Z1bmN0aW9uV2l0aFlWYWx1ZU91dE9mUmFuZ2UoYW5p
bS0+dGltaW5nRnVuY3Rpb24oKSkpIHsKKyAgICAgICAgaWYgKCFrZXlmcmFtZVZhbHVlTGlzdEhh
c1NpbmdsZUludGVydmFsV2l0aExpbmVhck9yRXF1aXZhbGVudFRpbWluZ0Z1bmN0aW9uKHZhbHVl
TGlzdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGtleWZyYW1lc1Nob3Vs
ZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbiA9IHRydWU7CisgICAgfQorCiAgICAgYm9v
bCBjcmVhdGVkQW5pbWF0aW9ucyA9IGZhbHNlOwogICAgIGlmIChhbmltYXRlZFByb3BlcnR5SXNU
cmFuc2Zvcm1PclJlbGF0ZWQodmFsdWVMaXN0LnByb3BlcnR5KCkpKQotICAgICAgICBjcmVhdGVk
QW5pbWF0aW9ucyA9IGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKHZhbHVl
TGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB7IHRpbWVPZmZzZXQgfSwgYm94U2l6
ZSk7CisgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9u
c0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHsg
dGltZU9mZnNldCB9LCBib3hTaXplLCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGlt
aW5nRnVuY3Rpb24pOwogICAgIGVsc2UgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1h
dGVkUHJvcGVydHlGaWx0ZXIpIHsKICAgICAgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRGaWx0
ZXJBbmltYXRpb25zKCkpCi0gICAgICAgICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZUZp
bHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFt
ZSwgU2Vjb25kcyB7IHRpbWVPZmZzZXQgfSk7CisgICAgICAgICAgICBjcmVhdGVkQW5pbWF0aW9u
cyA9IGNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwg
YW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB7IHRpbWVPZmZzZXQgfSwga2V5ZnJhbWVzU2hvdWxkVXNl
QW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKICAgICB9CiAjaWYgRU5BQkxFKEZJTFRFUlNf
TEVWRUxfMikKICAgICBlbHNlIGlmICh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFBy
b3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIpIHsKICAgICAgICAgaWYgKHN1cHBvcnRzQWNjZWxl
cmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkpCi0gICAgICAgICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9
IGNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5p
bWF0aW9uTmFtZSwgU2Vjb25kcyB7IHRpbWVPZmZzZXQgfSk7CisgICAgICAgICAgICBjcmVhdGVk
QW5pbWF0aW9ucyA9IGNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKHZhbHVlTGlz
dCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB7IHRpbWVPZmZzZXQgfSwga2V5ZnJhbWVz
U2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKICAgICB9CiAjZW5kaWYKICAg
ICBlbHNlCi0gICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRlQW5pbWF0aW9uRnJvbUtl
eWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgeyB0aW1lT2Zm
c2V0IH0pOworICAgICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZUFuaW1hdGlvbkZyb21L
ZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHsgdGltZU9m
ZnNldCB9LCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwog
CiAgICAgaWYgKGNyZWF0ZWRBbmltYXRpb25zKQogICAgICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNo
YW5nZWQoQW5pbWF0aW9uQ2hhbmdlZCB8IENvdmVyYWdlUmVjdENoYW5nZWQpOwpAQCAtMzI2MSw3
ICszMjk0LDcgQEAgc3RhdGljIGJvb2wgaXNLZXlmcmFtZShjb25zdCBLZXlmcmFtZVZhbHVlTGlz
dCYgbGlzdCkKICAgICByZXR1cm4gbGlzdC5zaXplKCkgPiAxOwogfQogCi1ib29sIEdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgY29uc3QgU3RyaW5n
JiBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQpCitib29sIEdyYXBoaWNzTGF5ZXJD
QTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5p
bWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewogICAgIEFTU0VSVCghYW5pbWF0ZWRQcm9wZXJ0
eUlzVHJhbnNmb3JtT3JSZWxhdGVkKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSAmJiAoIXN1cHBvcnRz
QWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkgfHwgdmFsdWVMaXN0LnByb3BlcnR5KCkgIT0g
QW5pbWF0ZWRQcm9wZXJ0eUZpbHRlcikpOwogCkBAIC0zMjczLDEzICszMzA2LDEzIEBAIGJvb2wg
R3JhcGhpY3NMYXllckNBOjpjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiB2YWx1CiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNhQW5p
bWF0aW9uOwogCiAgICAgaWYgKGlzS2V5ZnJhbWUodmFsdWVMaXN0KSkgewotICAgICAgICBjYUFu
aW1hdGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRv
U3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRkaXRpdmUpOwotICAgICAgICB2YWx1ZXNP
SyA9IHNldEFuaW1hdGlvbktleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW1hdGlvbiwgY2FBbmltYXRp
b24uZ2V0KCkpOworICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5pbWF0aW9u
KGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRk
aXRpdmUsIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7Cisg
ICAgICAgIHZhbHVlc09LID0gc2V0QW5pbWF0aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0
aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRp
bWluZ0Z1bmN0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoYW5pbWF0aW9uLT50aW1p
bmdGdW5jdGlvbigpLT5pc1NwcmluZ1RpbWluZ0Z1bmN0aW9uKCkpCi0gICAgICAgICAgICBjYUFu
aW1hdGlvbiA9IGNyZWF0ZVNwcmluZ0FuaW1hdGlvbihhbmltYXRpb24sIHByb3BlcnR5SWRUb1N0
cmluZyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGFkZGl0aXZlKTsKKyAgICAgICAgICAgIGNhQW5p
bWF0aW9uID0gY3JlYXRlU3ByaW5nQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3Ry
aW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRkaXRpdmUsIGtleWZyYW1lc1Nob3VsZFVzZUFu
aW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNh
QW5pbWF0aW9uID0gY3JlYXRlQmFzaWNBbmltYXRpb24oYW5pbWF0aW9uLCBwcm9wZXJ0eUlkVG9T
dHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBhZGRpdGl2ZSk7CisgICAgICAgICAgICBjYUFu
aW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3Ry
aW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRkaXRpdmUsIGtleWZyYW1lc1Nob3VsZFVzZUFu
aW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgICAgIHZhbHVlc09LID0gc2V0QW5pbWF0
aW9uRW5kcG9pbnRzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSk7CiAg
ICAgfQogCkBAIC0zMjkxLDIwICszMzI0LDIwIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVh
dGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29t
bWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBvcGVyYXRpb25zLCBjb25zdCBBbmltYXRpb24qIGFuaW1h
dGlvbiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBGbG9hdFNpemUmIGJveFNp
emUsIGludCBhbmltYXRpb25JbmRleCwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4
QW5pbWF0aW9uKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmlt
YXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgaW50IGFu
aW1hdGlvbkluZGV4LCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRyaXhBbmltYXRpb24s
IGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewog
ICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcCA9IGlzTWF0
cml4QW5pbWF0aW9uID8gVHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QgOiBvcGVyYXRpb25z
LT5vcGVyYXRpb25zKCkuYXQoYW5pbWF0aW9uSW5kZXgpLT50eXBlKCk7CiAKICAgICBSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gY2FBbmltYXRpb247CiAgICAgYm9vbCB2YWxpZE1hdHJpY2Vz
ID0gdHJ1ZTsKICAgICBpZiAoaXNLZXlmcmFtZSh2YWx1ZUxpc3QpKSB7Ci0gICAgICAgIGNhQW5p
bWF0aW9uID0gY3JlYXRlS2V5ZnJhbWVBbmltYXRpb24oYW5pbWF0aW9uLCBwcm9wZXJ0eUlkVG9T
dHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBmYWxzZSk7Ci0gICAgICAgIHZhbGlkTWF0cmlj
ZXMgPSBzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltYXRpb24s
IGNhQW5pbWF0aW9uLmdldCgpLCBhbmltYXRpb25JbmRleCwgdHJhbnNmb3JtT3AsIGlzTWF0cml4
QW5pbWF0aW9uLCBib3hTaXplKTsKKyAgICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVLZXlmcmFt
ZUFuaW1hdGlvbihhbmltYXRpb24sIHByb3BlcnR5SWRUb1N0cmluZyh2YWx1ZUxpc3QucHJvcGVy
dHkoKSksIGZhbHNlLCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rp
b24pOworICAgICAgICB2YWxpZE1hdHJpY2VzID0gc2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJh
bWVzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5k
ZXgsIHRyYW5zZm9ybU9wLCBpc01hdHJpeEFuaW1hdGlvbiwgYm94U2l6ZSwga2V5ZnJhbWVzU2hv
dWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoYW5pbWF0aW9uLT50aW1pbmdGdW5jdGlvbigpLT5pc1NwcmluZ1RpbWluZ0Z1bmN0aW9u
KCkpCi0gICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZVNwcmluZ0FuaW1hdGlvbihhbmlt
YXRpb24sIHByb3BlcnR5SWRUb1N0cmluZyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGZhbHNlKTsK
KyAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlU3ByaW5nQW5pbWF0aW9uKGFuaW1hdGlv
biwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgZmFsc2UsIGtleWZy
YW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlQmFzaWNBbmltYXRpb24oYW5pbWF0aW9u
LCBwcm9wZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBmYWxzZSk7CisgICAg
ICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJv
cGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgZmFsc2UsIGtleWZyYW1lc1No
b3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgICAgIHZhbGlkTWF0cmlj
ZXMgPSBzZXRUcmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHModmFsdWVMaXN0LCBhbmltYXRpb24s
IGNhQW5pbWF0aW9uLmdldCgpLCBhbmltYXRpb25JbmRleCwgdHJhbnNmb3JtT3AsIGlzTWF0cml4
QW5pbWF0aW9uLCBib3hTaXplKTsKICAgICB9CiAgICAgCkBAIC0zMzE1LDcgKzMzNDgsNyBAQCBi
b29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEdyYXBo
aWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24s
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBjb25zdCBG
bG9hdFNpemUmIGJveFNpemUpCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3Jt
QW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlz
dCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIGJvb2wga2V5
ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewogICAgIEFTU0VS
VChhbmltYXRlZFByb3BlcnR5SXNUcmFuc2Zvcm1PclJlbGF0ZWQodmFsdWVMaXN0LnByb3BlcnR5
KCkpKTsKIApAQCAtMzMzMCw3ICszMzYzLDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0
ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKICAg
ICBpbnQgbnVtQW5pbWF0aW9ucyA9IGlzTWF0cml4QW5pbWF0aW9uID8gMSA6IG9wZXJhdGlvbnMt
PnNpemUoKTsKIAogICAgIGZvciAoaW50IGFuaW1hdGlvbkluZGV4ID0gMDsgYW5pbWF0aW9uSW5k
ZXggPCBudW1BbmltYXRpb25zOyArK2FuaW1hdGlvbkluZGV4KSB7Ci0gICAgICAgIGlmICghYXBw
ZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0LCBvcGVyYXRpb25zLCBhbmltYXRp
b24sIGFuaW1hdGlvbk5hbWUsIGJveFNpemUsIGFuaW1hdGlvbkluZGV4LCB0aW1lT2Zmc2V0LCBp
c01hdHJpeEFuaW1hdGlvbikpIHsKKyAgICAgICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5p
bWF0aW9ucyh2YWx1ZUxpc3QsIG9wZXJhdGlvbnMsIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwg
Ym94U2l6ZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uLCBr
ZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pKSB7CiAgICAgICAg
ICAgICB2YWxpZE1hdHJpY2VzID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtMzMzOSw3ICszMzcyLDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5z
Zm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKICAgICByZXR1
cm4gdmFsaWRNYXRyaWNlczsKIH0KIAotYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5j
b21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNv
bnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlv
biwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBpbnQgYW5pbWF0aW9uSW5kZXgsIFNlY29u
ZHMgdGltZU9mZnNldCkKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVk
QW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBGaWx0
ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgaW50IGFuaW1hdGlvbkluZGV4LCBTZWNvbmRzIHRpbWVP
ZmZzZXQsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9u
KQogewogICAgIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcCA9IG9wZXJh
dGlvbi0+dHlwZSgpOwogICAgIGludCBudW1BbmltYXRlZFByb3BlcnRpZXMgPSBQbGF0Zm9ybUNB
RmlsdGVyczo6bnVtQW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0aWVzKGZpbHRlck9wKTsKQEAgLTMzNTcs
MTAgKzMzOTAsMTAgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRB
bmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWwKICAgICAgICAgU3RyaW5nIGtl
eVBhdGggPSBtYWtlU3RyaW5nKCJmaWx0ZXJzLmZpbHRlcl8iLCBhbmltYXRpb25JbmRleCwgJy4n
LCBQbGF0Zm9ybUNBRmlsdGVyczo6YW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0eU5hbWUoZmlsdGVyT3As
IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlz
S2V5ZnJhbWUodmFsdWVMaXN0KSkgewotICAgICAgICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVL
ZXlmcmFtZUFuaW1hdGlvbihhbmltYXRpb24sIGtleVBhdGgsIGZhbHNlKTsKLSAgICAgICAgICAg
IHZhbHVlc09LID0gc2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0
aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIGludGVybmFsRmlsdGVyUHJv
cGVydHlJbmRleCwgZmlsdGVyT3ApOworICAgICAgICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVL
ZXlmcmFtZUFuaW1hdGlvbihhbmltYXRpb24sIGtleVBhdGgsIGZhbHNlLCBrZXlmcmFtZXNTaG91
bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOworICAgICAgICAgICAgdmFsdWVzT0sg
PSBzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltYXRpb24sIGNhQW5p
bWF0aW9uLmdldCgpLCBhbmltYXRpb25JbmRleCwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4
LCBmaWx0ZXJPcCwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9u
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlQmFz
aWNBbmltYXRpb24oYW5pbWF0aW9uLCBrZXlQYXRoLCBmYWxzZSk7CisgICAgICAgICAgICBjYUFu
aW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGFuaW1hdGlvbiwga2V5UGF0aCwgZmFsc2Us
IGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgICAg
ICAgICB2YWx1ZXNPSyA9IHNldEZpbHRlckFuaW1hdGlvbkVuZHBvaW50cyh2YWx1ZUxpc3QsIGFu
aW1hdGlvbiwgY2FBbmltYXRpb24uZ2V0KCksIGFuaW1hdGlvbkluZGV4LCBpbnRlcm5hbEZpbHRl
clByb3BlcnR5SW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMzM3Miw3ICszNDA1LDcg
QEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBH
cmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9u
LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgdGltZU9mZnNldCkKK2Jvb2wg
R3JhcGhpY3NMYXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlv
biwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wg
a2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewogI2lmIEVO
QUJMRShGSUxURVJTX0xFVkVMXzIpCiAgICAgQVNTRVJUKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09
IEFuaW1hdGVkUHJvcGVydHlGaWx0ZXIgfHwgdmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0
ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyKTsKQEAgLTMzOTgsMzUgKzM0MzEsMzUgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVz
KGNvbnN0IEtleWZyYW1lVmFsdWVMaXMKICAgICB9CiAKICAgICBmb3IgKGludCBhbmltYXRpb25J
bmRleCA9IDA7IGFuaW1hdGlvbkluZGV4IDwgbnVtQW5pbWF0aW9uczsgKythbmltYXRpb25JbmRl
eCkgewotICAgICAgICBpZiAoIWFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKHZhbHVlTGlz
dCwgb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuYXQoYW5pbWF0aW9uSW5kZXgpLmdldCgpLCBhbmlt
YXRpb24sIGFuaW1hdGlvbk5hbWUsIGFuaW1hdGlvbkluZGV4LCB0aW1lT2Zmc2V0KSkKKyAgICAg
ICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3QsIG9wZXJhdGlv
bnMub3BlcmF0aW9ucygpLmF0KGFuaW1hdGlvbkluZGV4KS5nZXQoKSwgYW5pbWF0aW9uLCBhbmlt
YXRpb25OYW1lLCBhbmltYXRpb25JbmRleCwgdGltZU9mZnNldCwga2V5ZnJhbWVzU2hvdWxkVXNl
QW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmPFBsYXRmb3JtQ0FBbmltYXRpb24+
IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBh
bmltLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYWRkaXRpdmUpCitSZWY8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVCYXNpY0FuaW1hdGlvbihjb25zdCBB
bmltYXRpb24qIGFuaW0sIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSwgYm9v
bCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pCiB7CiAgICAg
YXV0byBiYXNpY0FuaW0gPSBjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmlt
YXRpb246OkJhc2ljLCBrZXlQYXRoKTsKLSAgICBzZXR1cEFuaW1hdGlvbihiYXNpY0FuaW0ucHRy
KCksIGFuaW0sIGFkZGl0aXZlKTsKKyAgICBzZXR1cEFuaW1hdGlvbihiYXNpY0FuaW0ucHRyKCks
IGFuaW0sIGFkZGl0aXZlLCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVu
Y3Rpb24pOwogICAgIHJldHVybiBiYXNpY0FuaW07CiB9CiAKLVJlZjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGNvbnN0IEFuaW1h
dGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFkZGl0aXZlKQorUmVmPFBs
YXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlS2V5ZnJhbWVBbmltYXRp
b24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYWRk
aXRpdmUsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9u
KQogewogICAgIGF1dG8ga2V5ZnJhbWVBbmltID0gY3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpLZXlmcmFtZSwga2V5UGF0aCk7Ci0gICAgc2V0dXBBbmltYXRp
b24oa2V5ZnJhbWVBbmltLnB0cigpLCBhbmltLCBhZGRpdGl2ZSk7CisgICAgc2V0dXBBbmltYXRp
b24oa2V5ZnJhbWVBbmltLnB0cigpLCBhbmltLCBhZGRpdGl2ZSwga2V5ZnJhbWVzU2hvdWxkVXNl
QW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKICAgICByZXR1cm4ga2V5ZnJhbWVBbmltOwog
fQogCi1SZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVTcHJp
bmdBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleVBhdGgs
IGJvb2wgYWRkaXRpdmUpCitSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNB
OjpjcmVhdGVTcHJpbmdBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgsIGJvb2wgYWRkaXRpdmUsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0
aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewogICAgIGF1dG8gYmFzaWNBbmltID0gY3JlYXRlUGxh
dGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUNBQW5pbWF0aW9uOjpTcHJpbmcsIGtleVBhdGgpOwot
ICAgIHNldHVwQW5pbWF0aW9uKGJhc2ljQW5pbS5wdHIoKSwgYW5pbSwgYWRkaXRpdmUpOworICAg
IHNldHVwQW5pbWF0aW9uKGJhc2ljQW5pbS5wdHIoKSwgYW5pbSwgYWRkaXRpdmUsIGtleWZyYW1l
c1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgcmV0dXJuIGJhc2lj
QW5pbTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKFBsYXRmb3Jt
Q0FBbmltYXRpb24qIHByb3BlcnR5QW5pbSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBib29sIGFk
ZGl0aXZlKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FB
bmltYXRpb24qIHByb3BlcnR5QW5pbSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBib29sIGFkZGl0
aXZlLCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikK
IHsKICAgICBkb3VibGUgZHVyYXRpb24gPSBhbmltLT5kdXJhdGlvbigpOwogICAgIGlmIChkdXJh
dGlvbiA8PSAwKQpAQCAtMzQ2NSwxMyArMzQ5OCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
c2V0dXBBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiogcHJvcGVydHlBbmltLCBjb25zdCBB
bgogICAgIC8vIEEgQ1NTIFRyYW5zaXRpb24gaXMgdGhlIG9ubHkgc2NlbmFyaW8gd2hlcmUgQW5p
bWF0aW9uOjpwcm9wZXJ0eSgpIHdpbGwgaGF2ZQogICAgIC8vIGl0cyBtb2RlIHNldCB0byBTaW5n
bGVQcm9wZXJ0eS4gSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBzZXQgdGhlIGFuaW1hdGlvbi13aWRl
CiAgICAgLy8gdGltaW5nIGZ1bmN0aW9uIHRvIHdvcmsgYXJvdW5kIGEgQ29yZSBBbmltYXRpb24g
bGltaXRhdGlvbi4KLSAgICBpZiAoYW5pbS0+cHJvcGVydHkoKS5tb2RlICE9IEFuaW1hdGlvbjo6
VHJhbnNpdGlvbk1vZGU6OlNpbmdsZVByb3BlcnR5KQorICAgIGlmICgha2V5ZnJhbWVzU2hvdWxk
VXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogICAgICAgICBwcm9wZXJ0eUFuaW0tPnNl
dFRpbWluZ0Z1bmN0aW9uKGFuaW0tPnRpbWluZ0Z1bmN0aW9uKCkpOwogfQogCi1jb25zdCBUaW1p
bmdGdW5jdGlvbiYgR3JhcGhpY3NMYXllckNBOjp0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZh
bHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlJiBhbmltVmFsdWUsIGNvbnN0IEFuaW1hdGlvbiYgYW5p
bSkKK2NvbnN0IFRpbWluZ0Z1bmN0aW9uJiBHcmFwaGljc0xheWVyQ0E6OnRpbWluZ0Z1bmN0aW9u
Rm9yQW5pbWF0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uVmFsdWUmIGFuaW1WYWx1ZSwgY29uc3Qg
QW5pbWF0aW9uJiBhbmltLCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1p
bmdGdW5jdGlvbikKIHsKLSAgICBpZiAoYW5pbS5wcm9wZXJ0eSgpLm1vZGUgPT0gQW5pbWF0aW9u
OjpUcmFuc2l0aW9uTW9kZTo6U2luZ2xlUHJvcGVydHkgJiYgYW5pbS50aW1pbmdGdW5jdGlvbigp
KSB7CisgICAgaWYgKGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlv
biAmJiBhbmltLnRpbWluZ0Z1bmN0aW9uKCkpIHsKICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU5MTgKICAgICAgICAgLy8gQSBDU1Mg
VHJhbnNpdGlvbiBpcyB0aGUgb25seSBzY2VuYXJpbyB3aGVyZSBBbmltYXRpb246OnByb3BlcnR5
KCkgd2lsbCBoYXZlCiAgICAgICAgIC8vIGl0cyBtb2RlIHNldCB0byBTaW5nbGVQcm9wZXJ0eS4g
SW4gdGhpcyBjYXNlLCB3ZSBjaG9zZSBub3QgdG8gc2V0IHNldCB0aGUKQEAgLTM1MDcsNyArMzU0
MCw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1D
QUFuaW1hdGlvbioga2V5ZnJhbWVBbmltKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1h
dGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBB
bmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVBbmltLCBi
b29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICAg
ICBWZWN0b3I8ZmxvYXQ+IGtleVRpbWVzOwogICAgIFZlY3RvcjxmbG9hdD4gdmFsdWVzOwpAQCAt
MzUzMiw3ICszNTY1LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZy
YW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEpKQotICAgICAgICAgICAgdGltaW5n
RnVuY3Rpb25zLmFwcGVuZCgmdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShmb3J3YXJk
cyA/IGN1clZhbHVlIDogdmFsdWVMaXN0LmF0KGluZGV4IC0gMSksICphbmltYXRpb24pKTsKKyAg
ICAgICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQoJnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0
aW9uVmFsdWUoZm9yd2FyZHMgPyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCAq
YW5pbWF0aW9uLCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24p
KTsKICAgICB9CiAKICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsKQEAg
LTM2MDAsNyArMzYzMyw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1Bbmlt
YXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlm
cmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9u
KiBhbmltYXRpb24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGtleWZyYW1lQW5pbSwgaW50IGZ1bmN0
aW9uSW5kZXgsIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcFR5
cGUsIGJvb2wgaXNNYXRyaXhBbmltYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSkKK2Jv
b2wgR3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24s
IFBsYXRmb3JtQ0FBbmltYXRpb24qIGtleWZyYW1lQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIFRy
YW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcFR5cGUsIGJvb2wgaXNN
YXRyaXhBbmltYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgYm9vbCBrZXlmcmFtZXNT
aG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pCiB7CiAgICAgVmVjdG9yPGZsb2F0
PiBrZXlUaW1lczsKICAgICBWZWN0b3I8ZmxvYXQ+IGZsb2F0VmFsdWVzOwpAQCAtMzY0NSw3ICsz
Njc4LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZy
YW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmEKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChpIDwgKHZhbHVlTGlzdC5zaXplKCkgLSAxKSkKLSAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9u
cy5hcHBlbmQoJnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMgPyBjdXJW
YWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCAqYW5pbWF0aW9uKSk7CisgICAgICAgICAg
ICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKCZ0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVl
KGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgKmFuaW1hdGlv
biwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKSk7CiAgICAg
fQogICAgIAogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGltZXMoa2V5VGltZXMpOwpAQCAtMzcw
Miw3ICszNzM1LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFuaW1hdGlvbkVu
ZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWUKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFuaW1hdGlvbktleWZyYW1lcyhj
b25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1h
dGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVBbmltLCBpbnQgZnVuY3Rpb25JbmRl
eCwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCwgRmlsdGVyT3BlcmF0aW9uOjpPcGVy
YXRpb25UeXBlIGZpbHRlck9wKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFuaW1h
dGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBB
bmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVBbmltLCBp
bnQgZnVuY3Rpb25JbmRleCwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCwgRmlsdGVy
T3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIGZpbHRlck9wLCBib29sIGtleWZyYW1lc1Nob3VsZFVz
ZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICAgICBWZWN0b3I8ZmxvYXQ+IGtleVRp
bWVzOwogICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4gdmFsdWVzOwpAQCAtMzcy
NSw3ICszNzU4LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFuaW1hdGlvbktl
eWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWUKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChpIDwgKHZhbHVlTGlzdC5zaXplKCkgLSAxKSkKLSAgICAgICAgICAgIHRpbWluZ0Z1
bmN0aW9ucy5hcHBlbmQoJnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMg
PyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCAqYW5pbWF0aW9uKSk7CisgICAg
ICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKCZ0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlv
blZhbHVlKGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgKmFu
aW1hdGlvbiwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKSk7
CiAgICAgfQogICAgIAogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGltZXMoa2V5VGltZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuaAppbmRleCBmODQwNzhlMmRlZDhjNTVkNWNkYzllMDU4ZTA2ZTRiYjM1YWJiNGZkLi5m
ZjhkZGM1MzViNmMwNDQ0OGY2ZDk5NDIwZTAwODhhM2MyNWUxYjQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAt
MjU1LDI2ICsyNTUsMjYgQEAgcHJpdmF0ZToKICAgICBMYXllck1hcCogYW5pbWF0ZWRMYXllckNs
b25lcyhBbmltYXRlZFByb3BlcnR5SUQpIGNvbnN0OwogICAgIHN0YXRpYyB2b2lkIGNsZWFyQ2xv
bmVzKExheWVyTWFwJik7CiAKLSAgICBib29sIGNyZWF0ZUFuaW1hdGlvbkZyb21LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgdGltZU9mZnNldCk7Ci0gICAgYm9vbCBjcmVhdGVUcmFu
c2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNv
bnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB0aW1l
T2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUpOwotICAgIGJvb2wgY3JlYXRlRmlsdGVy
QW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBB
bmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgdGltZU9mZnNl
dCk7CisgICAgYm9vbCBjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1l
LCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lk
ZVRpbWluZ0Z1bmN0aW9uKTsKKyAgICBib29sIGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9t
S2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29u
c3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQsIGNvbnN0IEZsb2F0
U2l6ZSYgYm94U2l6ZSwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5n
RnVuY3Rpb24pOworICAgIGJvb2wgY3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgdGltZU9mZnNldCwgYm9vbCBrZXlmcmFtZXNTaG91bGRV
c2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogCiAgICAgLy8gUmV0dXJuIGF1dG9yZWxl
YXNlZCBhbmltYXRpb24gKHVzZSBSZXRhaW5QdHI/KQotICAgIFJlZjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBjcmVhdGVCYXNpY0FuaW1hdGlvbihjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgsIGJvb2wgYWRkaXRpdmUpOwotICAgIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBj
cmVhdGVLZXlmcmFtZUFuaW1hdGlvbihjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBi
b29sIGFkZGl0aXZlKTsKLSAgICBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlU3ByaW5n
QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYsIGJvb2wgYWRkaXRpdmUp
OwotICAgIHZvaWQgc2V0dXBBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiosIGNvbnN0IEFu
aW1hdGlvbiosIGJvb2wgYWRkaXRpdmUpOworICAgIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBj
cmVhdGVCYXNpY0FuaW1hdGlvbihjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgsIGJvb2wgYWRkaXRpdmUsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRp
bWluZ0Z1bmN0aW9uKTsKKyAgICBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlS2V5ZnJh
bWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBhZGRpdGl2
ZSwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwor
ICAgIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGVTcHJpbmdBbmltYXRpb24oY29uc3Qg
QW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBhZGRpdGl2ZSwgYm9vbCBrZXlmcmFtZXNT
aG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOworICAgIHZvaWQgc2V0dXBBbmlt
YXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiosIGNvbnN0IEFuaW1hdGlvbiosIGJvb2wgYWRkaXRp
dmUsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsK
ICAgICAKLSAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRp
b25WYWx1ZShjb25zdCBBbmltYXRpb25WYWx1ZSYsIGNvbnN0IEFuaW1hdGlvbiYpOworICAgIGNv
bnN0IFRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGNvbnN0
IEFuaW1hdGlvblZhbHVlJiwgY29uc3QgQW5pbWF0aW9uJiwgYm9vbCBrZXlmcmFtZXNTaG91bGRV
c2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgIAogICAgIGJvb2wgc2V0QW5pbWF0
aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwg
UGxhdGZvcm1DQUFuaW1hdGlvbiopOwotICAgIGJvb2wgc2V0QW5pbWF0aW9uS2V5ZnJhbWVzKGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1h
dGlvbiopOworICAgIGJvb2wgc2V0QW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1hdGlvbiosIGJvb2wga2V5
ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKIAogICAgIGJvb2wg
c2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jiwg
Y29uc3QgQW5pbWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1hdGlvbiosIGludCBmdW5jdGlvbkluZGV4
LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUsIGJvb2wgaXNNYXRyaXhBbmltYXRp
b24sIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSk7Ci0gICAgYm9vbCBzZXRUcmFuc2Zvcm1Bbmlt
YXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24q
LCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiwgaW50IGZ1bmN0aW9uSW5kZXgsIFRyYW5zZm9ybU9wZXJh
dGlvbjo6T3BlcmF0aW9uVHlwZSwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3QgRmxvYXRT
aXplJiBib3hTaXplKTsKKyAgICBib29sIHNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhj
b25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmlt
YXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25U
eXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIGJv
b2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKICAgICAK
ICAgICBib29sIHNldEZpbHRlckFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRpb24qLCBpbnQgZnVuY3Rp
b25JbmRleCwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7Ci0gICAgYm9vbCBzZXRG
aWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBB
bmltYXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiwgaW50IGZ1bmN0aW9uSW5kZXgsIGludCBp
bnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgsIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlw
ZSk7CisgICAgYm9vbCBzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiwgaW50IGZ1
bmN0aW9uSW5kZXgsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgsIEZpbHRlck9wZXJh
dGlvbjo6T3BlcmF0aW9uVHlwZSwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRl
VGltaW5nRnVuY3Rpb24pOwogCiAgICAgYm9vbCBpc1J1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb24o
KSBjb25zdDsKIApAQCAtNTExLDggKzUxMSw4IEBAIHByaXZhdGU6CiAgICAgICAgIG1vdmVPckNv
cHlBbmltYXRpb25zKENvcHksIGZyb21MYXllciwgdG9MYXllcik7CiAgICAgfQogCi0gICAgYm9v
bCBhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYs
IGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgaW50IGFuaW1hdGlv
bkluZGV4LCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRyaXhBbmltYXRpb24pOwotICAg
IGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxp
c3QmLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbk5hbWUsIGludCBhbmltYXRpb25JbmRleCwgU2Vjb25kcyB0aW1lT2Zmc2V0
KTsKKyAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyosIGNvbnN0IEFuaW1hdGlvbios
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBp
bnQgYW5pbWF0aW9uSW5kZXgsIFNlY29uZHMgdGltZU9mZnNldCwgYm9vbCBpc01hdHJpeEFuaW1h
dGlvbiwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24p
OworICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBjb25zdCBBbmltYXRpb24qLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGludCBhbmltYXRpb25JbmRleCwgU2Vjb25kcyB0aW1l
T2Zmc2V0LCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlv
bik7CiAKICAgICBlbnVtIExheWVyQ2hhbmdlIDogdWludDY0X3QgewogICAgICAgICBOb0NoYW5n
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFlMzZiOTBiNDQ4
OTU5M2JjYzY0ZmI0MmE0Mzk2MzZjMjdmM2FlNzcuLjMxZmY2NDIxMWZmN2NhM2EwZjA5MzJmYWIz
MDNlNDRmYjg2MjM1YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNS0wNCAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjYw
MzYwKTogYW5pbWF0aW9uLXdpZGUgdGltaW5nIGZ1bmN0aW9uIGRvZXMgbm90IGFwcGx5IHRvIDIt
a2V5ZnJhbWUgdHJhbnNmb3JtIFdlYiBBbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Nzc0NTI5MzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgdGVzdCB0aGF0IHJ1bnMgYSBKUy1vcmlnbmF0ZWQgYW5pbWF0aW9uIHdpdGggYSBz
aW5nbGUgaW50ZXJ2YWwgYW5kIGFuIGFuaW1hdGlvbi13aWRlIGN1YmljIHRpbWluZworICAgICAg
ICBmdW5jdGlvbiB3aXRoIHkgdmFsdWVzIG91dHNpZGUgb2YgdGhlIFswLTFdIHJhbmdlLgorCisg
ICAgICAgICogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2lu
Z2xlLWludGVydmFsLWFuZC1lYXNpbmcteS1heGlzLWFib3ZlLTEtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdp
dGgtc2luZ2xlLWludGVydmFsLWFuZC1lYXNpbmcteS1heGlzLWFib3ZlLTEuaHRtbDogQWRkZWQu
CisKIDIwMjEtMDUtMDMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IERlY29kaW5nIGFuIFNWRyBvZmYgdGhlIG1haW4gdGhyZWFkIGNhdXNlcyBhIGNyYXNoCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLXdlYi1hbmltYXRp
b24td2l0aC1zaW5nbGUtaW50ZXJ2YWwtYW5kLWVhc2luZy15LWF4aXMtYWJvdmUtMS1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0
aW9uLXdpdGgtc2luZ2xlLWludGVydmFsLWFuZC1lYXNpbmcteS1heGlzLWFib3ZlLTEtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZDNhNGYxY2Y3YWQwZGQzODFkN2Q2OGM3OWU1YzZhNDM1MjY3
OTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVy
YXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2luZ2xlLWludGVydmFsLWFuZC1lYXNpbmcteS1heGlz
LWFib3ZlLTEtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIgQEAKKzxib2R5IHN0eWxlPSJiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbiI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLXdlYi1hbmltYXRpb24td2l0aC1zaW5nbGUtaW50ZXJ2
YWwtYW5kLWVhc2luZy15LWF4aXMtYWJvdmUtMS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0
aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2luZ2xlLWludGVydmFsLWFuZC1l
YXNpbmcteS1heGlzLWFib3ZlLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDllODExNWFjMjcxYmYyMmE2
Zjg3MDdlM2ZkY2RlMjljOTJmNmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YW5pbWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2luZ2xlLWludGVydmFs
LWFuZC1lYXNpbmcteS1heGlzLWFib3ZlLTEuaHRtbApAQCAtMCwwICsxLDQwIEBACis8Ym9keT4K
KzxzdHlsZT4KKyAgICAKKyAgICBib2R5IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworICAgIH0KKyAgICAKKyAgICBkaXYgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIHRvcDogMDsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgd2lkdGg6IDQwMHB4Owor
ICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsK
KyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7CisgICAgICAgIHRyYW5zZm9ybTog
c2NhbGUoMC41KTsKKyAgICB9CisKKzwvc3R5bGU+Cis8ZGl2PjwvZGl2PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworKGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRh
dGUoKTsKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKS5hbmltYXRlKHsgdHJhbnNm
b3JtOiAic2NhbGUoMSkiIH0sIHsgZHVyYXRpb246IDIwMDAsIGVhc2luZzogImN1YmljLWJlemll
cigwLCAyMDAsIDEsIDIwMCkiIH0pOworCisgICAgYXdhaXQgUHJvbWlzZS5hbGwoZG9jdW1lbnQu
Z2V0QW5pbWF0aW9ucygpLm1hcChhbmltYXRpb24gPT4gYW5pbWF0aW9uLnJlYWR5KSk7CisgICAg
YXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgYXdhaXQgVUlI
ZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSkoKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427677</attachid>
            <date>2021-05-04 09:27:11 -0700</date>
            <delta_ts>2021-05-04 10:14:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225301-20210504182709.patch</filename>
            <type>text/plain</type>
            <size>34457</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE0ZGFjNDkwNjcxZjg4
MzI4ODhiNjBmY2I1ZGRiMzYxNGNlZGNlNS4uN2QwYjU2NjdkM2EzOWI2M2MyNzM4YTc3N2ZkMDc0
NmNhNDFkMWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTA1LTA0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
NjAzNjApOiBhbmltYXRpb24td2lkZSB0aW1pbmcgZnVuY3Rpb24gZG9lcyBub3QgYXBwbHkgdG8g
Mi1rZXlmcmFtZSB0cmFuc2Zvcm0gV2ViIEFuaW1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MzAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83NzQ1MjkzMz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAg
ICAgQ29yZSBBbmltYXRpb24gaGFzIGEgbGltaXRhdGlvbiB3aGVyZSBhbiBhbmltYXRpb24td2lk
ZSBjdWJpYyB0aW1pbmcgZnVuY3Rpb24gd2l0aCB5IHZhbHVlcyBvdXRzaWRlIG9mIHRoZSBbMC0x
XQorICAgICAgICByYW5nZSBhcmUgbm90IGFwcGxpZWQgY29ycmVjdGx5IHNpbmNlIHRob3NlIHZh
bHVlcyBhcmUgY2xpcHBlZC4gVGhpcyBpcyBub3QgdGhlIGNhc2Ugd2l0aCBzaW1pbGFyIHRpbWlu
ZyBmdW5jdGlvbnMKKyAgICAgICAgYXBwbGllZCB0byBhIGtleWZyYW1lIGludGVydmFsLiBUaGlz
IGlzIGtub3duIGlzc3VlIGNvdmVyZWQgYnkgYnVnIDIxNTkxOC4KKworICAgICAgICBXZSB3b3Jr
ZWQgYXJvdW5kIHRoaXMgbGltaXRhdGlvbiBmb3IgQ1NTIFRyYW5zaXRpb25zIGluIGJ1ZyAyMTU4
MjYuIEluZGVlZCwgaW4gdGhpcyBjYXNlIHdlIGtub3cgdGhhdCB0aGUgYW5pbWF0aW9uCisgICAg
ICAgIGhhcyBhIHNpbmdsZSBpbnRlcnZhbCBhbmQgbm8ga2V5ZnJhbWUtc3BlY2lmaWMgdGltaW5n
IGZ1bmN0aW9uLCBzbyBHcmFwaGljc0xheWVyQ0Egd291bGQgY2hlY2sgd2hldGhlciB0aGUgQW5p
bWF0aW9uCisgICAgICAgIG9iamVjdCBvcmlnaW5hdGVkIGZyb20gYSBDU1MgVHJhbnNpdGlvbiBh
bmQgc2V0IHRoZSBhbmltYXRpb24td2lkZSB0aW1pbmcgZnVuY3Rpb24gb24gdGhlIGdlbmVyYXRl
ZCBBbmltYXRpb25WYWx1ZS4gCisgICAgICAgIAorICAgICAgICBXaXRoIHRoaXMgcGF0Y2ggd2Ug
Z2VuZXJhbGl6ZSB0aGlzIGFwcHJvYWNoIHRvIGFueSBhbmltYXRpb24sIG5vIG1hdHRlciBpdHMg
b3JpZ2luLCB0aGF0IGhhcyBhIHNpbmdsZSBrZXlmcmFtZQorICAgICAgICBpbnRlcnZhbCB3aXRo
IG5vIHRpbWluZyBmdW5jdGlvbiBvciBhIHRpbWluZyBmdW5jdGlvbiB0aGF0IGhhcyBhIGxpbmVh
ciBlZmZlY3QuIFRvIGRvIHRoaXMsIHdlIGZpcnN0IGNoZWNrIGluCisgICAgICAgIEdyYXBoaWNz
TGF5ZXJDQTo6YWRkQW5pbWF0aW9uKigpIHdoZXRoZXIgd2UgYXJlIGRlYWxpbmcgd2l0aCBhbiBh
bmltYXRpb24gdGhhdCBoYXMgYW4gYW5pbWF0aW9uLXdpZGUgY3ViaWMgdGltaW5nCisgICAgICAg
IGZ1bmN0aW9uIG91dHNpZGUgb2YgdGhlIFswLTFdIHJhbmdlLiBJZiB0aGF0IGlzIG5vdCB0aGUg
Y2FzZSwgd2UgcmV0dXJuIGVhcmx5IGFuZCBpbmRpY2F0ZSB0aGF0IHRoaXMgYW5pbWF0aW9uCisg
ICAgICAgIGNhbm5vdCBiZSBydW4gYWNjZWxlcmF0ZWQuCisKKyAgICAgICAgSWYgaW5zdGVhZCB0
aGF0IGlzIHRoZSBjYXNlLCB3ZSBwYXNzIGEgbmV3IGJvb2xlYW4gZmxhZyBkb3duIHRocm91Z2gg
dGhlIGNhbGwgc3RhY2sgdG8gc2V0dXBBbmltYXRpb24oKSBhbmQKKyAgICAgICAgdGltaW5nRnVu
Y3Rpb25Gb3JBbmltYXRpb25WYWx1ZSgpIHdoZXJlIHdlIGNob29zZSB0byB1c2UgdGhlIGFuaW1h
dGlvbi13aWRlIHRpbWluZyBmdW5jdGlvbiBvbiB0aGUgZmlyc3Qga2V5ZnJhbWUKKyAgICAgICAg
cmF0aGVyIHRoYW4gdGhlIGFuaW1hdGlvbiBpdHNlbGYuCisKKyAgICAgICAgVGVzdDogd2ViYW5p
bWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2luZ2xlLWludGVydmFsLWFu
ZC1lYXNpbmcteS1heGlzLWFib3ZlLTEuaHRtbAorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpiYWNraW5n
QW5pbWF0aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGlt
aW5nRnVuY3Rpb25Jc0N1YmljVGltaW5nRnVuY3Rpb25XaXRoWVZhbHVlT3V0T2ZSYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjprZXlmcmFtZVZhbHVlTGlzdEhhc1NpbmdsZUludGVydmFsV2l0aExp
bmVhck9yRXF1aXZhbGVudFRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21L
ZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVGaWx0
ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZUJhc2ljQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlS2V5ZnJhbWVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpjcmVhdGVTcHJpbmdBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpzZXR1cEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFt
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRp
b25LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorCiAyMDIxLTA1LTAzICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBEZWNvZGluZyBhbiBTVkcgb2ZmIHRoZSBtYWluIHRocmVhZCBjYXVzZXMgYSBjcmFz
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggNDE3
NGRiMjJiZGVkYmM3MTNjNjliNzgzYmRjMDBiMzY0NzA2Yzg5My4uY2JkODE2OTkwNzFiZDE1NWMy
YjJkOWI0MzFiYzkwZjBiODBlMjQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuY3BwCkBAIC0xODI1LDEzICsxODI1LDYgQEAgUmVmPGNvbnN0IEFuaW1hdGlv
bj4gS2V5ZnJhbWVFZmZlY3Q6OmJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIo
KSBjb24KICAgICBhbmltYXRpb24tPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKCkt
PmNsb25lKCkpOwogICAgIGFuaW1hdGlvbi0+c2V0UGxheWJhY2tSYXRlKGVmZmVjdEFuaW1hdGlv
bi0+cGxheWJhY2tSYXRlKCkpOwogCi0gICAgaWYgKG1fYmxlbmRpbmdLZXlmcmFtZXNTb3VyY2Ug
PT0gQmxlbmRpbmdLZXlmcmFtZXNTb3VyY2U6OkNTU1RyYW5zaXRpb24gJiYgaXM8Q3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbj4odGltaW5nRnVuY3Rpb24oKSkpIHsKLSAgICAgICAgLy8gRklYTUU6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU5MTgKLSAgICAgICAg
Ly8gSWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIENTUyBUcmFuc2l0aW9uIGFuZCB1c2luZyBhIGN1
YmljIGJlemllciB0aW1pbmcgZnVuY3Rpb24sIHdlIHNldCB1cAotICAgICAgICAvLyB0aGUgQW5p
bWF0aW9uIG9iamVjdCBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBjYW4gd29yayBhcm91bmQgYSBD
b3JlIEFuaW1hdGlvbiBsaW1pdGF0aW9uLgotICAgICAgICBhbmltYXRpb24tPnNldFByb3BlcnR5
KHsgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6U2luZ2xlUHJvcGVydHksICptX2JsZW5kaW5n
S2V5ZnJhbWVzLnByb3BlcnRpZXMoKS5iZWdpbigpIH0pOwotICAgIH0KLQogICAgIHN3aXRjaCAo
ZmlsbCgpKSB7CiAgICAgY2FzZSBGaWxsTW9kZTo6Tm9uZToKICAgICBjYXNlIEZpbGxNb2RlOjpB
dXRvOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggMjM0MWRjZWVjMWFhMTQyM2NhMjJiNjU1NWM5NzkxNzE3
MzYxNDE0OS4uYmQxYjIzNWI2YWY0MzNlZWFkMjBhNWE5ODhiMTQyYzBjMmNmYzgzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwCkBAIC0xMDQ3LDYgKzEwNDcsMzEgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFu
aW1hdGlvbklzUnVubmluZyhjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpIGNvbnN0CiAgICAg
cmV0dXJuIGluZGV4ICE9IG5vdEZvdW5kICYmIG1fYW5pbWF0aW9uc1tpbmRleF0ubV9wbGF5U3Rh
dGUgPT0gUGxheVN0YXRlOjpQbGF5aW5nOwogfQogCitzdGF0aWMgYm9vbCB0aW1pbmdGdW5jdGlv
bklzQ3ViaWNUaW1pbmdGdW5jdGlvbldpdGhZVmFsdWVPdXRPZlJhbmdlKGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICBpZiAoIWlzPEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb24+KHRpbWluZ0Z1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
YXV0byB5VmFsdWVJc091dE9mUmFuZ2UgPSBbXShkb3VibGUgeSkgLT4gYm9vbCB7CisgICAgICAg
IHJldHVybiB5IDwgMCB8fCB5ID4gMTsKKyAgICB9OworCisgICAgYXV0byYgY3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvbiA9IGRvd25jYXN0PEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+KCp0aW1p
bmdGdW5jdGlvbik7CisgICAgcmV0dXJuIHlWYWx1ZUlzT3V0T2ZSYW5nZShjdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uLnkxKCkpIHx8IHlWYWx1ZUlzT3V0T2ZSYW5nZShjdWJpY0JlemllclRpbWlu
Z0Z1bmN0aW9uLnkyKCkpOworfQorCitzdGF0aWMgYm9vbCBrZXlmcmFtZVZhbHVlTGlzdEhhc1Np
bmdsZUludGVydmFsV2l0aExpbmVhck9yRXF1aXZhbGVudFRpbWluZ0Z1bmN0aW9uKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QpCit7CisgICAgaWYgKHZhbHVlTGlzdC5zaXplKCkg
IT0gMikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byogdGltaW5nRnVuY3Rpb24g
PSB2YWx1ZUxpc3QuYXQoMCkudGltaW5nRnVuY3Rpb24oKTsKKyAgICBpZiAoIXRpbWluZ0Z1bmN0
aW9uIHx8IGlzPExpbmVhclRpbWluZ0Z1bmN0aW9uPih0aW1pbmdGdW5jdGlvbikpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+
KHRpbWluZ0Z1bmN0aW9uKSAmJiBkb3duY2FzdDxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uPigq
dGltaW5nRnVuY3Rpb24pLmlzTGluZWFyKCk7Cit9CisKIHN0YXRpYyBib29sIGFuaW1hdGlvbkNh
bkJlQWNjZWxlcmF0ZWQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3Qg
QW5pbWF0aW9uKiBhbmltKQogewogICAgIGlmIChhbmltLT5wbGF5YmFja1JhdGUoKSAhPSAxIHx8
ICFhbmltLT5kaXJlY3Rpb25Jc0ZvcndhcmRzKCkpCkBAIC0xMDcwLDIxICsxMDk1LDI5IEBAIGJv
b2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IHZhbHVlTGlzdCwgY29uc3QgRmxvCiAgICAgaWYgKCFhbmltYXRpb25DYW5CZUFjY2VsZXJhdGVk
KHZhbHVlTGlzdCwgYW5pbSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wga2V5
ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uID0gZmFsc2U7CisgICAg
Ly8gQ29yZSBBbmltYXRpb24gY2xpcHMgdmFsdWVzIG91dHNpZGUgb2YgdGhlIFswLTFdIHJhbmdl
IGZvciBhbmltYXRpb24td2lkZSBjdWJpYyB0aW1pbmcgZnVuY3Rpb25zLgorICAgIGlmICh0aW1p
bmdGdW5jdGlvbklzQ3ViaWNUaW1pbmdGdW5jdGlvbldpdGhZVmFsdWVPdXRPZlJhbmdlKGFuaW0t
PnRpbWluZ0Z1bmN0aW9uKCkpKSB7CisgICAgICAgIGlmICgha2V5ZnJhbWVWYWx1ZUxpc3RIYXNT
aW5nbGVJbnRlcnZhbFdpdGhMaW5lYXJPckVxdWl2YWxlbnRUaW1pbmdGdW5jdGlvbih2YWx1ZUxp
c3QpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBrZXlmcmFtZXNTaG91bGRV
c2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24gPSB0cnVlOworICAgIH0KKwogICAgIGJvb2wg
Y3JlYXRlZEFuaW1hdGlvbnMgPSBmYWxzZTsKICAgICBpZiAoYW5pbWF0ZWRQcm9wZXJ0eUlzVHJh
bnNmb3JtT3JSZWxhdGVkKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSkKLSAgICAgICAgY3JlYXRlZEFu
aW1hdGlvbnMgPSBjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyh2YWx1ZUxp
c3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgeyB0aW1lT2Zmc2V0IH0sIGJveFNpemUp
OworICAgICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNG
cm9tS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB7IHRp
bWVPZmZzZXQgfSwgYm94U2l6ZSwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWlu
Z0Z1bmN0aW9uKTsKICAgICBlbHNlIGlmICh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRl
ZFByb3BlcnR5RmlsdGVyKSB7CiAgICAgICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVy
QW5pbWF0aW9ucygpKQotICAgICAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVGaWx0
ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUs
IFNlY29uZHMgeyB0aW1lT2Zmc2V0IH0pOworICAgICAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMg
PSBjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFu
aW1hdGlvbk5hbWUsIFNlY29uZHMgeyB0aW1lT2Zmc2V0IH0sIGtleWZyYW1lc1Nob3VsZFVzZUFu
aW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgfQogI2lmIEVOQUJMRShGSUxURVJTX0xF
VkVMXzIpCiAgICAgZWxzZSBpZiAodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9w
ZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyKSB7CiAgICAgICAgIGlmIChzdXBwb3J0c0FjY2VsZXJh
dGVkRmlsdGVyQW5pbWF0aW9ucygpKQotICAgICAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBj
cmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1h
dGlvbk5hbWUsIFNlY29uZHMgeyB0aW1lT2Zmc2V0IH0pOworICAgICAgICAgICAgY3JlYXRlZEFu
aW1hdGlvbnMgPSBjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3Qs
IGFuaW0sIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgeyB0aW1lT2Zmc2V0IH0sIGtleWZyYW1lc1No
b3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgfQogI2VuZGlmCiAgICAg
ZWxzZQotICAgICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZUFuaW1hdGlvbkZyb21LZXlm
cmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHsgdGltZU9mZnNl
dCB9KTsKKyAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVBbmltYXRpb25Gcm9tS2V5
ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB7IHRpbWVPZmZz
ZXQgfSwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKIAog
ICAgIGlmIChjcmVhdGVkQW5pbWF0aW9ucykKICAgICAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFu
Z2VkKEFuaW1hdGlvbkNoYW5nZWQgfCBDb3ZlcmFnZVJlY3RDaGFuZ2VkKTsKQEAgLTMyNjEsNyAr
MzI5NCw3IEBAIHN0YXRpYyBib29sIGlzS2V5ZnJhbWUoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IGxpc3QpCiAgICAgcmV0dXJuIGxpc3Quc2l6ZSgpID4gMTsKIH0KIAotYm9vbCBHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZUFuaW1hdGlvbkZyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxp
c3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0cmluZyYg
YW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB0aW1lT2Zmc2V0KQorYm9vbCBHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZUFuaW1hdGlvbkZyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZh
bHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uTmFtZSwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1h
dGlvbldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICAgICBBU1NFUlQoIWFuaW1hdGVkUHJvcGVydHlJ
c1RyYW5zZm9ybU9yUmVsYXRlZCh2YWx1ZUxpc3QucHJvcGVydHkoKSkgJiYgKCFzdXBwb3J0c0Fj
Y2VsZXJhdGVkRmlsdGVyQW5pbWF0aW9ucygpIHx8IHZhbHVlTGlzdC5wcm9wZXJ0eSgpICE9IEFu
aW1hdGVkUHJvcGVydHlGaWx0ZXIpKTsKIApAQCAtMzI3MywxMyArMzMwNiwxMyBAQCBib29sIEdy
YXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdQogICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjYUFuaW1h
dGlvbjsKIAogICAgIGlmIChpc0tleWZyYW1lKHZhbHVlTGlzdCkpIHsKLSAgICAgICAgY2FBbmlt
YXRpb24gPSBjcmVhdGVLZXlmcmFtZUFuaW1hdGlvbihhbmltYXRpb24sIHByb3BlcnR5SWRUb1N0
cmluZyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGFkZGl0aXZlKTsKLSAgICAgICAgdmFsdWVzT0sg
PSBzZXRBbmltYXRpb25LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltYXRpb24sIGNhQW5pbWF0aW9u
LmdldCgpKTsKKyAgICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVLZXlmcmFtZUFuaW1hdGlvbihh
bmltYXRpb24sIHByb3BlcnR5SWRUb1N0cmluZyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGFkZGl0
aXZlLCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOworICAg
ICAgICB2YWx1ZXNPSyA9IHNldEFuaW1hdGlvbktleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW1hdGlv
biwgY2FBbmltYXRpb24uZ2V0KCksIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1p
bmdGdW5jdGlvbik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGFuaW1hdGlvbi0+dGltaW5n
RnVuY3Rpb24oKS0+aXNTcHJpbmdUaW1pbmdGdW5jdGlvbigpKQotICAgICAgICAgICAgY2FBbmlt
YXRpb24gPSBjcmVhdGVTcHJpbmdBbmltYXRpb24oYW5pbWF0aW9uLCBwcm9wZXJ0eUlkVG9TdHJp
bmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBhZGRpdGl2ZSk7CisgICAgICAgICAgICBjYUFuaW1h
dGlvbiA9IGNyZWF0ZVNwcmluZ0FuaW1hdGlvbihhbmltYXRpb24sIHByb3BlcnR5SWRUb1N0cmlu
Zyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGFkZGl0aXZlLCBrZXlmcmFtZXNTaG91bGRVc2VBbmlt
YXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjYUFu
aW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3Ry
aW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRkaXRpdmUpOworICAgICAgICAgICAgY2FBbmlt
YXRpb24gPSBjcmVhdGVCYXNpY0FuaW1hdGlvbihhbmltYXRpb24sIHByb3BlcnR5SWRUb1N0cmlu
Zyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGFkZGl0aXZlLCBrZXlmcmFtZXNTaG91bGRVc2VBbmlt
YXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgICAgICB2YWx1ZXNPSyA9IHNldEFuaW1hdGlv
bkVuZHBvaW50cyh2YWx1ZUxpc3QsIGFuaW1hdGlvbiwgY2FBbmltYXRpb24uZ2V0KCkpOwogICAg
IH0KIApAQCAtMzI5MSwyMCArMzMyNCwyMCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRl
QW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1p
dHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3Qg
VHJhbnNmb3JtT3BlcmF0aW9ucyogb3BlcmF0aW9ucywgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXpl
LCBpbnQgYW5pbWF0aW9uSW5kZXgsIFNlY29uZHMgdGltZU9mZnNldCwgYm9vbCBpc01hdHJpeEFu
aW1hdGlvbikKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0
aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBUcmFuc2Zvcm1P
cGVyYXRpb25zKiBvcGVyYXRpb25zLCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIGludCBhbmlt
YXRpb25JbmRleCwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBi
b29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICAg
ICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3AgPSBpc01hdHJp
eEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9wZXJhdGlvbjo6TUFUUklYXzNEIDogb3BlcmF0aW9ucy0+
b3BlcmF0aW9ucygpLmF0KGFuaW1hdGlvbkluZGV4KS0+dHlwZSgpOwogCiAgICAgUmVmUHRyPFBs
YXRmb3JtQ0FBbmltYXRpb24+IGNhQW5pbWF0aW9uOwogICAgIGJvb2wgdmFsaWRNYXRyaWNlcyA9
IHRydWU7CiAgICAgaWYgKGlzS2V5ZnJhbWUodmFsdWVMaXN0KSkgewotICAgICAgICBjYUFuaW1h
dGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3Ry
aW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgZmFsc2UpOwotICAgICAgICB2YWxpZE1hdHJpY2Vz
ID0gc2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBj
YUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIHRyYW5zZm9ybU9wLCBpc01hdHJpeEFu
aW1hdGlvbiwgYm94U2l6ZSk7CisgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlS2V5ZnJhbWVB
bmltYXRpb24oYW5pbWF0aW9uLCBwcm9wZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5
KCkpLCBmYWxzZSwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9u
KTsKKyAgICAgICAgdmFsaWRNYXRyaWNlcyA9IHNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1l
cyh2YWx1ZUxpc3QsIGFuaW1hdGlvbiwgY2FBbmltYXRpb24uZ2V0KCksIGFuaW1hdGlvbkluZGV4
LCB0cmFuc2Zvcm1PcCwgaXNNYXRyaXhBbmltYXRpb24sIGJveFNpemUsIGtleWZyYW1lc1Nob3Vs
ZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
aWYgKGFuaW1hdGlvbi0+dGltaW5nRnVuY3Rpb24oKS0+aXNTcHJpbmdUaW1pbmdGdW5jdGlvbigp
KQotICAgICAgICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVTcHJpbmdBbmltYXRpb24oYW5pbWF0
aW9uLCBwcm9wZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZVNwcmluZ0FuaW1hdGlvbihhbmltYXRpb24s
IHByb3BlcnR5SWRUb1N0cmluZyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGZhbHNlLCBrZXlmcmFt
ZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGFuaW1hdGlvbiwg
cHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgZmFsc2UpOworICAgICAg
ICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVCYXNpY0FuaW1hdGlvbihhbmltYXRpb24sIHByb3Bl
cnR5SWRUb1N0cmluZyh2YWx1ZUxpc3QucHJvcGVydHkoKSksIGZhbHNlLCBrZXlmcmFtZXNTaG91
bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgICAgICB2YWxpZE1hdHJpY2Vz
ID0gc2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBj
YUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIHRyYW5zZm9ybU9wLCBpc01hdHJpeEFu
aW1hdGlvbiwgYm94U2l6ZSk7CiAgICAgfQogICAgIApAQCAtMzMxNSw3ICszMzQ4LDcgQEAgYm9v
bCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBHcmFwaGlj
c0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgdGltZU9mZnNldCwgY29uc3QgRmxv
YXRTaXplJiBib3hTaXplKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFu
aW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3Qs
IGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUs
IFNlY29uZHMgdGltZU9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBib29sIGtleWZy
YW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICAgICBBU1NFUlQo
YW5pbWF0ZWRQcm9wZXJ0eUlzVHJhbnNmb3JtT3JSZWxhdGVkKHZhbHVlTGlzdC5wcm9wZXJ0eSgp
KSk7CiAKQEAgLTMzMzAsNyArMzM2Myw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVU
cmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAg
aW50IG51bUFuaW1hdGlvbnMgPSBpc01hdHJpeEFuaW1hdGlvbiA/IDEgOiBvcGVyYXRpb25zLT5z
aXplKCk7CiAKICAgICBmb3IgKGludCBhbmltYXRpb25JbmRleCA9IDA7IGFuaW1hdGlvbkluZGV4
IDwgbnVtQW5pbWF0aW9uczsgKythbmltYXRpb25JbmRleCkgewotICAgICAgICBpZiAoIWFwcGVu
ZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKHZhbHVlTGlzdCwgb3BlcmF0aW9ucywgYW5pbWF0aW9u
LCBhbmltYXRpb25OYW1lLCBib3hTaXplLCBhbmltYXRpb25JbmRleCwgdGltZU9mZnNldCwgaXNN
YXRyaXhBbmltYXRpb24pKSB7CisgICAgICAgIGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1h
dGlvbnModmFsdWVMaXN0LCBvcGVyYXRpb25zLCBhbmltYXRpb24sIGFuaW1hdGlvbk5hbWUsIGJv
eFNpemUsIGFuaW1hdGlvbkluZGV4LCB0aW1lT2Zmc2V0LCBpc01hdHJpeEFuaW1hdGlvbiwga2V5
ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKSkgewogICAgICAgICAg
ICAgdmFsaWRNYXRyaWNlcyA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTMzMzksNyArMzM3Miw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zv
cm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAgcmV0dXJu
IHZhbGlkTWF0cmljZXM7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29t
bWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25z
dCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24s
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgaW50IGFuaW1hdGlvbkluZGV4LCBTZWNvbmRz
IHRpbWVPZmZzZXQpCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFu
aW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmlsdGVy
T3BlcmF0aW9uKiBvcGVyYXRpb24sIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbk5hbWUsIGludCBhbmltYXRpb25JbmRleCwgU2Vjb25kcyB0aW1lT2Zm
c2V0LCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikK
IHsKICAgICBGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgZmlsdGVyT3AgPSBvcGVyYXRp
b24tPnR5cGUoKTsKICAgICBpbnQgbnVtQW5pbWF0ZWRQcm9wZXJ0aWVzID0gUGxhdGZvcm1DQUZp
bHRlcnM6Om51bUFuaW1hdGVkRmlsdGVyUHJvcGVydGllcyhmaWx0ZXJPcCk7CkBAIC0zMzU3LDEw
ICszMzkwLDEwIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5p
bWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsCiAgICAgICAgIFN0cmluZyBrZXlQ
YXRoID0gbWFrZVN0cmluZygiZmlsdGVycy5maWx0ZXJfIiwgYW5pbWF0aW9uSW5kZXgsICcuJywg
UGxhdGZvcm1DQUZpbHRlcnM6OmFuaW1hdGVkRmlsdGVyUHJvcGVydHlOYW1lKGZpbHRlck9wLCBp
bnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc0tl
eWZyYW1lKHZhbHVlTGlzdCkpIHsKLSAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlS2V5
ZnJhbWVBbmltYXRpb24oYW5pbWF0aW9uLCBrZXlQYXRoLCBmYWxzZSk7Ci0gICAgICAgICAgICB2
YWx1ZXNPSyA9IHNldEZpbHRlckFuaW1hdGlvbktleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW1hdGlv
biwgY2FBbmltYXRpb24uZ2V0KCksIGFuaW1hdGlvbkluZGV4LCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgsIGZpbHRlck9wKTsKKyAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlS2V5
ZnJhbWVBbmltYXRpb24oYW5pbWF0aW9uLCBrZXlQYXRoLCBmYWxzZSwga2V5ZnJhbWVzU2hvdWxk
VXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKKyAgICAgICAgICAgIHZhbHVlc09LID0g
c2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBjYUFuaW1h
dGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCwg
ZmlsdGVyT3AsIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUJhc2lj
QW5pbWF0aW9uKGFuaW1hdGlvbiwga2V5UGF0aCwgZmFsc2UpOworICAgICAgICAgICAgY2FBbmlt
YXRpb24gPSBjcmVhdGVCYXNpY0FuaW1hdGlvbihhbmltYXRpb24sIGtleVBhdGgsIGZhbHNlLCBr
ZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgICAgICAg
ICAgdmFsdWVzT0sgPSBzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHModmFsdWVMaXN0LCBhbmlt
YXRpb24sIGNhQW5pbWF0aW9uLmdldCgpLCBhbmltYXRpb25JbmRleCwgaW50ZXJuYWxGaWx0ZXJQ
cm9wZXJ0eUluZGV4KTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTMzNzIsNyArMzQwNSw3IEBA
IGJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3Jh
cGhpY3NMYXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwg
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQpCitib29sIEdy
YXBoaWNzTGF5ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24s
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBib29sIGtl
eWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICNpZiBFTkFC
TEUoRklMVEVSU19MRVZFTF8yKQogICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBB
bmltYXRlZFByb3BlcnR5RmlsdGVyIHx8IHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVk
UHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcik7CkBAIC0zMzk4LDM1ICszNDMxLDM1IEBAIGJv
b2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyhj
b25zdCBLZXlmcmFtZVZhbHVlTGlzCiAgICAgfQogCiAgICAgZm9yIChpbnQgYW5pbWF0aW9uSW5k
ZXggPSAwOyBhbmltYXRpb25JbmRleCA8IG51bUFuaW1hdGlvbnM7ICsrYW5pbWF0aW9uSW5kZXgp
IHsKLSAgICAgICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3Qs
IG9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmF0KGFuaW1hdGlvbkluZGV4KS5nZXQoKSwgYW5pbWF0
aW9uLCBhbmltYXRpb25OYW1lLCBhbmltYXRpb25JbmRleCwgdGltZU9mZnNldCkpCisgICAgICAg
IGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0LCBvcGVyYXRpb25z
Lm9wZXJhdGlvbnMoKS5hdChhbmltYXRpb25JbmRleCkuZ2V0KCksIGFuaW1hdGlvbiwgYW5pbWF0
aW9uTmFtZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQsIGtleWZyYW1lc1Nob3VsZFVzZUFu
aW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBH
cmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJhc2ljQW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5p
bSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFkZGl0aXZlKQorUmVmPFBsYXRmb3JtQ0FB
bmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5p
bWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYWRkaXRpdmUsIGJvb2wg
a2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewogICAgIGF1
dG8gYmFzaWNBbmltID0gY3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpCYXNpYywga2V5UGF0aCk7Ci0gICAgc2V0dXBBbmltYXRpb24oYmFzaWNBbmltLnB0cigp
LCBhbmltLCBhZGRpdGl2ZSk7CisgICAgc2V0dXBBbmltYXRpb24oYmFzaWNBbmltLnB0cigpLCBh
bmltLCBhZGRpdGl2ZSwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0
aW9uKTsKICAgICByZXR1cm4gYmFzaWNBbmltOwogfQogCi1SZWY8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVLZXlmcmFtZUFuaW1hdGlvbihjb25zdCBBbmltYXRp
b24qIGFuaW0sIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSkKK1JlZjxQbGF0
Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9u
KGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFkZGl0
aXZlLCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikK
IHsKICAgICBhdXRvIGtleWZyYW1lQW5pbSA9IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxh
dGZvcm1DQUFuaW1hdGlvbjo6S2V5ZnJhbWUsIGtleVBhdGgpOwotICAgIHNldHVwQW5pbWF0aW9u
KGtleWZyYW1lQW5pbS5wdHIoKSwgYW5pbSwgYWRkaXRpdmUpOworICAgIHNldHVwQW5pbWF0aW9u
KGtleWZyYW1lQW5pbS5wdHIoKSwgYW5pbSwgYWRkaXRpdmUsIGtleWZyYW1lc1Nob3VsZFVzZUFu
aW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgcmV0dXJuIGtleWZyYW1lQW5pbTsKIH0K
IAotUmVmPFBsYXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlU3ByaW5n
QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBi
b29sIGFkZGl0aXZlKQorUmVmPFBsYXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6
Y3JlYXRlU3ByaW5nQW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBib29sIGFkZGl0aXZlLCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlv
bldpZGVUaW1pbmdGdW5jdGlvbikKIHsKICAgICBhdXRvIGJhc2ljQW5pbSA9IGNyZWF0ZVBsYXRm
b3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbjo6U3ByaW5nLCBrZXlQYXRoKTsKLSAg
ICBzZXR1cEFuaW1hdGlvbihiYXNpY0FuaW0ucHRyKCksIGFuaW0sIGFkZGl0aXZlKTsKKyAgICBz
ZXR1cEFuaW1hdGlvbihiYXNpY0FuaW0ucHRyKCksIGFuaW0sIGFkZGl0aXZlLCBrZXlmcmFtZXNT
aG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pOwogICAgIHJldHVybiBiYXNpY0Fu
aW07CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXR1cEFuaW1hdGlvbihQbGF0Zm9ybUNB
QW5pbWF0aW9uKiBwcm9wZXJ0eUFuaW0sIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgYm9vbCBhZGRp
dGl2ZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXR1cEFuaW1hdGlvbihQbGF0Zm9ybUNBQW5p
bWF0aW9uKiBwcm9wZXJ0eUFuaW0sIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgYm9vbCBhZGRpdGl2
ZSwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pCiB7
CiAgICAgZG91YmxlIGR1cmF0aW9uID0gYW5pbS0+ZHVyYXRpb24oKTsKICAgICBpZiAoZHVyYXRp
b24gPD0gMCkKQEAgLTM0NjUsMTMgKzM0OTgsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNl
dHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24qIHByb3BlcnR5QW5pbSwgY29uc3QgQW4K
ICAgICAvLyBBIENTUyBUcmFuc2l0aW9uIGlzIHRoZSBvbmx5IHNjZW5hcmlvIHdoZXJlIEFuaW1h
dGlvbjo6cHJvcGVydHkoKSB3aWxsIGhhdmUKICAgICAvLyBpdHMgbW9kZSBzZXQgdG8gU2luZ2xl
UHJvcGVydHkuIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3Qgc2V0IHRoZSBhbmltYXRpb24td2lkZQog
ICAgIC8vIHRpbWluZyBmdW5jdGlvbiB0byB3b3JrIGFyb3VuZCBhIENvcmUgQW5pbWF0aW9uIGxp
bWl0YXRpb24uCi0gICAgaWYgKGFuaW0tPnByb3BlcnR5KCkubW9kZSAhPSBBbmltYXRpb246OlRy
YW5zaXRpb25Nb2RlOjpTaW5nbGVQcm9wZXJ0eSkKKyAgICBpZiAoIWtleWZyYW1lc1Nob3VsZFVz
ZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikKICAgICAgICAgcHJvcGVydHlBbmltLT5zZXRU
aW1pbmdGdW5jdGlvbihhbmltLT50aW1pbmdGdW5jdGlvbigpKTsKIH0KIAotY29uc3QgVGltaW5n
RnVuY3Rpb24mIEdyYXBoaWNzTGF5ZXJDQTo6dGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1
ZShjb25zdCBBbmltYXRpb25WYWx1ZSYgYW5pbVZhbHVlLCBjb25zdCBBbmltYXRpb24mIGFuaW0p
Citjb25zdCBUaW1pbmdGdW5jdGlvbiYgR3JhcGhpY3NMYXllckNBOjp0aW1pbmdGdW5jdGlvbkZv
ckFuaW1hdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlJiBhbmltVmFsdWUsIGNvbnN0IEFu
aW1hdGlvbiYgYW5pbSwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5n
RnVuY3Rpb24pCiB7Ci0gICAgaWYgKGFuaW0ucHJvcGVydHkoKS5tb2RlID09IEFuaW1hdGlvbjo6
VHJhbnNpdGlvbk1vZGU6OlNpbmdsZVByb3BlcnR5ICYmIGFuaW0udGltaW5nRnVuY3Rpb24oKSkg
eworICAgIGlmIChrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24g
JiYgYW5pbS50aW1pbmdGdW5jdGlvbigpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1OTE4CiAgICAgICAgIC8vIEEgQ1NTIFRy
YW5zaXRpb24gaXMgdGhlIG9ubHkgc2NlbmFyaW8gd2hlcmUgQW5pbWF0aW9uOjpwcm9wZXJ0eSgp
IHdpbGwgaGF2ZQogICAgICAgICAvLyBpdHMgbW9kZSBzZXQgdG8gU2luZ2xlUHJvcGVydHkuIElu
IHRoaXMgY2FzZSwgd2UgY2hvc2Ugbm90IHRvIHNldCBzZXQgdGhlCkBAIC0zNTA3LDcgKzM1NDAs
NyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIFBsYXRmb3JtQ0FB
bmltYXRpb24qIGtleWZyYW1lQW5pbSkKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRp
b25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGtleWZyYW1lQW5pbSwgYm9v
bCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pCiB7CiAgICAg
VmVjdG9yPGZsb2F0PiBrZXlUaW1lczsKICAgICBWZWN0b3I8ZmxvYXQ+IHZhbHVlczsKQEAgLTM1
MzIsNyArMzU2NSw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25LZXlmcmFt
ZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChpIDwgKHZhbHVlTGlzdC5zaXplKCkgLSAxKSkKLSAgICAgICAgICAgIHRpbWluZ0Z1
bmN0aW9ucy5hcHBlbmQoJnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMg
PyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCAqYW5pbWF0aW9uKSk7CisgICAg
ICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKCZ0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlv
blZhbHVlKGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgKmFu
aW1hdGlvbiwga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKSk7
CiAgICAgfQogCiAgICAga2V5ZnJhbWVBbmltLT5zZXRLZXlUaW1lcyhrZXlUaW1lcyk7CkBAIC0z
NjAwLDcgKzM2MzMsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0
aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJh
bWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiog
YW5pbWF0aW9uLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0sIGludCBmdW5jdGlv
bkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3BUeXBl
LCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUpCitib29s
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0sIGludCBmdW5jdGlvbkluZGV4LCBUcmFu
c2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3BUeXBlLCBib29sIGlzTWF0
cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIGJvb2wga2V5ZnJhbWVzU2hv
dWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKQogewogICAgIFZlY3RvcjxmbG9hdD4g
a2V5VGltZXM7CiAgICAgVmVjdG9yPGZsb2F0PiBmbG9hdFZhbHVlczsKQEAgLTM2NDUsNyArMzY3
OCw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFt
ZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhCiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
aSA8ICh2YWx1ZUxpc3Quc2l6ZSgpIC0gMSkpCi0gICAgICAgICAgICB0aW1pbmdGdW5jdGlvbnMu
YXBwZW5kKCZ0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGZvcndhcmRzID8gY3VyVmFs
dWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgKmFuaW1hdGlvbikpOworICAgICAgICAgICAg
dGltaW5nRnVuY3Rpb25zLmFwcGVuZCgmdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShm
b3J3YXJkcyA/IGN1clZhbHVlIDogdmFsdWVMaXN0LmF0KGluZGV4IC0gMSksICphbmltYXRpb24s
IGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikpOwogICAgIH0K
ICAgICAKICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsKQEAgLTM3MDIs
NyArMzczNSw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRw
b2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGtleWZyYW1lQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgs
IGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgsIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0
aW9uVHlwZSBmaWx0ZXJPcCkKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRp
b25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGtleWZyYW1lQW5pbSwgaW50
IGZ1bmN0aW9uSW5kZXgsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgsIEZpbHRlck9w
ZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcCwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VB
bmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24pCiB7CiAgICAgVmVjdG9yPGZsb2F0PiBrZXlUaW1l
czsKICAgICBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+IHZhbHVlczsKQEAgLTM3MjUs
NyArMzc1OCw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlm
cmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlCiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoaSA8ICh2YWx1ZUxpc3Quc2l6ZSgpIC0gMSkpCi0gICAgICAgICAgICB0aW1pbmdGdW5j
dGlvbnMuYXBwZW5kKCZ0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGZvcndhcmRzID8g
Y3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgKmFuaW1hdGlvbikpOworICAgICAg
ICAgICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCgmdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25W
YWx1ZShmb3J3YXJkcyA/IGN1clZhbHVlIDogdmFsdWVMaXN0LmF0KGluZGV4IC0gMSksICphbmlt
YXRpb24sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbikpOwog
ICAgIH0KICAgICAKICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmgKaW5kZXggZjg0MDc4ZTJkZWQ4YzU1ZDVjZGM5ZTA1OGUwNmU0YmIzNWFiYjRmZC4uZmY4
ZGRjNTM1YjZjMDQ0NDhmNmQ5OTQyMGUwMDg4YTNjMjVlMWI0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTI1
NSwyNiArMjU1LDI2IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJNYXAqIGFuaW1hdGVkTGF5ZXJDbG9u
ZXMoQW5pbWF0ZWRQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBzdGF0aWMgdm9pZCBjbGVhckNsb25l
cyhMYXllck1hcCYpOwogCi0gICAgYm9vbCBjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBh
bmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQpOwotICAgIGJvb2wgY3JlYXRlVHJhbnNm
b3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25z
dCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIFNlY29uZHMgdGltZU9m
ZnNldCwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplKTsKLSAgICBib29sIGNyZWF0ZUZpbHRlckFu
aW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5p
bWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQp
OworICAgIGJvb2wgY3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwg
U2Vjb25kcyB0aW1lT2Zmc2V0LCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVU
aW1pbmdGdW5jdGlvbik7CisgICAgYm9vbCBjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtl
eWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBjb25zdCBGbG9hdFNp
emUmIGJveFNpemUsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1
bmN0aW9uKTsKKyAgICBib29sIGNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBh
bmltYXRpb25OYW1lLCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNl
QW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKIAogICAgIC8vIFJldHVybiBhdXRvcmVsZWFz
ZWQgYW5pbWF0aW9uICh1c2UgUmV0YWluUHRyPykKLSAgICBSZWY8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gY3JlYXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoLCBib29sIGFkZGl0aXZlKTsKLSAgICBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3Jl
YXRlS2V5ZnJhbWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiwgYm9v
bCBhZGRpdGl2ZSk7Ci0gICAgUmVmPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZVNwcmluZ0Fu
aW1hdGlvbihjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBib29sIGFkZGl0aXZlKTsK
LSAgICB2b2lkIHNldHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24qLCBjb25zdCBBbmlt
YXRpb24qLCBib29sIGFkZGl0aXZlKTsKKyAgICBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3Jl
YXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
LCBib29sIGFkZGl0aXZlLCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1p
bmdGdW5jdGlvbik7CisgICAgUmVmPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZUtleWZyYW1l
QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYsIGJvb2wgYWRkaXRpdmUs
IGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKKyAg
ICBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlU3ByaW5nQW5pbWF0aW9uKGNvbnN0IEFu
aW1hdGlvbiosIGNvbnN0IFN0cmluZyYsIGJvb2wgYWRkaXRpdmUsIGJvb2wga2V5ZnJhbWVzU2hv
dWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKKyAgICB2b2lkIHNldHVwQW5pbWF0
aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24qLCBjb25zdCBBbmltYXRpb24qLCBib29sIGFkZGl0aXZl
LCBib29sIGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAg
ICAgCi0gICAgY29uc3QgVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9u
VmFsdWUoY29uc3QgQW5pbWF0aW9uVmFsdWUmLCBjb25zdCBBbmltYXRpb24mKTsKKyAgICBjb25z
dCBUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShjb25zdCBB
bmltYXRpb25WYWx1ZSYsIGNvbnN0IEFuaW1hdGlvbiYsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNl
QW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsKICAgICAKICAgICBib29sIHNldEFuaW1hdGlv
bkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBs
YXRmb3JtQ0FBbmltYXRpb24qKTsKLSAgICBib29sIHNldEFuaW1hdGlvbktleWZyYW1lcyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRp
b24qKTsKKyAgICBib29sIHNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRpb24qLCBib29sIGtleWZy
YW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAKICAgICBib29sIHNl
dFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNv
bnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwg
VHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9u
LCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUpOwotICAgIGJvb2wgc2V0VHJhbnNmb3JtQW5pbWF0
aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwg
UGxhdGZvcm1DQUFuaW1hdGlvbiosIGludCBmdW5jdGlvbkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRp
b246Ok9wZXJhdGlvblR5cGUsIGJvb2wgaXNNYXRyaXhBbmltYXRpb24sIGNvbnN0IEZsb2F0U2l6
ZSYgYm94U2l6ZSk7CisgICAgYm9vbCBzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiwgaW50IGZ1bmN0aW9uSW5kZXgsIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlw
ZSwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBib29s
IGtleWZyYW1lc1Nob3VsZFVzZUFuaW1hdGlvbldpZGVUaW1pbmdGdW5jdGlvbik7CiAgICAgCiAg
ICAgYm9vbCBzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxp
c3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiwgaW50IGZ1bmN0aW9u
SW5kZXgsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpOwotICAgIGJvb2wgc2V0Rmls
dGVyQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5p
bWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1hdGlvbiosIGludCBmdW5jdGlvbkluZGV4LCBpbnQgaW50
ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4LCBGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUp
OworICAgIGJvb2wgc2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1hdGlvbiosIGludCBmdW5j
dGlvbkluZGV4LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4LCBGaWx0ZXJPcGVyYXRp
b246Ok9wZXJhdGlvblR5cGUsIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRp
bWluZ0Z1bmN0aW9uKTsKIAogICAgIGJvb2wgaXNSdW5uaW5nVHJhbnNmb3JtQW5pbWF0aW9uKCkg
Y29uc3Q7CiAKQEAgLTUxMSw4ICs1MTEsOCBAQCBwcml2YXRlOgogICAgICAgICBtb3ZlT3JDb3B5
QW5pbWF0aW9ucyhDb3B5LCBmcm9tTGF5ZXIsIHRvTGF5ZXIpOwogICAgIH0KIAotICAgIGJvb2wg
YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBj
b25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5n
JiBhbmltYXRpb25OYW1lLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIGludCBhbmltYXRpb25J
bmRleCwgU2Vjb25kcyB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKTsKLSAgICBi
b29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiwgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5n
JiBhbmltYXRpb25OYW1lLCBpbnQgYW5pbWF0aW9uSW5kZXgsIFNlY29uZHMgdGltZU9mZnNldCk7
CisgICAgYm9vbCBhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqLCBjb25zdCBBbmltYXRpb24qLCBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgaW50
IGFuaW1hdGlvbkluZGV4LCBTZWNvbmRzIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRyaXhBbmltYXRp
b24sIGJvb2wga2V5ZnJhbWVzU2hvdWxkVXNlQW5pbWF0aW9uV2lkZVRpbWluZ0Z1bmN0aW9uKTsK
KyAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiwgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25OYW1lLCBpbnQgYW5pbWF0aW9uSW5kZXgsIFNlY29uZHMgdGltZU9m
ZnNldCwgYm9vbCBrZXlmcmFtZXNTaG91bGRVc2VBbmltYXRpb25XaWRlVGltaW5nRnVuY3Rpb24p
OwogCiAgICAgZW51bSBMYXllckNoYW5nZSA6IHVpbnQ2NF90IHsKICAgICAgICAgTm9DaGFuZ2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTM2YjkwYjQ0ODk1
OTNiY2M2NGZiNDJhNDM5NjM2YzI3ZjNhZTc3Li5lNDdhNzI2MDkxYjZjNzBmYjhkNDUxMzMzMWM5
ZTViYzQzZTAzNGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMDQgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI2MDM2
MCk6IGFuaW1hdGlvbi13aWRlIHRpbWluZyBmdW5jdGlvbiBkb2VzIG5vdCBhcHBseSB0byAyLWtl
eWZyYW1lIHRyYW5zZm9ybSBXZWIgQW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUzMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3
NDUyOTMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBB
ZGQgYSB0ZXN0IHRoYXQgcnVucyBhIEpTLW9yaWduYXRlZCBhbmltYXRpb24gd2l0aCBhIHNpbmds
ZSBpbnRlcnZhbCBhbmQgYW4gYW5pbWF0aW9uLXdpZGUgY3ViaWMgdGltaW5nCisgICAgICAgIGZ1
bmN0aW9uIHdpdGggeSB2YWx1ZXMgb3V0c2lkZSBvZiB0aGUgWzAtMV0gcmFuZ2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB3ZWJhbmltYXRp
b25zL2FjY2VsZXJhdGVkLXdlYi1hbmltYXRpb24td2l0aC1zaW5nbGUtaW50ZXJ2YWwtYW5kLWVh
c2luZy15LWF4aXMtYWJvdmUtMS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJh
bmltYXRpb25zL2FjY2VsZXJhdGVkLXdlYi1hbmltYXRpb24td2l0aC1zaW5nbGUtaW50ZXJ2YWwt
YW5kLWVhc2luZy15LWF4aXMtYWJvdmUtMS5odG1sOiBBZGRlZC4KKwogMjAyMS0wNS0wMyAgQ2hy
aXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgRGVjb2RpbmcgYW4gU1ZHIG9m
ZiB0aGUgbWFpbiB0aHJlYWQgY2F1c2VzIGEgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmFjMWFiZGMxYzQ3ZDZiY2NjODNjYWYxOWI2OWY2YTk3
NWFiMmE0OC4uN2Y1YWMxZGM0MDQwNTI3M2Q2ZDY1ZGZmZmMyNWMzOTMxNjZkZDlmNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0ODcsNiArNDQ4Nyw3
IEBAIHdlYmtpdC5vcmcvYi8yMTU5MzAgd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1jc3MtdHJh
bnNpdGlvbi13aXRoLWVhc2luZy15LWF4aXMtCiB3ZWJraXQub3JnL2IvMjE2MzEzIHdlYmFuaW1h
dGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLWVhc2luZy11cGRhdGUtYWZ0ZXItcGF1c2UuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIxNjMxMyB3ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVk
LWFuaW1hdGlvbi1lYXNpbmctdXBkYXRlLXN0ZXBzLWFmdGVyLXBhdXNlLmh0bWwgWyBTa2lwIF0K
IHdlYmtpdC5vcmcvYi8yMTYzNjcgd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24t
ZWFzaW5nLWFuZC1kaXJlY3Rpb24tdXBkYXRlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8y
MjUzNTcgd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2luZ2xl
LWludGVydmFsLWFuZC1lYXNpbmcteS1heGlzLWFib3ZlLTEuaHRtbCBbIFNraXAgXQogCiAjIFRo
aXMgdGVzdCByZXF1aXJlcyB0aGUgT1MgdG8gaGF2ZSBhIGZvbnQgdGhhdCBzdXBwb3J0cyB0aGUg
QWhvbSBsYW5ndWFnZS4KIHdlYmtpdC5vcmcvYi8yMTYwMjQgZmFzdC90ZXh0L2Fob20uaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9u
cy9hY2NlbGVyYXRlZC13ZWItYW5pbWF0aW9uLXdpdGgtc2luZ2xlLWludGVydmFsLWFuZC1lYXNp
bmcteS1heGlzLWFib3ZlLTEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlv
bnMvYWNjZWxlcmF0ZWQtd2ViLWFuaW1hdGlvbi13aXRoLXNpbmdsZS1pbnRlcnZhbC1hbmQtZWFz
aW5nLXktYXhpcy1hYm92ZS0xLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QzYTRmMWNmN2Fk
MGRkMzgxZDdkNjhjNzllNWM2YTQzNTI2NzkyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtd2ViLWFuaW1hdGlvbi13aXRoLXNpbmdsZS1p
bnRlcnZhbC1hbmQtZWFzaW5nLXktYXhpcy1hYm92ZS0xLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSwyIEBACis8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC13ZWItYW5p
bWF0aW9uLXdpdGgtc2luZ2xlLWludGVydmFsLWFuZC1lYXNpbmcteS1heGlzLWFib3ZlLTEuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtd2ViLWFuaW1hdGlvbi13
aXRoLXNpbmdsZS1pbnRlcnZhbC1hbmQtZWFzaW5nLXktYXhpcy1hYm92ZS0xLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmQ5ZTgxMTVhYzI3MWJmMjJhNmY4NzA3ZTNmZGNkZTI5YzkyZjZiYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtd2ViLWFuaW1h
dGlvbi13aXRoLXNpbmdsZS1pbnRlcnZhbC1hbmQtZWFzaW5nLXktYXhpcy1hYm92ZS0xLmh0bWwK
QEAgLTAsMCArMSw0MCBAQAorPGJvZHk+Cis8c3R5bGU+CisgICAgCisgICAgYm9keSB7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgCisgICAgZGl2IHsKKyAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDA7CisgICAgICAgIGxlZnQ6IDA7
CisgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBs
ZWZ0OworICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7CisgICAgfQorCis8L3N0eWxlPgor
PGRpdj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKKyhhc3luYyBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgYXdh
aXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiZGl2IikuYW5pbWF0ZSh7IHRyYW5zZm9ybTogInNjYWxlKDEpIiB9LCB7IGR1cmF0aW9uOiAy
MDAwLCBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMCwgMjAwLCAxLCAyMDApIiB9KTsKKworICAgIGF3
YWl0IFByb21pc2UuYWxsKGRvY3VtZW50LmdldEFuaW1hdGlvbnMoKS5tYXAoYW5pbWF0aW9uID0+
IGFuaW1hdGlvbi5yZWFkeSkpOworICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlv
blVwZGF0ZSgpOworICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworCisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30pKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>