<?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>156731</bug_id>
          
          <creation_ts>2016-04-18 22:22:50 -0700</creation_ts>
          <short_desc>Toggling animation-play-state can re-start a finished animation</short_desc>
          <delta_ts>2016-04-25 16:59:46 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184917</commentid>
    <comment_count>0</comment_count>
      <attachid>276694</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-18 22:22:50 -0700</bug_when>
    <thetext>Created attachment 276694
Testcase

In the attached test case, hover the box and wait for the animation to finish. Then un-hover and re-hover. Note how the animation restarts.

In other browsers, the animation does not restart, which is correct because the animation-name property still applies to the element. Our mistake is to completely remove finished animations in CompositeAnimation::updateKeyframeAnimations(). We need to keep some state around to know that we shouldn&apos;t re-run this animation when play-state changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186849</commentid>
    <comment_count>1</comment_count>
      <attachid>277219</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-24 23:01:55 -0700</bug_when>
    <thetext>Created attachment 277219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187039</commentid>
    <comment_count>2</comment_count>
      <attachid>277273</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-25 13:36:31 -0700</bug_when>
    <thetext>Created attachment 277273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187043</commentid>
    <comment_count>3</comment_count>
      <attachid>277273</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-04-25 13:47:14 -0700</bug_when>
    <thetext>Comment on attachment 277273
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Fix by keeping state for keyframe animations in the Done state in the m_keyframeAnimations
&gt; +        map. This allows for the removal of the 

You forgot to end this sentence</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187048</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-25 13:56:59 -0700</bug_when>
    <thetext>https://trac.webkit.org/r200047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187129</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-04-25 16:59:46 -0700</bug_when>
    <thetext>This change appears to have caused fast/layers/no-clipping-overflow-hidden-added-after-transform.html to fail on mac-wk1 debug

https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK1%20%28Tests%29/r200051%20%284689%29/results.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>276694</attachid>
            <date>2016-04-18 22:22:50 -0700</date>
            <delta_ts>2016-04-18 22:22:50 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>play-state-start-paused.html</filename>
            <type>text/html</type>
            <size>769</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzdHlsZT4KICAgICAgICAuY29udGFp
bmVyIHsKICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgd2lkdGg6IDUwMHB4
OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAgICAgICB9CiAgICAgICAg
LmJveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgbGVmdDog
MTBweDsKICAgICAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDEwMHB4
OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICAgICAgICAgICAgYW5pbWF0
aW9uOiBtb3ZlIDFzIGxpbmVhcjsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC41czsK
ICAgICAgICAgICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDsKICAgICAgICB9CiAgICAg
ICAgCiAgICAgICAgLmNvbnRhaW5lcjpob3ZlciAuYm94IHsKICAgICAgICAgICAgYW5pbWF0aW9u
LXBsYXktc3RhdGU6IHJ1bm5pbmc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFt
ZXMgbW92ZSB7CiAgICAgICAgICAgIGZyb20geyBsZWZ0OiAwOyB9CiAgICAgICAgICAgIHRvICAg
eyBsZWZ0OiA0MDBweDsgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+
CiAgICA8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277219</attachid>
            <date>2016-04-24 23:01:55 -0700</date>
            <delta_ts>2016-04-25 13:36:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156731-20160424230218.patch</filename>
            <type>text/plain</type>
            <size>24657</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVkNmZlYWE1N2M5OGJi
