<?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>204717</bug_id>
          
          <creation_ts>2019-11-30 09:09:52 -0800</creation_ts>
          <short_desc>[Web Animations] Calling reverse() on an accelerated animation has no effect</short_desc>
          <delta_ts>2020-05-13 12:27:11 -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=204716</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211839</see_also>
          <bug_file_loc>https://jsfiddle.net/birtles/zcjgvfy2/22/</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>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>dwilson1</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>interalia.dev</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594328</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-11-30 09:09:52 -0800</bug_when>
    <thetext>If you go to https://jsfiddle.net/birtles/zcjgvfy2/22/ and press &quot;counter-clockwise&quot;, the animation runs clockwise. I didn&apos;t check to be sure, but I believe the call to reverse() has no effect on the accelerated animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646422</commentid>
    <comment_count>1</comment_count>
    <who name="">interalia.dev</who>
    <bug_when>2020-04-28 01:55:41 -0700</bug_when>
    <thetext>This works properly in Firefox and Chrome. Still doesn&apos;t work in both latest Safari and TP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646434</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-28 03:18:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/62503582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646519</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-28 09:28:11 -0700</bug_when>
    <thetext>I think there are two issues here:

1. we don&apos;t reflect the animation&apos;s playback rate for accelerated animations
2. we don&apos;t reflect changes to timing properties while an accelerated animation is already running</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646579</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-28 11:33:12 -0700</bug_when>
    <thetext>*** Bug 188841 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652202</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-13 06:34:59 -0700</bug_when>
    <thetext>For now the approach will be to bail if we&apos;re trying to animate something with playbackRate != 1. We&apos;ll try to use CA animations for that case in bug 211839.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652211</commentid>
    <comment_count>6</comment_count>
      <attachid>399257</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-13 06:49:12 -0700</bug_when>
    <thetext>Created attachment 399257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652337</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-13 12:27:02 -0700</bug_when>
    <thetext>Committed r261637: &lt;https://trac.webkit.org/changeset/261637&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399257.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399257</attachid>
            <date>2020-05-13 06:49:12 -0700</date>
            <delta_ts>2020-05-13 12:27:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204717-20200513154910.patch</filename>
            <type>text/plain</type>
            <size>32042</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc0NTYzOGU4NGU1MTkz
