<?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>216654</bug_id>
          
          <creation_ts>2020-09-17 10:50:31 -0700</creation_ts>
          <short_desc>Remove AnimationTimeline::animationsForElement() and the CSS Transitions and CSS Animations accessors on ElementAnimationRareData</short_desc>
          <delta_ts>2020-09-17 12:29:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>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>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689508</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-09-17 10:50:31 -0700</bug_when>
    <thetext>Remove AnimationTimeline::animationsForElement() and the CSS Transitions and CSS Animations accessors on ElementAnimationRareData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689511</commentid>
    <comment_count>1</comment_count>
      <attachid>409049</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-09-17 10:53:34 -0700</bug_when>
    <thetext>Created attachment 409049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689514</commentid>
    <comment_count>2</comment_count>
      <attachid>409049</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-09-17 10:58:41 -0700</bug_when>
    <thetext>Comment on attachment 409049
Patch

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

&gt; Source/WebCore/animation/DocumentTimeline.cpp:338
&gt; +    if (auto* animations = renderer.element()-&gt;animations()) {

Early return if renderer.element()-&gt;animations() is null?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:360
&gt; +    if (auto* animations = renderer.element()-&gt;animations()) {

Early return if renderer.element()-&gt;animations() is null?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:379
&gt; +    if (auto* animations = renderer.element()-&gt;animations()) {

Early return if renderer.element()-&gt;animations() is null?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:401
&gt; +        if (auto* animations = renderer.element()-&gt;animations()) {

Early return if element or renderer.element()-&gt;animations() are null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689523</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-09-17 11:12:00 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 409049 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409049&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:338
&gt; &gt; +    if (auto* animations = renderer.element()-&gt;animations()) {
&gt; 
&gt; Early return if renderer.element()-&gt;animations() is null?
&gt; 
&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:360
&gt; &gt; +    if (auto* animations = renderer.element()-&gt;animations()) {
&gt; 
&gt; Early return if renderer.element()-&gt;animations() is null?
&gt; 
&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:379
&gt; &gt; +    if (auto* animations = renderer.element()-&gt;animations()) {
&gt; 
&gt; Early return if renderer.element()-&gt;animations() is null?
&gt; 
&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:401
&gt; &gt; +        if (auto* animations = renderer.element()-&gt;animations()) {
&gt; 
&gt; Early return if element or renderer.element()-&gt;animations() are null?

Yes, yes, yes and yes. Will fix in commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689543</commentid>
    <comment_count>4</comment_count>
      <attachid>409054</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-09-17 11:55:28 -0700</bug_when>
    <thetext>Created attachment 409054
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689550</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-17 12:28:47 -0700</bug_when>
    <thetext>Committed r267204: &lt;https://trac.webkit.org/changeset/267204&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409054.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689551</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-17 12:29:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69088172&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409049</attachid>
            <date>2020-09-17 10:53:34 -0700</date>
            <delta_ts>2020-09-17 11:55:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216654-20200917195333.patch</filename>
            <type>text/plain</type>
            <size>19383</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E3M2Y2MzcxZjkzNmFh
NjI2NWJlYzgxZmFiMjEyNmY2YzZhMTQ1OC4uNDRkYmNkZWE2YzAzNWZjZTUxYmZiZTM0MDRlODlh
YzI0OTg5ZjZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA5LTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBBbmltYXRp
b25UaW1lbGluZTo6YW5pbWF0aW9uc0ZvckVsZW1lbnQoKSBhbmQgdGhlIENTUyBUcmFuc2l0aW9u
cyBhbmQgQ1NTIEFuaW1hdGlvbnMgYWNjZXNzb3JzIG9uIEVsZW1lbnRBbmltYXRpb25SYXJlRGF0
YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NjU0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3Jl
IHdlIGltcGxlbWVudGVkIHRoZSBjb3JyZWN0IHdheSB0byBzb3J0IGFuaW1hdGlvbnMgdXNpbmcg
S2V5ZnJhbWVFZmZlY3RTdGFjaywgd2UgcmVsaWVkIG9uIGRpc3RpbmN0IGFuaW1hdGlvbiBjb2xs
ZWN0aW9ucworICAgICAgICBmb3IgQ1NTIFRyYW5zdGlvbnMgYW5kIENTUyBBbmltYXRpb25zIGFu
ZCByZW1haW5pbmcgV2ViIEFuaW1hdGlvbnMgb24gRWxlbWVudEFuaW1hdGlvblJhcmVEYXRhLiBX
ZSBkb24ndCBuZWVkIHRob3NlIGFueW1vcmUgYW5kCisgICAgICAgIHdlIGNhbiB1c2UgYSBzaW5n
bGUgY29sbGVjdGlvbiB3aGljaCB3ZSBjYW4gbm93IG5hbWUgYW5pbWF0aW9ucygpIGZvciBhbGwg
YW5pbWF0aW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoZSBBbmltYXRpb25UaW1lbGlu
ZTo6YW5pbWF0aW9uc0ZvckVsZW1lbnQoKSBtZXRob2Qgd2hlcmUgdGhlc2UgY29sbGVjdGlvbnMg
d2VyZSB1c2VkIHdoZW4gcmVxdWVzdGluZyB1bnNvcnRlZAorICAgICAgICBhbmltYXRpb25zIHdh
cyB1bm5lY2Vzc2FyeSBhbmQgYW4gaW5jb3JyZWN0IGRlc2lnbi4gQW5pbWF0aW9ucyBkbyBub3Qg
YmVsb25nIHRvIGEgZ2l2ZW4gdGltZWxpbmUsIHNvIHdlIG5vdyB1c2UgdGhlIGFjY2Vzc29ycwor
ICAgICAgICBvbiBFbGVtZW50QW5pbWF0aW9uUmFyZURhdGEgZGlyZWN0bHkgdG8gZ2V0IHRoZSBz
b3J0ZWQgbGlzdCBvZiBlZmZlY3RzIG9yIHRoZSBzaW5nbGUgYW5pbWF0aW9ucyBjb2xsZWN0aW9u
LgorCisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6YW5pbWF0aW9uV2FzUmVtb3Zl
ZEZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjp3aWxs
Q2hhbmdlUmVuZGVyZXJGb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRp
bWVsaW5lOjpjYW5jZWxEZWNsYXJhdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRpb25zRm9yRWxlbWVudCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmg6CisgICAg
ICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0aW9uQ2FuQmVSZW1vdmVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGltZWxpbmU6OmNvbXB1dGVFeHRlbnRPZkFuaW1hdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjppc1J1bm5pbmdBbmltYXRpb25PblJl
bmRlcmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OmlzUnVu
bmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudFRpbWVsaW5lOjphbmltYXRlZFN0eWxlRm9yUmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6dXBkYXRlTGlzdE9mRWxlbWVudHNXaXRoUnVu
bmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQpOgorICAgICAgICAqIGFuaW1hdGlv
bi9FbGVtZW50QW5pbWF0aW9uUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRB
bmltYXRpb25SYXJlRGF0YTo6YW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
QW5pbWF0aW9uUmFyZURhdGE6OndlYkFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudEFuaW1hdGlvblJhcmVEYXRhOjpjc3NBbmltYXRpb25zKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRBbmltYXRpb25SYXJlRGF0YTo6dHJhbnNpdGlvbnMp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmFuaW1hdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
ZW5zdXJlQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRBbmltYXRp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYkFuaW1hdGlvbnMgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y3NzQW5pbWF0aW9ucyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp0cmFuc2l0aW9ucyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1cmVXZWJBbmltYXRpb25z
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZUNTU0FuaW1hdGlv
bnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlVHJhbnNpdGlv
bnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisKIDIwMjAtMDktMTcgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBs
ZWdhY3kgYW5pbWF0aW9uIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0
aW9uVGltZWxpbmUuY3BwCmluZGV4IDMwYmQ0ZjAzMzU4ZTY2ZDUzYjAzNmFjY2FjZjY1OWMxNWI0
NTBkZjAuLjc0YzA2NTRhNTdjN2IwMjE0Zjg5NmNmMjQ2ZTNlNzQ0MWQ1NmU2NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcApAQCAtOTcsMTIg
Kzk3LDcgQEAgT3B0aW9uYWw8ZG91YmxlPiBBbmltYXRpb25UaW1lbGluZTo6YmluZGluZ3NDdXJy
ZW50VGltZSgpCiAKIHZvaWQgQW5pbWF0aW9uVGltZWxpbmU6OmFuaW1hdGlvbldhc0FkZGVkVG9F
bGVtZW50KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uLCBFbGVtZW50JiBlbGVtZW50KQogewotICAg
IGlmIChpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pICYmIGRvd25jYXN0PENTU1RyYW5zaXRp
b24+KGFuaW1hdGlvbikub3duaW5nRWxlbWVudCgpID09ICZlbGVtZW50KQotICAgICAgICBlbGVt
ZW50LmVuc3VyZVRyYW5zaXRpb25zKCkuYWRkKCZhbmltYXRpb24pOwotICAgIGVsc2UgaWYgKGlz
PENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKSAmJiBkb3duY2FzdDxDU1NBbmltYXRpb24+KGFuaW1h
dGlvbikub3duaW5nRWxlbWVudCgpID09ICZlbGVtZW50KQotICAgICAgICBlbGVtZW50LmVuc3Vy
ZUNTU0FuaW1hdGlvbnMoKS5hZGQoJmFuaW1hdGlvbik7Ci0gICAgZWxzZQotICAgICAgICBlbGVt
ZW50LmVuc3VyZVdlYkFuaW1hdGlvbnMoKS5hZGQoJmFuaW1hdGlvbik7CisgICAgZWxlbWVudC5l
bnN1cmVBbmltYXRpb25zKCkuYWRkKCZhbmltYXRpb24pOwogfQogCiBzdGF0aWMgaW5saW5lIGJv
b2wgcmVtb3ZlQ1NTVHJhbnNpdGlvbkZyb21NYXAoQ1NTVHJhbnNpdGlvbiYgdHJhbnNpdGlvbiwg
UHJvcGVydHlUb1RyYW5zaXRpb25NYXAmIGNzc1RyYW5zaXRpb25zQnlQcm9wZXJ0eSkKQEAgLTEx
Nyw5ICsxMTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcmVtb3ZlQ1NTVHJhbnNpdGlvbkZyb21N
YXAoQ1NTVHJhbnNpdGlvbiYgdHJhbnNpdGlvbiwgUHJvcGVydAogCiB2b2lkIEFuaW1hdGlvblRp
bWVsaW5lOjphbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24sIEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgZWxlbWVudC5lbnN1cmVUcmFuc2l0aW9u
cygpLnJlbW92ZSgmYW5pbWF0aW9uKTsKLSAgICBlbGVtZW50LmVuc3VyZUNTU0FuaW1hdGlvbnMo
KS5yZW1vdmUoJmFuaW1hdGlvbik7Ci0gICAgZWxlbWVudC5lbnN1cmVXZWJBbmltYXRpb25zKCku
cmVtb3ZlKCZhbmltYXRpb24pOworICAgIGVsZW1lbnQuZW5zdXJlQW5pbWF0aW9ucygpLnJlbW92
ZSgmYW5pbWF0aW9uKTsKIAogICAgIC8vIE5vdywgaWYgd2UncmUgZGVhbGluZyB3aXRoIGEgQ1NT
IFRyYW5zaXRpb24sIHdlIHJlbW92ZSBpdCBmcm9tIHRoZSBtX2VsZW1lbnRUb1J1bm5pbmdDU1NU
cmFuc2l0aW9uQnlDU1NQcm9wZXJ0eUlEIG1hcC4KICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGRv
IHRoaXMgZm9yIENTUyBBbmltYXRpb25zIGJlY2F1c2UgdGhlaXIgdGltaW5nIGNhbiBiZSBzZXQg
dmlhIENTUyB0byBlbmQsIHdoaWNoIHdvdWxkIGNhdXNlIHRoaXMKQEAgLTE0MCwyNyArMTMzLDYg
QEAgdm9pZCBBbmltYXRpb25UaW1lbGluZTo6cmVtb3ZlRGVjbGFyYXRpdmVBbmltYXRpb25Gcm9t
TGlzdHNGb3JPd25pbmdFbGVtZW50KFdlYkEKICAgICB9CiB9CiAKLVZlY3RvcjxSZWZQdHI8V2Vi
QW5pbWF0aW9uPj4gQW5pbWF0aW9uVGltZWxpbmU6OmFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1l
bnQmIGVsZW1lbnQsIE9yZGVyaW5nIG9yZGVyaW5nKSBjb25zdAotewotICAgIFZlY3RvcjxSZWZQ
dHI8V2ViQW5pbWF0aW9uPj4gYW5pbWF0aW9uczsKLQotICAgIGlmIChvcmRlcmluZyA9PSBPcmRl
cmluZzo6U29ydGVkKSB7Ci0gICAgICAgIGlmIChlbGVtZW50Lmhhc0tleWZyYW1lRWZmZWN0cygp
KSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIGVmZmVjdCA6IGVsZW1lbnQuZW5zdXJlS2V5ZnJh
bWVFZmZlY3RTdGFjaygpLnNvcnRlZEVmZmVjdHMoKSkKLSAgICAgICAgICAgICAgICBhbmltYXRp
b25zLmFwcGVuZChlZmZlY3QtPmFuaW1hdGlvbigpKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChhdXRvKiBjc3NUcmFuc2l0aW9ucyA9IGVsZW1lbnQudHJhbnNpdGlvbnMo
KSkKLSAgICAgICAgICAgIGFuaW1hdGlvbnMuYXBwZW5kUmFuZ2UoY3NzVHJhbnNpdGlvbnMtPmJl
Z2luKCksIGNzc1RyYW5zaXRpb25zLT5lbmQoKSk7Ci0gICAgICAgIGlmIChhdXRvKiBjc3NBbmlt
YXRpb25zID0gZWxlbWVudC5jc3NBbmltYXRpb25zKCkpCi0gICAgICAgICAgICBhbmltYXRpb25z
LmFwcGVuZFJhbmdlKGNzc0FuaW1hdGlvbnMtPmJlZ2luKCksIGNzc0FuaW1hdGlvbnMtPmVuZCgp
KTsKLSAgICAgICAgaWYgKGF1dG8qIHdlYkFuaW1hdGlvbnMgPSBlbGVtZW50LndlYkFuaW1hdGlv
bnMoKSkKLSAgICAgICAgICAgIGFuaW1hdGlvbnMuYXBwZW5kUmFuZ2Uod2ViQW5pbWF0aW9ucy0+
YmVnaW4oKSwgd2ViQW5pbWF0aW9ucy0+ZW5kKCkpOwotICAgIH0KLQotICAgIHJldHVybiBhbmlt
YXRpb25zOwotfQotCiB2b2lkIEFuaW1hdGlvblRpbWVsaW5lOjpyZW1vdmVDU1NBbmltYXRpb25D
cmVhdGVkQnlNYXJrdXAoRWxlbWVudCYgZWxlbWVudCwgQ1NTQW5pbWF0aW9uJiBjc3NBbmltYXRp
b24pCiB7CiAgICAgZWxlbWVudC5hbmltYXRpb25zQ3JlYXRlZEJ5TWFya3VwKCkucmVtb3ZlKCZj
c3NBbmltYXRpb24pOwpAQCAtMTkxLDIyICsxNjMsMjEgQEAgdm9pZCBBbmltYXRpb25UaW1lbGlu
ZTo6ZWxlbWVudFdhc1JlbW92ZWQoRWxlbWVudCYgZWxlbWVudCkKIAogdm9pZCBBbmltYXRpb25U
aW1lbGluZTo6d2lsbENoYW5nZVJlbmRlcmVyRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQog
ewotICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogYW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVu
dCkpCi0gICAgICAgIGFuaW1hdGlvbi0+d2lsbENoYW5nZVJlbmRlcmVyKCk7CisgICAgaWYgKGF1
dG8qIGFuaW1hdGlvbnMgPSBlbGVtZW50LmFuaW1hdGlvbnMoKSkgeworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGFuaW1hdGlvbiA6ICphbmltYXRpb25zKQorICAgICAgICAgICAgYW5pbWF0aW9u
LT53aWxsQ2hhbmdlUmVuZGVyZXIoKTsKKyAgICB9CiB9CiAKIHZvaWQgQW5pbWF0aW9uVGltZWxp
bmU6OmNhbmNlbERlY2xhcmF0aXZlQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVu
dCwgV2ViQW5pbWF0aW9uOjpTaWxlbnRseSBzaWxlbnRseSkKIHsKLSAgICBpZiAoYXV0byogdHJh
bnNpdGlvbnMgPSBlbGVtZW50LnRyYW5zaXRpb25zKCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBj
c3NUcmFuc2l0aW9uIDogKnRyYW5zaXRpb25zKQotICAgICAgICAgICAgY3NzVHJhbnNpdGlvbi0+
Y2FuY2VsKHNpbGVudGx5KTsKLSAgICB9Ci0KLSAgICBpZiAoYXV0byogY3NzQW5pbWF0aW9ucyA9
IGVsZW1lbnQuY3NzQW5pbWF0aW9ucygpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgY3NzQW5pbWF0
aW9uIDogKmNzc0FuaW1hdGlvbnMpIHsKLSAgICAgICAgICAgIGlmIChpczxDU1NBbmltYXRpb24+
KGNzc0FuaW1hdGlvbikpCi0gICAgICAgICAgICAgICAgcmVtb3ZlQ1NTQW5pbWF0aW9uQ3JlYXRl
ZEJ5TWFya3VwKGVsZW1lbnQsIGRvd25jYXN0PENTU0FuaW1hdGlvbj4oKmNzc0FuaW1hdGlvbikp
OwotICAgICAgICAgICAgY3NzQW5pbWF0aW9uLT5jYW5jZWwoc2lsZW50bHkpOworICAgIGlmIChh
dXRvKiBhbmltYXRpb25zID0gZWxlbWVudC5hbmltYXRpb25zKCkpIHsKKyAgICAgICAgZm9yIChh
dXRvJiBhbmltYXRpb24gOiAqYW5pbWF0aW9ucykgeworICAgICAgICAgICAgaWYgKGlzPERlY2xh
cmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzPENT
U0FuaW1hdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ1NTQW5p
bWF0aW9uQ3JlYXRlZEJ5TWFya3VwKGVsZW1lbnQsIGRvd25jYXN0PENTU0FuaW1hdGlvbj4oKmFu
aW1hdGlvbikpOworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi0+Y2FuY2VsKHNpbGVudGx5KTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmgKaW5kZXggMDc1NDI2ZDBhOWM4NzE4MTg1YWViOTU1
YTIxODcxNjg3ZjRjZDJiZC4uODllOWQ0Nzg3NzczYmRkMzA2MjYzMjQ2YzM1Y2FjMDk4MDMzYjI4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmgKQEAg
LTYxLDkgKzYxLDYgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPGRvdWJsZT4gYmluZGluZ3NDdXJy
ZW50VGltZSgpOwogICAgIHZpcnR1YWwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUoKSB7
IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAKLSAgICBlbnVtIGNsYXNzIE9yZGVyaW5nIDogdWlu
dDhfdCB7IFNvcnRlZCwgVW5zb3J0ZWQgfTsKLSAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlv
bj4+IGFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmLCBPcmRlcmluZyA9IE9yZGVyaW5nOjpV
bnNvcnRlZCkgY29uc3Q7Ci0KICAgICB2b2lkIGVsZW1lbnRXYXNSZW1vdmVkKEVsZW1lbnQmKTsK
IAogICAgIHZvaWQgd2lsbENoYW5nZVJlbmRlcmVyRm9yRWxlbWVudChFbGVtZW50Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXggZTMwNjQz
ZWJjNjAyNzE5MzJmZWQzY2I0ODFiOWQyYjQzNzZjYzA4NC4uZjNlYmJiZDIyMzRlYzk0ZTRiZWZl
MmY5NTJmY2Y5MmJkY2FiMGU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1
bWVudFRpbWVsaW5lLmNwcApAQCAtMjMyLDcgKzIzMiwxNSBAQCBib29sIERvY3VtZW50VGltZWxp
bmU6OmFuaW1hdGlvbkNhbkJlUmVtb3ZlZChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiBwcm9wZXJ0aWVz
VG9NYXRjaCA9IGtleWZyYW1lRWZmZWN0LT5hbmltYXRlZFByb3BlcnRpZXMoKTsKLSAgICBhdXRv
IGFuaW1hdGlvbnMgPSBhbmltYXRpb25zRm9yRWxlbWVudCgqdGFyZ2V0LCBBbmltYXRpb25UaW1l
bGluZTo6T3JkZXJpbmc6OlNvcnRlZCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlv
bj4+IGFuaW1hdGlvbnM7CisgICAgaWYgKGF1dG8qIGtleWZyYW1lRWZmZWN0U3RhY2sgPSB0YXJn
ZXQtPmtleWZyYW1lRWZmZWN0U3RhY2soKSkgeworICAgICAgICBmb3IgKGF1dG8mIGVmZmVjdCA6
IGtleWZyYW1lRWZmZWN0U3RhY2stPnNvcnRlZEVmZmVjdHMoKSkgeworICAgICAgICAgICAgaWYg
KGVmZmVjdC0+YW5pbWF0aW9uKCktPmlzUmVsZXZhbnQoKSkKKyAgICAgICAgICAgICAgICBhbmlt
YXRpb25zLmFwcGVuZChlZmZlY3QtPmFuaW1hdGlvbigpKTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGZvciAoYXV0byYgYW5pbWF0aW9uV2l0aEhpZ2hlckNvbXBvc2l0ZU9yZGVyIDogV1RGOjpt
YWtlUmV2ZXJzZWRSYW5nZShhbmltYXRpb25zKSkgewogICAgICAgICBpZiAoJmFuaW1hdGlvbiA9
PSBhbmltYXRpb25XaXRoSGlnaGVyQ29tcG9zaXRlT3JkZXIpCiAgICAgICAgICAgICBicmVhazsK
QEAgLTMyNywxMiArMzM1LDE0IEBAIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6Y29tcHV0ZUV4dGVu
dE9mQW5pbWF0aW9uKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBMYXlvdXRSCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgS2V5ZnJhbWVFZmZlY3QqIG1hdGNoaW5nRWZmZWN0ID0gbnVsbHB0
cjsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnNGb3JFbGVtZW50
KCpyZW5kZXJlci5lbGVtZW50KCkpKSB7Ci0gICAgICAgIGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlv
bi0+ZWZmZWN0KCk7Ci0gICAgICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkgewot
ICAgICAgICAgICAgYXV0byoga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVj
dD4oZWZmZWN0KTsKLSAgICAgICAgICAgIGlmIChrZXlmcmFtZUVmZmVjdC0+YW5pbWF0ZWRQcm9w
ZXJ0aWVzKCkuY29udGFpbnMoQ1NTUHJvcGVydHlUcmFuc2Zvcm0pKQotICAgICAgICAgICAgICAg
IG1hdGNoaW5nRWZmZWN0ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCk7CisgICAg
aWYgKGF1dG8qIGFuaW1hdGlvbnMgPSByZW5kZXJlci5lbGVtZW50KCktPmFuaW1hdGlvbnMoKSkg
eworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6ICphbmltYXRpb25zKSB7Cisg
ICAgICAgICAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOworICAgICAgICAg
ICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKSB7CisgICAgICAgICAgICAgICAgYXV0
byoga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KTsKKyAg
ICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVFZmZlY3QtPmFuaW1hdGVkUHJvcGVydGllcygpLmNv
bnRhaW5zKENTU1Byb3BlcnR5VHJhbnNmb3JtKSkKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hp
bmdFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMzQ3LDEzICszNTcsMTUgQEAgYm9vbCBEb2N1bWVu
dFRpbWVsaW5lOjppc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKFJlbmRlckVsZW1lbnQmIHJl
bmRlcmVyLCBDU1MKICAgICBpZiAoIXJlbmRlcmVyLmVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiBhbmltYXRpb25zRm9y
RWxlbWVudCgqcmVuZGVyZXIuZWxlbWVudCgpKSkgewotICAgICAgICBhdXRvIHBsYXlTdGF0ZSA9
IGFuaW1hdGlvbi0+cGxheVN0YXRlKCk7Ci0gICAgICAgIGlmIChwbGF5U3RhdGUgIT0gV2ViQW5p
bWF0aW9uOjpQbGF5U3RhdGU6OlJ1bm5pbmcgJiYgcGxheVN0YXRlICE9IFdlYkFuaW1hdGlvbjo6
UGxheVN0YXRlOjpQYXVzZWQpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byog
ZWZmZWN0ID0gYW5pbWF0aW9uLT5lZmZlY3QoKTsKLSAgICAgICAgaWYgKGlzPEtleWZyYW1lRWZm
ZWN0PihlZmZlY3QpICYmIGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihlZmZlY3QpLT5hbmltYXRl
ZFByb3BlcnRpZXMoKS5jb250YWlucyhwcm9wZXJ0eSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBpZiAoYXV0byogYW5pbWF0aW9ucyA9IHJlbmRlcmVyLmVsZW1lbnQoKS0+YW5pbWF0
aW9ucygpKSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDogKmFuaW1hdGlv
bnMpIHsKKyAgICAgICAgICAgIGF1dG8gcGxheVN0YXRlID0gYW5pbWF0aW9uLT5wbGF5U3RhdGUo
KTsKKyAgICAgICAgICAgIGlmIChwbGF5U3RhdGUgIT0gV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGU6
OlJ1bm5pbmcgJiYgcGxheVN0YXRlICE9IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVzZWQp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvKiBlZmZlY3QgPSBh
bmltYXRpb24tPmVmZmVjdCgpOworICAgICAgICAgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0Pihl
ZmZlY3QpICYmIGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihlZmZlY3QpLT5hbmltYXRlZFByb3Bl
cnRpZXMoKS5jb250YWlucyhwcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNjQsMTUgKzM3Niwx
NyBAQCBib29sIERvY3VtZW50VGltZWxpbmU6OmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9u
T25SZW5kZXJlcihSZW5kZXJFbGVtZW50JiByZQogICAgIGlmICghcmVuZGVyZXIuZWxlbWVudCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlv
biA6IGFuaW1hdGlvbnNGb3JFbGVtZW50KCpyZW5kZXJlci5lbGVtZW50KCkpKSB7Ci0gICAgICAg
IGF1dG8gcGxheVN0YXRlID0gYW5pbWF0aW9uLT5wbGF5U3RhdGUoKTsKLSAgICAgICAgaWYgKHBs
YXlTdGF0ZSAhPSBXZWJBbmltYXRpb246OlBsYXlTdGF0ZTo6UnVubmluZyAmJiBwbGF5U3RhdGUg
IT0gV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGU6OlBhdXNlZCkKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOwotICAgICAgICBp
ZiAoaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpIHsKLSAgICAgICAgICAgIGF1dG8qIGtleWZy
YW1lRWZmZWN0ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCk7Ci0gICAgICAgICAg
ICBpZiAoa2V5ZnJhbWVFZmZlY3QtPmlzQ3VycmVudGx5QWZmZWN0aW5nUHJvcGVydHkocHJvcGVy
dHksIEtleWZyYW1lRWZmZWN0OjpBY2NlbGVyYXRlZDo6WWVzKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byogYW5pbWF0aW9ucyA9IHJlbmRlcmVyLmVsZW1lbnQo
KS0+YW5pbWF0aW9ucygpKSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDog
KmFuaW1hdGlvbnMpIHsKKyAgICAgICAgICAgIGF1dG8gcGxheVN0YXRlID0gYW5pbWF0aW9uLT5w
bGF5U3RhdGUoKTsKKyAgICAgICAgICAgIGlmIChwbGF5U3RhdGUgIT0gV2ViQW5pbWF0aW9uOjpQ
bGF5U3RhdGU6OlJ1bm5pbmcgJiYgcGxheVN0YXRlICE9IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRl
OjpQYXVzZWQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvKiBl
ZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOworICAgICAgICAgICAgaWYgKGlzPEtleWZyYW1l
RWZmZWN0PihlZmZlY3QpKSB7CisgICAgICAgICAgICAgICAgYXV0byoga2V5ZnJhbWVFZmZlY3Qg
PSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KTsKKyAgICAgICAgICAgICAgICBpZiAo
a2V5ZnJhbWVFZmZlY3QtPmlzQ3VycmVudGx5QWZmZWN0aW5nUHJvcGVydHkocHJvcGVydHksIEtl
eWZyYW1lRWZmZWN0OjpBY2NlbGVyYXRlZDo6WWVzKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM4NCw5ICsz
OTgsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBEb2N1bWVudFRpbWVsaW5lOjph
bmltYXRlZFN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyRWwKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IHJlc3VsdDsKIAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcmVuZGVyZXIuZWxl
bWVudCgpKSB7Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDogYW5pbWF0aW9u
c0ZvckVsZW1lbnQoKmVsZW1lbnQpKSB7Ci0gICAgICAgICAgICBpZiAoaXM8S2V5ZnJhbWVFZmZl
Y3Q+KGFuaW1hdGlvbi0+ZWZmZWN0KCkpKQotICAgICAgICAgICAgICAgIGRvd25jYXN0PEtleWZy
YW1lRWZmZWN0PihhbmltYXRpb24tPmVmZmVjdCgpKS0+Z2V0QW5pbWF0ZWRTdHlsZShyZXN1bHQp
OworICAgICAgICBpZiAoYXV0byogYW5pbWF0aW9ucyA9IHJlbmRlcmVyLmVsZW1lbnQoKS0+YW5p
bWF0aW9ucygpKSB7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6ICph
bmltYXRpb25zKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0Pihhbmlt
YXRpb24tPmVmZmVjdCgpKSkKKyAgICAgICAgICAgICAgICAgICAgZG93bmNhc3Q8S2V5ZnJhbWVF
ZmZlY3Q+KGFuaW1hdGlvbi0+ZWZmZWN0KCkpLT5nZXRBbmltYXRlZFN0eWxlKHJlc3VsdCk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQyNSwxNCArNDQxLDEzIEBAIHZv
aWQgRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0aW9uQWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRD
aGFuZ2UoV2ViQW5pbWF0aW9uJiBhCiAKIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6dXBkYXRlTGlz
dE9mRWxlbWVudHNXaXRoUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKIHsKLSAgICBhdXRvIGFuaW1hdGlvbnMgPSBhbmltYXRpb25zRm9yRWxl
bWVudChlbGVtZW50KTsKLQotICAgIGlmIChhbmltYXRpb25zLmlzRW1wdHkoKSkgeworICAgIGF1
dG8qIGFuaW1hdGlvbnMgPSBlbGVtZW50LmFuaW1hdGlvbnMoKTsKKyAgICBpZiAoIWFuaW1hdGlv
bnMgfHwgYW5pbWF0aW9ucy0+aXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZWxlbWVudHNXaXRoUnVu
bmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucy5yZW1vdmUoJmVsZW1lbnQpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiBhbmltYXRpb25z
KSB7CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiAqYW5pbWF0aW9ucykgewogICAg
ICAgICBpZiAoIWFuaW1hdGlvbi0+aXNSdW5uaW5nQWNjZWxlcmF0ZWQoKSkgewogICAgICAgICAg
ICAgbV9lbGVtZW50c1dpdGhSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zLnJlbW92ZSgmZWxl
bWVudCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vRWxlbWVudEFuaW1hdGlvblJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRWxlbWVudEFuaW1hdGlvblJhcmVEYXRhLmgKaW5kZXggYTY0YjIwMGRlM2VkNzRkMWUy
MDZhYzMzYWM3YmQ1ZDIwM2U4Y2Y2NS4uMjhhMDRhMjU1ZTExZWZhODIzNjNhNThiOTMwOWUzZjlm
MzE0MjBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VsZW1lbnRBbmlt
YXRpb25SYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FbGVtZW50QW5p
bWF0aW9uUmFyZURhdGEuaApAQCAtNDUsOSArNDUsNyBAQCBwdWJsaWM6CiAgICAgS2V5ZnJhbWVF
ZmZlY3RTdGFjayoga2V5ZnJhbWVFZmZlY3RTdGFjaygpIHsgcmV0dXJuIG1fa2V5ZnJhbWVFZmZl
Y3RTdGFjay5nZXQoKTsgfQogICAgIEtleWZyYW1lRWZmZWN0U3RhY2smIGVuc3VyZUtleWZyYW1l
RWZmZWN0U3RhY2soKTsKIAotICAgIEFuaW1hdGlvbkNvbGxlY3Rpb24mIHdlYkFuaW1hdGlvbnMo
KSB7IHJldHVybiBtX3dlYkFuaW1hdGlvbnM7IH0KLSAgICBBbmltYXRpb25Db2xsZWN0aW9uJiBj
c3NBbmltYXRpb25zKCkgeyByZXR1cm4gbV9jc3NBbmltYXRpb25zOyB9Ci0gICAgQW5pbWF0aW9u
Q29sbGVjdGlvbiYgdHJhbnNpdGlvbnMoKSB7IHJldHVybiBtX3RyYW5zaXRpb25zOyB9CisgICAg
QW5pbWF0aW9uQ29sbGVjdGlvbiYgYW5pbWF0aW9ucygpIHsgcmV0dXJuIG1fYW5pbWF0aW9uczsg
fQogICAgIENTU0FuaW1hdGlvbkNvbGxlY3Rpb24mIGFuaW1hdGlvbnNDcmVhdGVkQnlNYXJrdXAo
KSB7IHJldHVybiBtX2FuaW1hdGlvbnNDcmVhdGVkQnlNYXJrdXA7IH0KICAgICB2b2lkIHNldEFu
aW1hdGlvbnNDcmVhdGVkQnlNYXJrdXAoQ1NTQW5pbWF0aW9uQ29sbGVjdGlvbiYmKTsKICAgICBQ
cm9wZXJ0eVRvVHJhbnNpdGlvbk1hcCYgY29tcGxldGVkVHJhbnNpdGlvbnNCeVByb3BlcnR5KCkg
eyByZXR1cm4gbV9jb21wbGV0ZWRUcmFuc2l0aW9uc0J5UHJvcGVydHk7IH0KQEAgLTU5LDkgKzU3
LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxLZXlmcmFtZUVmZmVjdFN0YWNr
PiBtX2tleWZyYW1lRWZmZWN0U3RhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFJlbmRl
clN0eWxlPiBtX2xhc3RTdHlsZUNoYW5nZUV2ZW50U3R5bGU7Ci0gICAgQW5pbWF0aW9uQ29sbGVj
dGlvbiBtX3dlYkFuaW1hdGlvbnM7Ci0gICAgQW5pbWF0aW9uQ29sbGVjdGlvbiBtX2Nzc0FuaW1h
dGlvbnM7Ci0gICAgQW5pbWF0aW9uQ29sbGVjdGlvbiBtX3RyYW5zaXRpb25zOworICAgIEFuaW1h
dGlvbkNvbGxlY3Rpb24gbV9hbmltYXRpb25zOwogICAgIENTU0FuaW1hdGlvbkNvbGxlY3Rpb24g
bV9hbmltYXRpb25zQ3JlYXRlZEJ5TWFya3VwOwogICAgIFByb3BlcnR5VG9UcmFuc2l0aW9uTWFw
IG1fY29tcGxldGVkVHJhbnNpdGlvbnNCeVByb3BlcnR5OwogICAgIFByb3BlcnR5VG9UcmFuc2l0
aW9uTWFwIG1fcnVubmluZ1RyYW5zaXRpb25zQnlQcm9wZXJ0eTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCBjMTY5OGY5ZWQxZWYyNjcwNDBmMzQ3ZjE1Mjk3ZWJjYzUwMjNlNWMxLi5mYmVjMzVi
YjdkZDk2MTk0ZTVmOTBiNDM1ZDZiMzAwYzg4MjljMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0zODUyLDI0ICszODUyLDEwIEBAIE9wdGlvblNldDxBbmltYXRpb25JbXBhY3Q+IEVsZW1l
bnQ6OmFwcGx5S2V5ZnJhbWVFZmZlY3RzKFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsCiAgICAgcmV0
dXJuIGltcGFjdDsKIH0KIAotY29uc3QgQW5pbWF0aW9uQ29sbGVjdGlvbiogRWxlbWVudDo6d2Vi
QW5pbWF0aW9ucygpIGNvbnN0Citjb25zdCBBbmltYXRpb25Db2xsZWN0aW9uKiBFbGVtZW50Ojph
bmltYXRpb25zKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogYW5pbWF0aW9uRGF0YSA9IGFuaW1h
dGlvblJhcmVEYXRhKCkpCi0gICAgICAgIHJldHVybiAmYW5pbWF0aW9uRGF0YS0+d2ViQW5pbWF0
aW9ucygpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi1jb25zdCBBbmltYXRpb25Db2xsZWN0
aW9uKiBFbGVtZW50Ojpjc3NBbmltYXRpb25zKCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byogYW5p
bWF0aW9uRGF0YSA9IGFuaW1hdGlvblJhcmVEYXRhKCkpCi0gICAgICAgIHJldHVybiAmYW5pbWF0
aW9uRGF0YS0+Y3NzQW5pbWF0aW9ucygpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi1jb25z
dCBBbmltYXRpb25Db2xsZWN0aW9uKiBFbGVtZW50Ojp0cmFuc2l0aW9ucygpIGNvbnN0Ci17Ci0g
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkRhdGEgPSBhbmltYXRpb25SYXJlRGF0YSgpKQotICAgICAg
ICByZXR1cm4gJmFuaW1hdGlvbkRhdGEtPnRyYW5zaXRpb25zKCk7CisgICAgICAgIHJldHVybiAm
YW5pbWF0aW9uRGF0YS0+YW5pbWF0aW9ucygpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBA
IC0zODk0LDE5ICszODgwLDkgQEAgYm9vbCBFbGVtZW50OjpoYXNSdW5uaW5nVHJhbnNpdGlvbnMo
KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQW5pbWF0aW9uQ29sbGVjdGlvbiYgRWxl
bWVudDo6ZW5zdXJlV2ViQW5pbWF0aW9ucygpCi17Ci0gICAgcmV0dXJuIGVuc3VyZUFuaW1hdGlv
blJhcmVEYXRhKCkud2ViQW5pbWF0aW9ucygpOwotfQotCi1BbmltYXRpb25Db2xsZWN0aW9uJiBF
bGVtZW50OjplbnN1cmVDU1NBbmltYXRpb25zKCkKLXsKLSAgICByZXR1cm4gZW5zdXJlQW5pbWF0
aW9uUmFyZURhdGEoKS5jc3NBbmltYXRpb25zKCk7Ci19Ci0KLUFuaW1hdGlvbkNvbGxlY3Rpb24m
IEVsZW1lbnQ6OmVuc3VyZVRyYW5zaXRpb25zKCkKK0FuaW1hdGlvbkNvbGxlY3Rpb24mIEVsZW1l
bnQ6OmVuc3VyZUFuaW1hdGlvbnMoKQogewotICAgIHJldHVybiBlbnN1cmVBbmltYXRpb25SYXJl
RGF0YSgpLnRyYW5zaXRpb25zKCk7CisgICAgcmV0dXJuIGVuc3VyZUFuaW1hdGlvblJhcmVEYXRh
KCkuYW5pbWF0aW9ucygpOwogfQogCiBDU1NBbmltYXRpb25Db2xsZWN0aW9uJiBFbGVtZW50Ojph
bmltYXRpb25zQ3JlYXRlZEJ5TWFya3VwKCkKQEAgLTQ1NjYsMTAgKzQ1NDIsMTAgQEAgVmVjdG9y
PFJlZlB0cjxXZWJBbmltYXRpb24+PiBFbGVtZW50OjpnZXRBbmltYXRpb25zKE9wdGlvbmFsPEdl
dEFuaW1hdGlvbnNPcHRpb24KICAgICBkb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsK
IAogICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gYW5pbWF0aW9uczsKLSAgICBpZiAo
YXV0byB0aW1lbGluZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdUaW1lbGluZSgpKSB7Ci0gICAgICAg
IGZvciAoYXV0byYgYW5pbWF0aW9uIDogdGltZWxpbmUtPmFuaW1hdGlvbnNGb3JFbGVtZW50KCp0
aGlzLCBBbmltYXRpb25UaW1lbGluZTo6T3JkZXJpbmc6OlNvcnRlZCkpIHsKLSAgICAgICAgICAg
IGlmIChhbmltYXRpb24tPmlzUmVsZXZhbnQoKSkKLSAgICAgICAgICAgICAgICBhbmltYXRpb25z
LmFwcGVuZChhbmltYXRpb24pOworICAgIGlmIChrZXlmcmFtZUVmZmVjdFN0YWNrKCkpIHsKKyAg
ICAgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBrZXlmcmFtZUVmZmVjdFN0YWNrKCktPnNvcnRlZEVm
ZmVjdHMoKSkgeworICAgICAgICAgICAgaWYgKGVmZmVjdC0+YW5pbWF0aW9uKCktPmlzUmVsZXZh
bnQoKSkKKyAgICAgICAgICAgICAgICBhbmltYXRpb25zLmFwcGVuZChlZmZlY3QtPmFuaW1hdGlv
bigpKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gYW5pbWF0aW9uczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCmluZGV4IGE2ZGE5MGU0NWQ3ZDFlMzdlMjEzN2Y4MDljNjQyYWQwMjE2ZGQyYjEuLmU3
MWQ0MWY3NmJhOTY2M2UwZDE3ZjVhNzhiODIyZmYxM2YyZjYxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aApAQCAtNDk1LDE1ICs0OTUsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzS2V5ZnJhbWVFZmZl
Y3RzKCkgY29uc3Q7CiAgICAgT3B0aW9uU2V0PEFuaW1hdGlvbkltcGFjdD4gYXBwbHlLZXlmcmFt
ZUVmZmVjdHMoUmVuZGVyU3R5bGUmKTsKIAotICAgIGNvbnN0IEFuaW1hdGlvbkNvbGxlY3Rpb24q
IHdlYkFuaW1hdGlvbnMoKSBjb25zdDsKLSAgICBjb25zdCBBbmltYXRpb25Db2xsZWN0aW9uKiBj
c3NBbmltYXRpb25zKCkgY29uc3Q7Ci0gICAgY29uc3QgQW5pbWF0aW9uQ29sbGVjdGlvbiogdHJh
bnNpdGlvbnMoKSBjb25zdDsKKyAgICBjb25zdCBBbmltYXRpb25Db2xsZWN0aW9uKiBhbmltYXRp
b25zKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDb21wbGV0ZWRUcmFuc2l0aW9uc0ZvclByb3BlcnR5
KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgaGFzUnVubmluZ1RyYW5zaXRpb25zRm9y
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAgICAgYm9vbCBoYXNSdW5uaW5nVHJhbnNp
dGlvbnMoKSBjb25zdDsKLSAgICBBbmltYXRpb25Db2xsZWN0aW9uJiBlbnN1cmVXZWJBbmltYXRp
b25zKCk7Ci0gICAgQW5pbWF0aW9uQ29sbGVjdGlvbiYgZW5zdXJlQ1NTQW5pbWF0aW9ucygpOwot
ICAgIEFuaW1hdGlvbkNvbGxlY3Rpb24mIGVuc3VyZVRyYW5zaXRpb25zKCk7CisgICAgQW5pbWF0
aW9uQ29sbGVjdGlvbiYgZW5zdXJlQW5pbWF0aW9ucygpOwogICAgIFByb3BlcnR5VG9UcmFuc2l0
aW9uTWFwJiBlbnN1cmVDb21wbGV0ZWRUcmFuc2l0aW9uc0J5UHJvcGVydHkoKTsKICAgICBQcm9w
ZXJ0eVRvVHJhbnNpdGlvbk1hcCYgZW5zdXJlUnVubmluZ1RyYW5zaXRpb25zQnlQcm9wZXJ0eSgp
OwogICAgIENTU0FuaW1hdGlvbkNvbGxlY3Rpb24mIGFuaW1hdGlvbnNDcmVhdGVkQnlNYXJrdXAo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409054</attachid>
            <date>2020-09-17 11:55:28 -0700</date>
            <delta_ts>2020-09-17 12:28:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-216654-20200917205527.patch</filename>
            <type>text/plain</type>
            <size>17851</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E3M2Y2MzcxZjkzNmFh
NjI2NWJlYzgxZmFiMjEyNmY2YzZhMTQ1OC4uMWE3OGMwYzZjMTU5ZThkNmMxYmI3YmNmMzM2NTli
Nzg5MjUzZThhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA5LTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBBbmltYXRp
b25UaW1lbGluZTo6YW5pbWF0aW9uc0ZvckVsZW1lbnQoKSBhbmQgdGhlIENTUyBUcmFuc2l0aW9u
cyBhbmQgQ1NTIEFuaW1hdGlvbnMgYWNjZXNzb3JzIG9uIEVsZW1lbnRBbmltYXRpb25SYXJlRGF0
YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NjU0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEJlZm9yZSB3
ZSBpbXBsZW1lbnRlZCB0aGUgY29ycmVjdCB3YXkgdG8gc29ydCBhbmltYXRpb25zIHVzaW5nIEtl
eWZyYW1lRWZmZWN0U3RhY2ssIHdlIHJlbGllZCBvbiBkaXN0aW5jdCBhbmltYXRpb24gY29sbGVj
dGlvbnMKKyAgICAgICAgZm9yIENTUyBUcmFuc3Rpb25zIGFuZCBDU1MgQW5pbWF0aW9ucyBhbmQg
cmVtYWluaW5nIFdlYiBBbmltYXRpb25zIG9uIEVsZW1lbnRBbmltYXRpb25SYXJlRGF0YS4gV2Ug
ZG9uJ3QgbmVlZCB0aG9zZSBhbnltb3JlIGFuZAorICAgICAgICB3ZSBjYW4gdXNlIGEgc2luZ2xl
IGNvbGxlY3Rpb24gd2hpY2ggd2UgY2FuIG5vdyBuYW1lIGFuaW1hdGlvbnMoKSBmb3IgYWxsIGFu
aW1hdGlvbnMuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCB0aGUgQW5pbWF0aW9uVGltZWxpbmU6
OmFuaW1hdGlvbnNGb3JFbGVtZW50KCkgbWV0aG9kIHdoZXJlIHRoZXNlIGNvbGxlY3Rpb25zIHdl
cmUgdXNlZCB3aGVuIHJlcXVlc3RpbmcgdW5zb3J0ZWQKKyAgICAgICAgYW5pbWF0aW9ucyB3YXMg
dW5uZWNlc3NhcnkgYW5kIGFuIGluY29ycmVjdCBkZXNpZ24uIEFuaW1hdGlvbnMgZG8gbm90IGJl
bG9uZyB0byBhIGdpdmVuIHRpbWVsaW5lLCBzbyB3ZSBub3cgdXNlIHRoZSBhY2Nlc3NvcnMKKyAg
ICAgICAgb24gRWxlbWVudEFuaW1hdGlvblJhcmVEYXRhIGRpcmVjdGx5IHRvIGdldCB0aGUgc29y
dGVkIGxpc3Qgb2YgZWZmZWN0cyBvciB0aGUgc2luZ2xlIGFuaW1hdGlvbnMgY29sbGVjdGlvbi4K
KworICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVGltZWxpbmU6OmFuaW1hdGlvbldhc1JlbW92ZWRG
cm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6d2lsbENo
YW5nZVJlbmRlcmVyRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1l
bGluZTo6Y2FuY2VsRGVjbGFyYXRpdmVBbmltYXRpb25zRm9yRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6YW5pbWF0aW9uc0ZvckVsZW1lbnQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oOgorICAgICAg
ICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50VGltZWxpbmU6OmFuaW1hdGlvbkNhbkJlUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFRpbWVsaW5lOjpjb21wdXRlRXh0ZW50T2ZBbmltYXRpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6aXNSdW5uaW5nQW5pbWF0aW9uT25SZW5k
ZXJlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjppc1J1bm5p
bmdBY2NlbGVyYXRlZEFuaW1hdGlvbk9uUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZWRTdHlsZUZvclJlbmRlcmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OnVwZGF0ZUxpc3RPZkVsZW1lbnRzV2l0aFJ1bm5p
bmdBY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KToKKyAgICAgICAgKiBhbmltYXRpb24v
RWxlbWVudEFuaW1hdGlvblJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QW5p
bWF0aW9uUmFyZURhdGE6OmFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEFu
aW1hdGlvblJhcmVEYXRhOjp3ZWJBbmltYXRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnRBbmltYXRpb25SYXJlRGF0YTo6Y3NzQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50QW5pbWF0aW9uUmFyZURhdGE6OnRyYW5zaXRpb25zKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjphbmltYXRpb25zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVu
c3VyZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Z2V0QW5pbWF0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3ZWJBbmltYXRpb25zIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNzc0FuaW1hdGlvbnMgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dHJhbnNpdGlvbnMgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlV2ViQW5pbWF0aW9ucyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1cmVDU1NBbmltYXRpb25z
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZVRyYW5zaXRpb25z
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorCiAyMDIwLTA5LTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgbGVn
YWN5IGFuaW1hdGlvbiBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
QW5pbWF0aW9uVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlv
blRpbWVsaW5lLmNwcAppbmRleCAzMGJkNGYwMzM1OGU2NmQ1M2IwMzZhY2NhY2Y2NTljMTViNDUw
ZGYwLi43NGMwNjU0YTU3YzdiMDIxNGY4OTZjZjI0NmUzZTc0NDFkNTZlNjRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAKQEAgLTk3LDEyICs5
Nyw3IEBAIE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uVGltZWxpbmU6OmJpbmRpbmdzQ3VycmVu
dFRpbWUoKQogCiB2b2lkIEFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRpb25XYXNBZGRlZFRvRWxl
bWVudChXZWJBbmltYXRpb24mIGFuaW1hdGlvbiwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBp
ZiAoaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSAmJiBkb3duY2FzdDxDU1NUcmFuc2l0aW9u
PihhbmltYXRpb24pLm93bmluZ0VsZW1lbnQoKSA9PSAmZWxlbWVudCkKLSAgICAgICAgZWxlbWVu
dC5lbnN1cmVUcmFuc2l0aW9ucygpLmFkZCgmYW5pbWF0aW9uKTsKLSAgICBlbHNlIGlmIChpczxD
U1NBbmltYXRpb24+KGFuaW1hdGlvbikgJiYgZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPihhbmltYXRp
b24pLm93bmluZ0VsZW1lbnQoKSA9PSAmZWxlbWVudCkKLSAgICAgICAgZWxlbWVudC5lbnN1cmVD
U1NBbmltYXRpb25zKCkuYWRkKCZhbmltYXRpb24pOwotICAgIGVsc2UKLSAgICAgICAgZWxlbWVu
dC5lbnN1cmVXZWJBbmltYXRpb25zKCkuYWRkKCZhbmltYXRpb24pOworICAgIGVsZW1lbnQuZW5z
dXJlQW5pbWF0aW9ucygpLmFkZCgmYW5pbWF0aW9uKTsKIH0KIAogc3RhdGljIGlubGluZSBib29s
IHJlbW92ZUNTU1RyYW5zaXRpb25Gcm9tTWFwKENTU1RyYW5zaXRpb24mIHRyYW5zaXRpb24sIFBy
b3BlcnR5VG9UcmFuc2l0aW9uTWFwJiBjc3NUcmFuc2l0aW9uc0J5UHJvcGVydHkpCkBAIC0xMTcs
OSArMTEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHJlbW92ZUNTU1RyYW5zaXRpb25Gcm9tTWFw
KENTU1RyYW5zaXRpb24mIHRyYW5zaXRpb24sIFByb3BlcnQKIAogdm9pZCBBbmltYXRpb25UaW1l
bGluZTo6YW5pbWF0aW9uV2FzUmVtb3ZlZEZyb21FbGVtZW50KFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uLCBFbGVtZW50JiBlbGVtZW50KQogewotICAgIGVsZW1lbnQuZW5zdXJlVHJhbnNpdGlvbnMo
KS5yZW1vdmUoJmFuaW1hdGlvbik7Ci0gICAgZWxlbWVudC5lbnN1cmVDU1NBbmltYXRpb25zKCku
cmVtb3ZlKCZhbmltYXRpb24pOwotICAgIGVsZW1lbnQuZW5zdXJlV2ViQW5pbWF0aW9ucygpLnJl
bW92ZSgmYW5pbWF0aW9uKTsKKyAgICBlbGVtZW50LmVuc3VyZUFuaW1hdGlvbnMoKS5yZW1vdmUo
JmFuaW1hdGlvbik7CiAKICAgICAvLyBOb3csIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIENTUyBU
cmFuc2l0aW9uLCB3ZSByZW1vdmUgaXQgZnJvbSB0aGUgbV9lbGVtZW50VG9SdW5uaW5nQ1NTVHJh
bnNpdGlvbkJ5Q1NTUHJvcGVydHlJRCBtYXAuCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBkbyB0
aGlzIGZvciBDU1MgQW5pbWF0aW9ucyBiZWNhdXNlIHRoZWlyIHRpbWluZyBjYW4gYmUgc2V0IHZp
YSBDU1MgdG8gZW5kLCB3aGljaCB3b3VsZCBjYXVzZSB0aGlzCkBAIC0xNDAsMjcgKzEzMyw2IEBA
IHZvaWQgQW5pbWF0aW9uVGltZWxpbmU6OnJlbW92ZURlY2xhcmF0aXZlQW5pbWF0aW9uRnJvbUxp
c3RzRm9yT3duaW5nRWxlbWVudChXZWJBCiAgICAgfQogfQogCi1WZWN0b3I8UmVmUHRyPFdlYkFu
aW1hdGlvbj4+IEFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50
JiBlbGVtZW50LCBPcmRlcmluZyBvcmRlcmluZykgY29uc3QKLXsKLSAgICBWZWN0b3I8UmVmUHRy
PFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlvbnM7Ci0KLSAgICBpZiAob3JkZXJpbmcgPT0gT3JkZXJp
bmc6OlNvcnRlZCkgewotICAgICAgICBpZiAoZWxlbWVudC5oYXNLZXlmcmFtZUVmZmVjdHMoKSkg
ewotICAgICAgICAgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBlbGVtZW50LmVuc3VyZUtleWZyYW1l
RWZmZWN0U3RhY2soKS5zb3J0ZWRFZmZlY3RzKCkpCi0gICAgICAgICAgICAgICAgYW5pbWF0aW9u
cy5hcHBlbmQoZWZmZWN0LT5hbmltYXRpb24oKSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAoYXV0byogY3NzVHJhbnNpdGlvbnMgPSBlbGVtZW50LnRyYW5zaXRpb25zKCkp
Ci0gICAgICAgICAgICBhbmltYXRpb25zLmFwcGVuZFJhbmdlKGNzc1RyYW5zaXRpb25zLT5iZWdp
bigpLCBjc3NUcmFuc2l0aW9ucy0+ZW5kKCkpOwotICAgICAgICBpZiAoYXV0byogY3NzQW5pbWF0
aW9ucyA9IGVsZW1lbnQuY3NzQW5pbWF0aW9ucygpKQotICAgICAgICAgICAgYW5pbWF0aW9ucy5h
cHBlbmRSYW5nZShjc3NBbmltYXRpb25zLT5iZWdpbigpLCBjc3NBbmltYXRpb25zLT5lbmQoKSk7
Ci0gICAgICAgIGlmIChhdXRvKiB3ZWJBbmltYXRpb25zID0gZWxlbWVudC53ZWJBbmltYXRpb25z
KCkpCi0gICAgICAgICAgICBhbmltYXRpb25zLmFwcGVuZFJhbmdlKHdlYkFuaW1hdGlvbnMtPmJl
Z2luKCksIHdlYkFuaW1hdGlvbnMtPmVuZCgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gYW5pbWF0
aW9uczsKLX0KLQogdm9pZCBBbmltYXRpb25UaW1lbGluZTo6cmVtb3ZlQ1NTQW5pbWF0aW9uQ3Jl
YXRlZEJ5TWFya3VwKEVsZW1lbnQmIGVsZW1lbnQsIENTU0FuaW1hdGlvbiYgY3NzQW5pbWF0aW9u
KQogewogICAgIGVsZW1lbnQuYW5pbWF0aW9uc0NyZWF0ZWRCeU1hcmt1cCgpLnJlbW92ZSgmY3Nz
QW5pbWF0aW9uKTsKQEAgLTE5MSwyMiArMTYzLDIxIEBAIHZvaWQgQW5pbWF0aW9uVGltZWxpbmU6
OmVsZW1lbnRXYXNSZW1vdmVkKEVsZW1lbnQmIGVsZW1lbnQpCiAKIHZvaWQgQW5pbWF0aW9uVGlt
ZWxpbmU6OndpbGxDaGFuZ2VSZW5kZXJlckZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsK
LSAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQp
KQotICAgICAgICBhbmltYXRpb24tPndpbGxDaGFuZ2VSZW5kZXJlcigpOworICAgIGlmIChhdXRv
KiBhbmltYXRpb25zID0gZWxlbWVudC5hbmltYXRpb25zKCkpIHsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBhbmltYXRpb24gOiAqYW5pbWF0aW9ucykKKyAgICAgICAgICAgIGFuaW1hdGlvbi0+
d2lsbENoYW5nZVJlbmRlcmVyKCk7CisgICAgfQogfQogCiB2b2lkIEFuaW1hdGlvblRpbWVsaW5l
OjpjYW5jZWxEZWNsYXJhdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQs
IFdlYkFuaW1hdGlvbjo6U2lsZW50bHkgc2lsZW50bHkpCiB7Ci0gICAgaWYgKGF1dG8qIHRyYW5z
aXRpb25zID0gZWxlbWVudC50cmFuc2l0aW9ucygpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgY3Nz
VHJhbnNpdGlvbiA6ICp0cmFuc2l0aW9ucykKLSAgICAgICAgICAgIGNzc1RyYW5zaXRpb24tPmNh
bmNlbChzaWxlbnRseSk7Ci0gICAgfQotCi0gICAgaWYgKGF1dG8qIGNzc0FuaW1hdGlvbnMgPSBl
bGVtZW50LmNzc0FuaW1hdGlvbnMoKSkgewotICAgICAgICBmb3IgKGF1dG8mIGNzc0FuaW1hdGlv
biA6ICpjc3NBbmltYXRpb25zKSB7Ci0gICAgICAgICAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihj
c3NBbmltYXRpb24pKQotICAgICAgICAgICAgICAgIHJlbW92ZUNTU0FuaW1hdGlvbkNyZWF0ZWRC
eU1hcmt1cChlbGVtZW50LCBkb3duY2FzdDxDU1NBbmltYXRpb24+KCpjc3NBbmltYXRpb24pKTsK
LSAgICAgICAgICAgIGNzc0FuaW1hdGlvbi0+Y2FuY2VsKHNpbGVudGx5KTsKKyAgICBpZiAoYXV0
byogYW5pbWF0aW9ucyA9IGVsZW1lbnQuYW5pbWF0aW9ucygpKSB7CisgICAgICAgIGZvciAoYXV0
byYgYW5pbWF0aW9uIDogKmFuaW1hdGlvbnMpIHsKKyAgICAgICAgICAgIGlmIChpczxEZWNsYXJh
dGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkgeworICAgICAgICAgICAgICAgIGlmIChpczxDU1NB
bmltYXRpb24+KGFuaW1hdGlvbikpCisgICAgICAgICAgICAgICAgICAgIHJlbW92ZUNTU0FuaW1h
dGlvbkNyZWF0ZWRCeU1hcmt1cChlbGVtZW50LCBkb3duY2FzdDxDU1NBbmltYXRpb24+KCphbmlt
YXRpb24pKTsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24tPmNhbmNlbChzaWxlbnRseSk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25UaW1lbGluZS5oCmluZGV4IDA3NTQyNmQwYTljODcxODE4NWFlYjk1NWEy
MTg3MTY4N2Y0Y2QyYmQuLjg5ZTlkNDc4Nzc3M2JkZDMwNjI2MzI0NmMzNWNhYzA5ODAzM2IyODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCkBAIC02
MSw5ICs2MSw2IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxkb3VibGU+IGJpbmRpbmdzQ3VycmVu
dFRpbWUoKTsKICAgICB2aXJ0dWFsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lKCkgeyBy
ZXR1cm4gbV9jdXJyZW50VGltZTsgfQogCi0gICAgZW51bSBjbGFzcyBPcmRlcmluZyA6IHVpbnQ4
X3QgeyBTb3J0ZWQsIFVuc29ydGVkIH07Ci0gICAgVmVjdG9yPFJlZlB0cjxXZWJBbmltYXRpb24+
PiBhbmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50JiwgT3JkZXJpbmcgPSBPcmRlcmluZzo6VW5z
b3J0ZWQpIGNvbnN0OwotCiAgICAgdm9pZCBlbGVtZW50V2FzUmVtb3ZlZChFbGVtZW50Jik7CiAK
ICAgICB2b2lkIHdpbGxDaGFuZ2VSZW5kZXJlckZvckVsZW1lbnQoRWxlbWVudCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCmluZGV4IGUzMDY0M2Vi
YzYwMjcxOTMyZmVkM2NiNDgxYjlkMmI0Mzc2Y2MwODQuLjk4NWU2OWI0YjU0MzdlZDY1M2QxYWUx
N2ZkNGFjNTE2MDYzZmJhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1l
bnRUaW1lbGluZS5jcHAKQEAgLTIzMiw3ICsyMzIsMTUgQEAgYm9vbCBEb2N1bWVudFRpbWVsaW5l
OjphbmltYXRpb25DYW5CZVJlbW92ZWQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4gcHJvcGVydGllc1Rv
TWF0Y2ggPSBrZXlmcmFtZUVmZmVjdC0+YW5pbWF0ZWRQcm9wZXJ0aWVzKCk7Ci0gICAgYXV0byBh
bmltYXRpb25zID0gYW5pbWF0aW9uc0ZvckVsZW1lbnQoKnRhcmdldCwgQW5pbWF0aW9uVGltZWxp
bmU6Ok9yZGVyaW5nOjpTb3J0ZWQpOworCisgICAgVmVjdG9yPFJlZlB0cjxXZWJBbmltYXRpb24+
PiBhbmltYXRpb25zOworICAgIGlmIChhdXRvKiBrZXlmcmFtZUVmZmVjdFN0YWNrID0gdGFyZ2V0
LT5rZXlmcmFtZUVmZmVjdFN0YWNrKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBr
ZXlmcmFtZUVmZmVjdFN0YWNrLT5zb3J0ZWRFZmZlY3RzKCkpIHsKKyAgICAgICAgICAgIGlmIChl
ZmZlY3QtPmFuaW1hdGlvbigpLT5pc1JlbGV2YW50KCkpCisgICAgICAgICAgICAgICAgYW5pbWF0
aW9ucy5hcHBlbmQoZWZmZWN0LT5hbmltYXRpb24oKSk7CisgICAgICAgIH0KKyAgICB9CisKICAg
ICBmb3IgKGF1dG8mIGFuaW1hdGlvbldpdGhIaWdoZXJDb21wb3NpdGVPcmRlciA6IFdURjo6bWFr
ZVJldmVyc2VkUmFuZ2UoYW5pbWF0aW9ucykpIHsKICAgICAgICAgaWYgKCZhbmltYXRpb24gPT0g
YW5pbWF0aW9uV2l0aEhpZ2hlckNvbXBvc2l0ZU9yZGVyKQogICAgICAgICAgICAgYnJlYWs7CkBA
IC0zMjYsOCArMzM0LDEyIEBAIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6Y29tcHV0ZUV4dGVudE9m
QW5pbWF0aW9uKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBMYXlvdXRSCiAgICAgaWYgKCFyZW5k
ZXJlci5lbGVtZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgYXV0byogYW5pbWF0
aW9ucyA9IHJlbmRlcmVyLmVsZW1lbnQoKS0+YW5pbWF0aW9ucygpOworICAgIGlmICghYW5pbWF0
aW9ucykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgS2V5ZnJhbWVFZmZlY3QqIG1hdGNo
aW5nRWZmZWN0ID0gbnVsbHB0cjsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6IGFu
aW1hdGlvbnNGb3JFbGVtZW50KCpyZW5kZXJlci5lbGVtZW50KCkpKSB7CisgICAgZm9yIChjb25z
dCBhdXRvJiBhbmltYXRpb24gOiAqYW5pbWF0aW9ucykgewogICAgICAgICBhdXRvKiBlZmZlY3Qg
PSBhbmltYXRpb24tPmVmZmVjdCgpOwogICAgICAgICBpZiAoaXM8S2V5ZnJhbWVFZmZlY3Q+KGVm
ZmVjdCkpIHsKICAgICAgICAgICAgIGF1dG8qIGtleWZyYW1lRWZmZWN0ID0gZG93bmNhc3Q8S2V5
ZnJhbWVFZmZlY3Q+KGVmZmVjdCk7CkBAIC0zNDcsNyArMzU5LDExIEBAIGJvb2wgRG9jdW1lbnRU
aW1lbGluZTo6aXNSdW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihSZW5kZXJFbGVtZW50JiByZW5k
ZXJlciwgQ1NTCiAgICAgaWYgKCFyZW5kZXJlci5lbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDogYW5pbWF0aW9uc0ZvckVs
ZW1lbnQoKnJlbmRlcmVyLmVsZW1lbnQoKSkpIHsKKyAgICBhdXRvKiBhbmltYXRpb25zID0gcmVu
ZGVyZXIuZWxlbWVudCgpLT5hbmltYXRpb25zKCk7CisgICAgaWYgKCFhbmltYXRpb25zKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6ICph
bmltYXRpb25zKSB7CiAgICAgICAgIGF1dG8gcGxheVN0YXRlID0gYW5pbWF0aW9uLT5wbGF5U3Rh
dGUoKTsKICAgICAgICAgaWYgKHBsYXlTdGF0ZSAhPSBXZWJBbmltYXRpb246OlBsYXlTdGF0ZTo6
UnVubmluZyAmJiBwbGF5U3RhdGUgIT0gV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGU6OlBhdXNlZCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzY0LDcgKzM4MCwxMSBAQCBib29sIERvY3VtZW50
VGltZWxpbmU6OmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlcihSZW5kZXJF
bGVtZW50JiByZQogICAgIGlmICghcmVuZGVyZXIuZWxlbWVudCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnNGb3JF
bGVtZW50KCpyZW5kZXJlci5lbGVtZW50KCkpKSB7CisgICAgYXV0byogYW5pbWF0aW9ucyA9IHJl
bmRlcmVyLmVsZW1lbnQoKS0+YW5pbWF0aW9ucygpOworICAgIGlmICghYW5pbWF0aW9ucykKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiAq
YW5pbWF0aW9ucykgewogICAgICAgICBhdXRvIHBsYXlTdGF0ZSA9IGFuaW1hdGlvbi0+cGxheVN0
YXRlKCk7CiAgICAgICAgIGlmIChwbGF5U3RhdGUgIT0gV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGU6
OlJ1bm5pbmcgJiYgcGxheVN0YXRlICE9IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVzZWQp
CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTM4MSwxMyArNDAxLDE4IEBAIGJvb2wgRG9jdW1l
bnRUaW1lbGluZTo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVyKFJlbmRl
ckVsZW1lbnQmIHJlCiAKIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gRG9jdW1lbnRUaW1l
bGluZTo6YW5pbWF0ZWRTdHlsZUZvclJlbmRlcmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQog
ewotICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gcmVzdWx0OworICAgIGF1dG8qIGVs
ZW1lbnQgPSByZW5kZXJlci5lbGVtZW50KCk7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICBy
ZXR1cm4gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHJlbmRlcmVyLnN0eWxlKCkpOwogCi0gICAgaWYg
KGF1dG8qIGVsZW1lbnQgPSByZW5kZXJlci5lbGVtZW50KCkpIHsKLSAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBhbmltYXRpb24gOiBhbmltYXRpb25zRm9yRWxlbWVudCgqZWxlbWVudCkpIHsKLSAg
ICAgICAgICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oYW5pbWF0aW9uLT5lZmZlY3QoKSkpCi0g
ICAgICAgICAgICAgICAgZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGFuaW1hdGlvbi0+ZWZmZWN0
KCkpLT5nZXRBbmltYXRlZFN0eWxlKHJlc3VsdCk7Ci0gICAgICAgIH0KKyAgICBhdXRvKiBhbmlt
YXRpb25zID0gcmVuZGVyZXIuZWxlbWVudCgpLT5hbmltYXRpb25zKCk7CisgICAgaWYgKCFhbmlt
YXRpb25zKQorICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHJlbmRlcmVyLnN0
eWxlKCkpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiByZXN1bHQ7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiAqYW5pbWF0aW9ucykgeworICAgICAgICBpZiAo
aXM8S2V5ZnJhbWVFZmZlY3Q+KGFuaW1hdGlvbi0+ZWZmZWN0KCkpKQorICAgICAgICAgICAgZG93
bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGFuaW1hdGlvbi0+ZWZmZWN0KCkpLT5nZXRBbmltYXRlZFN0
eWxlKHJlc3VsdCk7CiAgICAgfQogCiAgICAgaWYgKCFyZXN1bHQpCkBAIC00MjUsMTQgKzQ1MCwx
MyBAQCB2b2lkIERvY3VtZW50VGltZWxpbmU6OmFuaW1hdGlvbkFjY2VsZXJhdGVkUnVubmluZ1N0
YXRlRGlkQ2hhbmdlKFdlYkFuaW1hdGlvbiYgYQogCiB2b2lkIERvY3VtZW50VGltZWxpbmU6OnVw
ZGF0ZUxpc3RPZkVsZW1lbnRzV2l0aFJ1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byBhbmltYXRpb25zID0gYW5pbWF0aW9u
c0ZvckVsZW1lbnQoZWxlbWVudCk7Ci0KLSAgICBpZiAoYW5pbWF0aW9ucy5pc0VtcHR5KCkpIHsK
KyAgICBhdXRvKiBhbmltYXRpb25zID0gZWxlbWVudC5hbmltYXRpb25zKCk7CisgICAgaWYgKCFh
bmltYXRpb25zIHx8IGFuaW1hdGlvbnMtPmlzRW1wdHkoKSkgewogICAgICAgICBtX2VsZW1lbnRz
V2l0aFJ1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbnMucmVtb3ZlKCZlbGVtZW50KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDogYW5p
bWF0aW9ucykgeworICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDogKmFuaW1hdGlvbnMp
IHsKICAgICAgICAgaWYgKCFhbmltYXRpb24tPmlzUnVubmluZ0FjY2VsZXJhdGVkKCkpIHsKICAg
ICAgICAgICAgIG1fZWxlbWVudHNXaXRoUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucy5yZW1v
dmUoJmVsZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0VsZW1lbnRBbmltYXRpb25SYXJlRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0VsZW1lbnRBbmltYXRpb25SYXJlRGF0YS5oCmluZGV4IGE2NGIyMDBkZTNl
ZDc0ZDFlMjA2YWMzM2FjN2JkNWQyMDNlOGNmNjUuLjI4YTA0YTI1NWUxMWVmYTgyMzYzYTU4Yjkz
MDllM2Y5ZjMxNDIwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FbGVt
ZW50QW5pbWF0aW9uUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWxl
bWVudEFuaW1hdGlvblJhcmVEYXRhLmgKQEAgLTQ1LDkgKzQ1LDcgQEAgcHVibGljOgogICAgIEtl
eWZyYW1lRWZmZWN0U3RhY2sqIGtleWZyYW1lRWZmZWN0U3RhY2soKSB7IHJldHVybiBtX2tleWZy
YW1lRWZmZWN0U3RhY2suZ2V0KCk7IH0KICAgICBLZXlmcmFtZUVmZmVjdFN0YWNrJiBlbnN1cmVL
ZXlmcmFtZUVmZmVjdFN0YWNrKCk7CiAKLSAgICBBbmltYXRpb25Db2xsZWN0aW9uJiB3ZWJBbmlt
YXRpb25zKCkgeyByZXR1cm4gbV93ZWJBbmltYXRpb25zOyB9Ci0gICAgQW5pbWF0aW9uQ29sbGVj
dGlvbiYgY3NzQW5pbWF0aW9ucygpIHsgcmV0dXJuIG1fY3NzQW5pbWF0aW9uczsgfQotICAgIEFu
aW1hdGlvbkNvbGxlY3Rpb24mIHRyYW5zaXRpb25zKCkgeyByZXR1cm4gbV90cmFuc2l0aW9uczsg
fQorICAgIEFuaW1hdGlvbkNvbGxlY3Rpb24mIGFuaW1hdGlvbnMoKSB7IHJldHVybiBtX2FuaW1h
dGlvbnM7IH0KICAgICBDU1NBbmltYXRpb25Db2xsZWN0aW9uJiBhbmltYXRpb25zQ3JlYXRlZEJ5
TWFya3VwKCkgeyByZXR1cm4gbV9hbmltYXRpb25zQ3JlYXRlZEJ5TWFya3VwOyB9CiAgICAgdm9p
ZCBzZXRBbmltYXRpb25zQ3JlYXRlZEJ5TWFya3VwKENTU0FuaW1hdGlvbkNvbGxlY3Rpb24mJik7
CiAgICAgUHJvcGVydHlUb1RyYW5zaXRpb25NYXAmIGNvbXBsZXRlZFRyYW5zaXRpb25zQnlQcm9w
ZXJ0eSgpIHsgcmV0dXJuIG1fY29tcGxldGVkVHJhbnNpdGlvbnNCeVByb3BlcnR5OyB9CkBAIC01
OSw5ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8S2V5ZnJhbWVFZmZl
Y3RTdGFjaz4gbV9rZXlmcmFtZUVmZmVjdFN0YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxjb25z
dCBSZW5kZXJTdHlsZT4gbV9sYXN0U3R5bGVDaGFuZ2VFdmVudFN0eWxlOwotICAgIEFuaW1hdGlv
bkNvbGxlY3Rpb24gbV93ZWJBbmltYXRpb25zOwotICAgIEFuaW1hdGlvbkNvbGxlY3Rpb24gbV9j
c3NBbmltYXRpb25zOwotICAgIEFuaW1hdGlvbkNvbGxlY3Rpb24gbV90cmFuc2l0aW9uczsKKyAg
ICBBbmltYXRpb25Db2xsZWN0aW9uIG1fYW5pbWF0aW9uczsKICAgICBDU1NBbmltYXRpb25Db2xs
ZWN0aW9uIG1fYW5pbWF0aW9uc0NyZWF0ZWRCeU1hcmt1cDsKICAgICBQcm9wZXJ0eVRvVHJhbnNp
dGlvbk1hcCBtX2NvbXBsZXRlZFRyYW5zaXRpb25zQnlQcm9wZXJ0eTsKICAgICBQcm9wZXJ0eVRv
VHJhbnNpdGlvbk1hcCBtX3J1bm5pbmdUcmFuc2l0aW9uc0J5UHJvcGVydHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggYzE2OThmOWVkMWVmMjY3MDQwZjM0N2YxNTI5N2ViY2M1MDIzZTVjMS4u
ZmJlYzM1YmI3ZGQ5NjE5NGU1ZjkwYjQzNWQ2YjMwMGM4ODI5YzIxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMzg1MiwyNCArMzg1MiwxMCBAQCBPcHRpb25TZXQ8QW5pbWF0aW9uSW1wYWN0
PiBFbGVtZW50OjphcHBseUtleWZyYW1lRWZmZWN0cyhSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bAog
ICAgIHJldHVybiBpbXBhY3Q7CiB9CiAKLWNvbnN0IEFuaW1hdGlvbkNvbGxlY3Rpb24qIEVsZW1l
bnQ6OndlYkFuaW1hdGlvbnMoKSBjb25zdAorY29uc3QgQW5pbWF0aW9uQ29sbGVjdGlvbiogRWxl
bWVudDo6YW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkRhdGEg
PSBhbmltYXRpb25SYXJlRGF0YSgpKQotICAgICAgICByZXR1cm4gJmFuaW1hdGlvbkRhdGEtPndl
YkFuaW1hdGlvbnMoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotY29uc3QgQW5pbWF0aW9u
Q29sbGVjdGlvbiogRWxlbWVudDo6Y3NzQW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKGF1
dG8qIGFuaW1hdGlvbkRhdGEgPSBhbmltYXRpb25SYXJlRGF0YSgpKQotICAgICAgICByZXR1cm4g
JmFuaW1hdGlvbkRhdGEtPmNzc0FuaW1hdGlvbnMoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0K
LQotY29uc3QgQW5pbWF0aW9uQ29sbGVjdGlvbiogRWxlbWVudDo6dHJhbnNpdGlvbnMoKSBjb25z
dAotewotICAgIGlmIChhdXRvKiBhbmltYXRpb25EYXRhID0gYW5pbWF0aW9uUmFyZURhdGEoKSkK
LSAgICAgICAgcmV0dXJuICZhbmltYXRpb25EYXRhLT50cmFuc2l0aW9ucygpOworICAgICAgICBy
ZXR1cm4gJmFuaW1hdGlvbkRhdGEtPmFuaW1hdGlvbnMoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIApAQCAtMzg5NCwxOSArMzg4MCw5IEBAIGJvb2wgRWxlbWVudDo6aGFzUnVubmluZ1RyYW5z
aXRpb25zKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUFuaW1hdGlvbkNvbGxlY3Rp
b24mIEVsZW1lbnQ6OmVuc3VyZVdlYkFuaW1hdGlvbnMoKQotewotICAgIHJldHVybiBlbnN1cmVB
bmltYXRpb25SYXJlRGF0YSgpLndlYkFuaW1hdGlvbnMoKTsKLX0KLQotQW5pbWF0aW9uQ29sbGVj
dGlvbiYgRWxlbWVudDo6ZW5zdXJlQ1NTQW5pbWF0aW9ucygpCi17Ci0gICAgcmV0dXJuIGVuc3Vy
ZUFuaW1hdGlvblJhcmVEYXRhKCkuY3NzQW5pbWF0aW9ucygpOwotfQotCi1BbmltYXRpb25Db2xs
ZWN0aW9uJiBFbGVtZW50OjplbnN1cmVUcmFuc2l0aW9ucygpCitBbmltYXRpb25Db2xsZWN0aW9u
JiBFbGVtZW50OjplbnN1cmVBbmltYXRpb25zKCkKIHsKLSAgICByZXR1cm4gZW5zdXJlQW5pbWF0
aW9uUmFyZURhdGEoKS50cmFuc2l0aW9ucygpOworICAgIHJldHVybiBlbnN1cmVBbmltYXRpb25S
YXJlRGF0YSgpLmFuaW1hdGlvbnMoKTsKIH0KIAogQ1NTQW5pbWF0aW9uQ29sbGVjdGlvbiYgRWxl
bWVudDo6YW5pbWF0aW9uc0NyZWF0ZWRCeU1hcmt1cCgpCkBAIC00NTY2LDEwICs0NTQyLDEwIEBA
IFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gRWxlbWVudDo6Z2V0QW5pbWF0aW9ucyhPcHRp
b25hbDxHZXRBbmltYXRpb25zT3B0aW9uCiAgICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CiAKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlvbnM7Ci0g
ICAgaWYgKGF1dG8gdGltZWxpbmUgPSBkb2N1bWVudCgpLmV4aXN0aW5nVGltZWxpbmUoKSkgewot
ICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IHRpbWVsaW5lLT5hbmltYXRpb25zRm9yRWxl
bWVudCgqdGhpcywgQW5pbWF0aW9uVGltZWxpbmU6Ok9yZGVyaW5nOjpTb3J0ZWQpKSB7Ci0gICAg
ICAgICAgICBpZiAoYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkpCi0gICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsKKyAgICBpZiAoa2V5ZnJhbWVFZmZlY3RTdGFjaygp
KSB7CisgICAgICAgIGZvciAoYXV0byYgZWZmZWN0IDoga2V5ZnJhbWVFZmZlY3RTdGFjaygpLT5z
b3J0ZWRFZmZlY3RzKCkpIHsKKyAgICAgICAgICAgIGlmIChlZmZlY3QtPmFuaW1hdGlvbigpLT5p
c1JlbGV2YW50KCkpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9ucy5hcHBlbmQoZWZmZWN0LT5h
bmltYXRpb24oKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGFuaW1hdGlvbnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAppbmRleCBhNmRhOTBlNDVkN2QxZTM3ZTIxMzdmODA5YzY0MmFkMDIxNmRk
MmIxLi5lNzFkNDFmNzZiYTk2NjNlMGQxN2Y1YTc4YjgyMmZmMTNmMmY2MTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTQ5NSwxNSArNDk1LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0tleWZy
YW1lRWZmZWN0cygpIGNvbnN0OwogICAgIE9wdGlvblNldDxBbmltYXRpb25JbXBhY3Q+IGFwcGx5
S2V5ZnJhbWVFZmZlY3RzKFJlbmRlclN0eWxlJik7CiAKLSAgICBjb25zdCBBbmltYXRpb25Db2xs
ZWN0aW9uKiB3ZWJBbmltYXRpb25zKCkgY29uc3Q7Ci0gICAgY29uc3QgQW5pbWF0aW9uQ29sbGVj
dGlvbiogY3NzQW5pbWF0aW9ucygpIGNvbnN0OwotICAgIGNvbnN0IEFuaW1hdGlvbkNvbGxlY3Rp
b24qIHRyYW5zaXRpb25zKCkgY29uc3Q7CisgICAgY29uc3QgQW5pbWF0aW9uQ29sbGVjdGlvbiog
YW5pbWF0aW9ucygpIGNvbnN0OwogICAgIGJvb2wgaGFzQ29tcGxldGVkVHJhbnNpdGlvbnNGb3JQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBib29sIGhhc1J1bm5pbmdUcmFuc2l0
aW9uc0ZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgaGFzUnVubmlu
Z1RyYW5zaXRpb25zKCkgY29uc3Q7Ci0gICAgQW5pbWF0aW9uQ29sbGVjdGlvbiYgZW5zdXJlV2Vi
QW5pbWF0aW9ucygpOwotICAgIEFuaW1hdGlvbkNvbGxlY3Rpb24mIGVuc3VyZUNTU0FuaW1hdGlv
bnMoKTsKLSAgICBBbmltYXRpb25Db2xsZWN0aW9uJiBlbnN1cmVUcmFuc2l0aW9ucygpOworICAg
IEFuaW1hdGlvbkNvbGxlY3Rpb24mIGVuc3VyZUFuaW1hdGlvbnMoKTsKICAgICBQcm9wZXJ0eVRv
VHJhbnNpdGlvbk1hcCYgZW5zdXJlQ29tcGxldGVkVHJhbnNpdGlvbnNCeVByb3BlcnR5KCk7CiAg
ICAgUHJvcGVydHlUb1RyYW5zaXRpb25NYXAmIGVuc3VyZVJ1bm5pbmdUcmFuc2l0aW9uc0J5UHJv
cGVydHkoKTsKICAgICBDU1NBbmltYXRpb25Db2xsZWN0aW9uJiBhbmltYXRpb25zQ3JlYXRlZEJ5
TWFya3VwKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>