Y2JlNThjYTA4NjkxYjBmNmViYWNjMjg1Zi4uZWI0NmI0OGM5MDI5Mjc4NjcxMDBhNmI4OWY5OWQ2
NjY1MzdhY2QzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE2LTA0LTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFRvZ2dsaW5nIGFu
aW1hdGlvbi1wbGF5LXN0YXRlIGNhbiByZS1zdGFydCBhIGZpbmlzaGVkIGFuaW1hdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgYW4gYW5p
bWF0aW9uIGNvbXBsZXRlZCwgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1h
dGlvbnMoKSBjbGVhcmVkCisgICAgICAgIGFsbCBzdGF0ZSB0aGF0IHRoZSBhbmltYXRpb24gaGFk
IHJ1biBvbiB0aGUgZWxlbWVudCwgc28gY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHNvbWUKKyAgICAg
ICAgYW5pbWF0aW9uIHByb3BlcnR5IHRyaWdnZXJlZCB0aGUgYW5pbWF0aW9uIHRvIHJ1biBhZ2Fp
bi4gVGhpcyBpcyB3cm9uZywgc2luY2UgYW5pbWF0aW9uLW5hbWUKKyAgICAgICAgc3RpbGwgYXBw
bGllZCB0byB0aGUgZWxlbWVudC4KKworICAgICAgICBGaXggYnkga2VlcGluZyBzdGF0ZSBmb3Ig
a2V5ZnJhbWUgYW5pbWF0aW9ucyBpbiB0aGUgRG9uZSBzdGF0ZSBpbiB0aGUgbV9rZXlmcmFtZUFu
aW1hdGlvbnMKKyAgICAgICAgbWFwLiBUaGlzIGFsbG93cyBmb3IgdGhlIHJlbW92YWwgb2YgdGhl
IAorCisgICAgICAgIFRlc3RzOiBhbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9u
LXRyYW5zZm9ybS5odG1sCisgICAgICAgICAgICAgICBhbmltYXRpb25zL2NoYW5nZS1jb21wbGV0
ZWQtYW5pbWF0aW9uLmh0bWwKKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZp
Y2UpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmlzQW5pbWF0aW5nUHJvcGVydHkpOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyk6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVBbmltYXRpb246OktleWZyYW1lQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lQW5pbWF0aW9uOjpnZXRBbmltYXRlZFN0eWxlKToKKyAgICAgICAgKiBwYWdl
L2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOgorCisyMDE2LTA0LTI0ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIHBsYXktc3RhdGUgbm90IHBh
cnNlZCBhcyBwYXJ0IG9mIGFuaW1hdGlvbiBzaG9ydGhhbmQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk1OQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IDI0NDgyODM4N2RjNTYzYzU4
MDJmNDhlYjA5MzFmYTMyNDkwM2EzNTkuLmFjZGU2YmIwYWUyYmUzNDBhY2ZlNDBhNjY3MDQ2YTlm
NTBiM2IxZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuY3BwCkBAIC01NjAsNyArNTYwLDcgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRpbWVU
b05leHRTZXJ2aWNlKCkKIHsKICAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIGF0IHdoaWNoIG5leHQg
c2VydmljZSBpcyByZXF1aXJlZC4gLTEgbWVhbnMgbm8gc2VydmljZSBpcyByZXF1aXJlZC4gMCBt
ZWFucyAKICAgICAvLyBzZXJ2aWNlIGlzIHJlcXVpcmVkIG5vdywgYW5kID4gMCBtZWFucyBzZXJ2
aWNlIGlzIHJlcXVpcmVkIHRoYXQgbWFueSBzZWNvbmRzIGluIHRoZSBmdXR1cmUuCi0gICAgaWYg
KHBhdXNlZCgpIHx8IGlzTmV3KCkgfHwgbV9hbmltYXRpb25TdGF0ZSA9PSBBbmltYXRpb25TdGF0
ZTo6RmlsbGluZ0ZvcndhcmRzKQorICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygpIHx8IHBvc3RB
Y3RpdmUoKSB8fCBmaWxsaW5nRm9yd2FyZHMoKSkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIAog
ICAgIGlmIChtX2FuaW1hdGlvblN0YXRlID09IEFuaW1hdGlvblN0YXRlOjpTdGFydFdhaXRUaW1l
cikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmlu
ZGV4IDBmMDczMzJjOGEzZmQ5MGVjMmU0ODVkNjczZWQxOTI1MjdiODFiM2YuLjc3YmY4YThhMzlh
MzZkNjg1MTIzZGI0ZTAyNzAzNGJiNzlhZTgzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmICgocnVubmluZ1N0YXRlICYgUGF1c2VkKSAmJiBpblBhdXNlZFN0YXRlKCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBpZiAoKHJ1bm5pbmdTdGF0ZSAmIFJ1
bm5pbmcpICYmICFpblBhdXNlZFN0YXRlKCkgJiYgKG1fYW5pbWF0aW9uU3RhdGUgPj0gQW5pbWF0
aW9uU3RhdGU6OlN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlICYmIG1fYW5pbWF0aW9uU3RhdGUgPD0g
QW5pbWF0aW9uU3RhdGU6OkRvbmUpKQorICAgICAgICBpZiAoKHJ1bm5pbmdTdGF0ZSAmIFJ1bm5p
bmcpICYmICFpblBhdXNlZFN0YXRlKCkgJiYgKG1fYW5pbWF0aW9uU3RhdGUgPj0gQW5pbWF0aW9u
U3RhdGU6OlN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlICYmIG1fYW5pbWF0aW9uU3RhdGUgPCBBbmlt
YXRpb25TdGF0ZTo6RG9uZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29t
cG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA2NTUxZDY4MzM3NTNkY2JmNDhmMzllNjUzNzNkNDMy
NTc0NzFmNDdkLi5iOGRlYzNmMGUyNjk3MGYwNGZhZGVhZDM3MDE2MWI2ZGE0MjBmN2M5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKQEAgLTIwMyw5OSArMjAzLDg1IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRh
dGVLZXlmcmFtZUFuaW1hdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFJlbmRlCiAKICAg
ICBtX2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgCi0gICAgaWYg
KGN1cnJlbnRTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmhhc0FuaW1hdGlvbnMoKSAmJiB0YXJnZXRT
dHlsZS0+aGFzQW5pbWF0aW9ucygpICYmICooY3VycmVudFN0eWxlLT5hbmltYXRpb25zKCkpID09
ICoodGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKSkpIHsKLSAgICAgICAgLy8gVGhlIGN1cnJlbnQg
YW5kIHRhcmdldCBhbmltYXRpb25zIGFyZSB0aGUgc2FtZSBzbyB3ZSBqdXN0IG5lZWQgdG8gdG9z
cyBhbnkgCi0gICAgICAgIC8vIGFuaW1hdGlvbiB3aGljaCBpcyBmaW5pc2hlZCAocG9zdEFjdGl2
ZSkuCi0gICAgICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogbV9rZXlmcmFtZUFuaW1hdGlvbnMu
dmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChhbmltYXRpb24tPnBvc3RBY3RpdmUoKSkKLSAg
ICAgICAgICAgICAgICBhbmltYXRpb24tPnNldEluZGV4KC0xKTsKLSAgICAgICAgfQotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8vIE1hcmsgYWxsIGV4aXN0aW5nIGFuaW1hdGlvbnMgYXMgbm8gbG9u
Z2VyIGFjdGl2ZS4KLSAgICAgICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBtX2tleWZyYW1lQW5p
bWF0aW9ucy52YWx1ZXMoKSkKLSAgICAgICAgICAgIGFuaW1hdGlvbi0+c2V0SW5kZXgoLTEpOwor
ICAgIGlmIChjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5oYXNBbmltYXRpb25zKCkgJiYg
dGFyZ2V0U3R5bGUtPmhhc0FuaW1hdGlvbnMoKSAmJiAqKGN1cnJlbnRTdHlsZS0+YW5pbWF0aW9u
cygpKSA9PSAqKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpKQorICAgICAgICByZXR1cm47CiAK
ICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKLSAgICAgICAgbV9oYXNTY3JvbGxU
cmlnZ2VyZWRBbmltYXRpb24gPSBmYWxzZTsKKyAgICBtX2hhc1Njcm9sbFRyaWdnZXJlZEFuaW1h
dGlvbiA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICAgICAgLy8gVG9zcyB0aGUgYW5pbWF0aW9uIG9y
ZGVyIG1hcC4KLSAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNsZWFyKCk7Cisg
ICAgQW5pbWF0aW9uTmFtZU1hcCBuZXdBbmltYXRpb25zOwogCi0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE5vdyBtYXJrIGFu
eSBzdGlsbCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1h
dGlvbnMuCi0gICAgICAgIGlmICh0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSB7Ci0gICAgICAg
ICAgICBpbnQgbnVtQW5pbXMgPSB0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7Ci0g
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUFuaW1zOyArK2kpIHsKLSAgICAgICAg
ICAgICAgICBBbmltYXRpb24mIGFuaW1hdGlvbiA9IHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkt
PmFuaW1hdGlvbihpKTsKLSAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgYW5pbWF0aW9uTmFt
ZShhbmltYXRpb24ubmFtZSgpKTsKLQotICAgICAgICAgICAgICAgIGlmICghYW5pbWF0aW9uLmlz
VmFsaWRBbmltYXRpb24oKSkKKyAgICAvLyBUb3NzIHRoZSBhbmltYXRpb24gb3JkZXIgbWFwLgor
ICAgIG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5jbGVhcigpOworCisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbm9uZSgibm9uZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIAorICAgIC8vIE5vdyBtYXJrIGFueSBzdGls
bCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1hdGlvbnMu
CisgICAgaWYgKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpIHsKKyAgICAgICAgaW50IG51bUFu
aW1zID0gdGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOworICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bUFuaW1zOyArK2kpIHsKKyAgICAgICAgICAgIEFuaW1hdGlvbiYgYW5p
bWF0aW9uID0gdGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpOworICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIGFuaW1hdGlvbk5hbWUoYW5pbWF0aW9uLm5hbWUoKSk7CisKKyAg
ICAgICAgICAgIGlmICghYW5pbWF0aW9uLmlzVmFsaWRBbmltYXRpb24oKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJl
IGlzIGEgY3VycmVudCBhbmltYXRpb24gZm9yIHRoaXMgbmFtZS4KKyAgICAgICAgICAgIFJlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMu
Z2V0KGFuaW1hdGlvbk5hbWUuaW1wbCgpKTsKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZUFuaW0p
IHsKKyAgICAgICAgICAgICAgICBuZXdBbmltYXRpb25zLmFkZChrZXlmcmFtZUFuaW0tPm5hbWUo
KS5pbXBsKCksIGtleWZyYW1lQW5pbSk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVB
bmltLT5wb3N0QWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQg
YW5pbWF0aW9uIGZvciB0aGlzIG5hbWUuCi0gICAgICAgICAgICAgICAgUmVmUHRyPEtleWZyYW1l
QW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5nZXQoYW5pbWF0
aW9uTmFtZS5pbXBsKCkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChr
ZXlmcmFtZUFuaW0pIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBhbmltYXRpb24g
aXMgcG9zdEFjdGl2ZSwgc2tpcCBpdCBzbyBpdCBnZXRzIHJlbW92ZWQgYXQgdGhlIGVuZCBvZiB0
aGlzIGZ1bmN0aW9uLgotICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5wb3N0
QWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogI2lmIEVOQUJM
RShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQotICAgICAgICAgICAgICAgICAgICBpZiAoYW5pbWF0
aW9uLnRyaWdnZXIoKS0+aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2hhc1Njcm9sbFRyaWdnZXJlZEFuaW1hdGlvbiA9IHRydWU7CisgICAgICAg
ICAgICAgICAgaWYgKGFuaW1hdGlvbi50cmlnZ2VyKCktPmlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dl
cigpKQorICAgICAgICAgICAgICAgICAgICBtX2hhc1Njcm9sbFRyaWdnZXJlZEFuaW1hdGlvbiA9
IHRydWU7CiAjZW5kaWYKIAotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG9uZSBpcyBzdGls
bCBhY3RpdmUuCi0KLSAgICAgICAgICAgICAgICAgICAgLy8gQW5pbWF0aW9ucyBtYXRjaCwgYnV0
IHBsYXkgc3RhdGVzIG1heSBkaWZmZXIuIFVwZGF0ZSBpZiBuZWVkZWQuCi0gICAgICAgICAgICAg
ICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKGFuaW1hdGlvbi5wbGF5U3RhdGUo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAvLyBTZXQgdGhlIHNhdmVkIGFuaW1hdGlvbiB0byB0aGlzIG5ldyBvbmUsIGp1c3QgaW4gY2Fz
ZSB0aGUgcGxheSBzdGF0ZSBoYXMgY2hhbmdlZC4KLSAgICAgICAgICAgICAgICAgICAga2V5ZnJh
bWVBbmltLT5zZXRBbmltYXRpb24oYW5pbWF0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAga2V5
ZnJhbWVBbmltLT5zZXRJbmRleChpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChhbmlt
YXRpb24uZHVyYXRpb24oKSB8fCBhbmltYXRpb24uZGVsYXkoKSkgJiYgYW5pbWF0aW9uLml0ZXJh
dGlvbkNvdW50KCkgJiYgYW5pbWF0aW9uTmFtZSAhPSBub25lKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGtleWZyYW1lQW5pbSA9IEtleWZyYW1lQW5pbWF0aW9uOjpjcmVhdGUoYW5pbWF0aW9uLCBy
ZW5kZXJlciwgaSwgdGhpcywgdGFyZ2V0U3R5bGUpOwotICAgICAgICAgICAgICAgICAgICBMT0co
QW5pbWF0aW9ucywgIkNyZWF0aW5nIEtleWZyYW1lQW5pbWF0aW9uICVwIG9uIHJlbmRlcmVyICVw
IHdpdGgga2V5ZnJhbWVzICVzLCBkdXJhdGlvbiAlLjJmLCBkZWxheSAlLjJmLCBpdGVyYXRpb25z
ICUuMmYiLCBrZXlmcmFtZUFuaW0uZ2V0KCksIHJlbmRlcmVyLCBhbmltYXRpb24ubmFtZSgpLnV0
ZjgoKS5kYXRhKCksIGFuaW1hdGlvbi5kdXJhdGlvbigpLCBhbmltYXRpb24uZGVsYXkoKSwgYW5p
bWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAobV9zdXNw
ZW5kZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxh
eVN0YXRlKEFuaW1QbGF5U3RhdGVQYXVzZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgTE9H
KEFuaW1hdGlvbnMsICIgIChjcmVhdGVkIGluIHN1c3BlbmRlZC9wYXVzZWQgc3RhdGUpIik7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBBbmltYXRpb25zIG1hdGNo
LCBidXQgcGxheSBzdGF0ZXMgbWF5IGRpZmZlci4gVXBkYXRlIGlmIG5lZWRlZC4KKyAgICAgICAg
ICAgICAgICBrZXlmcmFtZUFuaW0tPnVwZGF0ZVBsYXlTdGF0ZShhbmltYXRpb24ucGxheVN0YXRl
KCkpOworCisgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBzYXZlZCBhbmltYXRpb24gdG8gdGhp
cyBuZXcgb25lLCBqdXN0IGluIGNhc2UgdGhlIHBsYXkgc3RhdGUgaGFzIGNoYW5nZWQuCisgICAg
ICAgICAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoKGFuaW1hdGlvbi5kdXJhdGlvbigpIHx8IGFuaW1hdGlvbi5kZWxh
eSgpKSAmJiBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQoKSAmJiBhbmltYXRpb25OYW1lICE9IG5v
bmUpIHsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUFuaW0gPSBLZXlmcmFtZUFuaW1hdGlvbjo6
Y3JlYXRlKGFuaW1hdGlvbiwgcmVuZGVyZXIsIHRoaXMsIHRhcmdldFN0eWxlKTsKKyAgICAgICAg
ICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0aW5nIEtleWZyYW1lQW5pbWF0aW9uICVwIG9u
IHJlbmRlcmVyICVwIHdpdGgga2V5ZnJhbWVzICVzLCBkdXJhdGlvbiAlLjJmLCBkZWxheSAlLjJm
LCBpdGVyYXRpb25zICUuMmYiLCBrZXlmcmFtZUFuaW0uZ2V0KCksIHJlbmRlcmVyLCBhbmltYXRp
b24ubmFtZSgpLnV0ZjgoKS5kYXRhKCksIGFuaW1hdGlvbi5kdXJhdGlvbigpLCBhbmltYXRpb24u
ZGVsYXkoKSwgYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOworCisgICAgICAgICAgICAgICAg
aWYgKG1fc3VzcGVuZGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+dXBk
YXRlUGxheVN0YXRlKEFuaW1QbGF5U3RhdGVQYXVzZWQpOworICAgICAgICAgICAgICAgICAgICBM
T0coQW5pbWF0aW9ucywgIiAgKGNyZWF0ZWQgaW4gc3VzcGVuZGVkL3BhdXNlZCBzdGF0ZSkiKTsK
KyAgICAgICAgICAgICAgICB9CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8gcHJvcGVydHlJRCA6IGtleWZyYW1lQW5pbS0+a2V5ZnJhbWVzKCkucHJvcGVy
dGllcygpKQotICAgICAgICAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICIgIHByb3Bl
cnR5ICVzIiwgZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5SUQpKTsKKyAgICAgICAgICAgICAgICBm
b3IgKGF1dG8gcHJvcGVydHlJRCA6IGtleWZyYW1lQW5pbS0+a2V5ZnJhbWVzKCkucHJvcGVydGll
cygpKQorICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIiAgcHJvcGVydHkgJXMi
LCBnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHlJRCkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NT
X0FOSU1BVElPTlNfTEVWRUxfMikKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi50
cmlnZ2VyKCktPmlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcigpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgbV9oYXNTY3JvbGxUcmlnZ2VyZWRBbmltYXRpb24gPSB0cnVlOworICAgICAgICAgICAg
ICAgIGlmIChhbmltYXRpb24udHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdnZXIoKSkK
KyAgICAgICAgICAgICAgICAgICAgbV9oYXNTY3JvbGxUcmlnZ2VyZWRBbmltYXRpb24gPSB0cnVl
OwogI2VuZGlmCiAKLSAgICAgICAgICAgICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuc2V0
KGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSwga2V5ZnJhbWVBbmltKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gQWRkIHRoaXMgdG8g
dGhlIGFuaW1hdGlvbiBvcmRlciBtYXAuCi0gICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lQW5p
bSkKLSAgICAgICAgICAgICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmFwcGVu
ZChrZXlmcmFtZUFuaW0tPm5hbWUoKS5pbXBsKCkpOworICAgICAgICAgICAgICAgIG5ld0FuaW1h
dGlvbnMuc2V0KGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSwga2V5ZnJhbWVBbmltKTsKICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQWRkIHRoaXMgdG8gdGhl
IGFuaW1hdGlvbiBvcmRlciBtYXAuCisgICAgICAgICAgICBpZiAoa2V5ZnJhbWVBbmltKQorICAg
ICAgICAgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5hcHBlbmQoa2V5ZnJhbWVB
bmltLT5uYW1lKCkuaW1wbCgpKTsKICAgICAgICAgfQogICAgIH0KICAgICAKICAgICAvLyBNYWtl
IGEgbGlzdCBvZiBhbmltYXRpb25zIHRvIGJlIHJlbW92ZWQuCi0gICAgVmVjdG9yPEF0b21pY1N0
cmluZ0ltcGwqPiBhbmltc1RvQmVSZW1vdmVkOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDog
bV9rZXlmcmFtZUFuaW1hdGlvbnMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKGFuaW1hdGlvbi0+
aW5kZXgoKSA8IDApIHsKLSAgICAgICAgICAgIGFuaW1zVG9CZVJlbW92ZWQuYXBwZW5kKGFuaW1h
dGlvbi0+bmFtZSgpLmltcGwoKSk7CisgICAgICAgIGlmICghbmV3QW5pbWF0aW9ucy5jb250YWlu
cyhhbmltYXRpb24tPm5hbWUoKS5pbXBsKCkpKSB7CiAgICAgICAgICAgICBhbmltYXRpb25Db250
cm9sbGVyKCkuYW5pbWF0aW9uV2lsbEJlUmVtb3ZlZChhbmltYXRpb24uZ2V0KCkpOwogICAgICAg
ICAgICAgYW5pbWF0aW9uLT5jbGVhcigpOwogICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJS
ZW1vdmluZyBLZXlmcmFtZUFuaW1hdGlvbiAlcCBmcm9tIHJlbmRlcmVyICVwIiwgYW5pbWF0aW9u
LmdldCgpLCByZW5kZXJlcik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgLy8gTm93IHJl
bW92ZSB0aGUgYW5pbWF0aW9ucyBmcm9tIHRoZSBsaXN0LgotICAgIGZvciAoYXV0byogbmFtZUZv
clJlbW92YWwgOiBhbmltc1RvQmVSZW1vdmVkKQotICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9u
cy5yZW1vdmUobmFtZUZvclJlbW92YWwpOworICAgIHN0ZDo6c3dhcChuZXdBbmltYXRpb25zLCBt
X2tleWZyYW1lQW5pbWF0aW9ucyk7CiB9CiAKIGJvb2wgQ29tcG9zaXRlQW5pbWF0aW9uOjphbmlt
YXRlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBS
ZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bGUsIFJlZjxSZW5kZXJTdHlsZT4mIGJsZW5kZWRTdHlsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9u
LmNwcAppbmRleCA3YjdiYTg2MjRhNTE5NWQxYTNjMzVkZWFkYzc0NDkyZTQ4Y2ExY2RhLi4yZWJh
ZjcyMDMxZDlmY2Y0MDIxOWEyZTdhMzg5Y2U4YzRiMmRkMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC00MSwxMSAr
NDEsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1LZXlmcmFtZUFuaW1hdGlvbjo6S2V5
ZnJhbWVBbmltYXRpb24oQW5pbWF0aW9uJiBhbmltYXRpb24sIFJlbmRlckVsZW1lbnQqIHJlbmRl
cmVyLCBpbnQgaW5kZXgsIENvbXBvc2l0ZUFuaW1hdGlvbiogY29tcG9zaXRlQW5pbWF0aW9uLCBS
ZW5kZXJTdHlsZSogdW5hbmltYXRlZFN0eWxlKQorS2V5ZnJhbWVBbmltYXRpb246OktleWZyYW1l
QW5pbWF0aW9uKEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBSZW5kZXJFbGVtZW50KiByZW5kZXJlciwg
Q29tcG9zaXRlQW5pbWF0aW9uKiBjb21wb3NpdGVBbmltYXRpb24sIFJlbmRlclN0eWxlKiB1bmFu
aW1hdGVkU3R5bGUpCiAgICAgOiBBbmltYXRpb25CYXNlKGFuaW1hdGlvbiwgcmVuZGVyZXIsIGNv
bXBvc2l0ZUFuaW1hdGlvbikKICAgICAsIG1fa2V5ZnJhbWVzKGFuaW1hdGlvbi5uYW1lKCkpCiAg
ICAgLCBtX3VuYW5pbWF0ZWRTdHlsZSh1bmFuaW1hdGVkU3R5bGUpCi0gICAgLCBtX2luZGV4KGlu
ZGV4KQogewogICAgIC8vIEdldCB0aGUga2V5ZnJhbWUgUmVuZGVyU3R5bGVzCiAgICAgaWYgKG1f
b2JqZWN0ICYmIG1fb2JqZWN0LT5lbGVtZW50KCkpCkBAIC0xOTAsOSArMTg5LDggQEAgYm9vbCBL
ZXlmcmFtZUFuaW1hdGlvbjo6YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFu
aW1hdGlvbiwgUmVuZGVyRWwKIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRT
dHlsZShSZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQogewotICAgIC8vIElmIHdl
J3JlIGluIHRoZSBkZWxheSBwaGFzZSBhbmQgd2UncmUgbm90IGJhY2t3YXJkcyBmaWxsaW5nLCB0
ZWxsIHRoZSBjYWxsZXIKLSAgICAvLyB0byB1c2UgdGhlIGN1cnJlbnQgc3R5bGUuCi0gICAgaWYg
KHdhaXRpbmdUb1N0YXJ0KCkgJiYgbV9hbmltYXRpb24tPmRlbGF5KCkgPiAwICYmICFtX2FuaW1h
dGlvbi0+ZmlsbHNCYWNrd2FyZHMoKSkKKyAgICAvLyBJZiB3ZSdyZSBkb25lLCBvciBpbiB0aGUg
ZGVsYXkgcGhhc2UgYW5kIHdlJ3JlIG5vdCBiYWNrd2FyZHMgZmlsbGluZywgdGVsbCB0aGUgY2Fs
bGVyIHRvIHVzZSB0aGUgY3VycmVudCBzdHlsZS4KKyAgICBpZiAocG9zdEFjdGl2ZSgpIHx8ICh3
YWl0aW5nVG9TdGFydCgpICYmIG1fYW5pbWF0aW9uLT5kZWxheSgpID4gMCAmJiAhbV9hbmltYXRp
b24tPmZpbGxzQmFja3dhcmRzKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fa2V5
ZnJhbWVzLnNpemUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5oCmluZGV4IDg0OTc3ZDZjZjBhZWI0YTUxNzI3NmI2MTIzM2QxYjU5M2U1
Zjc0ODAuLmMyMWFiNDVkOTBmMTYzZGQ1OTgxZjVmYmE5M2FiYTk4NGY1Mjk4N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaApAQCAt
NDAsOSArNDAsOSBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIC8vIEEgS2V5ZnJhbWVBbmltYXRpb24g
dHJhY2tzIHRoZSBzdGF0ZSBvZiBhbiBleHBsaWNpdCBhbmltYXRpb24gZm9yIGEgc2luZ2xlIFJl
bmRlckVsZW1lbnQuCiBjbGFzcyBLZXlmcmFtZUFuaW1hdGlvbiBmaW5hbCA6IHB1YmxpYyBBbmlt
YXRpb25CYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEtleWZyYW1lQW5pbWF0aW9uPiBj
cmVhdGUoQW5pbWF0aW9uJiBhbmltYXRpb24sIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBpbnQg
aW5kZXgsIENvbXBvc2l0ZUFuaW1hdGlvbiogY29tcG9zaXRlQW5pbWF0aW9uLCBSZW5kZXJTdHls
ZSogdW5hbmltYXRlZFN0eWxlKQorICAgIHN0YXRpYyBSZWY8S2V5ZnJhbWVBbmltYXRpb24+IGNy
ZWF0ZShBbmltYXRpb24mIGFuaW1hdGlvbiwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIENvbXBv
c2l0ZUFuaW1hdGlvbiogY29tcG9zaXRlQW5pbWF0aW9uLCBSZW5kZXJTdHlsZSogdW5hbmltYXRl
ZFN0eWxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgS2V5ZnJhbWVBbmlt
YXRpb24oYW5pbWF0aW9uLCByZW5kZXJlciwgaW5kZXgsIGNvbXBvc2l0ZUFuaW1hdGlvbiwgdW5h
bmltYXRlZFN0eWxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEtleWZyYW1lQW5p
bWF0aW9uKGFuaW1hdGlvbiwgcmVuZGVyZXIsIGNvbXBvc2l0ZUFuaW1hdGlvbiwgdW5hbmltYXRl
ZFN0eWxlKSk7CiAgICAgfQogCiAgICAgYm9vbCBhbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbios
IFJlbmRlckVsZW1lbnQqLCBjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJT
dHlsZSogdGFyZ2V0U3R5bGUsIFJlZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpIG92
ZXJyaWRlOwpAQCAtNTMsOCArNTMsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgS2V5ZnJhbWVMaXN0
JiBrZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lczsgfQogCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9rZXlmcmFtZXMuYW5pbWF0aW9u
TmFtZSgpOyB9Ci0gICAgaW50IGluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQotICAg
IHZvaWQgc2V0SW5kZXgoaW50IGkpIHsgbV9pbmRleCA9IGk7IH0KIAogICAgIGJvb2wgaGFzQW5p
bWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAgICAgCkBAIC05MCw3ICs4
OCw3IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIEtleWZyYW1lQW5pbWF0
aW9uKEFuaW1hdGlvbiYsIFJlbmRlckVsZW1lbnQqLCBpbnQgaW5kZXgsIENvbXBvc2l0ZUFuaW1h
dGlvbiosIFJlbmRlclN0eWxlKiB1bmFuaW1hdGVkU3R5bGUpOworICAgIEtleWZyYW1lQW5pbWF0
aW9uKEFuaW1hdGlvbiYsIFJlbmRlckVsZW1lbnQqLCBDb21wb3NpdGVBbmltYXRpb24qLCBSZW5k
ZXJTdHlsZSogdW5hbmltYXRlZFN0eWxlKTsKICAgICB2aXJ0dWFsIH5LZXlmcmFtZUFuaW1hdGlv
bigpOwogICAgIAogICAgIC8vIEdldCB0aGUgc3R5bGVzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkg
c3Vycm91bmRpbmcgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHRpbWUgYW5kIHRoZSBwcm9ncmVzcyBi
ZXR3ZWVuIHRoZW0uCkBAIC05OSw3ICs5Nyw2IEBAIHByaXZhdGU6CiAgICAgS2V5ZnJhbWVMaXN0
IG1fa2V5ZnJhbWVzOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV91bmFuaW1hdGVkU3R5bGU7
IC8vIFRoZSBzdHlsZSBqdXN0IGJlZm9yZSB3ZSBzdGFydGVkIGFuaW1hdGlvbgogCi0gICAgaW50
IG1faW5kZXg7IC8vIFRoZSBvcmRlciBpbiB3aGljaCB0aGlzIGFuaW1hdGlvbiBhcHBlYXJzIGlu
IHRoZSBhbmltYXRpb24tbmFtZSBzdHlsZS4KICAgICBib29sIG1fc3RhcnRFdmVudERpc3BhdGNo
ZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlOTA2MGQyMzljZDFjZDQwMmIzMDU1ODYzYTVl
N2ZlNWRkYjJmZGQuLjc5MGYzN2RiNTI2NDZhMzg5NTlhOTM3OWRkMmM0NmJmOGI2ZGVlYzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsNSArMSwyMiBAQAogMjAxNi0wNC0yNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBUb2dnbGluZyBhbmltYXRpb24tcGxheS1zdGF0ZSBj
YW4gcmUtc3RhcnQgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjczMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbDogVGhpcyBpcyBhIHByb2dyZXNzaW9uLiBUaGUg
dGVzdCB3YXMgZGV0ZWN0aW5nIGEKKyAgICAgICAgcmVzdGFydGVkIGFuaW1hdGlvbi4KKyAgICAg
ICAgKiBhbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10
cmFuc2Zvcm0tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9jaGFu
Z2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0uaHRtbDogQWRkZWQuIFJlZiB0ZXN0IHRo
YXQgZW5zdXJlcyB0aGF0IHRoZSBmaW5hbAorICAgICAgICBzdGF0ZSBmb3Igbm9ybWFsIGFuZCBh
Y2NlbGVyYXRlZCBhbmltYXRpb25zIGlzIGNvcnJlY3QuCisgICAgICAgICogYW5pbWF0aW9ucy9j
aGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4gVGVzdHMgdGhhdCBjaGFuZ2lu
ZyBhIHByb3BlcnR5IGRvZXNuJ3QgdHJpZ2dlcgorICAgICAgICBhbm90aGVyIGFuaW1hdGlvbiwg
YnkgZGV0ZWN0aW5nIGEgc2Vjb25kIGFuaW1hdGlvbnN0YXJ0IGV2ZW50LgorCisyMDE2LTA0LTI0
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIHBsYXkt
c3RhdGUgbm90IHBhcnNlZCBhcyBwYXJ0IG9mIGFuaW1hdGlvbiBzaG9ydGhhbmQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk1OQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
cmV2ZXJzZS1leHBlY3RlZC50eHQKaW5kZXggODM2ODFkMDUxMDBiZTNhN2UzNTBlNDI0NWRjMDg1
ODE5Zjk5MjFhMS4uYmYyOTY5NzlkZmMyMDVkMjhlZWU3YjZiODA4MTA3M2E1OTQzYTY2NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1yZXZlcnNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIFBBU1MgLSAid2Vi
a2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBzb21l
dGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTUwLDAKIFBBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBw
cm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAx
LDAsMCwxLDEwMCwwCi1QQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gi
IGVsZW1lbnQgYXQgMi41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDIwMCwwCitQ
QVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMi41
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBub25lCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS5odG1sCmluZGV4IGU3NTVk
ODEyODM4ODE2ODFhYTI5YWFiZTQ4MzBjYWE4MzNkMDljMTYuLjdlYTNmZjJmZTA2ZGQ2N2NlMTFk
OTMyOTJiN2E0YzNkMzcyYjBiOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbApAQCAtMzQsNyArMzQsNyBAQAog
ICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhw
ZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KICAgICAgIFsibW92ZTEiLCAwLjUsICJib3giLCAid2Vi
a2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE1MCwwXSwgMjBdLAogICAgICAgWyJtb3ZlMSIsIDEu
MCwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwxMDAsMF0sIDIwXSwKLSAgICAg
IFsibW92ZTEiLCAyLjUsICJib3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDIwMCww
XSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuNSwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCAn
bm9uZScsIDIwXSwKICAgICBdOwogCiAgICAgZnVuY3Rpb24gcGF1c2VBbmltYXRpb24oKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQt
YW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTZkYzQ2YmY2NGIxMmFlMmU3ODRh
MDgwYzUwYmVjNmNjMTQzNWI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorUEFTUzogYW5pbWF0aW9uIGRpZCBub3QgcmVzdGFydCBhZnRlciBjaGFuZ2luZyBhbmltYXRp
b24tZHVyYXRpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1j
b21wbGV0ZWQtYW5pbWF0aW9uLXRyYW5zZm9ybS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0tZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMGI0NTI1ODZkMDdiZmFkMzljZWE1YjkyMDQ3ZjJjNDg3MWMwOGRi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxl
dGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDog
NTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDRweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkIGJsYWNrOworICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9z
aXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgaWQ9ImJveCIgY2xhc3M9Im1vdmVyIGJveCI+PC9kaXY+
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBp
ZD0iYm94IiBjbGFzcz0ic2xpZGVyIGJveCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21wbGV0
ZWQtYW5pbWF0aW9uLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFu
Z2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODQwNWZl
NGUzYWNkOTI3YzRjMTFjZmUwNGYwMzI5ZGRmMDgxZDE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0u
aHRtbApAQCAtMCwwICsxLDc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDRweDsK
KyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB9CisgICAgICAg
IC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAubW92ZXIg
eworICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDAuMjVzIGxpbmVhcjsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgYm9keS5jaGFuZ2VkIC5tb3ZlciB7CisgICAgICAgICAgICBhbmlt
YXRpb24tZHVyYXRpb246IDAuMnM7CisgICAgICAgIH0KKworICAgICAgICAuc2xpZGVyIHsKKyAg
ICAgICAgICAgIGFuaW1hdGlvbjogc2xpZGUgMC4yNXMgbGluZWFyOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBib2R5LmNoYW5nZWQgLnNsaWRlciB7CisgICAgICAgICAgICBhbmltYXRp
b24tZHVyYXRpb246IDAuMnM7CisgICAgICAgIH0KKworICAgICAgICBAa2V5ZnJhbWVzIG1vdmUg
eworICAgICAgICAgICAgZnJvbSB7IGxlZnQ6IDEwMHB4OyB9CisgICAgICAgICAgICB0byAgIHsg
bGVmdDogNDAwcHg7IH0KKyAgICAgICAgfQorCisgICAgICAgIEBrZXlmcmFtZXMgc2xpZGUgewor
ICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7IH0KKyAgICAg
ICAgICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9CisgICAgICAgIH0K
KyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGZ1
bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBib3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYm94MScpOworICAgICAgICAgICAgYm94LmFkZEV2ZW50TGlzdGVu
ZXIoJ2FuaW1hdGlvbmVuZCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHdpbmRvdy5z
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmNsYXNzTGlzdC5hZGQoJ2NoYW5nZWQnKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0sIDEwKTsKKyAgICAgICAgICAgICAgICB9
LCAwKTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Ym94LmNsYXNzTGlzdC5hZGQoJ21vdmVyJyk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYm94MicpLmNsYXNzTGlzdC5hZGQoJ3NsaWRlcicpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFs
c2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+PC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBpZD0iYm94
MiIgY2xhc3M9ImJveCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzNhZDkyYWM0NjQ0MzQ4NDNiZGYyNmNmNTc5MWIwMjI1ODEwZWY2
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY2hhbmdlLWNvbXBs
ZXRlZC1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAg
ICBtYXJnaW46IDRweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAg
ICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAubW92ZXIgeworICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDAuMjVzIGxpbmVh
cjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm1vdmVyLmNoYW5nZWQgeworICAgICAg
ICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBAa2V5ZnJhbWVzIG1vdmUgeworICAgICAgICAgICAgZnJvbSB7IGxlZnQ6IDEwMHB4OyB9
CisgICAgICAgICAgICB0byAgIHsgbGVmdDogNDAwcHg7IH0KKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkK
KyAgICAgICAgeworICAgICAgICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdib3gnKTsKKyAgICAgICAgICAgIGJveC5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQn
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgYm94LmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlv
bnN0YXJ0JywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLnRleHRDb250ZW50ID0gIkZBSUw6IGFuaW1hdGlvbiBy
ZXN0YXJ0ZWQgYWZ0ZXIgY2hhbmdpbmcgYW5pbWF0aW9uLWR1cmF0aW9uIgorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9LCBm
YWxzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIHN1Y2Nlc3MgY2FzZSwgd2Fp
dCBhIGJpdCB0byBtYWtlIHN1cmUgbm8gYW5pbWF0aW9uc3RhcnQgZXZlbnQgY29tZXMgaW4uCisg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICB9LCA1MCk7CisKKyAgICAgICAgICAgICAgICAgICAgYm94LmNsYXNzTGlzdC5hZGQoJ2NoYW5n
ZWQnKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgYm94LmNsYXNzTGlzdC5hZGQoJ21vdmVyJyk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
ZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGlkPSJib3giIGNsYXNzPSJib3giPjwv
ZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgICAgICBQQVNTOiBh
bmltYXRpb24gZGlkIG5vdCByZXN0YXJ0IGFmdGVyIGNoYW5naW5nIGFuaW1hdGlvbi1kdXJhdGlv
bi4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277273</attachid>
            <date>2016-04-25 13:36:31 -0700</date>
            <delta_ts>2016-04-25 13:47:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156731-20160425133659.patch</filename>
            <type>text/plain</type>
            <size>24720</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRhNjRmMjA0MzA1M2Vi