MjkxMDNjNjVhNzMxNjU1OGQ0YzRlNDI1Zi4uMDJlYjJlYTI3MmYwN2MyMmRkMGM0MmUxY2UzYmMy
MWY2MjQ1YzgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIwLTA1LTEzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBDYWxsaW5nIHJldmVyc2UoKSBvbiBhbiBhY2NlbGVyYXRlZCBhbmltYXRpb24gaGFzIG5vIGVm
ZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
NzE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MjUwMzU4Mj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJhbmltYXRpb25zL2FjY2Vs
ZXJhdGVkLWFuaW1hdGlvbi1wbGF5YmFjay1yYXRlLmh0bWwKKworICAgICAgICBXZSBjb21wbGV0
ZWx5IGlnbm9yZWQgdGhlIHBsYXliYWNrUmF0ZSBzZXQgb24gYSBXZWJBbmltYXRpb24gb2JqZWN0
IHdoZW4gY29uc2lkZXJpbmcgd2hldGhlciB3ZSBjb3VsZCBydW4gYW4gYWNjZWxlcmF0ZWQgYW5p
bWF0aW9uLgorICAgICAgICBUbyBhZGRyZXNzIHRoaXMgd2UgZG8gc2V2ZXJhbCB0aGluZ3MuCisK
KyAgICAgICAgRmlyc3QsIHdlIG5vdyBhZGQgYSBwbGF5YmFja1JhdGUoKSBvbiBBbmltYXRpb24g
b2JqZWN0cyBzdWNoIHRoYXQgd2UgY2FuIG1ha2UgR3JhcGhpY3NMYXllckNBIGF3YXJlIG9mIHRo
ZSBvcmlnaW5hdGluZyBXZWJBbmltYXRpb24ncworICAgICAgICBwbGF5YmFjayByYXRlIGFuZCB1
c2UgdGhpcyBkYXRhIHRvIG9wdCBvdXQgb2YgcnVubmluZyBDQSBhbmltYXRpb25zIGZvciBhbmlt
YXRpb25zIHdpdGggYSBwbGF5YmFja1JhdGUgb3RoZXIgdGhhbiAxIGluCisgICAgICAgIEdyYXBo
aWNzTGF5ZXJDQTo6YW5pbWF0aW9uQ2FuQmVBY2NlbGVyYXRlZCgpLiBXZSdsbCBiZSBsb29raW5n
IHRvIGFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBwbGF5YmFjayByYXRlcyBmb3IgQ0EgYW5pbWF0
aW9ucyBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExODM5LgorCisgICAgICAgIFRoZW4sIHdlIG1ha2Ugc3VyZSB0byBjb21wbGV0ZWx5IHJlcGxh
Y2UgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHdoZW5ldmVyIG9uZSBvZiB0aGUgcHJvcGVydGll
cyBhZmZlY3RlZCB0aW1pbmcgd291bGQgY2hhbmdlLiBVcCB1bnRpbAorICAgICAgICBub3cgd2Ug
d291bGQgb255bCBkbyB0aGlzIGZvciBhIGNoYW5nZSBpbiB0aGUgZWZmZWN0aXZlIGN1cnJlbnRU
aW1lLCBidXQgdGhpcyBuZWVkcyB0byBhbHNvIGhhcHBlbiB3aGVuIHRoZSBjdXJyZW50IHRpbWUg
ZG9lc24ndCBjaGFuZ2UKKyAgICAgICAgYnV0IHRoZSBhbmltYXRpb24gbWF5IGhhdmUgY2hhbmdl
ZCBwbGF5YmFjayByYXRlIG9yIGFueSBvZiBpdHMgdGltaW5nIHByb3BlcnRpZXMgdGhhdCBjb3Vs
ZCBjaGFuZ2UgdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24uIFNvIHdlCisgICAgICAgIHJl
bW92ZSB0aGUgIlNlZWsiIGNvbW1hbmQgYW5kIGluc3RlYWQgdXNlIGFuICJVcGRhdGVUaW1pbmci
IGNvbW1hbmQgdGhhdCB3aWxsIHJlbW92ZSB0aGUgZXhpc3RpbmcgYW5pbWF0aW9uIGFuZCBhZGQg
YSBuZXcgb25lLgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBhbnkgbm90aW9u
IG9mIHNlZWtpbmcgaW4gR3JhcGhpY3NMYXllciBzaW5jZSBub3cgd2UnbGwganVzdCBjcmVhdGUg
YSBuZXcgYW5pbWF0aW9uIHdoZW4gaXRzIHRpbWluZyBhdHRyaWJ1dGVzCisgICAgICAgIGNoYW5n
ZWQuCisKKyAgICAgICAgVGhpcyByZXZlYWxlZCBhbiBpc3N1ZSB3aGVyZSBpZiB3ZSBjYWxsZWQg
YW5pbWF0aW9uRmluaXNoZWQoKSBhbmQgc3RhcnRBbmltYXRpb24oKSBvbiBhIFJlbmRlckxheWVy
TW9kZWxPYmplY3QgaW4gc3VjY2Vzc2lvbiwgdGhlYW5pbWF0aW9uCisgICAgICAgIHJlbW92YWwg
d291bGQgbm90IG9jY3VyIG9uIHRoZSBHcmFwaGljc0xheWVyQ0EgYmVjYXVzZSB3ZSBkaXNyZWdh
cmRlZCBhbnkgcGVuZGluZyBhY2NlbGVyYXRlZCBhY3Rpb24gZm9yIGFuIGFuaW1hdGlvbiB3ZSBr
bmV3IHdvdWxkIGJlCisgICAgICAgIHJlcGxhY2VkLiBXZSBub3cgZW5zdXJlIHdlIGhvbm9yIHRo
ZSByZW1vdmFsIGluIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlv
bnMoKS4KKworICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0Ojp1cGRhdGVUaW1pbmcpOgorICAgICAgICAqIGFu
aW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6c3luY1Byb3BlcnRpZXNX
aXRoQmFja2luZ0FuaW1hdGlvbik6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjphZGRQZW5kaW5nQWNjZWxl
cmF0ZWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmFuaW1hdGlv
bkRpZENoYW5nZVRpbWluZ1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVF
ZmZlY3Q6OmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpLZXlmcmFtZUVmZmVjdDo6YmFja2luZ0FuaW1hdGlvbkZvckNvbXBvc2l0ZWRSZW5kZXJlciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YW5pbWF0aW9uRGlkU2Vl
ayk6IERlbGV0ZWQuCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAg
ICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJB
bmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJB
bmltYXRpb246OnNldEN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlv
bjo6c2V0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6dXBk
YXRlUGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6cmV2ZXJz
ZSk6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6
cGxheWJhY2tSYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6c2V0UGxh
eWJhY2tSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpwYXVzZUFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZWVrQW5pbWF0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBhdXNlQ0FBbmltYXRpb25P
bkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNm
b3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpzZWVrQW5pbWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6c2Vla0NBQW5pbWF0aW9uT25MYXllcik6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmFu
aW1hdGlvblBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjphbmltYXRp
b25TZWVrZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjphbmltYXRpb25T
ZWVrZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0OjphbmltYXRpb25TZWVrZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisK
IDIwMjAtMDUtMTMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXaGVlbCBldmVudCByZWdpb25dIEFkZCBzdXBwb3J0IGZvciBnZXR0aW5nIHdoZWVsIGV2ZW50
IHJlZ2lvbiBmcm9tIFNjcm9sbGluZ1RyZWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Fu
aW1hdGlvbkVmZmVjdC5jcHAKaW5kZXggNTQyZjA0ZjFiYzM1NGI4NzIwN2JjNGY2ZmUzNmU0MDhj
OTRjYWQ3MC4uN2VlNWI1NDQyMzU1YzJhNWQxNmI2ZDRkNjkzMjc1MjVjMzZjZGY3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTM2OSwxMCAr
MzY5LDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQW5pbWF0aW9uRWZmZWN0Ojp1cGRhdGVUaW1pbmco
T3B0aW9uYWw8T3B0aW9uYWxFZmZlY3RUaW1pbmc+IHQKICAgICBpZiAoIXRpbWluZykKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIE9wdGlvbmFsPENvbXB1dGVkRWZmZWN0VGltaW5nPiBwcmV2
aW91c1RpbWluZzsKLSAgICBpZiAobV9hbmltYXRpb24pCi0gICAgICAgIHByZXZpb3VzVGltaW5n
ID0gZ2V0Q29tcHV0ZWRUaW1pbmcoKTsKLQogICAgIC8vIDEuIElmIHRoZSBpdGVyYXRpb25TdGFy
dCBtZW1iZXIgb2YgaW5wdXQgaXMgcHJlc2VudCBhbmQgbGVzcyB0aGFuIHplcm8sIHRocm93IGEg
VHlwZUVycm9yIGFuZCBhYm9ydCB0aGlzIHByb2NlZHVyZS4KICAgICBpZiAodGltaW5nLT5pdGVy
YXRpb25TdGFydCkgewogICAgICAgICBpZiAodGltaW5nLT5pdGVyYXRpb25TdGFydC52YWx1ZSgp
IDwgMCkKQEAgLTQ0MSw3ICs0MzcsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBbmltYXRpb25FZmZl
Y3Q6OnVwZGF0ZVRpbWluZyhPcHRpb25hbDxPcHRpb25hbEVmZmVjdFRpbWluZz4gdAogICAgIHVw
ZGF0ZVN0YXRpY1RpbWluZ1Byb3BlcnRpZXMoKTsKIAogICAgIGlmIChtX2FuaW1hdGlvbikKLSAg
ICAgICAgbV9hbmltYXRpb24tPmVmZmVjdFRpbWluZ0RpZENoYW5nZShwcmV2aW91c1RpbWluZyk7
CisgICAgICAgIG1fYW5pbWF0aW9uLT5lZmZlY3RUaW1pbmdEaWRDaGFuZ2UoKTsKIAogICAgIHJl
dHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0
aW9uRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmgK
aW5kZXggYjM3MWIwZWIwNDIyNjNmZTNlYzRmNmEyNjA4NWY4NWYzNDdjZDQyOS4uOTVjNjRjNWM1
OTViZWQ5ZGE2ZjMyMzEzZTMxYWY5ZDA3ZDNlZDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25FZmZlY3QuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkRp
ZFRpY2soKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkRpZFBsYXkoKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkRpZFNlZWsoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGFuaW1hdGlvbkRpZENoYW5nZVRpbWluZ1Byb3BlcnRpZXMoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGFuaW1hdGlvbldhc0NhbmNlbGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRp
b25TdXNwZW5zaW9uU3RhdGVEaWRDaGFuZ2UoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRpb25UaW1lbGluZURpZENoYW5nZShBbmltYXRpb25UaW1lbGluZSopID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXggZmQ1ZTJhODBjYTk3OGRm
ZDE2ZDEwNjk3ZWI2ZjNiNWEzNjlmOWM2My4uNzE5ZDhkMzk2MmRmYjAxMzYxOTMxZmI0ZjM1MTVi
NGU0NTUxMzQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAK
QEAgLTY1LDggKzY1LDYgQEAgdm9pZCBDU1NBbmltYXRpb246OnN5bmNQcm9wZXJ0aWVzV2l0aEJh
Y2tpbmdBbmltYXRpb24oKQogICAgIGF1dG8mIGFuaW1hdGlvbiA9IGJhY2tpbmdBbmltYXRpb24o
KTsKICAgICBhdXRvKiBhbmltYXRpb25FZmZlY3QgPSBlZmZlY3QoKTsKIAotICAgIGF1dG8gcHJl
dmlvdXNUaW1pbmcgPSBhbmltYXRpb25FZmZlY3QtPmdldENvbXB1dGVkVGltaW5nKCk7Ci0KICAg
ICBpZiAoIW1fb3ZlcnJpZGRlblByb3BlcnRpZXMuY29udGFpbnMoUHJvcGVydHk6OkZpbGxNb2Rl
KSkgewogICAgICAgICBzd2l0Y2ggKGFuaW1hdGlvbi5maWxsTW9kZSgpKSB7CiAgICAgICAgIGNh
c2UgQW5pbWF0aW9uRmlsbE1vZGU6Ok5vbmU6CkBAIC0xMTMsNyArMTExLDcgQEAgdm9pZCBDU1NB
bmltYXRpb246OnN5bmNQcm9wZXJ0aWVzV2l0aEJhY2tpbmdBbmltYXRpb24oKQogICAgICAgICBh
bmltYXRpb25FZmZlY3QtPnNldEl0ZXJhdGlvbkR1cmF0aW9uKFNlY29uZHMoYW5pbWF0aW9uLmR1
cmF0aW9uKCkpKTsKIAogICAgIGFuaW1hdGlvbkVmZmVjdC0+dXBkYXRlU3RhdGljVGltaW5nUHJv
cGVydGllcygpOwotICAgIGVmZmVjdFRpbWluZ0RpZENoYW5nZShwcmV2aW91c1RpbWluZyk7Cisg
ICAgZWZmZWN0VGltaW5nRGlkQ2hhbmdlKCk7CiAKICAgICAvLyBTeW5jaHJvbml6ZSB0aGUgcGxh
eSBzdGF0ZQogICAgIGlmICghbV9vdmVycmlkZGVuUHJvcGVydGllcy5jb250YWlucyhQcm9wZXJ0
eTo6UGxheVN0YXRlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVj
dC5jcHAKaW5kZXggMmMyZmEwNGEyNTk2ZDExODNmZmNjMzc1YzdjMmM0MTY0Y2ZmMGNlZC4uNjll
MjM0YWEwMDFjNTQ0ZWE3ZWI2ZmRkYjg5MThlY2UwNmU1ZDMyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC0xNTA4LDcgKzE1MDgsNyBAQCB2b2lk
IEtleWZyYW1lRWZmZWN0OjphZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oQWNjZWxlcmF0ZWRB
Y3Rpb24gYWN0aW9uKQogICAgIGlmIChhY3Rpb24gPT0gQWNjZWxlcmF0ZWRBY3Rpb246OlN0b3Ap
CiAgICAgICAgIG1fcGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucy5jbGVhcigpOwogICAgIG1fcGVu
ZGluZ0FjY2VsZXJhdGVkQWN0aW9ucy5hcHBlbmQoYWN0aW9uKTsKLSAgICBpZiAoYWN0aW9uICE9
IEFjY2VsZXJhdGVkQWN0aW9uOjpTZWVrKQorICAgIGlmIChhY3Rpb24gIT0gQWNjZWxlcmF0ZWRB
Y3Rpb246OlVwZGF0ZVRpbWluZykKICAgICAgICAgbV9sYXN0UmVjb3JkZWRBY2NlbGVyYXRlZEFj
dGlvbiA9IGFjdGlvbjsKICAgICBhbmltYXRpb24oKS0+YWNjZWxlcmF0ZWRTdGF0ZURpZENoYW5n
ZSgpOwogfQpAQCAtMTUyNSwxMiArMTUyNSwxMiBAQCB2b2lkIEtleWZyYW1lRWZmZWN0Ojphbmlt
YXRpb25EaWRQbGF5KCkKICAgICAgICAgYWRkUGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uKEFjY2Vs
ZXJhdGVkQWN0aW9uOjpQbGF5KTsKIH0KIAotdm9pZCBLZXlmcmFtZUVmZmVjdDo6YW5pbWF0aW9u
RGlkU2VlaygpCit2b2lkIEtleWZyYW1lRWZmZWN0OjphbmltYXRpb25EaWRDaGFuZ2VUaW1pbmdQ
cm9wZXJ0aWVzKCkKIHsKLSAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIHNlZWsgaWYgd2UncmUg
bm90IHBsYXlpbmcgYW4gYW5pbWF0aW9uIGFscmVhZHkuIElmIHNlZWtpbmcKKyAgICAvLyBUaGVy
ZSBpcyBubyBuZWVkIHRvIHVwZGF0ZSB0aGUgYW5pbWF0aW9uIGlmIHdlJ3JlIG5vdCBwbGF5aW5n
IGFscmVhZHkuIElmIHVwZGF0aW5nIHRpbWluZwogICAgIC8vIG1lYW5zIHdlJ3JlIG1vdmluZyBp
bnRvIGFuIGFjdGl2ZSBsZXhpY2FsR2xvYmFsT2JqZWN0LCB3ZSdsbCBwaWNrIHRoaXMgdXAgaW4g
YXBwbHkoKS4KICAgICBpZiAobV9pc1J1bm5pbmdBY2NlbGVyYXRlZCB8fCBpc0Fib3V0VG9SdW5B
Y2NlbGVyYXRlZCgpKQotICAgICAgICBhZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oQWNjZWxl
cmF0ZWRBY3Rpb246OlNlZWspOworICAgICAgICBhZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24o
QWNjZWxlcmF0ZWRBY3Rpb246OlVwZGF0ZVRpbWluZyk7CiB9CiAKIHZvaWQgS2V5ZnJhbWVFZmZl
Y3Q6OmFuaW1hdGlvbldhc0NhbmNlbGVkKCkKQEAgLTE1ODEsNiArMTU4MSw3IEBAIHZvaWQgS2V5
ZnJhbWVFZmZlY3Q6OmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpCiAgICAgZm9yIChj
b25zdCBhdXRvJiBhY3Rpb24gOiBwZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKSB7CiAgICAgICAg
IHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgICAgIGNhc2UgQWNjZWxlcmF0ZWRBY3Rpb246OlBsYXk6
CisgICAgICAgICAgICByZW5kZXJlci0+YW5pbWF0aW9uRmluaXNoZWQobV9ibGVuZGluZ0tleWZy
YW1lcy5hbmltYXRpb25OYW1lKCkpOwogICAgICAgICAgICAgbV9pc1J1bm5pbmdBY2NlbGVyYXRl
ZCA9IHJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbih0aW1lT2Zmc2V0LCBiYWNraW5nQW5pbWF0aW9u
Rm9yQ29tcG9zaXRlZFJlbmRlcmVyKCksIG1fYmxlbmRpbmdLZXlmcmFtZXMpOwogICAgICAgICAg
ICAgaWYgKCFtX2lzUnVubmluZ0FjY2VsZXJhdGVkKSB7CiAgICAgICAgICAgICAgICAgbV9sYXN0
UmVjb3JkZWRBY2NlbGVyYXRlZEFjdGlvbiA9IEFjY2VsZXJhdGVkQWN0aW9uOjpTdG9wOwpAQCAt
MTU5MCw4ICsxNTkxLDExIEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5UGVuZGluZ0FjY2Vs
ZXJhdGVkQWN0aW9ucygpCiAgICAgICAgIGNhc2UgQWNjZWxlcmF0ZWRBY3Rpb246OlBhdXNlOgog
ICAgICAgICAgICAgcmVuZGVyZXItPmFuaW1hdGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBtX2JsZW5k
aW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBBY2NlbGVyYXRlZEFjdGlvbjo6U2VlazoKLSAgICAgICAgICAgIHJlbmRlcmVyLT5h
bmltYXRpb25TZWVrZWQodGltZU9mZnNldCwgbV9ibGVuZGluZ0tleWZyYW1lcy5hbmltYXRpb25O
YW1lKCkpOworICAgICAgICBjYXNlIEFjY2VsZXJhdGVkQWN0aW9uOjpVcGRhdGVUaW1pbmc6Cisg
ICAgICAgICAgICByZW5kZXJlci0+YW5pbWF0aW9uRmluaXNoZWQobV9ibGVuZGluZ0tleWZyYW1l
cy5hbmltYXRpb25OYW1lKCkpOworICAgICAgICAgICAgcmVuZGVyZXItPnN0YXJ0QW5pbWF0aW9u
KHRpbWVPZmZzZXQsIGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIoKSwgbV9i
bGVuZGluZ0tleWZyYW1lcyk7CisgICAgICAgICAgICBpZiAoYW5pbWF0aW9uKCktPnBsYXlTdGF0
ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVzZWQpCisgICAgICAgICAgICAgICAg
cmVuZGVyZXItPmFuaW1hdGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBtX2JsZW5kaW5nS2V5ZnJhbWVz
LmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBY2Nl
bGVyYXRlZEFjdGlvbjo6U3RvcDoKICAgICAgICAgICAgIEFTU0VSVChkb2N1bWVudCgpKTsKQEAg
LTE2MTcsNiArMTYyMSw3IEBAIFJlZjxjb25zdCBBbmltYXRpb24+IEtleWZyYW1lRWZmZWN0Ojpi
YWNraW5nQW5pbWF0aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyKCkgY29uCiAgICAgYW5pbWF0aW9u
LT5zZXREZWxheShkZWxheSgpLnNlY29uZHMoKSk7CiAgICAgYW5pbWF0aW9uLT5zZXRJdGVyYXRp
b25Db3VudChpdGVyYXRpb25zKCkpOwogICAgIGFuaW1hdGlvbi0+c2V0VGltaW5nRnVuY3Rpb24o
dGltaW5nRnVuY3Rpb24oKS0+Y2xvbmUoKSk7CisgICAgYW5pbWF0aW9uLT5zZXRQbGF5YmFja1Jh
dGUoZWZmZWN0QW5pbWF0aW9uLT5wbGF5YmFja1JhdGUoKSk7CiAKICAgICBzd2l0Y2ggKGZpbGwo
KSkgewogICAgIGNhc2UgRmlsbE1vZGU6Ok5vbmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5oCmluZGV4IGFjZjE3NGNlOGVmY2I2NWVlYTc2OTNjZjBkMDg2YWNkYjZm
MzExMzAuLmJlNzQ1OTgyY2Q2MTNhYzkwMGNjNzQ0Y2MwZDU0ZDI1OTViZjkxMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC0xMjQsNyArMTI0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgYW5pbWF0
aW9uRGlkVGljaygpIGZpbmFsOwogICAgIHZvaWQgYW5pbWF0aW9uRGlkUGxheSgpIGZpbmFsOwot
ICAgIHZvaWQgYW5pbWF0aW9uRGlkU2VlaygpIGZpbmFsOworICAgIHZvaWQgYW5pbWF0aW9uRGlk
Q2hhbmdlVGltaW5nUHJvcGVydGllcygpIGZpbmFsOwogICAgIHZvaWQgYW5pbWF0aW9uV2FzQ2Fu
Y2VsZWQoKSBmaW5hbDsKICAgICB2b2lkIGFuaW1hdGlvblN1c3BlbnNpb25TdGF0ZURpZENoYW5n
ZShib29sKSBmaW5hbDsKICAgICB2b2lkIGFuaW1hdGlvblRpbWVsaW5lRGlkQ2hhbmdlKEFuaW1h
dGlvblRpbWVsaW5lKikgZmluYWw7CkBAIC0xNjksNyArMTY5LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBLZXlmcmFtZUVmZmVjdChFbGVtZW50KiwgUHNldWRvSWQpOwogCi0gICAgZW51bSBj
bGFzcyBBY2NlbGVyYXRlZEFjdGlvbiA6IHVpbnQ4X3QgeyBQbGF5LCBQYXVzZSwgU2VlaywgU3Rv
cCB9OworICAgIGVudW0gY2xhc3MgQWNjZWxlcmF0ZWRBY3Rpb24gOiB1aW50OF90IHsgUGxheSwg
UGF1c2UsIFVwZGF0ZVRpbWluZywgU3RvcCB9OwogICAgIGVudW0gY2xhc3MgQmxlbmRpbmdLZXlm
cmFtZXNTb3VyY2UgOiB1aW50OF90IHsgQ1NTQW5pbWF0aW9uLCBDU1NUcmFuc2l0aW9uLCBXZWJB
bmltYXRpb24gfTsKICAgICBlbnVtIGNsYXNzIEFjY2VsZXJhdGVkUHJvcGVydGllcyA6IHVpbnQ4
X3QgeyBOb25lLCBTb21lLCBBbGwgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmNwcAppbmRleCBmMTk1NDI4NzVjMTc2M2E0ODY0MWE1NTQzNmVlZjU5MTQ3ZjViYTgx
Li5jZDA1MTM4YmQ3ODZkOGViZGEzOTQ2YjZlN2Y0ZmVjNDdhYjgzMGJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtMTM0LDE2ICsxMzQsMTIgQEAgdm9p
ZCBXZWJBbmltYXRpb246OnVuc3VzcGVuZEVmZmVjdEludmFsaWRhdGlvbigpCiAgICAgLS1tX3N1
c3BlbmRDb3VudDsKIH0KIAotdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5n
ZShPcHRpb25hbDxDb21wdXRlZEVmZmVjdFRpbWluZz4gcHJldmlvdXNUaW1pbmcpCit2b2lkIFdl
YkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hhbmdlKCkKIHsKICAgICB0aW1pbmdEaWRDaGFu
Z2UoRGlkU2Vlazo6Tm8sIFN5bmNocm9ub3VzbHlOb3RpZnk6Olllcyk7CiAKLSAgICBpZiAocHJl
dmlvdXNUaW1pbmcpIHsKLSAgICAgICAgYXV0byogZWZmZWN0ID0gdGhpcy0+ZWZmZWN0KCk7Ci0g
ICAgICAgIEFTU0VSVChlZmZlY3QpOwotICAgICAgICBpZiAocHJldmlvdXNUaW1pbmctPnByb2dy
ZXNzICE9IGVmZmVjdC0+Z2V0Q29tcHV0ZWRUaW1pbmcoKS5wcm9ncmVzcykKLSAgICAgICAgICAg
IGVmZmVjdC0+YW5pbWF0aW9uRGlkU2VlaygpOwotICAgIH0KKyAgICBpZiAobV9lZmZlY3QpCisg
ICAgICAgIG1fZWZmZWN0LT5hbmltYXRpb25EaWRDaGFuZ2VUaW1pbmdQcm9wZXJ0aWVzKCk7CiAK
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dFRpbWluZygqdGhpcyk7CiB9CkBAIC00NzcsNyArNDczLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
V2ViQW5pbWF0aW9uOjpzZXRDdXJyZW50VGltZShPcHRpb25hbDxTZWNvbmRzPiBzZWVrVGltZSkK
ICAgICB0aW1pbmdEaWRDaGFuZ2UoRGlkU2Vlazo6WWVzLCBTeW5jaHJvbm91c2x5Tm90aWZ5OjpO
byk7CiAKICAgICBpZiAobV9lZmZlY3QpCi0gICAgICAgIG1fZWZmZWN0LT5hbmltYXRpb25EaWRT
ZWVrKCk7CisgICAgICAgIG1fZWZmZWN0LT5hbmltYXRpb25EaWRDaGFuZ2VUaW1pbmdQcm9wZXJ0
aWVzKCk7CiAKICAgICBpbnZhbGlkYXRlRWZmZWN0KCk7CiAKQEAgLTUwOCw2ICs1MDQsOSBAQCB2
b2lkIFdlYkFuaW1hdGlvbjo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBuZXdQbGF5YmFja1JhdGUp
CiAgICAgLy8gNC4gSWYgcHJldmlvdXMgdGltZSBpcyByZXNvbHZlZCwgc2V0IHRoZSBjdXJyZW50
IHRpbWUgb2YgYW5pbWF0aW9uIHRvIHByZXZpb3VzIHRpbWUuCiAgICAgaWYgKHByZXZpb3VzVGlt
ZSkKICAgICAgICAgc2V0Q3VycmVudFRpbWUocHJldmlvdXNUaW1lKTsKKworICAgIGlmIChtX2Vm
ZmVjdCkKKyAgICAgICAgbV9lZmZlY3QtPmFuaW1hdGlvbkRpZENoYW5nZVRpbWluZ1Byb3BlcnRp
ZXMoKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnVwZGF0ZVBsYXliYWNrUmF0ZShkb3VibGUg
bmV3UGxheWJhY2tSYXRlKQpAQCAtNTYwLDYgKzU1OSw5IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp1
cGRhdGVQbGF5YmFja1JhdGUoZG91YmxlIG5ld1BsYXliYWNrUmF0ZSkKICAgICAgICAgLy8gUnVu
IHRoZSBwcm9jZWR1cmUgdG8gcGxheSBhbiBhbmltYXRpb24gZm9yIGFuaW1hdGlvbiB3aXRoIHRo
ZSBhdXRvLXJld2luZCBmbGFnIHNldCB0byBmYWxzZS4KICAgICAgICAgcGxheShBdXRvUmV3aW5k
OjpObyk7CiAgICAgfQorCisgICAgaWYgKG1fZWZmZWN0KQorICAgICAgICBtX2VmZmVjdC0+YW5p
bWF0aW9uRGlkQ2hhbmdlVGltaW5nUHJvcGVydGllcygpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlv
bjo6YXBwbHlQZW5kaW5nUGxheWJhY2tSYXRlKCkKQEAgLTExNTIsNiArMTE1NCw5IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdlYkFuaW1hdGlvbjo6cmV2ZXJzZSgpCiAgICAgICAgIHJldHVybiBwbGF5
UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICB9CiAKKyAgICBpZiAobV9lZmZlY3QpCisg
ICAgICAgIG1fZWZmZWN0LT5hbmltYXRpb25EaWRDaGFuZ2VUaW1pbmdQcm9wZXJ0aWVzKCk7CisK
ICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmgKaW5kZXggYjJkMmI4NzkwMjc3Y2FlZmI3MWM4NjMzYWI4YWJiODAyMDM1MjkxZi4uOWZmN2Ey
ZDY2YjRlNTM4ZTk3MDUxNmJjNGUzOTk1NjAxY2VlZGRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJDb21wdXRlZEVmZmVjdFRpbWlu
Zy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
ICNpbmNsdWRlICJJRExUeXBlcy5oIgpAQCAtMTMyLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzQ29tcGxldGVseUFjY2VsZXJhdGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JlbGV2YW50
KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlbGV2YW50OyB9CiAgICAgdm9pZCB1cGRhdGVSZWxldmFu
Y2UoKTsKLSAgICB2b2lkIGVmZmVjdFRpbWluZ0RpZENoYW5nZShPcHRpb25hbDxDb21wdXRlZEVm
ZmVjdFRpbWluZz4gPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgZWZmZWN0VGltaW5nRGlkQ2hh
bmdlKCk7CiAgICAgdm9pZCBzdXNwZW5kRWZmZWN0SW52YWxpZGF0aW9uKCk7CiAgICAgdm9pZCB1
bnN1c3BlbmRFZmZlY3RJbnZhbGlkYXRpb24oKTsKICAgICB2b2lkIHNldFN1c3BlbmRlZChib29s
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAppbmRl
eCA1ZWMyMmVlYmEzNDI1ZWU2Yjk2M2ZmNDg4YWYzZGZmOThhYjBjNjNjLi42NzBiZDgzOWE1MjBh
YjE2Y2RmNmE3OWExNmJhYTRhOTgxNGE5M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCkBAIC0xMTcsNiArMTE3LDcgQEAgcHVibGljOgogICAg
IEFuaW1hdGlvbkZpbGxNb2RlIGZpbGxNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
QW5pbWF0aW9uRmlsbE1vZGU+KG1fZmlsbE1vZGUpOyB9CiAKICAgICBkb3VibGUgZHVyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CisgICAgZG91YmxlIHBsYXliYWNrUmF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tSYXRlOyB9CiAKICAgICBlbnVtIHsgSXRlcmF0aW9u
Q291bnRJbmZpbml0ZSA9IC0xIH07CiAgICAgZG91YmxlIGl0ZXJhdGlvbkNvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9pdGVyYXRpb25Db3VudDsgfQpAQCAtMTMwLDYgKzEzMSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERlbGF5KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0RGlyZWN0aW9uKEFuaW1hdGlvbkRpcmVjdGlvbiBkKSB7IG1f
ZGlyZWN0aW9uID0gZDsgbV9kaXJlY3Rpb25TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXREdXJh
dGlvbihkb3VibGUgZCkgeyBBU1NFUlQoZCA+PSAwKTsgbV9kdXJhdGlvbiA9IGQ7IG1fZHVyYXRp
b25TZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlIGQpIHsgbV9w
bGF5YmFja1JhdGUgPSBkOyB9CiAgICAgdm9pZCBzZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9k
ZSBmKSB7IG1fZmlsbE1vZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZik7IG1fZmlsbE1vZGVT
ZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRJdGVyYXRpb25Db3VudChkb3VibGUgYykgeyBtX2l0
ZXJhdGlvbkNvdW50ID0gYzsgbV9pdGVyYXRpb25Db3VudFNldCA9IHRydWU7IH0KICAgICB2b2lk
IHNldE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHlsZTo6U2NvcGVPcmRpbmFsIHNjb3BlID0g
U3R5bGU6OlNjb3BlT3JkaW5hbDo6RWxlbWVudCkKQEAgLTE2OSw2ICsxNzEsNyBAQCBwcml2YXRl
OgogICAgIGRvdWJsZSBtX2l0ZXJhdGlvbkNvdW50OwogICAgIGRvdWJsZSBtX2RlbGF5OwogICAg
IGRvdWJsZSBtX2R1cmF0aW9uOworICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZSB7IDEgfTsKICAg
ICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IG1fdGltaW5nRnVuY3Rpb247CiAKICAgICBTdHlsZTo6
U2NvcGVPcmRpbmFsIG1fbmFtZVN0eWxlU2NvcGVPcmRpbmFsIHsgU3R5bGU6OlNjb3BlT3JkaW5h
bDo6RWxlbWVudCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5oCmluZGV4IDNiYjUwNTExZmVmMWU4NjQ3NGNjMGQ3MzFjOWFkMzZjZTNmNDVk
ZjcuLmRjZGVjMTZlZjRhZjI1MDYxYjBmNDE3YzQxMDVhNTNjYWJmNjBiYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTQ3OCw3
ICs0NzgsNiBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBoYW5kbGUgYm90aCB0cmFu
c2l0aW9ucyBhbmQga2V5ZnJhbWUgYW5pbWF0aW9ucy4KICAgICB2aXJ0dWFsIGJvb2wgYWRkQW5p
bWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgRmxvYXRTaXplJiAvKmJveFNp
emUqLywgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiAvKmFuaW1hdGlvbk5hbWUqLywg
ZG91YmxlIC8qdGltZU9mZnNldCovKSAgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcGF1c2VBbmltYXRpb24oY29uc3QgU3RyaW5nJiAvKmFuaW1hdGlvbk5hbWUqLywgZG91Ymxl
IC8qdGltZU9mZnNldCovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2Vla0FuaW1hdGlvbihjb25z
dCBTdHJpbmcmIC8qYW5pbWF0aW9uTmFtZSovLCBkb3VibGUgLyp0aW1lT2Zmc2V0Ki8pIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiAvKmFuaW1hdGlv
bk5hbWUqLykgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnMoTW9ub3RvbmljVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCAwNjgzYTNmOTgwN2I3
MGQyNjFjYjRlMzZlMmQxNzE5MDJlYTk5NjIzLi5kNDMxOWEzYjRlYmZlOTIyY2Y5ZWVhNDljZWNm
OGQwOWViMmMwOThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEwMjksNiArMTAyOSw5IEBAIGJvb2wg
R3JhcGhpY3NMYXllckNBOjpzaG91bGRSZXBhaW50T25TaXplQ2hhbmdlKCkgY29uc3QKIAogYm9v
bCBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQoY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltKSBjb25zdAogewor
ICAgIGlmIChhbmltLT5wbGF5YmFja1JhdGUoKSAhPSAxKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKICAgICBpZiAoIWFuaW0gfHwgYW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkgfHwgdmFs
dWVMaXN0LnNpemUoKSA8IDIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTA5MywxNiAr
MTA5Niw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpwYXVzZUFuaW1hdGlvbihjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2ZmCiAgICAgbm90ZUxheWVyUHJvcGVydHlD
aGFuZ2VkKEFuaW1hdGlvbkNoYW5nZWQpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2Vl
a0FuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0
KQotewotICAgIExPR19XSVRIX1NUUkVBTShBbmltYXRpb25zLCBzdHJlYW0gPDwgIkdyYXBoaWNz
TGF5ZXJDQSAiIDw8IHRoaXMgPDwgIiBpZCAiIDw8IHByaW1hcnlMYXllcklEKCkgPDwgIiBzZWVr
QW5pbWF0aW9uICIgPDwgYW5pbWF0aW9uTmFtZSA8PCAiIHRvICIgPDwgdGltZU9mZnNldCA8PCAi
IChpcyBydW5uaW5nICIgPDwgYW5pbWF0aW9uSXNSdW5uaW5nKGFuaW1hdGlvbk5hbWUpIDw8ICIp
Iik7Ci0KLSAgICAvLyBDYWxsIGFkZCBzaW5jZSBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgUmVtb3Zl
IGluIHRoZXJlLCB3ZSBkb24ndCB3YW50IHRvIG92ZXJ3cml0ZSBpdCB3aXRoIGEgUGF1c2UuCi0g
ICAgYWRkUHJvY2Vzc2luZ0FjdGlvbkZvckFuaW1hdGlvbihhbmltYXRpb25OYW1lLCBBbmltYXRp
b25Qcm9jZXNzaW5nQWN0aW9uIHsgU2VlaywgU2Vjb25kcyB7IHRpbWVPZmZzZXQgfSB9KTsKLQot
ICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChBbmltYXRpb25DaGFuZ2VkKTsKLX0KLQogdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlv
bk5hbWUpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKEFuaW1hdGlvbnMsIHN0cmVhbSA8PCAiR3Jh
cGhpY3NMYXllckNBICIgPDwgdGhpcyA8PCAiIGlkICIgPDwgcHJpbWFyeUxheWVySUQoKSA8PCAi
IHJlbW92ZUFuaW1hdGlvbiAiIDw8IGFuaW1hdGlvbk5hbWUgPDwgIiAoaXMgcnVubmluZyAiIDw8
IGFuaW1hdGlvbklzUnVubmluZyhhbmltYXRpb25OYW1lKSA8PCAiKSIpOwpAQCAtMjkyMSw5ICsy
OTE0LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogICAgICAg
ICAgICAgICAgICAgICBjYXNlIFBhdXNlOgogICAgICAgICAgICAgICAgICAgICAgICAgcGF1c2VD
QUFuaW1hdGlvbk9uTGF5ZXIoY3VycmVudEFuaW1hdGlvbi5tX3Byb3BlcnR5LCBjdXJyZW50QW5p
bWF0aW9uTmFtZSwgY3VycmVudEFuaW1hdGlvbi5tX2luZGV4LCBjdXJyZW50QW5pbWF0aW9uLm1f
c3ViSW5kZXgsIHByb2Nlc3NpbmdJbmZvLnRpbWVPZmZzZXQpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgU2VlazoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlZWtDQUFuaW1hdGlvbk9uTGF5ZXIoY3VycmVudEFuaW1hdGlvbi5tX3By
b3BlcnR5LCBjdXJyZW50QW5pbWF0aW9uTmFtZSwgY3VycmVudEFuaW1hdGlvbi5tX2luZGV4LCBj
dXJyZW50QW5pbWF0aW9uLm1fc3ViSW5kZXgsIHByb2Nlc3NpbmdJbmZvLnRpbWVPZmZzZXQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CiAKQEAgLTMwMzYsMzYgKzMwMjYsNiBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6cGF1c2VDQUFuaW1hdGlvbk9uTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5
LCBjb25zdAogCiAgICAgbmV3QW5pbS0+c2V0U3BlZWQoMCk7CiAgICAgbmV3QW5pbS0+c2V0VGlt
ZU9mZnNldCh0aW1lT2Zmc2V0LnNlY29uZHMoKSk7Ci0gICAgCi0gICAgbGF5ZXItPmFkZEFuaW1h
dGlvbkZvcktleShhbmltYXRpb25JRCwgKm5ld0FuaW0pOyAvLyBUaGlzIHdpbGwgcmVwbGFjZSB0
aGUgcnVubmluZyBhbmltYXRpb24uCi0KLSAgICAvLyBQYXVzZSB0aGUgYW5pbWF0aW9ucyBvbiB0
aGUgY2xvbmVzIHRvby4KLSAgICBpZiAoTGF5ZXJNYXAqIGxheWVyQ2xvbmVNYXAgPSBhbmltYXRl
ZExheWVyQ2xvbmVzKHByb3BlcnR5KSkgewotICAgICAgICBmb3IgKGF1dG8mIGNsb25lIDogKmxh
eWVyQ2xvbmVNYXApIHsKLSAgICAgICAgICAgIC8vIFNraXAgaW1tZWRpYXRlIHJlcGxpY2FzLCBz
aW5jZSB0aGV5IG1vdmUgd2l0aCB0aGUgb3JpZ2luYWwuCi0gICAgICAgICAgICBpZiAobV9yZXBs
aWNhTGF5ZXIgJiYgaXNSZXBsaWNhdGVkUm9vdENsb25lKGNsb25lLmtleSkpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBjbG9uZS52YWx1ZS0+YWRkQW5pbWF0aW9uRm9y
S2V5KGFuaW1hdGlvbklELCAqbmV3QW5pbSk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZWVrQ0FBbmltYXRpb25PbkxheWVyKEFuaW1hdGVkUHJvcGVydHlJ
RCBwcm9wZXJ0eSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBpbnQgaW5kZXgsIGludCBz
dWJJbmRleCwgU2Vjb25kcyB0aW1lT2Zmc2V0KQotewotICAgIC8vIEZJWE1FOiB0aGlzIGNhbiBi
ZSByZWZhY3RvcmVkIGEgZmFpciBiaXQgb3IgbWVyZ2VkIHdpdGggcGF1c2VDQUFuaW1hdGlvbk9u
TGF5ZXIoKSB3aXRoIGFuIG9wZXJhdGlvbiBmbGFnLgotICAgIFBsYXRmb3JtQ0FMYXllciogbGF5
ZXIgPSBhbmltYXRlZExheWVyKHByb3BlcnR5KTsKLQotICAgIFN0cmluZyBhbmltYXRpb25JRCA9
IGFuaW1hdGlvbklkZW50aWZpZXIoYW5pbWF0aW9uTmFtZSwgcHJvcGVydHksIGluZGV4LCBzdWJJ
bmRleCk7Ci0KLSAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3VycmVudEFuaW1hdGlv
biA9IGxheWVyLT5hbmltYXRpb25Gb3JLZXkoYW5pbWF0aW9uSUQpOwotICAgIGlmICghY3VycmVu
dEFuaW1hdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQW5pbWF0aW9ucyBvbiB0aGUg
bGF5ZXIgYXJlIGltbXV0YWJsZSwgc28gd2UgaGF2ZSB0byBjbG9uZSBhbmQgbW9kaWZ5LgotICAg
IFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBuZXdBbmltID0gY3VycmVudEFuaW1hdGlvbi0+
Y29weSgpOwotCi0gICAgbmV3QW5pbS0+c2V0QmVnaW5UaW1lKENBQ3VycmVudE1lZGlhVGltZSgp
KTsKLSAgICBuZXdBbmltLT5zZXRUaW1lT2Zmc2V0KHRpbWVPZmZzZXQuc2Vjb25kcygpKTsKIAog
ICAgIGxheWVyLT5hZGRBbmltYXRpb25Gb3JLZXkoYW5pbWF0aW9uSUQsICpuZXdBbmltKTsgLy8g
VGhpcyB3aWxsIHJlcGxhY2UgdGhlIHJ1bm5pbmcgYW5pbWF0aW9uLgogCkBAIC0zMjMyLDggKzMx
OTIsMjQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRp
b25zKExheWVyUHJvcGVydHlBbmltYXRpb24mJiBhbmkKICAgICBlbnN1cmVMYXllckFuaW1hdGlv
bnMoKTsKIAogICAgIC8vIFNpbmNlIHdlJ3JlIGFkZGluZyBhIG5ldyBhbmltYXRpb24sIG1ha2Ug
c3VyZSB3ZSBjbGVhciBhbnkgcGVuZGluZyBBbmltYXRpb25Qcm9jZXNzaW5nQWN0aW9uIGZvciB0
aGlzIGFuaW1hdGlvbgotICAgIC8vIGFzIHRoZXNlIGFyZSBhcHBsaWVkIGFmdGVyIHdlJ3ZlIGNv
bW1pdHRlZCBuZXcgYW5pbWF0aW9ucy4KLSAgICBtX2FuaW1hdGlvbnMtPmFuaW1hdGlvbnNUb1By
b2Nlc3MucmVtb3ZlKGFuaW1hdGlvbi5tX25hbWUpOworICAgIC8vIGFzIHRoZXNlIGFyZSBhcHBs
aWVkIGFmdGVyIHdlJ3ZlIGNvbW1pdHRlZCBuZXcgYW5pbWF0aW9ucy4gSG93ZXZlciwgd2Ugd2Fu
dCB0byBjaGVjayBpZiB3ZSBoYWQgYSBwZW5kaW5nIHJlbW92YWwKKyAgICAvLyBzdWNoIHRoYXQg
cmVtb3ZpbmcgYW4gYW5pbWF0aW9uIHByaW9yIHRvIGFkZGluZyBhIG5ldyBvbmUgZm9yIHRoZSBz
YW1lIG5hbWUgd29ya3MuCisgICAgYXV0byBwcm9jZXNzaW5nSW5mb0l0ZXJhdG9yID0gbV9hbmlt
YXRpb25zLT5hbmltYXRpb25zVG9Qcm9jZXNzLmZpbmQoYW5pbWF0aW9uLm1fbmFtZSk7CisgICAg
aWYgKHByb2Nlc3NpbmdJbmZvSXRlcmF0b3IgIT0gbV9hbmltYXRpb25zLT5hbmltYXRpb25zVG9Q
cm9jZXNzLmVuZCgpKSB7CisgICAgICAgIGF1dG8gYW5pbWF0aW9uSXRlcmF0b3IgPSBtX2FuaW1h
dGlvbnMtPnJ1bm5pbmdBbmltYXRpb25zLmZpbmQoYW5pbWF0aW9uLm1fbmFtZSk7CisgICAgICAg
IGlmIChhbmltYXRpb25JdGVyYXRvciAhPSBtX2FuaW1hdGlvbnMtPnJ1bm5pbmdBbmltYXRpb25z
LmVuZCgpKSB7CisgICAgICAgICAgICBhdXRvJiBhbmltYXRpb25zID0gYW5pbWF0aW9uSXRlcmF0
b3ItPnZhbHVlOworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwcm9jZXNzaW5nSW5mbyA6
IHByb2Nlc3NpbmdJbmZvSXRlcmF0b3ItPnZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHBy
b2Nlc3NpbmdJbmZvLmFjdGlvbiA9PSBSZW1vdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBjdXJyZW50QW5pbWF0aW9uIDogYW5pbWF0aW9ucykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJlbW92ZUNBQW5pbWF0aW9uRnJvbUxheWVyKGN1cnJlbnRBbmltYXRpb24u
bV9wcm9wZXJ0eSwgYW5pbWF0aW9uLm1fbmFtZSwgY3VycmVudEFuaW1hdGlvbi5tX2luZGV4LCBj
dXJyZW50QW5pbWF0aW9uLm1fc3ViSW5kZXgpOworICAgICAgICAgICAgICAgICAgICBtX2FuaW1h
dGlvbnMtPnJ1bm5pbmdBbmltYXRpb25zLnJlbW92ZShhbmltYXRpb25JdGVyYXRvcik7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBtX2FuaW1hdGlvbnMtPmFuaW1hdGlvbnNUb1Byb2Nlc3MucmVt
b3ZlKHByb2Nlc3NpbmdJbmZvSXRlcmF0b3IpOworICAgIH0KIAogICAgIG1fYW5pbWF0aW9ucy0+
dW5jb21pdHRlZEFuaW1hdGlvbnMuYXBwZW5kKFdURk1vdmUoYW5pbWF0aW9uKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCmluZGV4IDBkMGM0NmM4ZWI0OGQ2YmFlNDc1ODVjY2VmOTVhNzA2M2I0YjBiMjcuLmM1MWY4
YTQwNjZhZjNkZDNkN2JhZWJmMmQxNzFjMmI1OTZkNGJlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMzYs
NyArMTM2LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhZGRBbmltYXRp
b24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIGNv
bnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVP
ZmZzZXQpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGF1c2VBbmltYXRpb24o
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZU9mZnNldCkgb3ZlcnJpZGU7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWVrQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkgb3Zl
cnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSopIG92ZXJyaWRlOwpAQCAtNDYxLDcgKzQ2MCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRB
bmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FBbmltYXRpb24mLCBBbmltYXRlZFByb3BlcnR5SUQs
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgaW50IGluZGV4LCBpbnQgc3ViSW5kZXgsIFNl
Y29uZHMgdGltZU9mZnNldCk7CiAgICAgYm9vbCByZW1vdmVDQUFuaW1hdGlvbkZyb21MYXllcihB
bmltYXRlZFByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgaW50IGluZGV4
LCBpbnQgc3ViSU5kZXgpOwogICAgIHZvaWQgcGF1c2VDQUFuaW1hdGlvbk9uTGF5ZXIoQW5pbWF0
ZWRQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGludCBpbmRleCwgaW50
IHN1YkluZGV4LCBTZWNvbmRzIHRpbWVPZmZzZXQpOwotICAgIHZvaWQgc2Vla0NBQW5pbWF0aW9u
T25MYXllcihBbmltYXRlZFByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwg
aW50IGluZGV4LCBpbnQgc3ViSW5kZXgsIFNlY29uZHMgdGltZU9mZnNldCk7CiAKICAgICBlbnVt
IE1vdmVPckNvcHkgeyBNb3ZlLCBDb3B5IH07CiAgICAgc3RhdGljIHZvaWQgbW92ZU9yQ29weUxh
eWVyQW5pbWF0aW9uKE1vdmVPckNvcHksIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWRlbnRpZmll
ciwgUGxhdGZvcm1DQUxheWVyICpmcm9tTGF5ZXIsIFBsYXRmb3JtQ0FMYXllciAqdG9MYXllcik7
CkBAIC01NjMsNyArNTYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVwYWludExheWVyRGly
dHlSZWN0cygpOwogCi0gICAgZW51bSBBY3Rpb24geyBSZW1vdmUsIFBhdXNlLCBTZWVrIH07Cisg
ICAgZW51bSBBY3Rpb24geyBSZW1vdmUsIFBhdXNlIH07CiAgICAgc3RydWN0IEFuaW1hdGlvblBy
b2Nlc3NpbmdBY3Rpb24gewogICAgICAgICBBbmltYXRpb25Qcm9jZXNzaW5nQWN0aW9uKEFjdGlv
biBhY3Rpb24gPSBSZW1vdmUsIFNlY29uZHMgdGltZU9mZnNldCA9IDBfcykKICAgICAgICAgICAg
IDogYWN0aW9uKGFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
CmluZGV4IGE0NzZhNzQzZjVmNmViMGEwZGRkMGI3ODBlYWJmZmUyYTBjZDgzNDAuLjI1MTdkOWFi
YmQwZjVkOTViMjczZDI5MmRmYWY4ODI1YjA1YTlmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaApAQCAtMjMyLDcgKzIzMiw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgLyogdGltZU9mZnNldCAqLywgY29uc3Qg
QW5pbWF0aW9uJiwgY29uc3QgS2V5ZnJhbWVMaXN0JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIHZvaWQgYW5pbWF0aW9uUGF1c2VkKGRvdWJsZSAvKiB0aW1lT2Zmc2V0ICovLCBjb25z
dCBTdHJpbmcmIC8qIG5hbWUgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TZWVr
ZWQoZG91YmxlIC8qIHRpbWVPZmZzZXQgKi8sIGNvbnN0IFN0cmluZyYgLyogbmFtZSAqLykgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkZpbmlzaGVkKGNvbnN0IFN0cmluZyYgLyogbmFt
ZSAqLykgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoTW9ub3Rvbmlj
VGltZSA9IE1vbm90b25pY1RpbWUoKSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDU0ZjlkMzM1ZjEyOGZmM2U1MTAxNWNiZDVj
YjY2ZjJmY2YwZjU0ZTAuLmI5MWE0ZmM0NTdiMGJkZTJmNjg0MDhhMTYzZDBmMTY3OTliMDUyOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CkBAIC0zNDMzLDExICszNDMzLDYgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFuaW1hdGlv
blBhdXNlZChkb3VibGUgdGltZU9mZnNldCwgY29uc3QgU3RyaW5nJiBhbmltYXQKICAgICBtX2dy
YXBoaWNzTGF5ZXItPnBhdXNlQW5pbWF0aW9uKGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwog
fQogCi12b2lkIFJlbmRlckxheWVyQmFja2luZzo6YW5pbWF0aW9uU2Vla2VkKGRvdWJsZSB0aW1l
T2Zmc2V0LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpCi17Ci0gICAgbV9ncmFwaGljc0xh
eWVyLT5zZWVrQW5pbWF0aW9uKGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwotfQotCiB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6YW5pbWF0aW9uRmluaXNoZWQoY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25OYW1lKQogewogICAgIG1fZ3JhcGhpY3NMYXllci0+cmVtb3ZlQW5pbWF0aW9uKGFuaW1h
dGlvbk5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oCmluZGV4IDAyODExOWE5ZDg1ZTJmODQyOWE3N2Y1Mzg1MDE0MjNiYjM4ODZlZjYuLmY1NGE4
OGIzOGFmMWVmZjhlNTIyZTZkZTY3NGJkNTEwNTM2NWMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE4OCw3ICsxODgsNiBAQCBwdWJs
aWM6CiAKICAgICBib29sIHN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBB
bmltYXRpb24mLCBjb25zdCBLZXlmcmFtZUxpc3QmKTsKICAgICB2b2lkIGFuaW1hdGlvblBhdXNl
ZChkb3VibGUgdGltZU9mZnNldCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFuaW1h
dGlvblNlZWtlZChkb3VibGUgdGltZU9mZnNldCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2
b2lkIGFuaW1hdGlvbkZpbmlzaGVkKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2b2lkIHN1
c3BlbmRBbmltYXRpb25zKE1vbm90b25pY1RpbWUgPSBNb25vdG9uaWNUaW1lKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmlu
ZGV4IDE4OWZiNGY1MjgwZGFhMTY1Y2ZlZWQ5MjE2ZGE2Yzc5OTJkZmViOTEuLjJjNTlhNDg0NmFm
ODQ0NzU1ZWY3MzEwNGFhZjRhMDgxNTFhOGNiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTMxOCwxMyArMzE4LDYg
QEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjphbmltYXRpb25QYXVzZWQoZG91YmxlIHRp
bWVPZmZzZXQsIGNvbnN0IFN0cmluZyYgbmEKICAgICBsYXllcigpLT5iYWNraW5nKCktPmFuaW1h
dGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBuYW1lKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0OjphbmltYXRpb25TZWVrZWQoZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IFN0cmluZyYg
bmFtZSkKLXsKLSAgICBpZiAoIWxheWVyKCkgfHwgIWxheWVyKCktPmJhY2tpbmcoKSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIGxheWVyKCktPmJhY2tpbmcoKS0+YW5pbWF0aW9uU2Vla2VkKHRpbWVP
ZmZzZXQsIG5hbWUpOwotfQotCiB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OmFuaW1hdGlv
bkZpbmlzaGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBpZiAoIWxheWVyKCkgfHwgIWxh
eWVyKCktPmJhY2tpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGQ4NzkyNDI3OGJhYWRiOTg5OTEyNmE2YjVhZGVjOWYw
M2M2ZWQ3YTQuLmEzYjNkY2FkY2E2ZDUwNDM3NzEzZGI3MmVhMjJiNjMxZmZlMmRiYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApA
QCAtNzUsNyArNzUsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIHN0YXJ0QW5pbWF0aW9uKGRvdWJs
ZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRpb24mLCBjb25zdCBLZXlmcmFtZUxpc3QmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGFuaW1hdGlvblBhdXNlZChkb3VibGUgdGltZU9mZnNldCwgY29uc3Qg
U3RyaW5nJiBuYW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGFuaW1hdGlvblNlZWtlZChkb3VibGUg
dGltZU9mZnNldCwgY29uc3QgU3RyaW5nJiBuYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGFuaW1h
dGlvbkZpbmlzaGVkKGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN1
c3BlbmRBbmltYXRpb25zKE1vbm90b25pY1RpbWUgPSBNb25vdG9uaWNUaW1lKCkpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDkzZTRiOTBiZGVmMmIwM2Y2YWVmMWQ1ZTJjMzM1MzJkZDUzOWNiNTQuLjM5NTA5
MDk5NmI2OTc5NmI4YzQ5NjRjNjgwYzVmNzA1YWM0MmI2YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMC0wNS0xMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWIgQW5pbWF0aW9uc10gQ2FsbGluZyByZXZlcnNlKCkgb24gYW4gYWNjZWxlcmF0ZWQg
YW5pbWF0aW9uIGhhcyBubyBlZmZlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDcxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI1MDM1ODI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
dGVzdCB3aGVyZSB3ZSBwbGF5IGFuIGFuaW1hdGlvbiBmb3IgYW4gYWNjZWxlcmF0ZWQgcHJvcGVy
dHkgaW4gcmV2ZXJzZS4KKworICAgICAgICAqIHdlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5p
bWF0aW9uLXBsYXliYWNrLXJhdGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
YW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tcGxheWJhY2stcmF0ZS5odG1sOiBBZGRl
ZC4KKwogMjAyMC0wNS0xMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1doZWVsIGV2ZW50IHJlZ2lvbl0gSW5jbHVkZSBsaXN0ZW5lcnMgb24gV2luZG93CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWFuaW1hdGlv
bi1wbGF5YmFjay1yYXRlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25z
L2FjY2VsZXJhdGVkLWFuaW1hdGlvbi1wbGF5YmFjay1yYXRlLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGJjMGZmNzlmODE0NmEwZGIxMjBhNTFiYmIwYjBjNDZkMjRhM2VkNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9u
LXBsYXliYWNrLXJhdGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACis8Ym9keSBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPjwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXBsYXliYWNrLXJhdGUuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXBsYXliYWNr
LXJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjRlYjIwMTRlYWRhNDQzMGFiMGFjNzM2ZjQxNzQ2N2Y4
MjgwMDdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2Nl
bGVyYXRlZC1hbmltYXRpb24tcGxheWJhY2stcmF0ZS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c3R5bGU+CisgICAgYm9keSwgI2NvdmVyIHsKKyAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI3RhcmdldCwgI2NvdmVy
IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDA7CisgICAgICAg
IGxlZnQ6IDA7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorCisgICAgI3RhcmdldCB7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwor
ICAgIH0KKworICAgIC8qIFRoaXMgZWxlbWVudCBjb3ZlcnMgdGhlIGZpcnN0IGhhbGYgb2YgdGhl
IGFyZWEgdHJhdmVsZWQgYnkgdGhlIGFuaW1hdGVkIHRhcmdldC4gSWYgdGhlIGFuaW1hdGlvbiBk
aWQgbm90CisgICAgICAgcmVzcGVjdCB0aGUgcGxheWJhY2tSYXRlLCB0aGVuIHJlZCB3b3VsZCBh
cHBlYXIgc2luY2UgdGhlIGFuaW1hdGVkIHRhcmdldCB3b3VsZCB0cmF2ZWwgdG8gdGhlIHJpZ2h0
IG9mCisgICAgICAgdGhlIGNvdmVyIGVsZW1lbnQuICovCisgICAgI2NvdmVyIHsKKyAgICAgICAg
bGVmdDogMTAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICB9CisKKzwvc3R5bGU+Cis8
ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPGRpdiBpZD0iY292ZXIiPjwvZGl2PgorPHNjcmlwdD4K
KworKGFzeW5jICgpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgLy8gU3RhcnQgYW4gYW5pbWF0aW9uLgor
ICAgIGNvbnN0IGFuaW1hdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5h
bmltYXRlKHsgdHJhbnNmb3JtOiBbInRyYW5zbGF0ZVgoMTAwcHgpIiwgInRyYW5zbGF0ZVgoMzAw
cHgpIl0gfSwgeyBkdXJhdGlvbjogMTAwMCwgZmlsbDogImJvdGgiIH0pOworCisgICAgLy8gU2Vl
ayBpdCB0byBpdHMgaGFsZndheSBwb2ludCwgdGhlIHRhcmdldCBzaG91bGQgYWxpZ24gd2l0aCB0
aGUgcmlnaHQgZWRnZSBvZiB0aGUgY292ZXIuCisgICAgYW5pbWF0aW9uLmN1cnJlbnRUaW1lID0g
YW5pbWF0aW9uLmVmZmVjdC5nZXRUaW1pbmcoKS5kdXJhdGlvbiAvIDI7CisKKyAgICAvLyBNYWtl
IGl0IHBsYXkgYmFja3dhcmRzLgorICAgIGFuaW1hdGlvbi5wbGF5YmFja1JhdGUgPSAtMTsKKwor
ICAgIC8vIFdhaXQgYSBmZXcgZnJhbWVzLgorICAgIGF3YWl0IGFuaW1hdGlvbi5yZWFkeTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKKworICAgIC8vIEF0IHRoaXMgcG9pbnQsIGlmIHRoZSB0
YXJnZXQgd2VyZSBpZ25vcmluZyB0aGUgcGxheWJhY2tSYXRlLCBpdCB3b3VsZCBwZWVrIGEgbGl0
dGxlIHRvIHRoZSByaWdodCBvZiB0aGUgY292ZXIuCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pKCk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>