YWIxYmY5NjllOGVkYjZmYzFhZTQ2MTc1My4uZmEyOWE1MzdjNTI0YzBhNmI0YzQyMjM1ZjNmNjRm
ZTcxNDZmZmIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE2LTA0LTI1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFRvZ2dsaW5nIGFu
aW1hdGlvbi1wbGF5LXN0YXRlIGNhbiByZS1zdGFydCBhIGZpbmlzaGVkIGFuaW1hdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgYW4gYW5p
bWF0aW9uIGNvbXBsZXRlZCwgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1h
dGlvbnMoKSBjbGVhcmVkCisgICAgICAgIGFsbCBzdGF0ZSB0aGF0IHRoZSBhbmltYXRpb24gaGFk
IHJ1biBvbiB0aGUgZWxlbWVudCwgc28gY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHNvbWUKKyAgICAg
ICAgYW5pbWF0aW9uIHByb3BlcnR5IHRyaWdnZXJlZCB0aGUgYW5pbWF0aW9uIHRvIHJ1biBhZ2Fp
bi4gVGhpcyBpcyB3cm9uZywgc2luY2UgYW5pbWF0aW9uLW5hbWUKKyAgICAgICAgc3RpbGwgYXBw
bGllZCB0byB0aGUgZWxlbWVudC4KKworICAgICAgICBGaXggYnkga2VlcGluZyBzdGF0ZSBmb3Ig
a2V5ZnJhbWUgYW5pbWF0aW9ucyBpbiB0aGUgRG9uZSBzdGF0ZSBpbiB0aGUgbV9rZXlmcmFtZUFu
aW1hdGlvbnMKKyAgICAgICAgbWFwLiBUaGlzIGFsbG93cyBmb3IgdGhlIHJlbW92YWwgb2YgdGhl
IAorCisgICAgICAgIFRlc3RzOiBhbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9u
LXRyYW5zZm9ybS5odG1sCisgICAgICAgICAgICAgICBhbmltYXRpb25zL2NoYW5nZS1jb21wbGV0
ZWQtYW5pbWF0aW9uLmh0bWwKKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZp
Y2UpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmlzQW5pbWF0aW5nUHJvcGVydHkpOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyk6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVBbmltYXRpb246OktleWZyYW1lQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lQW5pbWF0aW9uOjpnZXRBbmltYXRlZFN0eWxlKToKKyAgICAgICAgKiBwYWdl
L2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOgorCisyMDE2LTA0LTI1ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIHBsYXktc3RhdGUgbm90IHBh
cnNlZCBhcyBwYXJ0IG9mIGFuaW1hdGlvbiBzaG9ydGhhbmQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk1OQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IDI0NDgyODM4N2RjNTYzYzU4
MDJmNDhlYjA5MzFmYTMyNDkwM2EzNTkuLmFjZGU2YmIwYWUyYmUzNDBhY2ZlNDBhNjY3MDQ2YTlm
NTBiM2IxZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuY3BwCkBAIC01NjAsNyArNTYwLDcgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRpbWVU
b05leHRTZXJ2aWNlKCkKIHsKICAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIGF0IHdoaWNoIG5leHQg
c2VydmljZSBpcyByZXF1aXJlZC4gLTEgbWVhbnMgbm8gc2VydmljZSBpcyByZXF1aXJlZC4gMCBt
ZWFucyAKICAgICAvLyBzZXJ2aWNlIGlzIHJlcXVpcmVkIG5vdywgYW5kID4gMCBtZWFucyBzZXJ2
aWNlIGlzIHJlcXVpcmVkIHRoYXQgbWFueSBzZWNvbmRzIGluIHRoZSBmdXR1cmUuCi0gICAgaWYg
KHBhdXNlZCgpIHx8IGlzTmV3KCkgfHwgbV9hbmltYXRpb25TdGF0ZSA9PSBBbmltYXRpb25TdGF0
ZTo6RmlsbGluZ0ZvcndhcmRzKQorICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygpIHx8IHBvc3RB
Y3RpdmUoKSB8fCBmaWxsaW5nRm9yd2FyZHMoKSkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIAog
ICAgIGlmIChtX2FuaW1hdGlvblN0YXRlID09IEFuaW1hdGlvblN0YXRlOjpTdGFydFdhaXRUaW1l
cikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmlu
ZGV4IDQ1ZTM0MGIzMjZlM2MyY2YyMjZjOGRkOTgwMTU3ZTBmNTNhZTRiOWEuLjQ1ZjlkNWZmMzgy
MTgyNzc1OGFhY2Q4NGFjNWQwMzViYWM5Y2FmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmICgocnVubmluZ1N0YXRlICYgUGF1c2VkKSAmJiBpblBhdXNlZFN0YXRlKCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBpZiAoKHJ1bm5pbmdTdGF0ZSAmIFJ1
bm5pbmcpICYmICFpblBhdXNlZFN0YXRlKCkgJiYgKG1fYW5pbWF0aW9uU3RhdGUgPj0gQW5pbWF0
aW9uU3RhdGU6OlN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlICYmIG1fYW5pbWF0aW9uU3RhdGUgPD0g
QW5pbWF0aW9uU3RhdGU6OkRvbmUpKQorICAgICAgICBpZiAoKHJ1bm5pbmdTdGF0ZSAmIFJ1bm5p
bmcpICYmICFpblBhdXNlZFN0YXRlKCkgJiYgKG1fYW5pbWF0aW9uU3RhdGUgPj0gQW5pbWF0aW9u
U3RhdGU6OlN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlICYmIG1fYW5pbWF0aW9uU3RhdGUgPCBBbmlt
YXRpb25TdGF0ZTo6RG9uZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29t
cG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA1MzhlNTRmYTJiYTUyNzNmMjY2NGRlZjNiN2I3NjFk
YzJiNmUzMzM3Li40NzUxZDM3OTYyMGU1NjU0ODc3ZTljZmI2NTExOTczYjFkODc4YTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKQEAgLTIwMyw5OSArMjAzLDg1IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRh
dGVLZXlmcmFtZUFuaW1hdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFJlbmRlCiAKICAg
ICBtX2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgCi0gICAgaWYg
KGN1cnJlbnRTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmhhc0FuaW1hdGlvbnMoKSAmJiB0YXJnZXRT
dHlsZS0+aGFzQW5pbWF0aW9ucygpICYmICooY3VycmVudFN0eWxlLT5hbmltYXRpb25zKCkpID09
ICoodGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKSkpIHsKLSAgICAgICAgLy8gVGhlIGN1cnJlbnQg
YW5kIHRhcmdldCBhbmltYXRpb25zIGFyZSB0aGUgc2FtZSBzbyB3ZSBqdXN0IG5lZWQgdG8gdG9z
cyBhbnkgCi0gICAgICAgIC8vIGFuaW1hdGlvbiB3aGljaCBpcyBmaW5pc2hlZCAocG9zdEFjdGl2
ZSkuCi0gICAgICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogbV9rZXlmcmFtZUFuaW1hdGlvbnMu
dmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChhbmltYXRpb24tPnBvc3RBY3RpdmUoKSkKLSAg
ICAgICAgICAgICAgICBhbmltYXRpb24tPnNldEluZGV4KC0xKTsKLSAgICAgICAgfQotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8vIE1hcmsgYWxsIGV4aXN0aW5nIGFuaW1hdGlvbnMgYXMgbm8gbG9u
Z2VyIGFjdGl2ZS4KLSAgICAgICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBtX2tleWZyYW1lQW5p
bWF0aW9ucy52YWx1ZXMoKSkKLSAgICAgICAgICAgIGFuaW1hdGlvbi0+c2V0SW5kZXgoLTEpOwor
ICAgIGlmIChjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5oYXNBbmltYXRpb25zKCkgJiYg
dGFyZ2V0U3R5bGUtPmhhc0FuaW1hdGlvbnMoKSAmJiAqKGN1cnJlbnRTdHlsZS0+YW5pbWF0aW9u
cygpKSA9PSAqKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpKQorICAgICAgICByZXR1cm47CiAK
ICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKLSAgICAgICAgbV9oYXNTY3JvbGxU
cmlnZ2VyZWRBbmltYXRpb24gPSBmYWxzZTsKKyAgICBtX2hhc1Njcm9sbFRyaWdnZXJlZEFuaW1h
dGlvbiA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICAgICAgLy8gVG9zcyB0aGUgYW5pbWF0aW9uIG9y
ZGVyIG1hcC4KLSAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNsZWFyKCk7Cisg
ICAgQW5pbWF0aW9uTmFtZU1hcCBuZXdBbmltYXRpb25zOwogCi0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE5vdyBtYXJrIGFu
eSBzdGlsbCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1h
dGlvbnMuCi0gICAgICAgIGlmICh0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSB7Ci0gICAgICAg
ICAgICBpbnQgbnVtQW5pbXMgPSB0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7Ci0g
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUFuaW1zOyArK2kpIHsKLSAgICAgICAg
ICAgICAgICBBbmltYXRpb24mIGFuaW1hdGlvbiA9IHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkt
PmFuaW1hdGlvbihpKTsKLSAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgYW5pbWF0aW9uTmFt
ZShhbmltYXRpb24ubmFtZSgpKTsKLQotICAgICAgICAgICAgICAgIGlmICghYW5pbWF0aW9uLmlz
VmFsaWRBbmltYXRpb24oKSkKKyAgICAvLyBUb3NzIHRoZSBhbmltYXRpb24gb3JkZXIgbWFwLgor
ICAgIG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5jbGVhcigpOworCisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbm9uZSgibm9uZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIAorICAgIC8vIE5vdyBtYXJrIGFueSBzdGls
bCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1hdGlvbnMu
CisgICAgaWYgKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpIHsKKyAgICAgICAgaW50IG51bUFu
aW1zID0gdGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOworICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bUFuaW1zOyArK2kpIHsKKyAgICAgICAgICAgIEFuaW1hdGlvbiYgYW5p
bWF0aW9uID0gdGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpOworICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIGFuaW1hdGlvbk5hbWUoYW5pbWF0aW9uLm5hbWUoKSk7CisKKyAg
ICAgICAgICAgIGlmICghYW5pbWF0aW9uLmlzVmFsaWRBbmltYXRpb24oKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJl
IGlzIGEgY3VycmVudCBhbmltYXRpb24gZm9yIHRoaXMgbmFtZS4KKyAgICAgICAgICAgIFJlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMu
Z2V0KGFuaW1hdGlvbk5hbWUuaW1wbCgpKTsKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZUFuaW0p
IHsKKyAgICAgICAgICAgICAgICBuZXdBbmltYXRpb25zLmFkZChrZXlmcmFtZUFuaW0tPm5hbWUo
KS5pbXBsKCksIGtleWZyYW1lQW5pbSk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVB
bmltLT5wb3N0QWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQg
YW5pbWF0aW9uIGZvciB0aGlzIG5hbWUuCi0gICAgICAgICAgICAgICAgUmVmUHRyPEtleWZyYW1l
QW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5nZXQoYW5pbWF0
aW9uTmFtZS5pbXBsKCkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChr
ZXlmcmFtZUFuaW0pIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBhbmltYXRpb24g
aXMgcG9zdEFjdGl2ZSwgc2tpcCBpdCBzbyBpdCBnZXRzIHJlbW92ZWQgYXQgdGhlIGVuZCBvZiB0
aGlzIGZ1bmN0aW9uLgotICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5wb3N0
QWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogI2lmIEVOQUJM
RShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQotICAgICAgICAgICAgICAgICAgICBpZiAoYW5pbWF0
aW9uLnRyaWdnZXIoKS0+aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2hhc1Njcm9sbFRyaWdnZXJlZEFuaW1hdGlvbiA9IHRydWU7CisgICAgICAg
ICAgICAgICAgaWYgKGFuaW1hdGlvbi50cmlnZ2VyKCktPmlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dl
cigpKQorICAgICAgICAgICAgICAgICAgICBtX2hhc1Njcm9sbFRyaWdnZXJlZEFuaW1hdGlvbiA9
IHRydWU7CiAjZW5kaWYKIAotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG9uZSBpcyBzdGls
bCBhY3RpdmUuCi0KLSAgICAgICAgICAgICAgICAgICAgLy8gQW5pbWF0aW9ucyBtYXRjaCwgYnV0
IHBsYXkgc3RhdGVzIG1heSBkaWZmZXIuIFVwZGF0ZSBpZiBuZWVkZWQuCi0gICAgICAgICAgICAg
ICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKGFuaW1hdGlvbi5wbGF5U3RhdGUo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAvLyBTZXQgdGhlIHNhdmVkIGFuaW1hdGlvbiB0byB0aGlzIG5ldyBvbmUsIGp1c3QgaW4gY2Fz
ZSB0aGUgcGxheSBzdGF0ZSBoYXMgY2hhbmdlZC4KLSAgICAgICAgICAgICAgICAgICAga2V5ZnJh
bWVBbmltLT5zZXRBbmltYXRpb24oYW5pbWF0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAga2V5
ZnJhbWVBbmltLT5zZXRJbmRleChpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChhbmlt
YXRpb24uZHVyYXRpb24oKSB8fCBhbmltYXRpb24uZGVsYXkoKSkgJiYgYW5pbWF0aW9uLml0ZXJh
dGlvbkNvdW50KCkgJiYgYW5pbWF0aW9uTmFtZSAhPSBub25lKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGtleWZyYW1lQW5pbSA9IEtleWZyYW1lQW5pbWF0aW9uOjpjcmVhdGUoYW5pbWF0aW9uLCBy
ZW5kZXJlciwgaSwgdGhpcywgdGFyZ2V0U3R5bGUpOwotICAgICAgICAgICAgICAgICAgICBMT0co
QW5pbWF0aW9ucywgIkNyZWF0aW5nIEtleWZyYW1lQW5pbWF0aW9uICVwIG9uIHJlbmRlcmVyICVw
IHdpdGgga2V5ZnJhbWVzICVzLCBkdXJhdGlvbiAlLjJmLCBkZWxheSAlLjJmLCBpdGVyYXRpb25z
ICUuMmYiLCBrZXlmcmFtZUFuaW0uZ2V0KCksIHJlbmRlcmVyLCBhbmltYXRpb24ubmFtZSgpLnV0
ZjgoKS5kYXRhKCksIGFuaW1hdGlvbi5kdXJhdGlvbigpLCBhbmltYXRpb24uZGVsYXkoKSwgYW5p
bWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAobV9zdXNw
ZW5kZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxh
eVN0YXRlKEFuaW1QbGF5U3RhdGVQYXVzZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgTE9H
KEFuaW1hdGlvbnMsICIgIChjcmVhdGVkIGluIHN1c3BlbmRlZC9wYXVzZWQgc3RhdGUpIik7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBBbmltYXRpb25zIG1hdGNo
LCBidXQgcGxheSBzdGF0ZXMgbWF5IGRpZmZlci4gVXBkYXRlIGlmIG5lZWRlZC4KKyAgICAgICAg
ICAgICAgICBrZXlmcmFtZUFuaW0tPnVwZGF0ZVBsYXlTdGF0ZShhbmltYXRpb24ucGxheVN0YXRl
KCkpOworCisgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBzYXZlZCBhbmltYXRpb24gdG8gdGhp
cyBuZXcgb25lLCBqdXN0IGluIGNhc2UgdGhlIHBsYXkgc3RhdGUgaGFzIGNoYW5nZWQuCisgICAg
ICAgICAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoKGFuaW1hdGlvbi5kdXJhdGlvbigpIHx8IGFuaW1hdGlvbi5kZWxh
eSgpKSAmJiBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQoKSAmJiBhbmltYXRpb25OYW1lICE9IG5v
bmUpIHsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUFuaW0gPSBLZXlmcmFtZUFuaW1hdGlvbjo6
Y3JlYXRlKGFuaW1hdGlvbiwgcmVuZGVyZXIsIHRoaXMsIHRhcmdldFN0eWxlKTsKKyAgICAgICAg
ICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0aW5nIEtleWZyYW1lQW5pbWF0aW9uICVwIG9u
IHJlbmRlcmVyICVwIHdpdGgga2V5ZnJhbWVzICVzLCBkdXJhdGlvbiAlLjJmLCBkZWxheSAlLjJm
LCBpdGVyYXRpb25zICUuMmYiLCBrZXlmcmFtZUFuaW0uZ2V0KCksIHJlbmRlcmVyLCBhbmltYXRp
b24ubmFtZSgpLnV0ZjgoKS5kYXRhKCksIGFuaW1hdGlvbi5kdXJhdGlvbigpLCBhbmltYXRpb24u
ZGVsYXkoKSwgYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOworCisgICAgICAgICAgICAgICAg
aWYgKG1fc3VzcGVuZGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+dXBk
YXRlUGxheVN0YXRlKEFuaW1QbGF5U3RhdGVQYXVzZWQpOworICAgICAgICAgICAgICAgICAgICBM
T0coQW5pbWF0aW9ucywgIiAgKGNyZWF0ZWQgaW4gc3VzcGVuZGVkL3BhdXNlZCBzdGF0ZSkiKTsK
KyAgICAgICAgICAgICAgICB9CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8gcHJvcGVydHlJRCA6IGtleWZyYW1lQW5pbS0+a2V5ZnJhbWVzKCkucHJvcGVy
dGllcygpKQotICAgICAgICAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICIgIHByb3Bl
cnR5ICVzIiwgZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5SUQpKTsKKyAgICAgICAgICAgICAgICBm
b3IgKGF1dG8gcHJvcGVydHlJRCA6IGtleWZyYW1lQW5pbS0+a2V5ZnJhbWVzKCkucHJvcGVydGll
cygpKQorICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIiAgcHJvcGVydHkgJXMi
LCBnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHlJRCkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NT
X0FOSU1BVElPTlNfTEVWRUxfMikKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi50
cmlnZ2VyKCktPmlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcigpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgbV9oYXNTY3JvbGxUcmlnZ2VyZWRBbmltYXRpb24gPSB0cnVlOworICAgICAgICAgICAg
ICAgIGlmIChhbmltYXRpb24udHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdnZXIoKSkK
KyAgICAgICAgICAgICAgICAgICAgbV9oYXNTY3JvbGxUcmlnZ2VyZWRBbmltYXRpb24gPSB0cnVl
OwogI2VuZGlmCiAKLSAgICAgICAgICAgICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuc2V0
KGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSwga2V5ZnJhbWVBbmltKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gQWRkIHRoaXMgdG8g
dGhlIGFuaW1hdGlvbiBvcmRlciBtYXAuCi0gICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lQW5p
bSkKLSAgICAgICAgICAgICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmFwcGVu
ZChrZXlmcmFtZUFuaW0tPm5hbWUoKS5pbXBsKCkpOworICAgICAgICAgICAgICAgIG5ld0FuaW1h
dGlvbnMuc2V0KGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSwga2V5ZnJhbWVBbmltKTsKICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQWRkIHRoaXMgdG8gdGhl
IGFuaW1hdGlvbiBvcmRlciBtYXAuCisgICAgICAgICAgICBpZiAoa2V5ZnJhbWVBbmltKQorICAg
ICAgICAgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5hcHBlbmQoa2V5ZnJhbWVB
bmltLT5uYW1lKCkuaW1wbCgpKTsKICAgICAgICAgfQogICAgIH0KICAgICAKICAgICAvLyBNYWtl
IGEgbGlzdCBvZiBhbmltYXRpb25zIHRvIGJlIHJlbW92ZWQuCi0gICAgVmVjdG9yPEF0b21pY1N0
cmluZ0ltcGwqPiBhbmltc1RvQmVSZW1vdmVkOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDog
bV9rZXlmcmFtZUFuaW1hdGlvbnMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKGFuaW1hdGlvbi0+
aW5kZXgoKSA8IDApIHsKLSAgICAgICAgICAgIGFuaW1zVG9CZVJlbW92ZWQuYXBwZW5kKGFuaW1h
dGlvbi0+bmFtZSgpLmltcGwoKSk7CisgICAgICAgIGlmICghbmV3QW5pbWF0aW9ucy5jb250YWlu
cyhhbmltYXRpb24tPm5hbWUoKS5pbXBsKCkpKSB7CiAgICAgICAgICAgICBhbmltYXRpb25Db250
cm9sbGVyKCkuYW5pbWF0aW9uV2lsbEJlUmVtb3ZlZChhbmltYXRpb24uZ2V0KCkpOwogICAgICAg
ICAgICAgYW5pbWF0aW9uLT5jbGVhcigpOwogICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJS
ZW1vdmluZyBLZXlmcmFtZUFuaW1hdGlvbiAlcCBmcm9tIHJlbmRlcmVyICVwIiwgYW5pbWF0aW9u
LmdldCgpLCByZW5kZXJlcik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgLy8gTm93IHJl
bW92ZSB0aGUgYW5pbWF0aW9ucyBmcm9tIHRoZSBsaXN0LgotICAgIGZvciAoYXV0byogbmFtZUZv
clJlbW92YWwgOiBhbmltc1RvQmVSZW1vdmVkKQotICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9u
cy5yZW1vdmUobmFtZUZvclJlbW92YWwpOworICAgIHN0ZDo6c3dhcChuZXdBbmltYXRpb25zLCBt
X2tleWZyYW1lQW5pbWF0aW9ucyk7CiB9CiAKIGJvb2wgQ29tcG9zaXRlQW5pbWF0aW9uOjphbmlt
YXRlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBS
ZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bGUsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4mIGJs
ZW5kZWRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tl
eWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZy
YW1lQW5pbWF0aW9uLmNwcAppbmRleCA1MDZkZDFmMTI3NjY4YzNmN2QyZTVmZTA2ZDcwMWZmNWI3
ZTQ1ZjBjLi5mZTk0NjE3YmE0NGE3YWNhN2E1ZTU2ZDFlNzEwOTk5MzhjNTUyMDYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3Bw
CkBAIC00MSwxMSArNDEsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1LZXlmcmFtZUFu
aW1hdGlvbjo6S2V5ZnJhbWVBbmltYXRpb24oQW5pbWF0aW9uJiBhbmltYXRpb24sIFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyLCBpbnQgaW5kZXgsIENvbXBvc2l0ZUFuaW1hdGlvbiogY29tcG9zaXRl
QW5pbWF0aW9uLCBSZW5kZXJTdHlsZSogdW5hbmltYXRlZFN0eWxlKQorS2V5ZnJhbWVBbmltYXRp
b246OktleWZyYW1lQW5pbWF0aW9uKEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBSZW5kZXJFbGVtZW50
KiByZW5kZXJlciwgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wb3NpdGVBbmltYXRpb24sIFJlbmRl
clN0eWxlKiB1bmFuaW1hdGVkU3R5bGUpCiAgICAgOiBBbmltYXRpb25CYXNlKGFuaW1hdGlvbiwg
cmVuZGVyZXIsIGNvbXBvc2l0ZUFuaW1hdGlvbikKICAgICAsIG1fa2V5ZnJhbWVzKGFuaW1hdGlv
bi5uYW1lKCkpCiAgICAgLCBtX3VuYW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIo
KnVuYW5pbWF0ZWRTdHlsZSkpCi0gICAgLCBtX2luZGV4KGluZGV4KQogewogICAgIC8vIEdldCB0
aGUga2V5ZnJhbWUgUmVuZGVyU3R5bGVzCiAgICAgaWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5l
bGVtZW50KCkpCkBAIC0xOTAsOSArMTg5LDggQEAgYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6YW5p
bWF0ZShDb21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFuaW1hdGlvbiwgUmVuZGVyRWwKIAog
dm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZShzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQogewotICAgIC8vIElmIHdlJ3JlIGluIHRoZSBk
ZWxheSBwaGFzZSBhbmQgd2UncmUgbm90IGJhY2t3YXJkcyBmaWxsaW5nLCB0ZWxsIHRoZSBjYWxs
ZXIKLSAgICAvLyB0byB1c2UgdGhlIGN1cnJlbnQgc3R5bGUuCi0gICAgaWYgKHdhaXRpbmdUb1N0
YXJ0KCkgJiYgbV9hbmltYXRpb24tPmRlbGF5KCkgPiAwICYmICFtX2FuaW1hdGlvbi0+ZmlsbHNC
YWNrd2FyZHMoKSkKKyAgICAvLyBJZiB3ZSdyZSBkb25lLCBvciBpbiB0aGUgZGVsYXkgcGhhc2Ug
YW5kIHdlJ3JlIG5vdCBiYWNrd2FyZHMgZmlsbGluZywgdGVsbCB0aGUgY2FsbGVyIHRvIHVzZSB0
aGUgY3VycmVudCBzdHlsZS4KKyAgICBpZiAocG9zdEFjdGl2ZSgpIHx8ICh3YWl0aW5nVG9TdGFy
dCgpICYmIG1fYW5pbWF0aW9uLT5kZWxheSgpID4gMCAmJiAhbV9hbmltYXRpb24tPmZpbGxzQmFj
a3dhcmRzKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fa2V5ZnJhbWVzLnNpemUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5p
bWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlv
bi5oCmluZGV4IDJhMzIzZDdkNzU5MDllNDQ5NjZlYjczM2ZkMjZlMjcyMTAxNDQ5ZWUuLjc0ZGQ5
Zjc4MTgwNDQ5NDQ3ODY3ZGJiM2I1MDgxOWJiNzA2MTRlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaApAQCAtNDAsOSArNDAsOSBA
QCBjbGFzcyBSZW5kZXJTdHlsZTsKIC8vIEEgS2V5ZnJhbWVBbmltYXRpb24gdHJhY2tzIHRoZSBz
dGF0ZSBvZiBhbiBleHBsaWNpdCBhbmltYXRpb24gZm9yIGEgc2luZ2xlIFJlbmRlckVsZW1lbnQu
CiBjbGFzcyBLZXlmcmFtZUFuaW1hdGlvbiBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25CYXNlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEtleWZyYW1lQW5pbWF0aW9uPiBjcmVhdGUoQW5pbWF0
aW9uJiBhbmltYXRpb24sIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBpbnQgaW5kZXgsIENvbXBv
c2l0ZUFuaW1hdGlvbiogY29tcG9zaXRlQW5pbWF0aW9uLCBSZW5kZXJTdHlsZSogdW5hbmltYXRl
ZFN0eWxlKQorICAgIHN0YXRpYyBSZWY8S2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZShBbmltYXRp
b24mIGFuaW1hdGlvbiwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIENvbXBvc2l0ZUFuaW1hdGlv
biogY29tcG9zaXRlQW5pbWF0aW9uLCBSZW5kZXJTdHlsZSogdW5hbmltYXRlZFN0eWxlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgS2V5ZnJhbWVBbmltYXRpb24oYW5pbWF0
aW9uLCByZW5kZXJlciwgaW5kZXgsIGNvbXBvc2l0ZUFuaW1hdGlvbiwgdW5hbmltYXRlZFN0eWxl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEtleWZyYW1lQW5pbWF0aW9uKGFuaW1h
dGlvbiwgcmVuZGVyZXIsIGNvbXBvc2l0ZUFuaW1hdGlvbiwgdW5hbmltYXRlZFN0eWxlKSk7CiAg
ICAgfQogCiAgICAgYm9vbCBhbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlckVsZW1l
bnQqLCBjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSogdGFyZ2V0
U3R5bGUsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpIG92ZXJy
aWRlOwpAQCAtNTMsOCArNTMsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgS2V5ZnJhbWVMaXN0JiBr
ZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lczsgfQogCiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFt
ZSgpOyB9Ci0gICAgaW50IGluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQotICAgIHZv
aWQgc2V0SW5kZXgoaW50IGkpIHsgbV9pbmRleCA9IGk7IH0KIAogICAgIGJvb2wgaGFzQW5pbWF0
aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAgICAgCkBAIC05MCw3ICs4OCw3
IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIEtleWZyYW1lQW5pbWF0aW9u
KEFuaW1hdGlvbiYsIFJlbmRlckVsZW1lbnQqLCBpbnQgaW5kZXgsIENvbXBvc2l0ZUFuaW1hdGlv
biosIFJlbmRlclN0eWxlKiB1bmFuaW1hdGVkU3R5bGUpOworICAgIEtleWZyYW1lQW5pbWF0aW9u
KEFuaW1hdGlvbiYsIFJlbmRlckVsZW1lbnQqLCBDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJT
dHlsZSogdW5hbmltYXRlZFN0eWxlKTsKICAgICB2aXJ0dWFsIH5LZXlmcmFtZUFuaW1hdGlvbigp
OwogICAgIAogICAgIC8vIEdldCB0aGUgc3R5bGVzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgc3Vy
cm91bmRpbmcgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHRpbWUgYW5kIHRoZSBwcm9ncmVzcyBiZXR3
ZWVuIHRoZW0uCkBAIC05OSw3ICs5Nyw2IEBAIHByaXZhdGU6CiAgICAgS2V5ZnJhbWVMaXN0IG1f
a2V5ZnJhbWVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gbV91bmFuaW1hdGVk
U3R5bGU7IC8vIFRoZSBzdHlsZSBqdXN0IGJlZm9yZSB3ZSBzdGFydGVkIGFuaW1hdGlvbgogCi0g
ICAgaW50IG1faW5kZXg7IC8vIFRoZSBvcmRlciBpbiB3aGljaCB0aGlzIGFuaW1hdGlvbiBhcHBl
YXJzIGluIHRoZSBhbmltYXRpb24tbmFtZSBzdHlsZS4KICAgICBib29sIG1fc3RhcnRFdmVudERp
c3BhdGNoZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlODZjODE5ZmY1NzZlNjcxYjY0OTdm
ZGNmYmZhZGVlYTMzZDExZDEuLmU0MTZkY2QwMzBlOWRmZjg5NWMwMmQ4ODFkYTQxNWFmZjFmMTcw
NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxNi0wNC0yNSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBUb2dnbGluZyBhbmltYXRpb24tcGxheS1z
dGF0ZSBjYW4gcmUtc3RhcnQgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjczMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1h
dGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogYW5pbWF0aW9u
cy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbDogVGhpcyBpcyBhIHByb2dyZXNzaW9u
LiBUaGUgdGVzdCB3YXMgZGV0ZWN0aW5nIGEKKyAgICAgICAgcmVzdGFydGVkIGFuaW1hdGlvbi4K
KyAgICAgICAgKiBhbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1h
dGlvbi10cmFuc2Zvcm0tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9u
cy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0uaHRtbDogQWRkZWQuIFJlZiB0
ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHRoZSBmaW5hbAorICAgICAgICBzdGF0ZSBmb3Igbm9ybWFs
IGFuZCBhY2NlbGVyYXRlZCBhbmltYXRpb25zIGlzIGNvcnJlY3QuCisgICAgICAgICogYW5pbWF0
aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4gVGVzdHMgdGhhdCBj
aGFuZ2luZyBhIHByb3BlcnR5IGRvZXNuJ3QgdHJpZ2dlcgorICAgICAgICBhbm90aGVyIGFuaW1h
dGlvbiwgYnkgZGV0ZWN0aW5nIGEgc2Vjb25kIGFuaW1hdGlvbnN0YXJ0IGV2ZW50LgorCisyMDE2
LTA0LTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAg
IHBsYXktc3RhdGUgbm90IHBhcnNlZCBhcyBwYXJ0IG9mIGFuaW1hdGlvbiBzaG9ydGhhbmQKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk1OQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2
ZXJzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS1leHBlY3RlZC50eHQKaW5kZXggODM2ODFkMDUxMDBiZTNhN2UzNTBlNDI0
NWRjMDg1ODE5Zjk5MjFhMS4uYmYyOTY5NzlkZmMyMDVkMjhlZWU3YjZiODA4MTA3M2E1OTQzYTY2
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LXJldmVyc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0
aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIFBBU1Mg
LSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTUwLDAKIFBBU1MgLSAid2Via2l0VHJhbnNm
b3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxLDAsMCwxLDEwMCwwCi1QQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9y
ICJib3giIGVsZW1lbnQgYXQgMi41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDIw
MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQg
YXQgMi41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBub25lCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS5odG1sCmluZGV4
IGU3NTVkODEyODM4ODE2ODFhYTI5YWFiZTQ4MzBjYWE4MzNkMDljMTYuLjdlYTNmZjJmZTA2ZGQ2
N2NlMTFkOTMyOTJiN2E0YzNkMzcyYjBiOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbApAQCAtMzQsNyArMzQs
NyBAQAogICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0
eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KICAgICAgIFsibW92ZTEiLCAwLjUsICJib3gi
LCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE1MCwwXSwgMjBdLAogICAgICAgWyJtb3Zl
MSIsIDEuMCwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwxMDAsMF0sIDIwXSwK
LSAgICAgIFsibW92ZTEiLCAyLjUsICJib3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEs
IDIwMCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuNSwgImJveCIsICJ3ZWJraXRUcmFuc2Zv
cm0iLCAnbm9uZScsIDIwXSwKICAgICBdOwogCiAgICAgZnVuY3Rpb24gcGF1c2VBbmltYXRpb24o
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFu
aW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21w
bGV0ZWQtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTZkYzQ2YmY2NGIxMmFl
MmU3ODRhMDgwYzUwYmVjNmNjMTQzNWI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorUEFTUzogYW5pbWF0aW9uIGRpZCBub3QgcmVzdGFydCBhZnRlciBjaGFuZ2luZyBh
bmltYXRpb24tZHVyYXRpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2No
YW5nZS1jb21wbGV0ZWQtYW5pbWF0aW9uLXRyYW5zZm9ybS1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0tZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGI0NTI1ODZkMDdiZmFkMzljZWE1YjkyMDQ3ZjJjNDg3
MWMwOGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2Ut
Y29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAg
ICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3
aWR0aDogNTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDRweDsKKyAgICAgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgaWQ9ImJveCIgY2xhc3M9Im1vdmVyIGJveCI+
PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBpZD0iYm94IiBjbGFzcz0ic2xpZGVyIGJveCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1j
b21wbGV0ZWQtYW5pbWF0aW9uLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFuc2Zvcm0uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ODQwNWZlNGUzYWNkOTI3YzRjMTFjZmUwNGYwMzI5ZGRmMDgxZDE3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtY29tcGxldGVkLWFuaW1hdGlvbi10cmFu
c2Zvcm0uaHRtbApAQCAtMCwwICsxLDc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAgICBtYXJnaW46
IDRweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB9Cisg
ICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAu
bW92ZXIgeworICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDAuMjVzIGxpbmVhcjsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgYm9keS5jaGFuZ2VkIC5tb3ZlciB7CisgICAgICAgICAg
ICBhbmltYXRpb24tZHVyYXRpb246IDAuMnM7CisgICAgICAgIH0KKworICAgICAgICAuc2xpZGVy
IHsKKyAgICAgICAgICAgIGFuaW1hdGlvbjogc2xpZGUgMC4yNXMgbGluZWFyOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBib2R5LmNoYW5nZWQgLnNsaWRlciB7CisgICAgICAgICAgICBh
bmltYXRpb24tZHVyYXRpb246IDAuMnM7CisgICAgICAgIH0KKworICAgICAgICBAa2V5ZnJhbWVz
IG1vdmUgeworICAgICAgICAgICAgZnJvbSB7IGxlZnQ6IDEwMHB4OyB9CisgICAgICAgICAgICB0
byAgIHsgbGVmdDogNDAwcHg7IH0KKyAgICAgICAgfQorCisgICAgICAgIEBrZXlmcmFtZXMgc2xp
ZGUgeworICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7IH0K
KyAgICAgICAgICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9CisgICAg
ICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBib3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MScpOworICAgICAgICAgICAgYm94LmFkZEV2ZW50
TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2NoYW5nZWQnKTsKKyAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0sIDEwKTsKKyAgICAgICAgICAg
ICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgYm94LmNsYXNzTGlzdC5hZGQoJ21vdmVyJyk7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYm94MicpLmNsYXNzTGlzdC5hZGQoJ3NsaWRlcicpOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVz
dCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+PC9kaXY+
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBp
ZD0iYm94MiIgY2xhc3M9ImJveCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5p
bWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1jb21wbGV0ZWQtYW5p
bWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNhZDkyYWM0NjQ0MzQ4NDNiZGYyNmNmNTc5MWIwMjI1
ODEwZWY2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY2hhbmdl
LWNvbXBsZXRlZC1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAg
ICAgICAgICBtYXJnaW46IDRweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICAubW92ZXIgeworICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDAuMjVz
IGxpbmVhcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm1vdmVyLmNoYW5nZWQgewor
ICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBAa2V5ZnJhbWVzIG1vdmUgeworICAgICAgICAgICAgZnJvbSB7IGxlZnQ6IDEw
MHB4OyB9CisgICAgICAgICAgICB0byAgIHsgbGVmdDogNDAwcHg7IH0KKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZG9U
ZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdib3gnKTsKKyAgICAgICAgICAgIGJveC5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRp
b25lbmQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgYm94LmFkZEV2ZW50TGlzdGVuZXIoJ2Fu
aW1hdGlvbnN0YXJ0JywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLnRleHRDb250ZW50ID0gIkZBSUw6IGFuaW1h
dGlvbiByZXN0YXJ0ZWQgYWZ0ZXIgY2hhbmdpbmcgYW5pbWF0aW9uLWR1cmF0aW9uIgorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIHN1Y2Nlc3MgY2Fz
ZSwgd2FpdCBhIGJpdCB0byBtYWtlIHN1cmUgbm8gYW5pbWF0aW9uc3RhcnQgZXZlbnQgY29tZXMg
aW4uCisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
ICAgICAgICB9LCA1MCk7CisKKyAgICAgICAgICAgICAgICAgICAgYm94LmNsYXNzTGlzdC5hZGQo
J2NoYW5nZWQnKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0sIGZhbHNl
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm94LmNsYXNzTGlzdC5hZGQoJ21vdmVyJyk7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGlkPSJib3giIGNsYXNzPSJi
b3giPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlc3VsdHMiPgorICAgICAgICBQ
QVNTOiBhbmltYXRpb24gZGlkIG5vdCByZXN0YXJ0IGFmdGVyIGNoYW5naW5nIGFuaW1hdGlvbi1k
dXJhdGlvbi4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="301495"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>