<?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>218655</bug_id>
          
          <creation_ts>2020-11-06 05:05:56 -0800</creation_ts>
          <short_desc>Reversed transform animation not applied alongside other transform animations</short_desc>
          <delta_ts>2021-04-01 11:56:21 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220653</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=224062</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1705198</commentid>
    <comment_count>0</comment_count>
      <attachid>413425</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-11-06 05:05:56 -0800</bug_when>
    <thetext>Created attachment 413425
Test

Consider this example:

div {
    width: 100px;
    height: 100px;
    margin-left: 100px;
    margin-top: 100px;
    background-color: black;

    animation: scale 2s forwards, rotate 500ms 1s reverse;
}

@keyframes scale {
    50% { scale: 2 }
}

@keyframes rotate {
    100% { rotate: 90deg }
}

In Safari, the rotate animation won&apos;t be performed because it&apos;s reversed and we disable accelerated animations when the playback rate is not 1 (see bug 211839). We should ensure that we only run accelerated transform animations if all of the accelerated transform animations can be accelerated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705199</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-06 05:06:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/71116284&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705201</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-11-06 05:16:57 -0800</bug_when>
    <thetext>We should also test we switch to software mode if already accelerated and a non-accelerated animation is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719590</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-01-14 07:22:14 -0800</bug_when>
    <thetext>I have the case where we try to add an animation that we think should be accelerated but fails to run accelerated due to the internals of GraphicsLayerCA working fine.

I also need to handle the case where we determine the animation cannot be run accelerated before even involving GraphicsLayerCA, such as a steps() timing function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719606</commentid>
    <comment_count>4</comment_count>
      <attachid>417627</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-01-14 08:55:46 -0800</bug_when>
    <thetext>Created attachment 417627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719621</commentid>
    <comment_count>5</comment_count>
      <attachid>417627</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-14 09:29:20 -0800</bug_when>
    <thetext>Comment on attachment 417627
Patch

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

&gt; Source/WebCore/animation/DocumentTimeline.cpp:443
&gt; +    m_isApplyingPendingAcceleratedAnimations = true;

SetForScope&lt;&gt;

&gt; Source/WebCore/animation/DocumentTimeline.cpp:466
&gt; +        if (keyframeEffect.failedToRunAcceleratedTransformRelatedAnimation()) {

It&apos;s a bit weird to have the very specific failedToRunAcceleratedTransformRelatedAnimation() function. Could applyPendingAcceleratedActions() instead return an OptionSet&lt;&gt; of what it did?

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1773
&gt; +    if (downcast&lt;DocumentTimeline&gt;(animation()-&gt;timeline())-&gt;isApplyingPendingAcceleratedAnimations()) {

Not a fan of code like this that needs to know what&apos;s on its call stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719670</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-01-14 12:53:39 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Comment on attachment 417627 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417627&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:466
&gt; &gt; +        if (keyframeEffect.failedToRunAcceleratedTransformRelatedAnimation()) {
&gt; 
&gt; It&apos;s a bit weird to have the very specific
&gt; failedToRunAcceleratedTransformRelatedAnimation() function. Could
&gt; applyPendingAcceleratedActions() instead return an OptionSet&lt;&gt; of what it
&gt; did?

Yes, I&apos;ll do this.

&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:1773
&gt; &gt; +    if (downcast&lt;DocumentTimeline&gt;(animation()-&gt;timeline())-&gt;isApplyingPendingAcceleratedAnimations()) {
&gt; 
&gt; Not a fan of code like this that needs to know what&apos;s on its call stack.

Me neither actually, but was a bit lazy there I confess. I&apos;ll make it so that a parameter is passed down to effectFailedToRunAcceleratedTransformRelatedAnimation() to indicate whether the change should be made synchronously or as part of an accelerated action.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719799</commentid>
    <comment_count>7</comment_count>
      <attachid>417682</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-01-15 00:14:12 -0800</bug_when>
    <thetext>Created attachment 417682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719829</commentid>
    <comment_count>8</comment_count>
      <attachid>417690</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-01-15 02:38:54 -0800</bug_when>
    <thetext>Created attachment 417690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719909</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-15 09:47:23 -0800</bug_when>
    <thetext>Committed r271524: &lt;https://trac.webkit.org/changeset/271524&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417690.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>413425</attachid>
            <date>2020-11-06 05:05:56 -0800</date>
            <delta_ts>2020-11-06 05:05:56 -0800</delta_ts>
            <desc>Test</desc>
            <filename>multiple-individual-transform-properties-animated-with-one-reversed.html</filename>
            <type>text/html</type>
            <size>305</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">PHN0eWxlPgoKZGl2IHsKICAgIHdpZHRoOiAxMDBweDsKICAgIGhlaWdodDogMTAwcHg7CiAgICBt
YXJnaW4tbGVmdDogMTAwcHg7CiAgICBtYXJnaW4tdG9wOiAxMDBweDsKICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsYWNrOwoKICAgIGFuaW1hdGlvbjogc2NhbGUgMnMgZm9yd2FyZHMsIHJvdGF0ZSA1
MDBtcyAxcyByZXZlcnNlOwp9CgpAa2V5ZnJhbWVzIHNjYWxlIHsKICAgIDUwJSB7IHNjYWxlOiAy
IH0KfQoKQGtleWZyYW1lcyByb3RhdGUgewogICAgMTAwJSB7IHJvdGF0ZTogOTBkZWcgfQp9Cgo8
L3N0eWxlPgo8ZGl2PjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417627</attachid>
            <date>2021-01-14 08:55:46 -0800</date>
            <delta_ts>2021-01-15 00:14:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218655-20210114175544.patch</filename>
            <type>text/plain</type>
            <size>27554</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjZmEzZWJiYWNlNTE3
OGY5YWY5NjZkZTYyZDg0N2Q1YTA2MmI3NS4uN2U3ZjIxOWQwZmRhM2JkZDZlMTJjMTBkYzQ3Yzg5
MzliYmVhOGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAxLTE0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVyc2VkIHRyYW5z
Zm9ybSBhbmltYXRpb24gbm90IGFwcGxpZWQgYWxvbmdzaWRlIG90aGVyIHRyYW5zZm9ybSBhbmlt
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg2NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMTE2Mjg0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiB3ZWJhbmltYXRpb25zL2Nv
bWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24t
Y2FwYWJpbGl0aWVzLTIuaHRtbAorICAgICAgICAgICAgICAgd2ViYW5pbWF0aW9ucy9jb21iaW5p
bmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFi
aWxpdGllcy0zLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRy
YW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRp
ZXMuaHRtbAorCisgICAgICAgIFdoaWxlLCBpbiB0aGVvcnksIGFuaW1hdGlvbnMgZm9yIGEgdHJh
bnNmb3JtLXJlbGF0ZWQgQ1NTIHByb3BlcnR5ICh0cmFuc2xhdGUsIHJvdGF0ZSwgc2NhbGUgYW5k
IHRyYW5zZm9ybSkKKyAgICAgICAgY2FuIGJlIGFjY2VsZXJhdGVkLCB0aGVyZSBhcmUgdmFyaW91
cyByZWFzb25zIHdoeSBpdCBtaWdodCBub3QsIGluIGZhY3QsIHJ1biBhY2NlbGVyYXRlZC4KKyAg
ICAgICAgCisgICAgICAgIE9uZSBleGFtcGxlIGlzIHRoYXQgdGhlIHRpbWluZyBmdW5jdGlvbiBp
cyBub3Qgc29tZXRoaW5nIHdlIGNhbiB0cmFuc2xhdGUgaW4gdGVybXMgQ29yZSBBbmltYXRpb24g
Y2FuCisgICAgICAgIHVuZGVyc3RhbmQsIHN1Y2ggYXMgdGhlIHN0ZXBzKCkgdGltaW5nIGZ1bmN0
aW9uLiBJbiB0aGlzIGNhc2UsIHRoZSBLZXlmcmFtZUVmZmVjdCBpdHNlbGYgaXMgYXdhcmUgb2YK
KyAgICAgICAgdGhlIGxpbWl0YXRpb24gYW5kIHRoZSBtZXRob2QgS2V5ZnJhbWVFZmZlY3Q6OmNh
bkJlQWNjZWxlcmF0ZWQoKSByZXR1cm5zIGZhbHNlLgorICAgICAgICAKKyAgICAgICAgQW5vdGhl
ciBleGFtcGxlIGlzIHRoYXQgdGhlIHBsYXliYWNrIHJhdGUgb2YgdGhlIGFuaW1hdGlvbiBpcyBu
b3QgMSwgd2hpY2ggd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgZm9yCisgICAgICAgIENvcmUg
QW5pbWF0aW9uIGFuaW1hdGlvbnMgKHNlZSBidWcgMjExODM5KS4gSW4gdGhpcyBjYXNlLCBHcmFw
aGljc0xheWVyQ0EgaXMgd2hlcmUgdGhlIGltcG9zc2liaWxpdHkgdG8KKyAgICAgICAgcnVuIGFu
IGFuaW1hdGlvbiBhY2NlbGVyYXRlZCBpcyBkZXRlcm1pbmVkLgorCisgICAgICAgIFdoaWxlIHdl
IHN1cHBvcnQgcnVubmluZyB0cmFuc2Zvcm0tcmVsYXRlZCBhbmltYXRpb25zIHdpdGggb3Igd2l0
aG91dCBhY2NlbGVyYXRpb24sIG9uZSB0aGluZyB3ZSBjYW5ub3QKKyAgICAgICAgc3VwcG9ydCBp
cywgZm9yIHRoZSBzYW1lIGVsZW1lbnQsIHJ1bm5pbmcgc29tZSB0cmFuc2Zvcm0tcmVsYXRlZCBh
bmltYXRpb25zIHdpdGggYWNjZWxlcmF0aW9uLCBhbmQgc29tZQorICAgICAgICB3aXRob3V0Lgor
CisgICAgICAgIFRodXMsIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgd2UgZGV0ZXJtaW5lIHRoYXQgYSB0
cmFuc2Zvcm0tcmVsYXRlZCBhbmltYXRpb24gY2Fubm90IGJlIGFjY2VsZXJhdGVkLCB3ZSBuZWVk
CisgICAgICAgIHRvIHNlbmQgdGhpcyBpbmZvcm1hdGlvbiB1cCB0byB0aGUgS2V5ZnJhbWVFZmZl
Y3RTdGFjayBpbiB3aGljaCB0aGlzIGFuaW1hdGlvbidzIGVmZmVjdCBiZWxvbmdzIHRvIG1ha2UK
KyAgICAgICAgc3VyZSB0aGF0IGFueSBvdGhlciB0cmFuc2Zvcm0tcmVsYXRlZCBhbmltYXRpb24g
dGhhdCBtYXkgYWxyZWFkeSBiZSBydW5uaW5nIGFjY2VsZXJhdGVkIG5vIGxvbmdlciBkb2VzCisg
ICAgICAgIGFuZCBjb250aW51ZXMgcnVubmluZyB3aXRob3V0IGFjY2VsZXJhdGlvbi4KKworICAg
ICAgICBUaGVyZSBhcmUgdHdvIGxvY2F0aW9ucyB3aGVyZSB3ZSBkZXRlcm1pbmUgdGhhdCBhIHRy
YW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbiBjYW5ub3QgYmUgYWNjZWxlcmF0ZWQ6CisgICAgICAg
IAorICAgICAgICAgICAgMS4gaW4gRG9jdW1lbnRUaW1lbGluZTo6YXBwbHlQZW5kaW5nQWNjZWxl
cmF0ZWRBbmltYXRpb25zKCkgdW5kZXIgd2hpY2ggd2Ugc3RhcnQsIHVwZGF0ZSBvciBzdG9wCisg
ICAgICAgICAgICAgICBhY2NlbGVyYXRlZCBhbmltYXRpb25zIHRoYXQgaGF2ZSBiZWVuIGludmFs
aWRhdGVkIHNpbmNlIHRoZSBsYXN0IHBhZ2UgcmVuZGVyaW5nLAorICAgICAgICAgICAgMi4gaW4g
S2V5ZnJhbWVFZmZlY3Q6OnVwZGF0ZUFjY2VsZXJhdGVkQWN0aW9ucygpIHdoaWNoIGlzIGNhbGxl
ZCBmb3IgZWFjaCBwYWdlIHJlbmRlcmluZywgaW5jbHVkaW5nCisgICAgICAgICAgICAgICBhbmlt
YXRpb25zIHRoYXQgY2Fubm90IGJlIGFjY2VsZXJhdGVkLgorCisgICAgICAgIEluIHRoZSBmaXJz
dCBjYXNlLCB3ZSBjYXRjaCBzaXR1YXRpb25zIHdoZXJlIGFuIGFuaW1hdGlvbiB0aGF0IGNvdWxk
IGhhdmUgYmVlbiBhY2NlbGVyYXRlZCBidXQgZmFpbGVkCisgICAgICAgIHRvIGJlIHN0YXJ0ZWQg
ZHVlIHRvIHRoZSBpbnRlcm5hbCBsb2dpYyBvZiBHcmFwaGljc0xheWVyQ0EuIFdlIHVzZSB0aGUg
bmV3IEtleWZyYW1lRWZmZWN0IG1ldGhvZAorICAgICAgICBmYWlsZWRUb1J1bkFjY2VsZXJhdGVk
VHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbigpIHRvIGRldGVybWluZSB0aGlzLCBhbmQgZm9yIGVh
Y2ggZWZmZWN0IHdoZXJlIHRoaXMKKyAgICAgICAgbWV0aG9kIHJldHVybnMgdHJ1ZSwgd2UgYWRk
IHRoZSBLZXlmcmFtZUVmZmVjdFN0YWNrIHRvIHdoaWNoIGl0IGJlbG9uZ3MgYW5kLCBvbmNlIHdl
J3JlIGRvbmUgd2l0aAorICAgICAgICB1cGRhdGluZyBhbGwgZWZmZWN0cywgY2FsbCB0aGUgbmV3
IGVmZmVjdEZhaWxlZFRvUnVuQWNjZWxlcmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uKCkg
bWV0aG9kIG9uCisgICAgICAgIHRoZSBrZXlmcmFtZSBlZmZlY3Qgc3RhY2suCisKKyAgICAgICAg
SW4gdGhlIHNlY29uZCBjYXNlLCB3ZSBjYXRjaCBzaXR1YXRpb25zIHdoZXJlIGFuIGFuaW1hdGlv
biBpcyBrbm93biB0byBub3QgYmUgYWJsZSB0byBydW4gYWNjZWxlcmF0ZWQKKyAgICAgICAgZXZl
biB3aXRob3V0IGludm9sdmluZyBHcmFwaGljc0xheWVyQ0EuIFdlIGNoZWNrIHdoZXRoZXIgdGhl
IGFuaW1hdGlvbiB0YXJnZXRzIGEgdHJhbnNmb3JtLXJlbGF0ZWQKKyAgICAgICAgcHJvcGVydHkg
YW5kIGlmIGl0IGlzIGFjdGl2ZSwgYW5kIGlmIHNvIGNhbGwgZWZmZWN0RmFpbGVkVG9SdW5BY2Nl
bGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKQorICAgICAgICBvbiB0aGUga2V5ZnJh
bWUgZWZmZWN0IHN0YWNrIHRoZXJlIGFzIHdlbGwuCisKKyAgICAgICAgV2hlbiBLZXlmcmFtZUVm
ZmVjdFN0YWNrOjplZmZlY3RGYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFu
aW1hdGlvbigpIGlzIGNhbGxlZCwgd2UgZ28KKyAgICAgICAgdGhyb3VnaCBhbGwgdGhlIHJlZ2lz
dGVyZWQgZWZmZWN0cyBhbmQgY2FsbCBzZXRSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1SZWxh
dGVkQW5pbWF0aW9uc1RvTm9uQWNjZWxlcmF0ZWQoKS4KKyAgICAgICAgVGhpcyBuZXcgS2V5ZnJh
bWVFZmZlY3QgbWV0aG9kIHdpbGwgZWl0aGVyIGFkZCBhIHBlbmRpbmcgYWNjZWxlcmF0ZWQgYWN0
aW9uIHRvIHN0b3AgdGhlIGFjY2VsZXJhdGVkCisgICAgICAgIGFuaW1hdGlvbiwgb3IgaWYgd2Un
cmUgY3VycmVudGx5IGFwcGx5IGFjY2VsZXJhdGVkIGFjdGlvbnMgKGllLiBjYWxsZWQgdW5kZXIg
RG9jdW1lbnRUaW1lbGluZTo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zKCkpLAor
ICAgICAgICB3ZSBzdG9wIHRoZSBhY2NlbGVyYXRlZCBhbmltYXRpb24gcmlnaHQgYXdheS4KKwor
ICAgICAgICBJbiBib3RoIGNhc2VzIHdlIGtub3cgbm90IHRvIHRyeSBydW5uaW5nIHRoaXMgYW5p
bWF0aW9uIGFnYWluIHdpdGggYWNjZWxlcmF0aW9uIGJ5IHNldHRpbmcgbV9ydW5uaW5nQWNjZWxl
cmF0ZWQKKyAgICAgICAgdG8gUnVubmluZ0FjY2VsZXJhdGVkOjpOby4KKworICAgICAgICAqIGFu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGltZWxpbmU6OmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucyk6CisgICAgICAgICog
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmlzVGFyZ2V0
aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oktl
eWZyYW1lRWZmZWN0Ojppc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnVwZGF0ZUFjY2Vs
ZXJhdGVkQWN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YXBwbHlQ
ZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZm
ZWN0OjpmYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6c2V0UnVubmluZ0FjY2VsZXJh
dGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbnNUb05vbkFjY2VsZXJhdGVkKToKKyAgICAgICAg
KiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3RTdGFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFN0YWNr
OjplZmZlY3RGYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbik6
CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suaDoKKyAgICAgICAgKiBh
bmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlv
bjo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBh
bmltYXRpb24vV2ViQW5pbWF0aW9uLmg6CisKIDIwMjEtMDEtMTIgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzU3MSk6IGJsYWNr
IGxpbmUgYXBwZWFycyB1cG9uIG5hdmlnYXRpbmcgYmFjayBmcm9tIGFwcGxlLmNvbSBzaG9wcGlu
ZyBiYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVs
aW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApp
bmRleCBjZmZkMThhMmI2MTczMzFiY2YxODdjM2IwOWMyOTMxMTU1OWZlNDAyLi5hNWE5NjBiMWVh
MGViZjA0NmY1Y2Q3YmU5ODZlYWNiNjRmZDdkNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC00MzksMTggKzQzOSw0MiBAQCB2b2lkIERv
Y3VtZW50VGltZWxpbmU6OmFuaW1hdGlvbkFjY2VsZXJhdGVkUnVubmluZ1N0YXRlRGlkQ2hhbmdl
KFdlYkFuaW1hdGlvbiYgYQogCiB2b2lkIERvY3VtZW50VGltZWxpbmU6OmFwcGx5UGVuZGluZ0Fj
Y2VsZXJhdGVkQW5pbWF0aW9ucygpCiB7CisgICAgQVNTRVJUKCFtX2lzQXBwbHlpbmdQZW5kaW5n
QWNjZWxlcmF0ZWRBbmltYXRpb25zKTsKKyAgICBtX2lzQXBwbHlpbmdQZW5kaW5nQWNjZWxlcmF0
ZWRBbmltYXRpb25zID0gdHJ1ZTsKKwogICAgIGF1dG8gYWNjZWxlcmF0ZWRBbmltYXRpb25zUGVu
ZGluZ1J1bm5pbmdTdGF0ZUNoYW5nZSA9IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25zUGVuZGluZ1J1
bm5pbmdTdGF0ZUNoYW5nZTsKICAgICBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5u
aW5nU3RhdGVDaGFuZ2UuY2xlYXIoKTsKIAorICAgIC8vIEFuaW1hdGlvbnMgbWF5IGZhaWwgdG8g
cnVuIGFjY2VsZXJhdGVkIGZvciByZWFzb25zIHByaXZhdGUgdG8gR3JhcGhpY3NMYXllckNBLiBJ
ZiB0aGF0IGhhcHBlbnMsIGFuZCB0aGUgYW5pbWF0aW9uCisgICAgLy8gaW4gcXVlc3Rpb24gdGFy
Z2V0cyBhIHRyYW5zZm9ybS1yZWxhdGVkIHByb3BlcnR5LCB3ZSBtdXN0IHByZXZlbnQgYWxsIG90
aGVyIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbnMgZm9yIHRoaXMKKyAgICAvLyBlbGVtZW50
IHRvIHJ1biBhY2NlbGVyYXRlZCBzaW5jZSB3ZSBjYW4ndCBydW4gc29tZSB0cmFuc2Zvcm0tcmVs
YXRlZCBhbmltYXRpb25zIGFjY2VsZXJhdGVkLCBhbmQgc29tZSBub3QuIFRvIGRvCisgICAgLy8g
dGhpcywgd2Uga2VlcCBhIGxpc3Qgb2YgYWxsIEtleWZyYW1lRWZmZWN0U3RhY2sgb2JqZWN0cyBj
b250YWluaW5nIGFuIGVmZmVjdCB0aGF0IGZhaWxlZCB0byBzdGFydCBhIHRyYW5zZm9ybS1yZWxh
dGVkCisgICAgLy8gYW5pbWF0aW9uIHNvIHRoYXQgd2UgY2FuIHJldHVybiBhbnkgdHJhbnNmb3Jt
LXJlbGF0ZWQgYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHRvIHJ1biBub24tYWNjZWxlcmF0ZWQuCisg
ICAgSGFzaFNldDxLZXlmcmFtZUVmZmVjdFN0YWNrKj4gZWZmZWN0U3RhY2tzQ29udGFpbmluZ0Vm
ZmVjdFRoYXRGYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbjsK
KwogICAgIGJvb2wgaGFzRm9yY2VkTGF5b3V0ID0gZmFsc2U7CiAgICAgZm9yIChhdXRvJiBhbmlt
YXRpb24gOiBhY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlKSB7
Ci0gICAgICAgIGlmICghaGFzRm9yY2VkTGF5b3V0KSB7Ci0gICAgICAgICAgICBhdXRvKiBlZmZl
Y3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOwotICAgICAgICAgICAgaWYgKGlzPEtleWZyYW1lRWZm
ZWN0PihlZmZlY3QpKQotICAgICAgICAgICAgICAgIGhhc0ZvcmNlZExheW91dCB8PSBkb3duY2Fz
dDxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KS0+Zm9yY2VMYXlvdXRJZk5lZWRlZCgpOworICAgICAg
ICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOworICAgICAgICBpZiAoIWlzPEtl
eWZyYW1lRWZmZWN0PihlZmZlY3QpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
YXV0byYga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oKmVmZmVjdCk7
CisgICAgICAgIGlmICghaGFzRm9yY2VkTGF5b3V0KQorICAgICAgICAgICAgaGFzRm9yY2VkTGF5
b3V0IHw9IGtleWZyYW1lRWZmZWN0LmZvcmNlTGF5b3V0SWZOZWVkZWQoKTsKKyAgICAgICAga2V5
ZnJhbWVFZmZlY3QuYXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCk7CisKKyAgICAgICAg
aWYgKGtleWZyYW1lRWZmZWN0LmZhaWxlZFRvUnVuQWNjZWxlcmF0ZWRUcmFuc2Zvcm1SZWxhdGVk
QW5pbWF0aW9uKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChrZXlmcmFtZUVmZmVjdC50YXJnZXRT
dHlsZWFibGUoKSk7CisgICAgICAgICAgICBBU1NFUlQoa2V5ZnJhbWVFZmZlY3QudGFyZ2V0U3R5
bGVhYmxlKCktPmtleWZyYW1lRWZmZWN0U3RhY2soKSk7CisgICAgICAgICAgICBlZmZlY3RTdGFj
a3NDb250YWluaW5nRWZmZWN0VGhhdEZhaWxlZFRvUnVuQWNjZWxlcmF0ZWRUcmFuc2Zvcm1SZWxh
dGVkQW5pbWF0aW9uLmFkZChrZXlmcmFtZUVmZmVjdC50YXJnZXRTdHlsZWFibGUoKS0+a2V5ZnJh
bWVFZmZlY3RTdGFjaygpKTsKICAgICAgICAgfQotICAgICAgICBhbmltYXRpb24tPmFwcGx5UGVu
ZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpOwogICAgIH0KKworICAgIGZvciAoYXV0byYgZWZmZWN0
U3RhY2sgOiBlZmZlY3RTdGFja3NDb250YWluaW5nRWZmZWN0VGhhdEZhaWxlZFRvUnVuQWNjZWxl
cmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uKQorICAgICAgICBlZmZlY3RTdGFjay0+ZWZm
ZWN0RmFpbGVkVG9SdW5BY2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKTsKKwor
ICAgIEFTU0VSVChtX2lzQXBwbHlpbmdQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zKTsKKyAg
ICBtX2lzQXBwbHlpbmdQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zID0gZmFsc2U7CiB9CiAK
IGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6cnVubmluZ0FuaW1hdGlvbnNGb3JSZW5kZXJlckFyZUFs
bEFjY2VsZXJhdGVkKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlcikgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCmluZGV4IDhlMzA0
OTExNmQ1MDRjYTUzYmUwMDEzYWZhZjJkZjgyOThiZDllYjEuLjMzYjU4ZGNhYjIyYzBiMTFlZmQ2
ZjZlOWZiOTZlMzhmNmU0ZjYxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIGRvdWJsZT4+IGFjY2VsZXJhdGVkQW5pbWF0aW9u
c0ZvckVsZW1lbnQoRWxlbWVudCYpIGNvbnN0OyAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNp
Z25lZCBudW1iZXJPZkFuaW1hdGlvblRpbWVsaW5lSW52YWxpZGF0aW9uc0ZvclRlc3RpbmcoKSBj
b25zdDsKIAorICAgIGJvb2wgaXNBcHBseWluZ1BlbmRpbmdBY2NlbGVyYXRlZEFuaW1hdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX2lzQXBwbHlpbmdQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25z
OyB9CisKIHByaXZhdGU6CiAgICAgRG9jdW1lbnRUaW1lbGluZShEb2N1bWVudCYsIFNlY29uZHMp
OwogCkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9m
QW5pbWF0aW9uVGltZWxpbmVJbnZhbGlkYXRpb25zRm9yVGVzdGluZyB7IDAgfTsKICAgICBib29s
IG1fYW5pbWF0aW9uUmVzb2x1dGlvblNjaGVkdWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3No
b3VsZFNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbkZvck5ld1BlbmRpbmdFdmVudHMgeyB0cnVl
IH07CisgICAgYm9vbCBtX2lzQXBwbHlpbmdQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zIHsg
ZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IGQxMjIyODhiMWM2Y2EzYmEzNWE0OGFi
NDhlM2RjMDc5MTZlOTk1NjQuLjQ4N2U3NWNiM2NkNzkwM2M2MzU3MDVmYjUxMjBkYzAxZTc4MzBl
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAt
MTI4MSwxNyArMTI4MSwxOSBAQCBib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1bm5pbmdBY2NlbGVy
YXRlZEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcAogICAgIHJldHVybiBp
c1J1bm5pbmdBY2NlbGVyYXRlZCgpICYmIENTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25P
ZlByb3BlcnR5SXNBY2NlbGVyYXRlZChwcm9wZXJ0eSkgJiYgbV9ibGVuZGluZ0tleWZyYW1lcy5w
cm9wZXJ0aWVzKCkuY29udGFpbnMocHJvcGVydHkpOwogfQogCi1ib29sIEtleWZyYW1lRWZmZWN0
Ojppc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKSBjb25zdAor
Ym9vbCBLZXlmcmFtZUVmZmVjdDo6aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHko
KSBjb25zdAogewotICAgIGlmICghaXNSdW5uaW5nQWNjZWxlcmF0ZWQoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygp
LmNvbnRhaW5zKENTU1Byb3BlcnR5VHJhbnNsYXRlKQogICAgICAgICB8fCBtX2JsZW5kaW5nS2V5
ZnJhbWVzLnByb3BlcnRpZXMoKS5jb250YWlucyhDU1NQcm9wZXJ0eVNjYWxlKQogICAgICAgICB8
fCBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKS5jb250YWlucyhDU1NQcm9wZXJ0eVJv
dGF0ZSkKICAgICAgICAgfHwgbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkuY29udGFp
bnMoQ1NTUHJvcGVydHlUcmFuc2Zvcm0pOwogfQogCitib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1
bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBpc1J1bm5pbmdBY2NlbGVyYXRlZCgpICYmIGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVs
YXRlZFByb3BlcnR5KCk7Cit9CisKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQog
ewogICAgIExPR19XSVRIX1NUUkVBTShBbmltYXRpb25zLCBzdHJlYW0gPDwgIktleWZyYW1lRWZm
ZWN0OjppbnZhbGlkYXRlIG9uIGVsZW1lbnQgIiA8PCBWYWx1ZU9yTnVsbCh0YXJnZXRFbGVtZW50
T3JQc2V1ZG9FbGVtZW50KCkpKTsKQEAgLTE1NzQsOCArMTU3NiwxOSBAQCBib29sIEtleWZyYW1l
RWZmZWN0OjpjYW5CZUFjY2VsZXJhdGVkKCkgY29uc3QKIAogdm9pZCBLZXlmcmFtZUVmZmVjdDo6
dXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKCkKIHsKLSAgICBpZiAoIWNhbkJlQWNjZWxlcmF0ZWQo
KSkKKyAgICBpZiAoIWNhbkJlQWNjZWxlcmF0ZWQoKSkgeworICAgICAgICAvLyBJbiB0aGUgY2Fz
ZSB3aGVyZSB0aGlzIGFuaW1hdGlvbiBpcyBhY3RpdmVseSB0YXJnZXRpbmcgYSB0cmFuc2Zvcm0t
cmVsYXRlZCBwcm9wZXJ0eSBhbmQgeWV0CisgICAgICAgIC8vIGNhbm5vdCBiZSBhY2NlbGVyYXRl
ZCwgd2UgbXVzdCBub3RpZnkgdGhlIGVmZmVjdCBzdGFjayBzdWNoIHRoYXQgYW55IHJ1bm5pbmcg
YWNjZWxlcmF0ZWQKKyAgICAgICAgLy8gdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRhcmdl
dGluZyB0aGlzIGVsZW1lbnQgcmV2ZXJ0cyB0byBydW5uaW5nIG5vbi1hY2NlbGVyYXRlZC4KKyAg
ICAgICAgaWYgKGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkKKyAgICAgICAg
ICAgICYmIGFuaW1hdGlvbigpLT5wbGF5U3RhdGUoKSA9PSBXZWJBbmltYXRpb246OlBsYXlTdGF0
ZTo6UnVubmluZworICAgICAgICAgICAgJiYgZ2V0Q29tcHV0ZWRUaW1pbmcoKS5waGFzZSA9PSBB
bmltYXRpb25FZmZlY3RQaGFzZTo6QWN0aXZlKSB7CisgICAgICAgICAgICBBU1NFUlQodGFyZ2V0
U3R5bGVhYmxlKCkpOworICAgICAgICAgICAgQVNTRVJUKHRhcmdldFN0eWxlYWJsZSgpLT5rZXlm
cmFtZUVmZmVjdFN0YWNrKCkpOworICAgICAgICAgICAgdGFyZ2V0U3R5bGVhYmxlKCktPmtleWZy
YW1lRWZmZWN0U3RhY2soKS0+ZWZmZWN0RmFpbGVkVG9SdW5BY2NlbGVyYXRlZFRyYW5zZm9ybVJl
bGF0ZWRBbmltYXRpb24oKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgYXV0byBjb21wdXRlZFRpbWluZyA9IGdldENvbXB1dGVkVGltaW5nKCk7CiAKQEAgLTE3MzYs
NyArMTc0OSw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVk
QWN0aW9ucygpCiAgICAgICAgICAgICByZW5kZXJlci0+YW5pbWF0aW9uRmluaXNoZWQobV9ibGVu
ZGluZ0tleWZyYW1lcy5hbmltYXRpb25OYW1lKCkpOwogICAgICAgICAgICAgaWYgKCFkb2N1bWVu
dCgpLT5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgICAgICAgICBtX3Rhcmdl
dC0+aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwotICAgICAgICAgICAgbV9y
dW5uaW5nQWNjZWxlcmF0ZWQgPSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5vdFN0YXJ0ZWQ7CisgICAg
ICAgICAgICBtX3J1bm5pbmdBY2NlbGVyYXRlZCA9IGNhbkJlQWNjZWxlcmF0ZWQoKSA/IFJ1bm5p
bmdBY2NlbGVyYXRlZDo6Tm90U3RhcnRlZCA6IFJ1bm5pbmdBY2NlbGVyYXRlZDo6Tm87CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBY2NlbGVyYXRlZEFjdGlvbjo6VHJhbnNmb3Jt
Q2hhbmdlOgogICAgICAgICAgICAgcmVuZGVyZXItPnRyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eURp
ZENoYW5nZSgpOwpAQCAtMTc0NSw2ICsxNzU4LDM4IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFw
cGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpCiAgICAgfQogfQogCitib29sIEtleWZyYW1l
RWZmZWN0OjpmYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcnVubmluZ0FjY2VsZXJhdGVkID09IFJ1bm5pbmdBY2Nl
bGVyYXRlZDo6Tm8gJiYgaXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKTsKK30K
Kwordm9pZCBLZXlmcmFtZUVmZmVjdDo6c2V0UnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtUmVs
YXRlZEFuaW1hdGlvbnNUb05vbkFjY2VsZXJhdGVkKCkKK3sKKyAgICBpZiAoIWlzUnVubmluZ0Fj
Y2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbigpKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQoYW5pbWF0aW9uKCkpOworICAgIEFTU0VSVChpczxEb2N1bWVudFRpbWVsaW5l
PihhbmltYXRpb24oKS0+dGltZWxpbmUoKSkpOworICAgIGlmIChkb3duY2FzdDxEb2N1bWVudFRp
bWVsaW5lPihhbmltYXRpb24oKS0+dGltZWxpbmUoKSktPmlzQXBwbHlpbmdQZW5kaW5nQWNjZWxl
cmF0ZWRBbmltYXRpb25zKCkpIHsKKyAgICAgICAgLy8gSW4gY2FzZSBvdXIgdGltZWxpbmUgaXMg
YWxyZWFkeSBpbiB0aGUgcHJvY2VzcyBvZiBhcHBseWluZyBwZW5kaW5nIGFjY2VsZXJhdGVkIGFu
aW1hdGlvbnMsCisgICAgICAgIC8vIHdlIGNhbiByZW1vdmUgdGhpcyBhbmltYXRpb24gcmlnaHQg
YXdheS4KKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgICAg
ICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNDb21wb3NpdGVkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgQVNTRVJUKGRvY3VtZW50KCkpOworICAgICAgICByZW5kZXJl
ci0+YW5pbWF0aW9uRmluaXNoZWQobV9ibGVuZGluZ0tleWZyYW1lcy5hbmltYXRpb25OYW1lKCkp
OworICAgICAgICBpZiAoIWRvY3VtZW50KCktPnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQor
ICAgICAgICAgICAgbV90YXJnZXQtPmludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24o
KTsKKworICAgICAgICBtX3J1bm5pbmdBY2NlbGVyYXRlZCA9IFJ1bm5pbmdBY2NlbGVyYXRlZDo6
Tm87CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGVucXVl
dWUgYW4gYWNjZWxlcmF0ZWQgYWN0aW9uIHRvIHN0b3AgdGhpcyBhbmltYXRpb24gZnJvbSBydW5u
aW5nCisgICAgICAgIC8vIGFjY2VsZXJhdGVkIGF0IHRoZSBuZXh0IG9wcG9ydHVuaXR5LgorICAg
ICAgICBhZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oQWNjZWxlcmF0ZWRBY3Rpb246OlN0b3Ap
OworICAgIH0KK30KKwogUmVmPGNvbnN0IEFuaW1hdGlvbj4gS2V5ZnJhbWVFZmZlY3Q6OmJhY2tp
bmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIoKSBjb25zdAogewogICAgIGF1dG8gZWZm
ZWN0QW5pbWF0aW9uID0gYW5pbWF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5oCmluZGV4IDQ0MDI3NTQ4YWJiNTM2OWVkYTkwOGQyZGI4MTllMWE4YmI5Y2Q2
MTQuLjlhNmExYWM3OWYzM2FiNWYyMWMwYTM5OGIwNGRhYWYxOGNmYjYwZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC0xNzIsNiArMTcyLDkgQEAgcHVi
bGljOgogICAgIGJvb2wgcmVxdWlyZXNQc2V1ZG9FbGVtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0OwogCisgICAgYm9vbCBmYWlsZWRUb1J1bkFjY2Vs
ZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0UnVu
bmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbnNUb05vbkFjY2VsZXJhdGVk
KCk7CisKIHByaXZhdGU6CiAgICAgS2V5ZnJhbWVFZmZlY3QoRWxlbWVudCosIFBzZXVkb0lkKTsK
IApAQCAtMjAzLDYgKzIwNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRCbGVuZGluZ0tleWZy
YW1lcyhLZXlmcmFtZUxpc3QmKTsKICAgICBTZWNvbmRzIHRpbWVUb05leHRUaWNrKCkgY29uc3Qg
ZmluYWw7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBwcm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91Ymxl
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3Bl
cnR5KCkgY29uc3Q7CiAgICAgdm9pZCBjaGVja0Zvck1hdGNoaW5nVHJhbnNmb3JtRnVuY3Rpb25M
aXN0cygpOwogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKTsK
ICAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdDb2xvckZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAppbmRl
eCAxMmFmMDRmZWQ2ODc5NjQ5YmI5ZDAxOTFkMDdiMmE4MzcxY2NiNmJkLi45ODY0YjlhMGM3YTcw
ODA5YzJmZTA3YmEwYjQ0NTM4MzkwOTIwOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suY3BwCkBAIC0xNDgsNCArMTQ4LDEwIEBAIE9wdGlv
blNldDxBbmltYXRpb25JbXBhY3Q+IEtleWZyYW1lRWZmZWN0U3RhY2s6OmFwcGx5S2V5ZnJhbWVF
ZmZlY3RzKFJlbmRlclN0eWxlCiAgICAgcmV0dXJuIGltcGFjdDsKIH0KIAordm9pZCBLZXlmcmFt
ZUVmZmVjdFN0YWNrOjplZmZlY3RGYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRl
ZEFuaW1hdGlvbigpCit7CisgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBtX2VmZmVjdHMpCisgICAg
ICAgIGVmZmVjdC0+c2V0UnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlv
bnNUb05vbkFjY2VsZXJhdGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5oCmluZGV4IGQ0YTZi
ODA2Y2ExOTgyZDZiMzY3YjYzYmE5MjQ2NDM5YjU5ZWIzZjUuLjFjMzg2YjZjMzA2ZDQ1ZmE0ZDg2
OGU1NjMwODY4MGQ3NWViMmE4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0U3RhY2suaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAgICAgT3B0aW9u
U2V0PEFuaW1hdGlvbkltcGFjdD4gYXBwbHlLZXlmcmFtZUVmZmVjdHMoUmVuZGVyU3R5bGUmIHRh
cmdldFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgcHJldmlvdXNMYXN0U3R5bGVDaGFuZ2VFdmVu
dFN0eWxlKTsKICAgICBib29sIGhhc0VmZmVjdFdpdGhJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0
OwogCisgICAgdm9pZCBlZmZlY3RGYWlsZWRUb1J1bkFjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRl
ZEFuaW1hdGlvbigpOworCiBwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlRWZmZWN0c0FyZVNvcnRl
ZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IGIz
OTczYzRlMzYzYTM1NTU2Yjc4YzJjZGY1NDM4ZjZiMGM1Mzc0MzkuLjMxMGExNjc4YTE4ZDQ1ZmYw
NjI4MzAwYTRmMzBhNjk4NDMzMGQ3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwCkBAIC0xMjUzLDEyICsxMjUzLDYgQEAgdm9pZCBXZWJBbmltYXRpb246OmFj
Y2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2UoKQogICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVs
aW5lPigqbV90aW1lbGluZSkuYW5pbWF0aW9uQWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRDaGFu
Z2UoKnRoaXMpOwogfQogCi12b2lkIFdlYkFuaW1hdGlvbjo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0
ZWRBY3Rpb25zKCkKLXsKLSAgICBpZiAoaXM8S2V5ZnJhbWVFZmZlY3Q+KG1fZWZmZWN0KSkKLSAg
ICAgICAgZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCptX2VmZmVjdCkuYXBwbHlQZW5kaW5nQWNj
ZWxlcmF0ZWRBY3Rpb25zKCk7Ci19Ci0KIFdlYkFuaW1hdGlvbiYgV2ViQW5pbWF0aW9uOjpyZWFk
eVByb21pc2VSZXNvbHZlKCkKIHsKICAgICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggYmY3NDUxZmY1OWI5YmQ0ZGI1YWIxOWUzNzA0ZGJm
MTU5MGU0ZGFjOS4uNDliNzhmNzU0MGY0NWExMzU0ZWVhOGQ5YzFlNmIyNjZmOThjMzA5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtMTI0LDcgKzEyNCw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZShSZW5kZXJTdHlsZSYsIE9wdGlvbmFs
PFNlY29uZHM+ID0gV1RGOjpudWxsb3B0KTsKICAgICB2b2lkIGVmZmVjdFRhcmdldERpZENoYW5n
ZShjb25zdCBPcHRpb25hbDxjb25zdCBTdHlsZWFibGU+JiBwcmV2aW91c1RhcmdldCwgY29uc3Qg
T3B0aW9uYWw8Y29uc3QgU3R5bGVhYmxlPiYgbmV3VGFyZ2V0KTsKICAgICB2b2lkIGFjY2VsZXJh
dGVkU3RhdGVEaWRDaGFuZ2UoKTsKLSAgICB2b2lkIGFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0
aW9ucygpOwogICAgIHZvaWQgd2lsbENoYW5nZVJlbmRlcmVyKCk7CiAKICAgICBib29sIGlzUnVu
bmluZ0FjY2VsZXJhdGVkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUxZTRjYTA3OTE2M2M0YTBmYTU1YzJl
MDU3ZjY4NGI2ZmJlMWQ5YS4uNzM3MTQzYTg2OGNlZmFmYzIyNGY0MWUyOGQyNTZhMTc2ZmIzOGZm
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAxLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVyc2VkIHRyYW5zZm9ybSBhbmltYXRpb24g
bm90IGFwcGxpZWQgYWxvbmdzaWRlIG90aGVyIHRyYW5zZm9ybSBhbmltYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg2NTUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxMTE2Mjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMgdGhhdCBzdGFydCBhIHRyYW5zZm9ybS1y
ZWxhdGVkIGFuaW1hdGlvbiB0aGF0IHJ1bnMgYWNjZWxlcmF0ZWQsIHRoZW4gYWRkIGFub3RoZXIK
KyAgICAgICAgdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRoYXQgZWl0aGVyIGluaXRpYWxs
eSBvciBldmVudHVhbGx5IGlzIG5vdCBhY2NlbGVyYXRlZC4gSW4gYWxsIGNhc2VzLAorICAgICAg
ICB3ZSBjaGVjayB0aGF0IG9uY2UgdGhlIHNlY29uZCBhbmltYXRpb24gaXMgbm8gbG9uZ2VyIGFj
Y2VsZXJhdGVkIHRoYXQgdGhlIGZpcnN0IGFuaW1hdGlvbiBpcyBhbHNvCisgICAgICAgIG5vIGxv
bmdlciBhY2NlbGVyYXRlZC4KKworICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRy
YW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRp
ZXMtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29tYmlu
aW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBh
YmlsaXRpZXMtMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2NvbWJpbmlu
Zy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJp
bGl0aWVzLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2Nv
bWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24t
Y2FwYWJpbGl0aWVzLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jb21i
aW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNh
cGFiaWxpdGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMv
Y29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlv
bi1jYXBhYmlsaXRpZXMuaHRtbDogQWRkZWQuCisKIDIwMjEtMDEtMTIgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzU3MSk6IGJs
YWNrIGxpbmUgYXBwZWFycyB1cG9uIG5hdmlnYXRpbmcgYmFjayBmcm9tIGFwcGxlLmNvbSBzaG9w
cGluZyBiYWcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5n
LXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmls
aXRpZXMtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmlu
Zy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJp
bGl0aWVzLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MjRhNGJkNmUxOWU3MjU2NTVkM2Q0
YTY0OTJjODk5MWFmYTA1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmlt
YXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2Nl
bGVyYXRpb24tY2FwYWJpbGl0aWVzLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIGludGVy
bmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxlbmd0aCBiZWNh
bWUgMQorUEFTUyBpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChlbGVt
ZW50KS5sZW5ndGggYmVjYW1lIDIKK1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9u
c0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3RoIGJlY2FtZSAwCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgt
ZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJl
bnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E2ODdmOTYz
NDE3YWQ0NGMwN2MyMGEwZDM1NzBjNmUyMDcwYzk4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgt
ZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzxkaXYgaWQ9InRhcmdldCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsg
YmFja2dyb3VuZC1jb2xvcjogYmxhY2s7Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitjb25zdCBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY29uc3QgdGltaW5nID0geyBkdXJhdGlv
bjogMTAwMCwgaXRlcmF0aW9uczogSW5maW5pdHkgfTsKKworY29uc3Qgc2hvdWxkQmVjb21lRXF1
YWxBc3luYyA9IGFzeW5jIChhY3R1YWwsIGV4cGVjdGVkKSA9PiBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHNob3VsZEJlY29tZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIHJlc29sdmUpKTsKKworKGFz
eW5jICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGJlIHJ1biBpbiBhIHRlc3Qg
cnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisKKyAgICAvLyBGaXJzdCwgc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRlZCBh
bmltYXRpb24gdGhhdCBjYW4gYmUgYWNjZWxlcmF0ZWQuCisgICAgZWxlbWVudC5hbmltYXRlKHsg
c2NhbGU6IFsxLCAyXSB9LCB0aW1pbmcpOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVxdWFsQXN5
bmMoImludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxl
bmd0aCIsICIxIik7CisKKyAgICAvLyBOb3csIHN0YXJ0IGFub3RoZXIgdHJhbnNmb3JtLXJlbGF0
ZWQgYW5pbWF0aW9uIHRoYXQgY2FuIGFsc28gYmUgYWNjZWxlcmF0ZWQuCisgICAgY29uc3Qgcm90
YXRpb25BbmltYXRpb24gPSBlbGVtZW50LmFuaW1hdGUoeyByb3RhdGU6IFsiMzBkZWciLCAiNjBk
ZWciXSB9LCB0aW1pbmcpOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVxdWFsQXN5bmMoImludGVy
bmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxlbmd0aCIsICIy
Iik7CisKKyAgICAvLyBOb3csIHVwZGF0ZSB0aGUgbGFzdCB0cmFuc2Zvcm0tcmVsYXRlZCBhbmlt
YXRpb24gdG8gYSBzdGF0ZSB0aGF0IGNhbm5vdCBiZSBhY2NlbGVyYXRlZCBhbnltb3JlCisgICAg
Ly8gZHVlIHRvIHVzaW5nIGEgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24uIFRoaXMgc2hvdWxkIG5v
dCBvbmx5IHByZXZlbnQgdGhpcyBhbmltYXRpb24gZnJvbQorICAgIC8vIHJ1bm5pbmcgYWNjZWxl
cmF0ZWQsIGJ1dCBhbHNvIG1ha2UgdGhlIGZpcnN0IGFuaW1hdGlvbiByZXZlcnQgdG8gYSBub24t
YWNjZWxlcmF0ZWQgc3RhdGUuCisgICAgcm90YXRpb25BbmltYXRpb24uZWZmZWN0LnVwZGF0ZVRp
bWluZyh7IGVhc2luZzogInN0ZXBzKDYwKSIgfSk7CisgICAgYXdhaXQgc2hvdWxkQmVjb21lRXF1
YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVu
dCkubGVuZ3RoIiwgIjAiKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSkoKTsK
KyAgICAKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9j
b21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9u
LWNhcGFiaWxpdGllcy0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMv
Y29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlv
bi1jYXBhYmlsaXRpZXMtMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEwNDNiODBmNTIyZGRl
MjM5ZWEyMjZmNzI4YmU4MjJiNzg0NDNlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVy
ZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCkubGVu
Z3RoIGJlY2FtZSAxCitQQVNTIGludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVt
ZW50KGVsZW1lbnQpLmxlbmd0aCBiZWNhbWUgMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVu
dC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmFuaW1h
dGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2Vs
ZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNzllODIxNDNhZGY2ZDFk
NmNkOWM5ZWRiMTRlMWRkZDQwMWE5NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVu
dC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTMuaHRtbApAQCAtMCwwICsxLDMyIEBACis8ZGl2
IGlkPSJ0YXJnZXQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91
bmQtY29sb3I6IGJsYWNrOyI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY29uc3QgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2NvbnN0IGR1cmF0aW9uID0gMTAwMDsKK2NvbnN0IGl0
ZXJhdGlvbnMgPSBJbmZpbml0eTsKKworY29uc3Qgc2hvdWxkQmVjb21lRXF1YWxBc3luYyA9IGFz
eW5jIChhY3R1YWwsIGV4cGVjdGVkKSA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3VsZEJl
Y29tZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIHJlc29sdmUpKTsKKworKGFzeW5jICgpID0+IHsK
KyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGJlIHJ1biBpbiBhIHRlc3QgcnVubmVyLiIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAvLyBGaXJzdCwgc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRlZCBhbmltYXRpb24gdGhh
dCBjYW4gYmUgYWNjZWxlcmF0ZWQuCisgICAgZWxlbWVudC5hbmltYXRlKHsgc2NhbGU6IFsxLCAy
XSB9LCB7IGR1cmF0aW9uLCBpdGVyYXRpb25zIH0pOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVx
dWFsQXN5bmMoImludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1l
bnQpLmxlbmd0aCIsICIxIik7CisKKyAgICAvLyBOb3csIHN0YXJ0IGFub3RoZXIgdHJhbnNmb3Jt
LXJlbGF0ZWQgYW5pbWF0aW9uIHRoYXQgY2Fubm90IGJlIGFjY2VsZXJhdGVkIGR1ZSB0byB1c2lu
ZworICAgIC8vIHN0ZXBzKCkgZWFzaW5nLiBUaGlzIHNob3VsZCBub3Qgb25seSBwcmV2ZW50IHRo
aXMgYW5pbWF0aW9uIGZyb20gcnVubmluZyBhY2NlbGVyYXRlZCwKKyAgICAvLyBidXQgYWxzbyBt
YWtlIHRoZSBwcmV2aW91cyBhbmltYXRpb24gcmV2ZXJ0IHRvIGEgbm9uLWFjY2VsZXJhdGVkIHN0
YXRlLgorICAgIGVsZW1lbnQuYW5pbWF0ZSh7IHJvdGF0ZTogWyIzMGRlZyIsICI2MGRlZyJdIH0s
IHsgZHVyYXRpb24sIGl0ZXJhdGlvbnMsIGVhc2luZzogInN0ZXBzKDYwKSIgfSk7CisgICAgYXdh
aXQgc2hvdWxkQmVjb21lRXF1YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9u
c0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3RoIiwgIjAiKTsKKworICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfSkoKTsKKyAgICAKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZm
ZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZl
cmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MTA0M2I4MGY1MjJkZGUyMzllYTIyNmY3MjhiZTgyMmI3ODQ0M2VlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlv
bnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQo
ZWxlbWVudCkubGVuZ3RoIGJlY2FtZSAxCitQQVNTIGludGVybmFscy5hY2NlbGVyYXRlZEFuaW1h
dGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxlbmd0aCBiZWNhbWUgMAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13
aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZl
cmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1OWIyYjAz
NzgwMGM5MTRlYjdhNDdjMGRiOWQ1NDcwY2I2Y2I4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgt
ZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMuaHRtbApAQCAtMCwwICsxLDMxIEBA
Cis8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJh
Y2tncm91bmQtY29sb3I6IGJsYWNrOyI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY29uc3QgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2NvbnN0IHRpbWluZyA9IHsgZHVyYXRpb246
IDEwMDAsIGl0ZXJhdGlvbnM6IEluZmluaXR5IH07CisKK2NvbnN0IHNob3VsZEJlY29tZUVxdWFs
QXN5bmMgPSBhc3luYyAoYWN0dWFsLCBleHBlY3RlZCkgPT4gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiBzaG91bGRCZWNvbWVFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCByZXNvbHZlKSk7CisKKyhhc3lu
YyAoKSA9PiB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhd2luZG93LmludGVybmFs
cykgeworICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IHNob3VsZCBiZSBydW4gaW4gYSB0ZXN0IHJ1
bm5lci4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgLy8gRmlyc3QsIHN0YXJ0IGEgdHJhbnNmb3JtLXJlbGF0ZWQgYW5p
bWF0aW9uIHRoYXQgY2FuIGJlIGFjY2VsZXJhdGVkLgorICAgIGVsZW1lbnQuYW5pbWF0ZSh7IHNj
YWxlOiBbMSwgMl0gfSwgdGltaW5nKTsKKyAgICBhd2FpdCBzaG91bGRCZWNvbWVFcXVhbEFzeW5j
KCJpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChlbGVtZW50KS5sZW5n
dGgiLCAiMSIpOworCisgICAgLy8gTm93LCBzdGFydCBhbm90aGVyIHRyYW5zZm9ybS1yZWxhdGVk
IGFuaW1hdGlvbiB0aGF0IGNhbm5vdCBiZSBhY2NlbGVyYXRlZCBkdWUgdG8gcnVubmluZyBhdAor
ICAgIC8vIGEgc3BlZWQgb3RoZXIgdGhhbiAxLiBUaGlzIHNob3VsZCBub3Qgb25seSBwcmV2ZW50
IHRoaXMgYW5pbWF0aW9uIGZyb20gcnVubmluZyBhY2NlbGVyYXRlZCwKKyAgICAvLyBidXQgYWxz
byBtYWtlIHRoZSBwcmV2aW91cyBhbmltYXRpb24gcmV2ZXJ0IHRvIGEgbm9uLWFjY2VsZXJhdGVk
IHN0YXRlLgorICAgIGVsZW1lbnQuYW5pbWF0ZSh7IHJvdGF0ZTogWyIzMGRlZyIsICI2MGRlZyJd
IH0sIHRpbWluZykudXBkYXRlUGxheWJhY2tSYXRlKDAuNSk7CisgICAgYXdhaXQgc2hvdWxkQmVj
b21lRXF1YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQo
ZWxlbWVudCkubGVuZ3RoIiwgIjAiKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fSkoKTsKKyAgICAKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417682</attachid>
            <date>2021-01-15 00:14:12 -0800</date>
            <delta_ts>2021-01-15 02:38:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218655-20210115091411.patch</filename>
            <type>text/plain</type>
            <size>28868</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjZmEzZWJiYWNlNTE3
OGY5YWY5NjZkZTYyZDg0N2Q1YTA2MmI3NS4uMmI3YTg2ODdiZGQ3ZTBjYTY1MThhNDU1ZjVjYmRm
MDc0YjQ3M2QwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVyc2VkIHRyYW5z
Zm9ybSBhbmltYXRpb24gbm90IGFwcGxpZWQgYWxvbmdzaWRlIG90aGVyIHRyYW5zZm9ybSBhbmlt
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg2NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMTE2Mjg0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiB3ZWJhbmltYXRpb25zL2Nv
bWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24t
Y2FwYWJpbGl0aWVzLTIuaHRtbAorICAgICAgICAgICAgICAgd2ViYW5pbWF0aW9ucy9jb21iaW5p
bmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFi
aWxpdGllcy0zLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRy
YW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRp
ZXMuaHRtbAorCisgICAgICAgIFdoaWxlLCBpbiB0aGVvcnksIGFuaW1hdGlvbnMgZm9yIGEgdHJh
bnNmb3JtLXJlbGF0ZWQgQ1NTIHByb3BlcnR5ICh0cmFuc2xhdGUsIHJvdGF0ZSwgc2NhbGUgYW5k
IHRyYW5zZm9ybSkKKyAgICAgICAgY2FuIGJlIGFjY2VsZXJhdGVkLCB0aGVyZSBhcmUgdmFyaW91
cyByZWFzb25zIHdoeSBpdCBtaWdodCBub3QsIGluIGZhY3QsIHJ1biBhY2NlbGVyYXRlZC4KKwor
ICAgICAgICBPbmUgZXhhbXBsZSBpcyB0aGF0IHRoZSB0aW1pbmcgZnVuY3Rpb24gaXMgbm90IHNv
bWV0aGluZyB3ZSBjYW4gdHJhbnNsYXRlIGluIHRlcm1zIENvcmUgQW5pbWF0aW9uIGNhbgorICAg
ICAgICB1bmRlcnN0YW5kLCBzdWNoIGFzIHRoZSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4gSW4g
dGhpcyBjYXNlLCB0aGUgS2V5ZnJhbWVFZmZlY3QgaXRzZWxmIGlzIGF3YXJlIG9mCisgICAgICAg
IHRoZSBsaW1pdGF0aW9uIGFuZCB0aGUgbWV0aG9kIEtleWZyYW1lRWZmZWN0OjpjYW5CZUFjY2Vs
ZXJhdGVkKCkgcmV0dXJucyBmYWxzZS4KKworICAgICAgICBBbm90aGVyIGV4YW1wbGUgaXMgdGhh
dCB0aGUgcGxheWJhY2sgcmF0ZSBvZiB0aGUgYW5pbWF0aW9uIGlzIG5vdCAxLCB3aGljaCB3ZSBj
dXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBmb3IKKyAgICAgICAgQ29yZSBBbmltYXRpb24gYW5pbWF0
aW9ucyAoc2VlIGJ1ZyAyMTE4MzkpLiBJbiB0aGlzIGNhc2UsIEdyYXBoaWNzTGF5ZXJDQSBpcyB3
aGVyZSB0aGUgaW1wb3NzaWJpbGl0eSB0bworICAgICAgICBydW4gYW4gYW5pbWF0aW9uIGFjY2Vs
ZXJhdGVkIGlzIGRldGVybWluZWQuCisKKyAgICAgICAgV2hpbGUgd2Ugc3VwcG9ydCBydW5uaW5n
IHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbnMgd2l0aCBvciB3aXRob3V0IGFjY2VsZXJhdGlv
biwgb25lIHRoaW5nIHdlIGNhbm5vdAorICAgICAgICBzdXBwb3J0IGlzLCBmb3IgdGhlIHNhbWUg
ZWxlbWVudCwgcnVubmluZyBzb21lIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbnMgd2l0aCBh
Y2NlbGVyYXRpb24sIGFuZCBzb21lCisgICAgICAgIHdpdGhvdXQuCisKKyAgICAgICAgVGh1cywg
cmVnYXJkbGVzcyBvZiB3aGVyZSB3ZSBkZXRlcm1pbmUgdGhhdCBhIHRyYW5zZm9ybS1yZWxhdGVk
IGFuaW1hdGlvbiBjYW5ub3QgYmUgYWNjZWxlcmF0ZWQsIHdlIG5lZWQKKyAgICAgICAgdG8gc2Vu
ZCB0aGlzIGluZm9ybWF0aW9uIHVwIHRvIHRoZSBLZXlmcmFtZUVmZmVjdFN0YWNrIGluIHdoaWNo
IHRoaXMgYW5pbWF0aW9uJ3MgZWZmZWN0IGJlbG9uZ3MgdG8gbWFrZQorICAgICAgICBzdXJlIHRo
YXQgYW55IG90aGVyIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbiB0aGF0IG1heSBhbHJlYWR5
IGJlIHJ1bm5pbmcgYWNjZWxlcmF0ZWQgbm8gbG9uZ2VyIGRvZXMKKyAgICAgICAgYW5kIGNvbnRp
bnVlcyBydW5uaW5nIHdpdGhvdXQgYWNjZWxlcmF0aW9uLgorCisgICAgICAgIFRoZXJlIGFyZSB0
d28gbG9jYXRpb25zIHdoZXJlIHdlIGRldGVybWluZSB0aGF0IGEgdHJhbnNmb3JtLXJlbGF0ZWQg
YW5pbWF0aW9uIGNhbm5vdCBiZSBhY2NlbGVyYXRlZDoKKworICAgICAgICAgICAgMS4gaW4gRG9j
dW1lbnRUaW1lbGluZTo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zKCkgdW5kZXIg
d2hpY2ggd2Ugc3RhcnQsIHVwZGF0ZSBvciBzdG9wCisgICAgICAgICAgICAgICBhY2NlbGVyYXRl
ZCBhbmltYXRpb25zIHRoYXQgaGF2ZSBiZWVuIGludmFsaWRhdGVkIHNpbmNlIHRoZSBsYXN0IHBh
Z2UgcmVuZGVyaW5nLAorICAgICAgICAgICAgMi4gaW4gS2V5ZnJhbWVFZmZlY3Q6OnVwZGF0ZUFj
Y2VsZXJhdGVkQWN0aW9ucygpIHdoaWNoIGlzIGNhbGxlZCBmb3IgZWFjaCBwYWdlIHJlbmRlcmlu
ZywgaW5jbHVkaW5nCisgICAgICAgICAgICAgICBhbmltYXRpb25zIHRoYXQgY2Fubm90IGJlIGFj
Y2VsZXJhdGVkLgorCisgICAgICAgIEluIHRoZSBmaXJzdCBjYXNlLCB3ZSBjYXRjaCBzaXR1YXRp
b25zIHdoZXJlIGFuIGFuaW1hdGlvbiB0aGF0IGNvdWxkIGhhdmUgYmVlbiBhY2NlbGVyYXRlZCBi
dXQgZmFpbGVkCisgICAgICAgIHRvIGJlIHN0YXJ0ZWQgZHVlIHRvIHRoZSBpbnRlcm5hbCBsb2dp
YyBvZiBHcmFwaGljc0xheWVyQ0EuIFdlIHVzZSB0aGUgbmV3IEtleWZyYW1lRWZmZWN0IG1ldGhv
ZAorICAgICAgICBhcHBseVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKSByZXR1cm4gdmFsdWUg
dG8gZGV0ZXJtaW5lIHRoaXMsIGFuZCBmb3IgZWFjaCBlZmZlY3Qgd2hlcmUgdGhlIHJlc3VsdAor
ICAgICAgICBpbmRpY2F0ZXMgdGhhdCBhIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbiBjb3Vs
ZCBub3QgYmUgYWNjZWxlcmF0ZWQsIHdlIGFkZCB0aGUgS2V5ZnJhbWVFZmZlY3RTdGFjaworICAg
ICAgICB0byB3aGljaCBpdCBiZWxvbmdzIGFuZCwgb25jZSB3ZSdyZSBkb25lIHdpdGggdXBkYXRp
bmcgYWxsIGVmZmVjdHMsIGNhbGwgdGhlIG5ldworICAgICAgICBzdG9wQWNjZWxlcmF0aW5nVHJh
bnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoKSBtZXRob2Qgb24gdGhlIGtleWZyYW1lIGVmZmVjdCBz
dGFjay4KKworICAgICAgICBJbiB0aGUgc2Vjb25kIGNhc2UsIHdlIGNhdGNoIHNpdHVhdGlvbnMg
d2hlcmUgYW4gYW5pbWF0aW9uIGlzIGtub3duIHRvIG5vdCBiZSBhYmxlIHRvIHJ1biBhY2NlbGVy
YXRlZAorICAgICAgICBldmVuIHdpdGhvdXQgaW52b2x2aW5nIEdyYXBoaWNzTGF5ZXJDQS4gV2Ug
Y2hlY2sgd2hldGhlciB0aGUgYW5pbWF0aW9uIHRhcmdldHMgYSB0cmFuc2Zvcm0tcmVsYXRlZAor
ICAgICAgICBwcm9wZXJ0eSBhbmQgaWYgaXQgaXMgYWN0aXZlLCBhbmQgaWYgc28gY2FsbCBzdG9w
QWNjZWxlcmF0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoKQorICAgICAgICBvbiB0aGUg
a2V5ZnJhbWUgZWZmZWN0IHN0YWNrIHRoZXJlIGFzIHdlbGwuCisKKyAgICAgICAgV2hlbiBLZXlm
cmFtZUVmZmVjdFN0YWNrOjpzdG9wQWNjZWxlcmF0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnRp
ZXMoKSBpcyBjYWxsZWQsIHdlIGdvCisgICAgICAgIHRocm91Z2ggYWxsIHRoZSByZWdpc3RlcmVk
IGVmZmVjdHMgYW5kIGNhbGwgc3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0
aWVzKCkuIFRoaXMgbmV3CisgICAgICAgIEtleWZyYW1lRWZmZWN0IG1ldGhvZCB3aWxsIGVpdGhl
ciBhZGQgYSBwZW5kaW5nIGFjY2VsZXJhdGVkIGFjdGlvbiB0byBzdG9wIHRoZSBhY2NlbGVyYXRl
ZCBhbmltYXRpb24sCisgICAgICAgIG9yIGlmIHdlJ3JlIGN1cnJlbnRseSBhcHBseSBhY2NlbGVy
YXRlZCBhY3Rpb25zIChpZS4gZHVyaW5nIERvY3VtZW50VGltZWxpbmU6OmFwcGx5UGVuZGluZ0Fj
Y2VsZXJhdGVkQW5pbWF0aW9ucygpKSwKKyAgICAgICAgd2Ugc3RvcCB0aGUgYWNjZWxlcmF0ZWQg
YW5pbWF0aW9uIHJpZ2h0IGF3YXkuCisKKyAgICAgICAgSW4gYm90aCBjYXNlcyB3ZSBrbm93IG5v
dCB0byB0cnkgcnVubmluZyB0aGlzIGFuaW1hdGlvbiBhZ2FpbiB3aXRoIGFjY2VsZXJhdGlvbiBi
eSBzZXR0aW5nIG1fcnVubmluZ0FjY2VsZXJhdGVkCisgICAgICAgIHRvIFJ1bm5pbmdBY2NlbGVy
YXRlZDo6Tm8uCisKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjphcHBseVBlbmRpbmdBY2NlbGVyYXRl
ZEFuaW1hdGlvbnMpOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxh
dGVkUHJvcGVydHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6Omlz
UnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6dXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjphcHBseVBlbmRpbmdBY2NlbGVyYXRl
ZEFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnN0b3BBY2NlbGVy
YXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydGllcyk6CisgICAgICAgICogYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0Lmg6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3RTdGFjazo6c3RvcEFjY2VsZXJh
dGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3RTdGFjay5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjphcHBseVBlbmRpbmdBY2NlbGVyYXRl
ZEFjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoK
KyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uVHlwZXMuaDoKKwogMjAyMS0wMS0xMiAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjY3NTcxKTogYmxhY2sgbGluZSBhcHBlYXJzIHVwb24gbmF2aWdhdGluZyBiYWNrIGZyb20g
YXBwbGUuY29tIHNob3BwaW5nIGJhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuY3BwCmluZGV4IGNmZmQxOGEyYjYxNzMzMWJjZjE4N2MzYjA5YzI5MzExNTU5
ZmU0MDIuLmFmM2FjMmM2NDliNDIyOTcxMmIxYTEwODlkZTIzNzhhMGQzMTI4OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJXZWJBbmltYXRp
b25UeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0MiwxNSArNDQzLDMyIEBA
IHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25z
KCkKICAgICBhdXRvIGFjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFu
Z2UgPSBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2U7CiAg
ICAgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlLmNsZWFy
KCk7CiAKKyAgICAvLyBBbmltYXRpb25zIG1heSBmYWlsIHRvIHJ1biBhY2NlbGVyYXRlZCBmb3Ig
cmVhc29ucyBwcml2YXRlIHRvIEdyYXBoaWNzTGF5ZXJDQS4gSWYgdGhhdCBoYXBwZW5zLCBhbmQg
dGhlIGFuaW1hdGlvbgorICAgIC8vIGluIHF1ZXN0aW9uIHRhcmdldHMgYSB0cmFuc2Zvcm0tcmVs
YXRlZCBwcm9wZXJ0eSwgd2UgbXVzdCBwcmV2ZW50IGFsbCBvdGhlciB0cmFuc2Zvcm0tcmVsYXRl
ZCBhbmltYXRpb25zIGZvciB0aGlzCisgICAgLy8gZWxlbWVudCB0byBydW4gYWNjZWxlcmF0ZWQg
c2luY2Ugd2UgY2FuJ3QgcnVuIHNvbWUgdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9ucyBhY2Nl
bGVyYXRlZCwgYW5kIHNvbWUgbm90LiBUbyBkbworICAgIC8vIHRoaXMsIHdlIGtlZXAgYSBsaXN0
IG9mIGFsbCBLZXlmcmFtZUVmZmVjdFN0YWNrIG9iamVjdHMgY29udGFpbmluZyBhbiBlZmZlY3Qg
dGhhdCBmYWlsZWQgdG8gc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRlZAorICAgIC8vIGFuaW1hdGlv
biBzbyB0aGF0IHdlIGNhbiByZXR1cm4gYW55IHRyYW5zZm9ybS1yZWxhdGVkIGFjY2VsZXJhdGVk
IGFuaW1hdGlvbiB0byBydW4gbm9uLWFjY2VsZXJhdGVkLgorICAgIEhhc2hTZXQ8S2V5ZnJhbWVF
ZmZlY3RTdGFjayo+IGVmZmVjdFN0YWNrc0NvbnRhaW5pbmdFZmZlY3RUaGF0RmFpbGVkVG9SdW5B
Y2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb247CisKICAgICBib29sIGhhc0ZvcmNl
ZExheW91dCA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogYWNjZWxlcmF0ZWRB
bmltYXRpb25zUGVuZGluZ1J1bm5pbmdTdGF0ZUNoYW5nZSkgewotICAgICAgICBpZiAoIWhhc0Zv
cmNlZExheW91dCkgewotICAgICAgICAgICAgYXV0byogZWZmZWN0ID0gYW5pbWF0aW9uLT5lZmZl
Y3QoKTsKLSAgICAgICAgICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkKLSAgICAg
ICAgICAgICAgICBoYXNGb3JjZWRMYXlvdXQgfD0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVm
ZmVjdCktPmZvcmNlTGF5b3V0SWZOZWVkZWQoKTsKKyAgICAgICAgYXV0byogZWZmZWN0ID0gYW5p
bWF0aW9uLT5lZmZlY3QoKTsKKyAgICAgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8mIGtleWZyYW1lRWZmZWN0
ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCplZmZlY3QpOworICAgICAgICBpZiAoIWhhc0Zv
cmNlZExheW91dCkKKyAgICAgICAgICAgIGhhc0ZvcmNlZExheW91dCB8PSBrZXlmcmFtZUVmZmVj
dC5mb3JjZUxheW91dElmTmVlZGVkKCk7CisgICAgICAgIGF1dG8gcGVuZGluZ0FjY2VsZXJhdGlv
bkFjdGlvblJlc3VsdCA9IGtleWZyYW1lRWZmZWN0LmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0
aW9ucygpOworICAgICAgICBpZiAocGVuZGluZ0FjY2VsZXJhdGlvbkFjdGlvblJlc3VsdC5jb250
YWlucyhBY2NlbGVyYXRlZEFjdGlvbkFwcGxpY2F0aW9uUmVzdWx0OjpUcmFuc2Zvcm1SZWxhdGVk
QW5pbWF0aW9uQ2Fubm90QmVBY2NlbGVyYXRlZCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChrZXlm
cmFtZUVmZmVjdC50YXJnZXRTdHlsZWFibGUoKSk7CisgICAgICAgICAgICBBU1NFUlQoa2V5ZnJh
bWVFZmZlY3QudGFyZ2V0U3R5bGVhYmxlKCktPmtleWZyYW1lRWZmZWN0U3RhY2soKSk7CisgICAg
ICAgICAgICBlZmZlY3RTdGFja3NDb250YWluaW5nRWZmZWN0VGhhdEZhaWxlZFRvUnVuQWNjZWxl
cmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uLmFkZChrZXlmcmFtZUVmZmVjdC50YXJnZXRT
dHlsZWFibGUoKS0+a2V5ZnJhbWVFZmZlY3RTdGFjaygpKTsKICAgICAgICAgfQotICAgICAgICBh
bmltYXRpb24tPmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpOwogICAgIH0KKworICAg
IGZvciAoYXV0byYgZWZmZWN0U3RhY2sgOiBlZmZlY3RTdGFja3NDb250YWluaW5nRWZmZWN0VGhh
dEZhaWxlZFRvUnVuQWNjZWxlcmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uKQorICAgICAg
ICBlZmZlY3RTdGFjay0+c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVz
KFVzZUFjY2VsZXJhdGVkQWN0aW9uOjpObyk7CiB9CiAKIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6
cnVubmluZ0FuaW1hdGlvbnNGb3JSZW5kZXJlckFyZUFsbEFjY2VsZXJhdGVkKGNvbnN0IFJlbmRl
ckJveE1vZGVsT2JqZWN0JiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IGQxMjIyODhiMWM2Y2EzYmEzNWE0OGFiNDhlM2Rj
MDc5MTZlOTk1NjQuLmYyOTgyYjQ2Y2RlNzAyZDVjNTk4YzNkYTQ0MTFhZjdlY2M5OWVhYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtMTI4MSwx
NyArMTI4MSwxOSBAQCBib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1bm5pbmdBY2NlbGVyYXRlZEFu
aW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcAogICAgIHJldHVybiBpc1J1bm5p
bmdBY2NlbGVyYXRlZCgpICYmIENTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25PZlByb3Bl
cnR5SXNBY2NlbGVyYXRlZChwcm9wZXJ0eSkgJiYgbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0
aWVzKCkuY29udGFpbnMocHJvcGVydHkpOwogfQogCi1ib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1
bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKSBjb25zdAorYm9vbCBL
ZXlmcmFtZUVmZmVjdDo6aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSBjb25z
dAogewotICAgIGlmICghaXNSdW5uaW5nQWNjZWxlcmF0ZWQoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCiAgICAgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpLmNvbnRh
aW5zKENTU1Byb3BlcnR5VHJhbnNsYXRlKQogICAgICAgICB8fCBtX2JsZW5kaW5nS2V5ZnJhbWVz
LnByb3BlcnRpZXMoKS5jb250YWlucyhDU1NQcm9wZXJ0eVNjYWxlKQogICAgICAgICB8fCBtX2Js
ZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKS5jb250YWlucyhDU1NQcm9wZXJ0eVJvdGF0ZSkK
ICAgICAgICAgfHwgbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkuY29udGFpbnMoQ1NT
UHJvcGVydHlUcmFuc2Zvcm0pOwogfQogCitib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1bm5pbmdB
Y2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBpc1J1bm5pbmdBY2NlbGVyYXRlZCgpICYmIGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVsYXRlZFBy
b3BlcnR5KCk7Cit9CisKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQogewogICAg
IExPR19XSVRIX1NUUkVBTShBbmltYXRpb25zLCBzdHJlYW0gPDwgIktleWZyYW1lRWZmZWN0Ojpp
bnZhbGlkYXRlIG9uIGVsZW1lbnQgIiA8PCBWYWx1ZU9yTnVsbCh0YXJnZXRFbGVtZW50T3JQc2V1
ZG9FbGVtZW50KCkpKTsKQEAgLTE1NzQsOCArMTU3NiwxOSBAQCBib29sIEtleWZyYW1lRWZmZWN0
OjpjYW5CZUFjY2VsZXJhdGVkKCkgY29uc3QKIAogdm9pZCBLZXlmcmFtZUVmZmVjdDo6dXBkYXRl
QWNjZWxlcmF0ZWRBY3Rpb25zKCkKIHsKLSAgICBpZiAoIWNhbkJlQWNjZWxlcmF0ZWQoKSkKKyAg
ICBpZiAoIWNhbkJlQWNjZWxlcmF0ZWQoKSkgeworICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVy
ZSB0aGlzIGFuaW1hdGlvbiBpcyBhY3RpdmVseSB0YXJnZXRpbmcgYSB0cmFuc2Zvcm0tcmVsYXRl
ZCBwcm9wZXJ0eSBhbmQgeWV0CisgICAgICAgIC8vIGNhbm5vdCBiZSBhY2NlbGVyYXRlZCwgd2Ug
bXVzdCBub3RpZnkgdGhlIGVmZmVjdCBzdGFjayBzdWNoIHRoYXQgYW55IHJ1bm5pbmcgYWNjZWxl
cmF0ZWQKKyAgICAgICAgLy8gdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRhcmdldGluZyB0
aGlzIGVsZW1lbnQgcmV2ZXJ0cyB0byBydW5uaW5nIG5vbi1hY2NlbGVyYXRlZC4KKyAgICAgICAg
aWYgKGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkKKyAgICAgICAgICAgICYm
IGFuaW1hdGlvbigpLT5wbGF5U3RhdGUoKSA9PSBXZWJBbmltYXRpb246OlBsYXlTdGF0ZTo6UnVu
bmluZworICAgICAgICAgICAgJiYgZ2V0Q29tcHV0ZWRUaW1pbmcoKS5waGFzZSA9PSBBbmltYXRp
b25FZmZlY3RQaGFzZTo6QWN0aXZlKSB7CisgICAgICAgICAgICBBU1NFUlQodGFyZ2V0U3R5bGVh
YmxlKCkpOworICAgICAgICAgICAgQVNTRVJUKHRhcmdldFN0eWxlYWJsZSgpLT5rZXlmcmFtZUVm
ZmVjdFN0YWNrKCkpOworICAgICAgICAgICAgdGFyZ2V0U3R5bGVhYmxlKCktPmtleWZyYW1lRWZm
ZWN0U3RhY2soKS0+c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKFVz
ZUFjY2VsZXJhdGVkQWN0aW9uOjpZZXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBhdXRvIGNvbXB1dGVkVGltaW5nID0gZ2V0Q29tcHV0ZWRUaW1pbmcoKTsKIApA
QCAtMTY2NywxNSArMTY4MCwxNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjphbmltYXRpb25TdXNw
ZW5zaW9uU3RhdGVEaWRDaGFuZ2UoYm9vbCBhbmltYXRpb25Jc1N1c3BlbmRlZAogICAgICAgICBh
ZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oYW5pbWF0aW9uSXNTdXNwZW5kZWQgPyBBY2NlbGVy
YXRlZEFjdGlvbjo6UGF1c2UgOiBBY2NlbGVyYXRlZEFjdGlvbjo6UGxheSk7CiB9CiAKLXZvaWQg
S2V5ZnJhbWVFZmZlY3Q6OmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpCitPcHRpb25T
ZXQ8QWNjZWxlcmF0ZWRBY3Rpb25BcHBsaWNhdGlvblJlc3VsdD4gS2V5ZnJhbWVFZmZlY3Q6OmFw
cGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpCiB7CisgICAgT3B0aW9uU2V0PEFjY2VsZXJh
dGVkQWN0aW9uQXBwbGljYXRpb25SZXN1bHQ+IHJlc3VsdDsKKwogICAgIC8vIE9uY2UgYW4gYWNj
ZWxlcmF0ZWQgYW5pbWF0aW9uIGhhcyBiZWVuIGNvbW1pdHRlZCwgd2Ugbm8gbG9uZ2VyIHdhbnQg
dG8gZm9yY2UgYSBsYXlvdXQuCiAgICAgLy8gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZvcm1l
ZCBieSBhIGNhbGwgdG8gZm9yY2VMYXlvdXRJZk5lZWRlZCgpIHByaW9yIHRvIGFwcGx5aW5nCiAg
ICAgLy8gcGVuZGluZyBhY2NlbGVyYXRlZCBhY3Rpb25zLgogICAgIG1fbmVlZHNGb3JjZWRMYXlv
dXQgPSBmYWxzZTsKIAogICAgIGlmIChtX3BlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBhdXRv
KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlciB8fCAhcmVu
ZGVyZXItPmlzQ29tcG9zaXRlZCgpKSB7CkBAIC0xNjg1LDcgKzE3MDAsNyBAQCB2b2lkIEtleWZy
YW1lRWZmZWN0OjphcHBseVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKQogICAgICAgICAgICAg
bV9wZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3J1bm5p
bmdBY2NlbGVyYXRlZCA9IFJ1bm5pbmdBY2NlbGVyYXRlZDo6Tm90U3RhcnRlZDsKICAgICAgICAg
fQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAg
YXV0byBwZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zID0gbV9wZW5kaW5nQWNjZWxlcmF0ZWRBY3Rp
b25zOwpAQCAtMTcxOSw3ICsxNzM0LDkgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5k
aW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShBbmlt
YXRpb25zLCBzdHJlYW0gPDwgIktleWZyYW1lRWZmZWN0ICIgPDwgdGhpcyA8PCAiIGFwcGx5UGVu
ZGluZ0FjY2VsZXJhdGVkQWN0aW9ucyAiIDw8IG1fYmxlbmRpbmdLZXlmcmFtZXMuYW5pbWF0aW9u
TmFtZSgpIDw8ICIgUGxheSwgc3RhcnRlZCBhY2NlbGVyYXRlZDogIiA8PCAobV9ydW5uaW5nQWNj
ZWxlcmF0ZWQgPT0gUnVubmluZ0FjY2VsZXJhdGVkOjpZZXMpKTsKICAgICAgICAgICAgIGlmICht
X3J1bm5pbmdBY2NlbGVyYXRlZCA9PSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5vKSB7CiAgICAgICAg
ICAgICAgICAgbV9sYXN0UmVjb3JkZWRBY2NlbGVyYXRlZEFjdGlvbiA9IEFjY2VsZXJhdGVkQWN0
aW9uOjpTdG9wOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBpZiAo
aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFkZChBY2NlbGVyYXRlZEFjdGlvbkFwcGxpY2F0aW9uUmVzdWx0OjpUcmFuc2Zv
cm1SZWxhdGVkQW5pbWF0aW9uQ2Fubm90QmVBY2NlbGVyYXRlZCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFjY2VsZXJhdGVkQWN0aW9uOjpQYXVzZToKQEAgLTE3MzYsMTMgKzE3NTMsNDAgQEAg
dm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKICAg
ICAgICAgICAgIHJlbmRlcmVyLT5hbmltYXRpb25GaW5pc2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVz
LmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgICAgICBpZiAoIWRvY3VtZW50KCktPnJlbmRlclRy
ZWVCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICAgICAgICAgIG1fdGFyZ2V0LT5pbnZhbGlkYXRl
U3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7Ci0gICAgICAgICAgICBtX3J1bm5pbmdBY2NlbGVy
YXRlZCA9IFJ1bm5pbmdBY2NlbGVyYXRlZDo6Tm90U3RhcnRlZDsKKyAgICAgICAgICAgIG1fcnVu
bmluZ0FjY2VsZXJhdGVkID0gY2FuQmVBY2NlbGVyYXRlZCgpID8gUnVubmluZ0FjY2VsZXJhdGVk
OjpOb3RTdGFydGVkIDogUnVubmluZ0FjY2VsZXJhdGVkOjpObzsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFjY2VsZXJhdGVkQWN0aW9uOjpUcmFuc2Zvcm1DaGFuZ2U6CiAgICAg
ICAgICAgICByZW5kZXJlci0+dHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5RGlkQ2hhbmdlKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKworICAgIGlmIChtX3J1bm5pbmdB
Y2NlbGVyYXRlZCA9PSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5vICYmIGlzVGFyZ2V0aW5nVHJhbnNm
b3JtUmVsYXRlZFByb3BlcnR5KCkpCisgICAgICAgIHJlc3VsdC5hZGQoQWNjZWxlcmF0ZWRBY3Rp
b25BcHBsaWNhdGlvblJlc3VsdDo6VHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbkNhbm5vdEJlQWNj
ZWxlcmF0ZWQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBLZXlmcmFtZUVmZmVj
dDo6c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKFVzZUFjY2VsZXJh
dGVkQWN0aW9uIHVzZUFjY2VsZXJhdGVkQWN0aW9uKQoreworICAgIGlmICghaXNSdW5uaW5nQWNj
ZWxlcmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICh1c2VBY2NlbGVyYXRlZEFjdGlvbiA9PSBVc2VBY2NlbGVyYXRlZEFjdGlvbjo6WWVz
KSB7CisgICAgICAgIGFkZFBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbihBY2NlbGVyYXRlZEFjdGlv
bjo6U3RvcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiByZW5kZXJlciA9
IHRoaXMtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJlciB8fCAhcmVuZGVyZXItPmlzQ29t
cG9zaXRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoZG9jdW1lbnQoKSk7Cisg
ICAgcmVuZGVyZXItPmFuaW1hdGlvbkZpbmlzaGVkKG1fYmxlbmRpbmdLZXlmcmFtZXMuYW5pbWF0
aW9uTmFtZSgpKTsKKyAgICBpZiAoIWRvY3VtZW50KCktPnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3ll
ZCgpKQorICAgICAgICBtX3RhcmdldC0+aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlv
bigpOworCisgICAgbV9ydW5uaW5nQWNjZWxlcmF0ZWQgPSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5v
OwogfQogCiBSZWY8Y29uc3QgQW5pbWF0aW9uPiBLZXlmcmFtZUVmZmVjdDo6YmFja2luZ0FuaW1h
dGlvbkZvckNvbXBvc2l0ZWRSZW5kZXJlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IDQ0MDI3NTQ4YWJiNTM2OWVkYTkwOGQyZGI4MTllMWE4
YmI5Y2Q2MTQuLjllZTRmMTk5NWI0MGIwMzg4Zjc1YjE2Zjg1MmFkNjViMjI2Nzk5YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC0xMzMsNyArMTMzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZWxpbmVEaWRDaGFuZ2UoQW5pbWF0aW9u
VGltZWxpbmUqKSBmaW5hbDsKICAgICB2b2lkIGFuaW1hdGlvblRpbWluZ0RpZENoYW5nZSgpOwog
ICAgIHZvaWQgdHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5RGlkQ2hhbmdlKCk7Ci0gICAgdm9pZCBh
cHBseVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKTsKKyAgICBPcHRpb25TZXQ8QWNjZWxlcmF0
ZWRBY3Rpb25BcHBsaWNhdGlvblJlc3VsdD4gYXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25z
KCk7CiAKICAgICB2b2lkIHdpbGxDaGFuZ2VSZW5kZXJlcigpOwogCkBAIC0xNzIsNiArMTcyLDgg
QEAgcHVibGljOgogICAgIGJvb2wgcmVxdWlyZXNQc2V1ZG9FbGVtZW50KCkgY29uc3Q7CiAgICAg
Ym9vbCBoYXNJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0OwogCisgICAgdm9pZCBzdG9wQWNjZWxl
cmF0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoVXNlQWNjZWxlcmF0ZWRBY3Rpb24pOwor
CiBwcml2YXRlOgogICAgIEtleWZyYW1lRWZmZWN0KEVsZW1lbnQqLCBQc2V1ZG9JZCk7CiAKQEAg
LTIwMyw2ICsyMDUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QmxlbmRpbmdLZXlmcmFtZXMo
S2V5ZnJhbWVMaXN0Jik7CiAgICAgU2Vjb25kcyB0aW1lVG9OZXh0VGljaygpIGNvbnN0IGZpbmFs
OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGRvdWJsZSkgY29u
c3QgZmluYWw7CisgICAgYm9vbCBpc1RhcmdldGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgp
IGNvbnN0OwogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ1RyYW5zZm9ybUZ1bmN0aW9uTGlzdHMo
KTsKICAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CiAgICAg
dm9pZCBjaGVja0Zvck1hdGNoaW5nQ29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAKaW5kZXggMTJh
ZjA0ZmVkNjg3OTY0OWJiOWQwMTkxZDA3YjJhODM3MWNjYjZiZC4uNTcxM2Y2ZjVmNmE3MWQ1YmQ0
NTZlZDIyNzJjMzVjODFlMTcxYTg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcApAQCAtMTQ4LDQgKzE0OCwxMCBAQCBPcHRpb25TZXQ8
QW5pbWF0aW9uSW1wYWN0PiBLZXlmcmFtZUVmZmVjdFN0YWNrOjphcHBseUtleWZyYW1lRWZmZWN0
cyhSZW5kZXJTdHlsZQogICAgIHJldHVybiBpbXBhY3Q7CiB9CiAKK3ZvaWQgS2V5ZnJhbWVFZmZl
Y3RTdGFjazo6c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKFVzZUFj
Y2VsZXJhdGVkQWN0aW9uIHVzZUFjY2VsZXJhdGVkQWN0aW9uKQoreworICAgIGZvciAoYXV0byYg
ZWZmZWN0IDogbV9lZmZlY3RzKQorICAgICAgICBlZmZlY3QtPnN0b3BBY2NlbGVyYXRpbmdUcmFu
c2Zvcm1SZWxhdGVkUHJvcGVydGllcyh1c2VBY2NlbGVyYXRlZEFjdGlvbik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdFN0YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3RTdGFjay5oCmluZGV4IGQ0YTZiODA2Y2ExOTgyZDZiMzY3YjYzYmE5MjQ2NDM5YjU5ZWIz
ZjUuLjc1M2NlOWI1NmE5YzA2MmVjNzkyZjE0Yjk0OGZiMzBkZTI0MjBjNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suaApAQCAtNTMsNiArNTMs
OCBAQCBwdWJsaWM6CiAgICAgT3B0aW9uU2V0PEFuaW1hdGlvbkltcGFjdD4gYXBwbHlLZXlmcmFt
ZUVmZmVjdHMoUmVuZGVyU3R5bGUmIHRhcmdldFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgcHJl
dmlvdXNMYXN0U3R5bGVDaGFuZ2VFdmVudFN0eWxlKTsKICAgICBib29sIGhhc0VmZmVjdFdpdGhJ
bXBsaWNpdEtleWZyYW1lcygpIGNvbnN0OwogCisgICAgdm9pZCBzdG9wQWNjZWxlcmF0aW5nVHJh
bnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoVXNlQWNjZWxlcmF0ZWRBY3Rpb24pOworCiBwcml2YXRl
OgogICAgIHZvaWQgZW5zdXJlRWZmZWN0c0FyZVNvcnRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IGIzOTczYzRlMzYzYTM1NTU2Yjc4YzJjZGY1
NDM4ZjZiMGM1Mzc0MzkuLjMxMGExNjc4YTE4ZDQ1ZmYwNjI4MzAwYTRmMzBhNjk4NDMzMGQ3N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC0xMjUzLDEy
ICsxMjUzLDYgQEAgdm9pZCBXZWJBbmltYXRpb246OmFjY2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2Uo
KQogICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVsaW5lPigqbV90aW1lbGluZSkuYW5pbWF0
aW9uQWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRDaGFuZ2UoKnRoaXMpOwogfQogCi12b2lkIFdl
YkFuaW1hdGlvbjo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKLXsKLSAgICBpZiAo
aXM8S2V5ZnJhbWVFZmZlY3Q+KG1fZWZmZWN0KSkKLSAgICAgICAgZG93bmNhc3Q8S2V5ZnJhbWVF
ZmZlY3Q+KCptX2VmZmVjdCkuYXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCk7Ci19Ci0K
IFdlYkFuaW1hdGlvbiYgV2ViQW5pbWF0aW9uOjpyZWFkeVByb21pc2VSZXNvbHZlKCkKIHsKICAg
ICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5k
ZXggYmY3NDUxZmY1OWI5YmQ0ZGI1YWIxOWUzNzA0ZGJmMTU5MGU0ZGFjOS4uNDliNzhmNzU0MGY0
NWExMzU0ZWVhOGQ5YzFlNmIyNjZmOThjMzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uaApAQCAtMTI0LDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcmVzb2x2ZShSZW5kZXJTdHlsZSYsIE9wdGlvbmFsPFNlY29uZHM+ID0gV1RGOjpudWxsb3B0
KTsKICAgICB2b2lkIGVmZmVjdFRhcmdldERpZENoYW5nZShjb25zdCBPcHRpb25hbDxjb25zdCBT
dHlsZWFibGU+JiBwcmV2aW91c1RhcmdldCwgY29uc3QgT3B0aW9uYWw8Y29uc3QgU3R5bGVhYmxl
PiYgbmV3VGFyZ2V0KTsKICAgICB2b2lkIGFjY2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2UoKTsKLSAg
ICB2b2lkIGFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpOwogICAgIHZvaWQgd2lsbENo
YW5nZVJlbmRlcmVyKCk7CiAKICAgICBib29sIGlzUnVubmluZ0FjY2VsZXJhdGVkKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uVHlwZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb25UeXBlcy5oCmluZGV4IGJk
Yjg2OTg1MGY2YjEyNzcwYjdlODBiOTQzYWNiYWNkNTYwZjE5NmMuLmM2M2NlOTM1NjY3ZDUzMmM5
NDQwMTBiMzNiMWQ0ODUxZTAzYWQ0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb25UeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb25UeXBlcy5oCkBAIC01NSw2ICs1NSwxMiBAQCBlbnVtIGNsYXNzIEFuaW1hdGlv
bkltcGFjdCB7CiAgICAgRm9yY2VzU3RhY2tpbmdDb250ZXh0ICAgPSAxIDw8IDEKIH07CiAKK2Vu
dW0gY2xhc3MgQWNjZWxlcmF0ZWRBY3Rpb25BcHBsaWNhdGlvblJlc3VsdCB7CisgICAgVHJhbnNm
b3JtUmVsYXRlZEFuaW1hdGlvbkNhbm5vdEJlQWNjZWxlcmF0ZWQgID0gMSA8PCAwCit9OworCitl
bnVtIGNsYXNzIFVzZUFjY2VsZXJhdGVkQWN0aW9uIDogdWludDhfdCB7IFllcywgTm8gfTsKKwog
dXNpbmcgTWFya2FibGVEb3VibGUgPSBNYXJrYWJsZTxkb3VibGUsIFdlYkFuaW1hdGlvbnNNYXJr
YWJsZURvdWJsZVRyYWl0cz47CiAKIHVzaW5nIEFuaW1hdGlvbkNvbGxlY3Rpb24gPSBMaXN0SGFz
aFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUxZTRjYTA3OTE2M2M0YTBmYTU1
YzJlMDU3ZjY4NGI2ZmJlMWQ5YS4uNjBlMWY2NWE4NDlmY2E0NDQ5ODc5YzVjMzJlNTNlMTA4OGRl
MWY5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVyc2VkIHRyYW5zZm9ybSBhbmltYXRp
b24gbm90IGFwcGxpZWQgYWxvbmdzaWRlIG90aGVyIHRyYW5zZm9ybSBhbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg2NTUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxMTE2Mjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMgdGhhdCBzdGFydCBhIHRyYW5zZm9y
bS1yZWxhdGVkIGFuaW1hdGlvbiB0aGF0IHJ1bnMgYWNjZWxlcmF0ZWQsIHRoZW4gYWRkIGFub3Ro
ZXIKKyAgICAgICAgdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRoYXQgZWl0aGVyIGluaXRp
YWxseSBvciBldmVudHVhbGx5IGlzIG5vdCBhY2NlbGVyYXRlZC4gSW4gYWxsIGNhc2VzLAorICAg
ICAgICB3ZSBjaGVjayB0aGF0IG9uY2UgdGhlIHNlY29uZCBhbmltYXRpb24gaXMgbm8gbG9uZ2Vy
IGFjY2VsZXJhdGVkIHRoYXQgdGhlIGZpcnN0IGFuaW1hdGlvbiBpcyBhbHNvCisgICAgICAgIG5v
IGxvbmdlciBhY2NlbGVyYXRlZC4KKworICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29tYmluaW5n
LXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmls
aXRpZXMtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29t
YmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1j
YXBhYmlsaXRpZXMtMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2NvbWJp
bmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2Fw
YWJpbGl0aWVzLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25z
L2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRp
b24tY2FwYWJpbGl0aWVzLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9j
b21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9u
LWNhcGFiaWxpdGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlv
bnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJh
dGlvbi1jYXBhYmlsaXRpZXMuaHRtbDogQWRkZWQuCisKIDIwMjEtMDEtMTIgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzU3MSk6
IGJsYWNrIGxpbmUgYXBwZWFycyB1cG9uIG5hdmlnYXRpbmcgYmFjayBmcm9tIGFwcGxlLmNvbSBz
aG9wcGluZyBiYWcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmlu
aW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBh
YmlsaXRpZXMtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2NvbWJp
bmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2Fw
YWJpbGl0aWVzLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MjRhNGJkNmUxOWU3MjU2NTVk
M2Q0YTY0OTJjODk5MWFmYTA1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
bmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1h
Y2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIGlu
dGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxlbmd0aCBi
ZWNhbWUgMQorUEFTUyBpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChl
bGVtZW50KS5sZW5ndGggYmVjYW1lIDIKK1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0
aW9uc0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3RoIGJlY2FtZSAwCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdp
dGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZm
ZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E2ODdm
OTYzNDE3YWQ0NGMwN2MyMGEwZDM1NzBjNmUyMDcwYzk4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdp
dGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi5odG1sCkBAIC0wLDAgKzEs
MzUgQEAKKzxkaXYgaWQ9InRhcmdldCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eDsgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitjb25zdCBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY29uc3QgdGltaW5nID0geyBkdXJh
dGlvbjogMTAwMCwgaXRlcmF0aW9uczogSW5maW5pdHkgfTsKKworY29uc3Qgc2hvdWxkQmVjb21l
RXF1YWxBc3luYyA9IGFzeW5jIChhY3R1YWwsIGV4cGVjdGVkKSA9PiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHNob3VsZEJlY29tZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIHJlc29sdmUpKTsKKwor
KGFzeW5jICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGJlIHJ1biBpbiBhIHRl
c3QgcnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKKyAgICAvLyBGaXJzdCwgc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRl
ZCBhbmltYXRpb24gdGhhdCBjYW4gYmUgYWNjZWxlcmF0ZWQuCisgICAgZWxlbWVudC5hbmltYXRl
KHsgc2NhbGU6IFsxLCAyXSB9LCB0aW1pbmcpOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVxdWFs
QXN5bmMoImludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQp
Lmxlbmd0aCIsICIxIik7CisKKyAgICAvLyBOb3csIHN0YXJ0IGFub3RoZXIgdHJhbnNmb3JtLXJl
bGF0ZWQgYW5pbWF0aW9uIHRoYXQgY2FuIGFsc28gYmUgYWNjZWxlcmF0ZWQuCisgICAgY29uc3Qg
cm90YXRpb25BbmltYXRpb24gPSBlbGVtZW50LmFuaW1hdGUoeyByb3RhdGU6IFsiMzBkZWciLCAi
NjBkZWciXSB9LCB0aW1pbmcpOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVxdWFsQXN5bmMoImlu
dGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxlbmd0aCIs
ICIyIik7CisKKyAgICAvLyBOb3csIHVwZGF0ZSB0aGUgbGFzdCB0cmFuc2Zvcm0tcmVsYXRlZCBh
bmltYXRpb24gdG8gYSBzdGF0ZSB0aGF0IGNhbm5vdCBiZSBhY2NlbGVyYXRlZCBhbnltb3JlCisg
ICAgLy8gZHVlIHRvIHVzaW5nIGEgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24uIFRoaXMgc2hvdWxk
IG5vdCBvbmx5IHByZXZlbnQgdGhpcyBhbmltYXRpb24gZnJvbQorICAgIC8vIHJ1bm5pbmcgYWNj
ZWxlcmF0ZWQsIGJ1dCBhbHNvIG1ha2UgdGhlIGZpcnN0IGFuaW1hdGlvbiByZXZlcnQgdG8gYSBu
b24tYWNjZWxlcmF0ZWQgc3RhdGUuCisgICAgcm90YXRpb25BbmltYXRpb24uZWZmZWN0LnVwZGF0
ZVRpbWluZyh7IGVhc2luZzogInN0ZXBzKDYwKSIgfSk7CisgICAgYXdhaXQgc2hvdWxkQmVjb21l
RXF1YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxl
bWVudCkubGVuZ3RoIiwgIjAiKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSko
KTsKKyAgICAKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9u
cy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0
aW9uLWNhcGFiaWxpdGllcy0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlv
bnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJh
dGlvbi1jYXBhYmlsaXRpZXMtMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEwNDNiODBmNTIy
ZGRlMjM5ZWEyMjZmNzI4YmU4MjJiNzg0NDNlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlm
ZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCku
bGVuZ3RoIGJlY2FtZSAxCitQQVNTIGludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JF
bGVtZW50KGVsZW1lbnQpLmxlbmd0aCBiZWNhbWUgMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZl
cmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmFu
aW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFj
Y2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNzllODIxNDNhZGY2
ZDFkNmNkOWM5ZWRiMTRlMWRkZDQwMWE5NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZl
cmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTMuaHRtbApAQCAtMCwwICsxLDMyIEBACis8
ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tn
cm91bmQtY29sb3I6IGJsYWNrOyI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2NvbnN0IGR1cmF0aW9uID0gMTAwMDsKK2NvbnN0
IGl0ZXJhdGlvbnMgPSBJbmZpbml0eTsKKworY29uc3Qgc2hvdWxkQmVjb21lRXF1YWxBc3luYyA9
IGFzeW5jIChhY3R1YWwsIGV4cGVjdGVkKSA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3Vs
ZEJlY29tZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIHJlc29sdmUpKTsKKworKGFzeW5jICgpID0+
IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGJlIHJ1biBpbiBhIHRlc3QgcnVubmVyLiIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAvLyBGaXJzdCwgc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRlZCBhbmltYXRpb24g
dGhhdCBjYW4gYmUgYWNjZWxlcmF0ZWQuCisgICAgZWxlbWVudC5hbmltYXRlKHsgc2NhbGU6IFsx
LCAyXSB9LCB7IGR1cmF0aW9uLCBpdGVyYXRpb25zIH0pOworICAgIGF3YWl0IHNob3VsZEJlY29t
ZUVxdWFsQXN5bmMoImludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVs
ZW1lbnQpLmxlbmd0aCIsICIxIik7CisKKyAgICAvLyBOb3csIHN0YXJ0IGFub3RoZXIgdHJhbnNm
b3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRoYXQgY2Fubm90IGJlIGFjY2VsZXJhdGVkIGR1ZSB0byB1
c2luZworICAgIC8vIHN0ZXBzKCkgZWFzaW5nLiBUaGlzIHNob3VsZCBub3Qgb25seSBwcmV2ZW50
IHRoaXMgYW5pbWF0aW9uIGZyb20gcnVubmluZyBhY2NlbGVyYXRlZCwKKyAgICAvLyBidXQgYWxz
byBtYWtlIHRoZSBwcmV2aW91cyBhbmltYXRpb24gcmV2ZXJ0IHRvIGEgbm9uLWFjY2VsZXJhdGVk
IHN0YXRlLgorICAgIGVsZW1lbnQuYW5pbWF0ZSh7IHJvdGF0ZTogWyIzMGRlZyIsICI2MGRlZyJd
IH0sIHsgZHVyYXRpb24sIGl0ZXJhdGlvbnMsIGVhc2luZzogInN0ZXBzKDYwKSIgfSk7CisgICAg
YXdhaXQgc2hvdWxkQmVjb21lRXF1YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0
aW9uc0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3RoIiwgIjAiKTsKKworICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfSkoKTsKKyAgICAKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1k
aWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRp
ZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MTA0M2I4MGY1MjJkZGUyMzllYTIyNmY3MjhiZTgyMmI3ODQ0M2VlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1h
dGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1l
bnQoZWxlbWVudCkubGVuZ3RoIGJlY2FtZSAxCitQQVNTIGludGVybmFscy5hY2NlbGVyYXRlZEFu
aW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQpLmxlbmd0aCBiZWNhbWUgMAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9u
cy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRp
ZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1OWIy
YjAzNzgwMGM5MTRlYjdhNDdjMGRiOWQ1NDcwY2I2Y2I4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdp
dGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMuaHRtbApAQCAtMCwwICsxLDMx
IEBACis8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY29uc3QgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2NvbnN0IHRpbWluZyA9IHsgZHVyYXRp
b246IDEwMDAsIGl0ZXJhdGlvbnM6IEluZmluaXR5IH07CisKK2NvbnN0IHNob3VsZEJlY29tZUVx
dWFsQXN5bmMgPSBhc3luYyAoYWN0dWFsLCBleHBlY3RlZCkgPT4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiBzaG91bGRCZWNvbWVFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCByZXNvbHZlKSk7CisKKyhh
c3luYyAoKSA9PiB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhd2luZG93LmludGVy
bmFscykgeworICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IHNob3VsZCBiZSBydW4gaW4gYSB0ZXN0
IHJ1bm5lci4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgLy8gRmlyc3QsIHN0YXJ0IGEgdHJhbnNmb3JtLXJlbGF0ZWQg
YW5pbWF0aW9uIHRoYXQgY2FuIGJlIGFjY2VsZXJhdGVkLgorICAgIGVsZW1lbnQuYW5pbWF0ZSh7
IHNjYWxlOiBbMSwgMl0gfSwgdGltaW5nKTsKKyAgICBhd2FpdCBzaG91bGRCZWNvbWVFcXVhbEFz
eW5jKCJpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChlbGVtZW50KS5s
ZW5ndGgiLCAiMSIpOworCisgICAgLy8gTm93LCBzdGFydCBhbm90aGVyIHRyYW5zZm9ybS1yZWxh
dGVkIGFuaW1hdGlvbiB0aGF0IGNhbm5vdCBiZSBhY2NlbGVyYXRlZCBkdWUgdG8gcnVubmluZyBh
dAorICAgIC8vIGEgc3BlZWQgb3RoZXIgdGhhbiAxLiBUaGlzIHNob3VsZCBub3Qgb25seSBwcmV2
ZW50IHRoaXMgYW5pbWF0aW9uIGZyb20gcnVubmluZyBhY2NlbGVyYXRlZCwKKyAgICAvLyBidXQg
YWxzbyBtYWtlIHRoZSBwcmV2aW91cyBhbmltYXRpb24gcmV2ZXJ0IHRvIGEgbm9uLWFjY2VsZXJh
dGVkIHN0YXRlLgorICAgIGVsZW1lbnQuYW5pbWF0ZSh7IHJvdGF0ZTogWyIzMGRlZyIsICI2MGRl
ZyJdIH0sIHRpbWluZykudXBkYXRlUGxheWJhY2tSYXRlKDAuNSk7CisgICAgYXdhaXQgc2hvdWxk
QmVjb21lRXF1YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1l
bnQoZWxlbWVudCkubGVuZ3RoIiwgIjAiKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfSkoKTsKKyAgICAKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417690</attachid>
            <date>2021-01-15 02:38:54 -0800</date>
            <delta_ts>2021-01-15 09:47:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218655-20210115113853.patch</filename>
            <type>text/plain</type>
            <size>29839</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjZmEzZWJiYWNlNTE3
OGY5YWY5NjZkZTYyZDg0N2Q1YTA2MmI3NS4uMmI3YTg2ODdiZGQ3ZTBjYTY1MThhNDU1ZjVjYmRm
MDc0YjQ3M2QwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVyc2VkIHRyYW5z
Zm9ybSBhbmltYXRpb24gbm90IGFwcGxpZWQgYWxvbmdzaWRlIG90aGVyIHRyYW5zZm9ybSBhbmlt
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg2NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMTE2Mjg0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiB3ZWJhbmltYXRpb25zL2Nv
bWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24t
Y2FwYWJpbGl0aWVzLTIuaHRtbAorICAgICAgICAgICAgICAgd2ViYW5pbWF0aW9ucy9jb21iaW5p
bmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFi
aWxpdGllcy0zLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRy
YW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRp
ZXMuaHRtbAorCisgICAgICAgIFdoaWxlLCBpbiB0aGVvcnksIGFuaW1hdGlvbnMgZm9yIGEgdHJh
bnNmb3JtLXJlbGF0ZWQgQ1NTIHByb3BlcnR5ICh0cmFuc2xhdGUsIHJvdGF0ZSwgc2NhbGUgYW5k
IHRyYW5zZm9ybSkKKyAgICAgICAgY2FuIGJlIGFjY2VsZXJhdGVkLCB0aGVyZSBhcmUgdmFyaW91
cyByZWFzb25zIHdoeSBpdCBtaWdodCBub3QsIGluIGZhY3QsIHJ1biBhY2NlbGVyYXRlZC4KKwor
ICAgICAgICBPbmUgZXhhbXBsZSBpcyB0aGF0IHRoZSB0aW1pbmcgZnVuY3Rpb24gaXMgbm90IHNv
bWV0aGluZyB3ZSBjYW4gdHJhbnNsYXRlIGluIHRlcm1zIENvcmUgQW5pbWF0aW9uIGNhbgorICAg
ICAgICB1bmRlcnN0YW5kLCBzdWNoIGFzIHRoZSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4gSW4g
dGhpcyBjYXNlLCB0aGUgS2V5ZnJhbWVFZmZlY3QgaXRzZWxmIGlzIGF3YXJlIG9mCisgICAgICAg
IHRoZSBsaW1pdGF0aW9uIGFuZCB0aGUgbWV0aG9kIEtleWZyYW1lRWZmZWN0OjpjYW5CZUFjY2Vs
ZXJhdGVkKCkgcmV0dXJucyBmYWxzZS4KKworICAgICAgICBBbm90aGVyIGV4YW1wbGUgaXMgdGhh
dCB0aGUgcGxheWJhY2sgcmF0ZSBvZiB0aGUgYW5pbWF0aW9uIGlzIG5vdCAxLCB3aGljaCB3ZSBj
dXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBmb3IKKyAgICAgICAgQ29yZSBBbmltYXRpb24gYW5pbWF0
aW9ucyAoc2VlIGJ1ZyAyMTE4MzkpLiBJbiB0aGlzIGNhc2UsIEdyYXBoaWNzTGF5ZXJDQSBpcyB3
aGVyZSB0aGUgaW1wb3NzaWJpbGl0eSB0bworICAgICAgICBydW4gYW4gYW5pbWF0aW9uIGFjY2Vs
ZXJhdGVkIGlzIGRldGVybWluZWQuCisKKyAgICAgICAgV2hpbGUgd2Ugc3VwcG9ydCBydW5uaW5n
IHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbnMgd2l0aCBvciB3aXRob3V0IGFjY2VsZXJhdGlv
biwgb25lIHRoaW5nIHdlIGNhbm5vdAorICAgICAgICBzdXBwb3J0IGlzLCBmb3IgdGhlIHNhbWUg
ZWxlbWVudCwgcnVubmluZyBzb21lIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbnMgd2l0aCBh
Y2NlbGVyYXRpb24sIGFuZCBzb21lCisgICAgICAgIHdpdGhvdXQuCisKKyAgICAgICAgVGh1cywg
cmVnYXJkbGVzcyBvZiB3aGVyZSB3ZSBkZXRlcm1pbmUgdGhhdCBhIHRyYW5zZm9ybS1yZWxhdGVk
IGFuaW1hdGlvbiBjYW5ub3QgYmUgYWNjZWxlcmF0ZWQsIHdlIG5lZWQKKyAgICAgICAgdG8gc2Vu
ZCB0aGlzIGluZm9ybWF0aW9uIHVwIHRvIHRoZSBLZXlmcmFtZUVmZmVjdFN0YWNrIGluIHdoaWNo
IHRoaXMgYW5pbWF0aW9uJ3MgZWZmZWN0IGJlbG9uZ3MgdG8gbWFrZQorICAgICAgICBzdXJlIHRo
YXQgYW55IG90aGVyIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbiB0aGF0IG1heSBhbHJlYWR5
IGJlIHJ1bm5pbmcgYWNjZWxlcmF0ZWQgbm8gbG9uZ2VyIGRvZXMKKyAgICAgICAgYW5kIGNvbnRp
bnVlcyBydW5uaW5nIHdpdGhvdXQgYWNjZWxlcmF0aW9uLgorCisgICAgICAgIFRoZXJlIGFyZSB0
d28gbG9jYXRpb25zIHdoZXJlIHdlIGRldGVybWluZSB0aGF0IGEgdHJhbnNmb3JtLXJlbGF0ZWQg
YW5pbWF0aW9uIGNhbm5vdCBiZSBhY2NlbGVyYXRlZDoKKworICAgICAgICAgICAgMS4gaW4gRG9j
dW1lbnRUaW1lbGluZTo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zKCkgdW5kZXIg
d2hpY2ggd2Ugc3RhcnQsIHVwZGF0ZSBvciBzdG9wCisgICAgICAgICAgICAgICBhY2NlbGVyYXRl
ZCBhbmltYXRpb25zIHRoYXQgaGF2ZSBiZWVuIGludmFsaWRhdGVkIHNpbmNlIHRoZSBsYXN0IHBh
Z2UgcmVuZGVyaW5nLAorICAgICAgICAgICAgMi4gaW4gS2V5ZnJhbWVFZmZlY3Q6OnVwZGF0ZUFj
Y2VsZXJhdGVkQWN0aW9ucygpIHdoaWNoIGlzIGNhbGxlZCBmb3IgZWFjaCBwYWdlIHJlbmRlcmlu
ZywgaW5jbHVkaW5nCisgICAgICAgICAgICAgICBhbmltYXRpb25zIHRoYXQgY2Fubm90IGJlIGFj
Y2VsZXJhdGVkLgorCisgICAgICAgIEluIHRoZSBmaXJzdCBjYXNlLCB3ZSBjYXRjaCBzaXR1YXRp
b25zIHdoZXJlIGFuIGFuaW1hdGlvbiB0aGF0IGNvdWxkIGhhdmUgYmVlbiBhY2NlbGVyYXRlZCBi
dXQgZmFpbGVkCisgICAgICAgIHRvIGJlIHN0YXJ0ZWQgZHVlIHRvIHRoZSBpbnRlcm5hbCBsb2dp
YyBvZiBHcmFwaGljc0xheWVyQ0EuIFdlIHVzZSB0aGUgbmV3IEtleWZyYW1lRWZmZWN0IG1ldGhv
ZAorICAgICAgICBhcHBseVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKSByZXR1cm4gdmFsdWUg
dG8gZGV0ZXJtaW5lIHRoaXMsIGFuZCBmb3IgZWFjaCBlZmZlY3Qgd2hlcmUgdGhlIHJlc3VsdAor
ICAgICAgICBpbmRpY2F0ZXMgdGhhdCBhIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlvbiBjb3Vs
ZCBub3QgYmUgYWNjZWxlcmF0ZWQsIHdlIGFkZCB0aGUgS2V5ZnJhbWVFZmZlY3RTdGFjaworICAg
ICAgICB0byB3aGljaCBpdCBiZWxvbmdzIGFuZCwgb25jZSB3ZSdyZSBkb25lIHdpdGggdXBkYXRp
bmcgYWxsIGVmZmVjdHMsIGNhbGwgdGhlIG5ldworICAgICAgICBzdG9wQWNjZWxlcmF0aW5nVHJh
bnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoKSBtZXRob2Qgb24gdGhlIGtleWZyYW1lIGVmZmVjdCBz
dGFjay4KKworICAgICAgICBJbiB0aGUgc2Vjb25kIGNhc2UsIHdlIGNhdGNoIHNpdHVhdGlvbnMg
d2hlcmUgYW4gYW5pbWF0aW9uIGlzIGtub3duIHRvIG5vdCBiZSBhYmxlIHRvIHJ1biBhY2NlbGVy
YXRlZAorICAgICAgICBldmVuIHdpdGhvdXQgaW52b2x2aW5nIEdyYXBoaWNzTGF5ZXJDQS4gV2Ug
Y2hlY2sgd2hldGhlciB0aGUgYW5pbWF0aW9uIHRhcmdldHMgYSB0cmFuc2Zvcm0tcmVsYXRlZAor
ICAgICAgICBwcm9wZXJ0eSBhbmQgaWYgaXQgaXMgYWN0aXZlLCBhbmQgaWYgc28gY2FsbCBzdG9w
QWNjZWxlcmF0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoKQorICAgICAgICBvbiB0aGUg
a2V5ZnJhbWUgZWZmZWN0IHN0YWNrIHRoZXJlIGFzIHdlbGwuCisKKyAgICAgICAgV2hlbiBLZXlm
cmFtZUVmZmVjdFN0YWNrOjpzdG9wQWNjZWxlcmF0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnRp
ZXMoKSBpcyBjYWxsZWQsIHdlIGdvCisgICAgICAgIHRocm91Z2ggYWxsIHRoZSByZWdpc3RlcmVk
IGVmZmVjdHMgYW5kIGNhbGwgc3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0
aWVzKCkuIFRoaXMgbmV3CisgICAgICAgIEtleWZyYW1lRWZmZWN0IG1ldGhvZCB3aWxsIGVpdGhl
ciBhZGQgYSBwZW5kaW5nIGFjY2VsZXJhdGVkIGFjdGlvbiB0byBzdG9wIHRoZSBhY2NlbGVyYXRl
ZCBhbmltYXRpb24sCisgICAgICAgIG9yIGlmIHdlJ3JlIGN1cnJlbnRseSBhcHBseSBhY2NlbGVy
YXRlZCBhY3Rpb25zIChpZS4gZHVyaW5nIERvY3VtZW50VGltZWxpbmU6OmFwcGx5UGVuZGluZ0Fj
Y2VsZXJhdGVkQW5pbWF0aW9ucygpKSwKKyAgICAgICAgd2Ugc3RvcCB0aGUgYWNjZWxlcmF0ZWQg
YW5pbWF0aW9uIHJpZ2h0IGF3YXkuCisKKyAgICAgICAgSW4gYm90aCBjYXNlcyB3ZSBrbm93IG5v
dCB0byB0cnkgcnVubmluZyB0aGlzIGFuaW1hdGlvbiBhZ2FpbiB3aXRoIGFjY2VsZXJhdGlvbiBi
eSBzZXR0aW5nIG1fcnVubmluZ0FjY2VsZXJhdGVkCisgICAgICAgIHRvIFJ1bm5pbmdBY2NlbGVy
YXRlZDo6Tm8uCisKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjphcHBseVBlbmRpbmdBY2NlbGVyYXRl
ZEFuaW1hdGlvbnMpOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxh
dGVkUHJvcGVydHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6Omlz
UnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6dXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjphcHBseVBlbmRpbmdBY2NlbGVyYXRl
ZEFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnN0b3BBY2NlbGVy
YXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydGllcyk6CisgICAgICAgICogYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0Lmg6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3RTdGFjazo6c3RvcEFjY2VsZXJh
dGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3RTdGFjay5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjphcHBseVBlbmRpbmdBY2NlbGVyYXRl
ZEFjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoK
KyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uVHlwZXMuaDoKKwogMjAyMS0wMS0xMiAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjY3NTcxKTogYmxhY2sgbGluZSBhcHBlYXJzIHVwb24gbmF2aWdhdGluZyBiYWNrIGZyb20g
YXBwbGUuY29tIHNob3BwaW5nIGJhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuY3BwCmluZGV4IGNmZmQxOGEyYjYxNzMzMWJjZjE4N2MzYjA5YzI5MzExNTU5
ZmU0MDIuLmFmM2FjMmM2NDliNDIyOTcxMmIxYTEwODlkZTIzNzhhMGQzMTI4OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJXZWJBbmltYXRp
b25UeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0MiwxNSArNDQzLDMyIEBA
IHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25z
KCkKICAgICBhdXRvIGFjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFu
Z2UgPSBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2U7CiAg
ICAgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlLmNsZWFy
KCk7CiAKKyAgICAvLyBBbmltYXRpb25zIG1heSBmYWlsIHRvIHJ1biBhY2NlbGVyYXRlZCBmb3Ig
cmVhc29ucyBwcml2YXRlIHRvIEdyYXBoaWNzTGF5ZXJDQS4gSWYgdGhhdCBoYXBwZW5zLCBhbmQg
dGhlIGFuaW1hdGlvbgorICAgIC8vIGluIHF1ZXN0aW9uIHRhcmdldHMgYSB0cmFuc2Zvcm0tcmVs
YXRlZCBwcm9wZXJ0eSwgd2UgbXVzdCBwcmV2ZW50IGFsbCBvdGhlciB0cmFuc2Zvcm0tcmVsYXRl
ZCBhbmltYXRpb25zIGZvciB0aGlzCisgICAgLy8gZWxlbWVudCB0byBydW4gYWNjZWxlcmF0ZWQg
c2luY2Ugd2UgY2FuJ3QgcnVuIHNvbWUgdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9ucyBhY2Nl
bGVyYXRlZCwgYW5kIHNvbWUgbm90LiBUbyBkbworICAgIC8vIHRoaXMsIHdlIGtlZXAgYSBsaXN0
IG9mIGFsbCBLZXlmcmFtZUVmZmVjdFN0YWNrIG9iamVjdHMgY29udGFpbmluZyBhbiBlZmZlY3Qg
dGhhdCBmYWlsZWQgdG8gc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRlZAorICAgIC8vIGFuaW1hdGlv
biBzbyB0aGF0IHdlIGNhbiByZXR1cm4gYW55IHRyYW5zZm9ybS1yZWxhdGVkIGFjY2VsZXJhdGVk
IGFuaW1hdGlvbiB0byBydW4gbm9uLWFjY2VsZXJhdGVkLgorICAgIEhhc2hTZXQ8S2V5ZnJhbWVF
ZmZlY3RTdGFjayo+IGVmZmVjdFN0YWNrc0NvbnRhaW5pbmdFZmZlY3RUaGF0RmFpbGVkVG9SdW5B
Y2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb247CisKICAgICBib29sIGhhc0ZvcmNl
ZExheW91dCA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogYWNjZWxlcmF0ZWRB
bmltYXRpb25zUGVuZGluZ1J1bm5pbmdTdGF0ZUNoYW5nZSkgewotICAgICAgICBpZiAoIWhhc0Zv
cmNlZExheW91dCkgewotICAgICAgICAgICAgYXV0byogZWZmZWN0ID0gYW5pbWF0aW9uLT5lZmZl
Y3QoKTsKLSAgICAgICAgICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkKLSAgICAg
ICAgICAgICAgICBoYXNGb3JjZWRMYXlvdXQgfD0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVm
ZmVjdCktPmZvcmNlTGF5b3V0SWZOZWVkZWQoKTsKKyAgICAgICAgYXV0byogZWZmZWN0ID0gYW5p
bWF0aW9uLT5lZmZlY3QoKTsKKyAgICAgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8mIGtleWZyYW1lRWZmZWN0
ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCplZmZlY3QpOworICAgICAgICBpZiAoIWhhc0Zv
cmNlZExheW91dCkKKyAgICAgICAgICAgIGhhc0ZvcmNlZExheW91dCB8PSBrZXlmcmFtZUVmZmVj
dC5mb3JjZUxheW91dElmTmVlZGVkKCk7CisgICAgICAgIGF1dG8gcGVuZGluZ0FjY2VsZXJhdGlv
bkFjdGlvblJlc3VsdCA9IGtleWZyYW1lRWZmZWN0LmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0
aW9ucygpOworICAgICAgICBpZiAocGVuZGluZ0FjY2VsZXJhdGlvbkFjdGlvblJlc3VsdC5jb250
YWlucyhBY2NlbGVyYXRlZEFjdGlvbkFwcGxpY2F0aW9uUmVzdWx0OjpUcmFuc2Zvcm1SZWxhdGVk
QW5pbWF0aW9uQ2Fubm90QmVBY2NlbGVyYXRlZCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChrZXlm
cmFtZUVmZmVjdC50YXJnZXRTdHlsZWFibGUoKSk7CisgICAgICAgICAgICBBU1NFUlQoa2V5ZnJh
bWVFZmZlY3QudGFyZ2V0U3R5bGVhYmxlKCktPmtleWZyYW1lRWZmZWN0U3RhY2soKSk7CisgICAg
ICAgICAgICBlZmZlY3RTdGFja3NDb250YWluaW5nRWZmZWN0VGhhdEZhaWxlZFRvUnVuQWNjZWxl
cmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uLmFkZChrZXlmcmFtZUVmZmVjdC50YXJnZXRT
dHlsZWFibGUoKS0+a2V5ZnJhbWVFZmZlY3RTdGFjaygpKTsKICAgICAgICAgfQotICAgICAgICBh
bmltYXRpb24tPmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpOwogICAgIH0KKworICAg
IGZvciAoYXV0byYgZWZmZWN0U3RhY2sgOiBlZmZlY3RTdGFja3NDb250YWluaW5nRWZmZWN0VGhh
dEZhaWxlZFRvUnVuQWNjZWxlcmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uKQorICAgICAg
ICBlZmZlY3RTdGFjay0+c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVz
KFVzZUFjY2VsZXJhdGVkQWN0aW9uOjpObyk7CiB9CiAKIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6
cnVubmluZ0FuaW1hdGlvbnNGb3JSZW5kZXJlckFyZUFsbEFjY2VsZXJhdGVkKGNvbnN0IFJlbmRl
ckJveE1vZGVsT2JqZWN0JiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IGQxMjIyODhiMWM2Y2EzYmEzNWE0OGFiNDhlM2Rj
MDc5MTZlOTk1NjQuLmYyOTgyYjQ2Y2RlNzAyZDVjNTk4YzNkYTQ0MTFhZjdlY2M5OWVhYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtMTI4MSwx
NyArMTI4MSwxOSBAQCBib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1bm5pbmdBY2NlbGVyYXRlZEFu
aW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcAogICAgIHJldHVybiBpc1J1bm5p
bmdBY2NlbGVyYXRlZCgpICYmIENTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25PZlByb3Bl
cnR5SXNBY2NlbGVyYXRlZChwcm9wZXJ0eSkgJiYgbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0
aWVzKCkuY29udGFpbnMocHJvcGVydHkpOwogfQogCi1ib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1
bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKSBjb25zdAorYm9vbCBL
ZXlmcmFtZUVmZmVjdDo6aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSBjb25z
dAogewotICAgIGlmICghaXNSdW5uaW5nQWNjZWxlcmF0ZWQoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCiAgICAgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpLmNvbnRh
aW5zKENTU1Byb3BlcnR5VHJhbnNsYXRlKQogICAgICAgICB8fCBtX2JsZW5kaW5nS2V5ZnJhbWVz
LnByb3BlcnRpZXMoKS5jb250YWlucyhDU1NQcm9wZXJ0eVNjYWxlKQogICAgICAgICB8fCBtX2Js
ZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKS5jb250YWlucyhDU1NQcm9wZXJ0eVJvdGF0ZSkK
ICAgICAgICAgfHwgbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkuY29udGFpbnMoQ1NT
UHJvcGVydHlUcmFuc2Zvcm0pOwogfQogCitib29sIEtleWZyYW1lRWZmZWN0Ojppc1J1bm5pbmdB
Y2NlbGVyYXRlZFRyYW5zZm9ybVJlbGF0ZWRBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBpc1J1bm5pbmdBY2NlbGVyYXRlZCgpICYmIGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVsYXRlZFBy
b3BlcnR5KCk7Cit9CisKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQogewogICAg
IExPR19XSVRIX1NUUkVBTShBbmltYXRpb25zLCBzdHJlYW0gPDwgIktleWZyYW1lRWZmZWN0Ojpp
bnZhbGlkYXRlIG9uIGVsZW1lbnQgIiA8PCBWYWx1ZU9yTnVsbCh0YXJnZXRFbGVtZW50T3JQc2V1
ZG9FbGVtZW50KCkpKTsKQEAgLTE1NzQsOCArMTU3NiwxOSBAQCBib29sIEtleWZyYW1lRWZmZWN0
OjpjYW5CZUFjY2VsZXJhdGVkKCkgY29uc3QKIAogdm9pZCBLZXlmcmFtZUVmZmVjdDo6dXBkYXRl
QWNjZWxlcmF0ZWRBY3Rpb25zKCkKIHsKLSAgICBpZiAoIWNhbkJlQWNjZWxlcmF0ZWQoKSkKKyAg
ICBpZiAoIWNhbkJlQWNjZWxlcmF0ZWQoKSkgeworICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVy
ZSB0aGlzIGFuaW1hdGlvbiBpcyBhY3RpdmVseSB0YXJnZXRpbmcgYSB0cmFuc2Zvcm0tcmVsYXRl
ZCBwcm9wZXJ0eSBhbmQgeWV0CisgICAgICAgIC8vIGNhbm5vdCBiZSBhY2NlbGVyYXRlZCwgd2Ug
bXVzdCBub3RpZnkgdGhlIGVmZmVjdCBzdGFjayBzdWNoIHRoYXQgYW55IHJ1bm5pbmcgYWNjZWxl
cmF0ZWQKKyAgICAgICAgLy8gdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRhcmdldGluZyB0
aGlzIGVsZW1lbnQgcmV2ZXJ0cyB0byBydW5uaW5nIG5vbi1hY2NlbGVyYXRlZC4KKyAgICAgICAg
aWYgKGlzVGFyZ2V0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkKKyAgICAgICAgICAgICYm
IGFuaW1hdGlvbigpLT5wbGF5U3RhdGUoKSA9PSBXZWJBbmltYXRpb246OlBsYXlTdGF0ZTo6UnVu
bmluZworICAgICAgICAgICAgJiYgZ2V0Q29tcHV0ZWRUaW1pbmcoKS5waGFzZSA9PSBBbmltYXRp
b25FZmZlY3RQaGFzZTo6QWN0aXZlKSB7CisgICAgICAgICAgICBBU1NFUlQodGFyZ2V0U3R5bGVh
YmxlKCkpOworICAgICAgICAgICAgQVNTRVJUKHRhcmdldFN0eWxlYWJsZSgpLT5rZXlmcmFtZUVm
ZmVjdFN0YWNrKCkpOworICAgICAgICAgICAgdGFyZ2V0U3R5bGVhYmxlKCktPmtleWZyYW1lRWZm
ZWN0U3RhY2soKS0+c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKFVz
ZUFjY2VsZXJhdGVkQWN0aW9uOjpZZXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBhdXRvIGNvbXB1dGVkVGltaW5nID0gZ2V0Q29tcHV0ZWRUaW1pbmcoKTsKIApA
QCAtMTY2NywxNSArMTY4MCwxNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjphbmltYXRpb25TdXNw
ZW5zaW9uU3RhdGVEaWRDaGFuZ2UoYm9vbCBhbmltYXRpb25Jc1N1c3BlbmRlZAogICAgICAgICBh
ZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oYW5pbWF0aW9uSXNTdXNwZW5kZWQgPyBBY2NlbGVy
YXRlZEFjdGlvbjo6UGF1c2UgOiBBY2NlbGVyYXRlZEFjdGlvbjo6UGxheSk7CiB9CiAKLXZvaWQg
S2V5ZnJhbWVFZmZlY3Q6OmFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpCitPcHRpb25T
ZXQ8QWNjZWxlcmF0ZWRBY3Rpb25BcHBsaWNhdGlvblJlc3VsdD4gS2V5ZnJhbWVFZmZlY3Q6OmFw
cGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpCiB7CisgICAgT3B0aW9uU2V0PEFjY2VsZXJh
dGVkQWN0aW9uQXBwbGljYXRpb25SZXN1bHQ+IHJlc3VsdDsKKwogICAgIC8vIE9uY2UgYW4gYWNj
ZWxlcmF0ZWQgYW5pbWF0aW9uIGhhcyBiZWVuIGNvbW1pdHRlZCwgd2Ugbm8gbG9uZ2VyIHdhbnQg
dG8gZm9yY2UgYSBsYXlvdXQuCiAgICAgLy8gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZvcm1l
ZCBieSBhIGNhbGwgdG8gZm9yY2VMYXlvdXRJZk5lZWRlZCgpIHByaW9yIHRvIGFwcGx5aW5nCiAg
ICAgLy8gcGVuZGluZyBhY2NlbGVyYXRlZCBhY3Rpb25zLgogICAgIG1fbmVlZHNGb3JjZWRMYXlv
dXQgPSBmYWxzZTsKIAogICAgIGlmIChtX3BlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBhdXRv
KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlciB8fCAhcmVu
ZGVyZXItPmlzQ29tcG9zaXRlZCgpKSB7CkBAIC0xNjg1LDcgKzE3MDAsNyBAQCB2b2lkIEtleWZy
YW1lRWZmZWN0OjphcHBseVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKQogICAgICAgICAgICAg
bV9wZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3J1bm5p
bmdBY2NlbGVyYXRlZCA9IFJ1bm5pbmdBY2NlbGVyYXRlZDo6Tm90U3RhcnRlZDsKICAgICAgICAg
fQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAg
YXV0byBwZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zID0gbV9wZW5kaW5nQWNjZWxlcmF0ZWRBY3Rp
b25zOwpAQCAtMTcxOSw3ICsxNzM0LDkgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5k
aW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShBbmlt
YXRpb25zLCBzdHJlYW0gPDwgIktleWZyYW1lRWZmZWN0ICIgPDwgdGhpcyA8PCAiIGFwcGx5UGVu
ZGluZ0FjY2VsZXJhdGVkQWN0aW9ucyAiIDw8IG1fYmxlbmRpbmdLZXlmcmFtZXMuYW5pbWF0aW9u
TmFtZSgpIDw8ICIgUGxheSwgc3RhcnRlZCBhY2NlbGVyYXRlZDogIiA8PCAobV9ydW5uaW5nQWNj
ZWxlcmF0ZWQgPT0gUnVubmluZ0FjY2VsZXJhdGVkOjpZZXMpKTsKICAgICAgICAgICAgIGlmICht
X3J1bm5pbmdBY2NlbGVyYXRlZCA9PSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5vKSB7CiAgICAgICAg
ICAgICAgICAgbV9sYXN0UmVjb3JkZWRBY2NlbGVyYXRlZEFjdGlvbiA9IEFjY2VsZXJhdGVkQWN0
aW9uOjpTdG9wOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBpZiAo
aXNUYXJnZXRpbmdUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFkZChBY2NlbGVyYXRlZEFjdGlvbkFwcGxpY2F0aW9uUmVzdWx0OjpUcmFuc2Zv
cm1SZWxhdGVkQW5pbWF0aW9uQ2Fubm90QmVBY2NlbGVyYXRlZCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFjY2VsZXJhdGVkQWN0aW9uOjpQYXVzZToKQEAgLTE3MzYsMTMgKzE3NTMsNDAgQEAg
dm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKICAg
ICAgICAgICAgIHJlbmRlcmVyLT5hbmltYXRpb25GaW5pc2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVz
LmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgICAgICBpZiAoIWRvY3VtZW50KCktPnJlbmRlclRy
ZWVCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICAgICAgICAgIG1fdGFyZ2V0LT5pbnZhbGlkYXRl
U3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7Ci0gICAgICAgICAgICBtX3J1bm5pbmdBY2NlbGVy
YXRlZCA9IFJ1bm5pbmdBY2NlbGVyYXRlZDo6Tm90U3RhcnRlZDsKKyAgICAgICAgICAgIG1fcnVu
bmluZ0FjY2VsZXJhdGVkID0gY2FuQmVBY2NlbGVyYXRlZCgpID8gUnVubmluZ0FjY2VsZXJhdGVk
OjpOb3RTdGFydGVkIDogUnVubmluZ0FjY2VsZXJhdGVkOjpObzsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFjY2VsZXJhdGVkQWN0aW9uOjpUcmFuc2Zvcm1DaGFuZ2U6CiAgICAg
ICAgICAgICByZW5kZXJlci0+dHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5RGlkQ2hhbmdlKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKworICAgIGlmIChtX3J1bm5pbmdB
Y2NlbGVyYXRlZCA9PSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5vICYmIGlzVGFyZ2V0aW5nVHJhbnNm
b3JtUmVsYXRlZFByb3BlcnR5KCkpCisgICAgICAgIHJlc3VsdC5hZGQoQWNjZWxlcmF0ZWRBY3Rp
b25BcHBsaWNhdGlvblJlc3VsdDo6VHJhbnNmb3JtUmVsYXRlZEFuaW1hdGlvbkNhbm5vdEJlQWNj
ZWxlcmF0ZWQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBLZXlmcmFtZUVmZmVj
dDo6c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKFVzZUFjY2VsZXJh
dGVkQWN0aW9uIHVzZUFjY2VsZXJhdGVkQWN0aW9uKQoreworICAgIGlmICghaXNSdW5uaW5nQWNj
ZWxlcmF0ZWRUcmFuc2Zvcm1SZWxhdGVkQW5pbWF0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICh1c2VBY2NlbGVyYXRlZEFjdGlvbiA9PSBVc2VBY2NlbGVyYXRlZEFjdGlvbjo6WWVz
KSB7CisgICAgICAgIGFkZFBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbihBY2NlbGVyYXRlZEFjdGlv
bjo6U3RvcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiByZW5kZXJlciA9
IHRoaXMtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJlciB8fCAhcmVuZGVyZXItPmlzQ29t
cG9zaXRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoZG9jdW1lbnQoKSk7Cisg
ICAgcmVuZGVyZXItPmFuaW1hdGlvbkZpbmlzaGVkKG1fYmxlbmRpbmdLZXlmcmFtZXMuYW5pbWF0
aW9uTmFtZSgpKTsKKyAgICBpZiAoIWRvY3VtZW50KCktPnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3ll
ZCgpKQorICAgICAgICBtX3RhcmdldC0+aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlv
bigpOworCisgICAgbV9ydW5uaW5nQWNjZWxlcmF0ZWQgPSBSdW5uaW5nQWNjZWxlcmF0ZWQ6Ok5v
OwogfQogCiBSZWY8Y29uc3QgQW5pbWF0aW9uPiBLZXlmcmFtZUVmZmVjdDo6YmFja2luZ0FuaW1h
dGlvbkZvckNvbXBvc2l0ZWRSZW5kZXJlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IDQ0MDI3NTQ4YWJiNTM2OWVkYTkwOGQyZGI4MTllMWE4
YmI5Y2Q2MTQuLjllZTRmMTk5NWI0MGIwMzg4Zjc1YjE2Zjg1MmFkNjViMjI2Nzk5YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC0xMzMsNyArMTMzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZWxpbmVEaWRDaGFuZ2UoQW5pbWF0aW9u
VGltZWxpbmUqKSBmaW5hbDsKICAgICB2b2lkIGFuaW1hdGlvblRpbWluZ0RpZENoYW5nZSgpOwog
ICAgIHZvaWQgdHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5RGlkQ2hhbmdlKCk7Ci0gICAgdm9pZCBh
cHBseVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKTsKKyAgICBPcHRpb25TZXQ8QWNjZWxlcmF0
ZWRBY3Rpb25BcHBsaWNhdGlvblJlc3VsdD4gYXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25z
KCk7CiAKICAgICB2b2lkIHdpbGxDaGFuZ2VSZW5kZXJlcigpOwogCkBAIC0xNzIsNiArMTcyLDgg
QEAgcHVibGljOgogICAgIGJvb2wgcmVxdWlyZXNQc2V1ZG9FbGVtZW50KCkgY29uc3Q7CiAgICAg
Ym9vbCBoYXNJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0OwogCisgICAgdm9pZCBzdG9wQWNjZWxl
cmF0aW5nVHJhbnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoVXNlQWNjZWxlcmF0ZWRBY3Rpb24pOwor
CiBwcml2YXRlOgogICAgIEtleWZyYW1lRWZmZWN0KEVsZW1lbnQqLCBQc2V1ZG9JZCk7CiAKQEAg
LTIwMyw2ICsyMDUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QmxlbmRpbmdLZXlmcmFtZXMo
S2V5ZnJhbWVMaXN0Jik7CiAgICAgU2Vjb25kcyB0aW1lVG9OZXh0VGljaygpIGNvbnN0IGZpbmFs
OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGRvdWJsZSkgY29u
c3QgZmluYWw7CisgICAgYm9vbCBpc1RhcmdldGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgp
IGNvbnN0OwogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ1RyYW5zZm9ybUZ1bmN0aW9uTGlzdHMo
KTsKICAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CiAgICAg
dm9pZCBjaGVja0Zvck1hdGNoaW5nQ29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAKaW5kZXggMTJh
ZjA0ZmVkNjg3OTY0OWJiOWQwMTkxZDA3YjJhODM3MWNjYjZiZC4uNTcxM2Y2ZjVmNmE3MWQ1YmQ0
NTZlZDIyNzJjMzVjODFlMTcxYTg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcApAQCAtMTQ4LDQgKzE0OCwxMCBAQCBPcHRpb25TZXQ8
QW5pbWF0aW9uSW1wYWN0PiBLZXlmcmFtZUVmZmVjdFN0YWNrOjphcHBseUtleWZyYW1lRWZmZWN0
cyhSZW5kZXJTdHlsZQogICAgIHJldHVybiBpbXBhY3Q7CiB9CiAKK3ZvaWQgS2V5ZnJhbWVFZmZl
Y3RTdGFjazo6c3RvcEFjY2VsZXJhdGluZ1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0aWVzKFVzZUFj
Y2VsZXJhdGVkQWN0aW9uIHVzZUFjY2VsZXJhdGVkQWN0aW9uKQoreworICAgIGZvciAoYXV0byYg
ZWZmZWN0IDogbV9lZmZlY3RzKQorICAgICAgICBlZmZlY3QtPnN0b3BBY2NlbGVyYXRpbmdUcmFu
c2Zvcm1SZWxhdGVkUHJvcGVydGllcyh1c2VBY2NlbGVyYXRlZEFjdGlvbik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdFN0YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3RTdGFjay5oCmluZGV4IGQ0YTZiODA2Y2ExOTgyZDZiMzY3YjYzYmE5MjQ2NDM5YjU5ZWIz
ZjUuLjc1M2NlOWI1NmE5YzA2MmVjNzkyZjE0Yjk0OGZiMzBkZTI0MjBjNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suaApAQCAtNTMsNiArNTMs
OCBAQCBwdWJsaWM6CiAgICAgT3B0aW9uU2V0PEFuaW1hdGlvbkltcGFjdD4gYXBwbHlLZXlmcmFt
ZUVmZmVjdHMoUmVuZGVyU3R5bGUmIHRhcmdldFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgcHJl
dmlvdXNMYXN0U3R5bGVDaGFuZ2VFdmVudFN0eWxlKTsKICAgICBib29sIGhhc0VmZmVjdFdpdGhJ
bXBsaWNpdEtleWZyYW1lcygpIGNvbnN0OwogCisgICAgdm9pZCBzdG9wQWNjZWxlcmF0aW5nVHJh
bnNmb3JtUmVsYXRlZFByb3BlcnRpZXMoVXNlQWNjZWxlcmF0ZWRBY3Rpb24pOworCiBwcml2YXRl
OgogICAgIHZvaWQgZW5zdXJlRWZmZWN0c0FyZVNvcnRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IGIzOTczYzRlMzYzYTM1NTU2Yjc4YzJjZGY1
NDM4ZjZiMGM1Mzc0MzkuLjMxMGExNjc4YTE4ZDQ1ZmYwNjI4MzAwYTRmMzBhNjk4NDMzMGQ3N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC0xMjUzLDEy
ICsxMjUzLDYgQEAgdm9pZCBXZWJBbmltYXRpb246OmFjY2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2Uo
KQogICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVsaW5lPigqbV90aW1lbGluZSkuYW5pbWF0
aW9uQWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRDaGFuZ2UoKnRoaXMpOwogfQogCi12b2lkIFdl
YkFuaW1hdGlvbjo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKLXsKLSAgICBpZiAo
aXM8S2V5ZnJhbWVFZmZlY3Q+KG1fZWZmZWN0KSkKLSAgICAgICAgZG93bmNhc3Q8S2V5ZnJhbWVF
ZmZlY3Q+KCptX2VmZmVjdCkuYXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCk7Ci19Ci0K
IFdlYkFuaW1hdGlvbiYgV2ViQW5pbWF0aW9uOjpyZWFkeVByb21pc2VSZXNvbHZlKCkKIHsKICAg
ICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5k
ZXggYmY3NDUxZmY1OWI5YmQ0ZGI1YWIxOWUzNzA0ZGJmMTU5MGU0ZGFjOS4uNDliNzhmNzU0MGY0
NWExMzU0ZWVhOGQ5YzFlNmIyNjZmOThjMzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uaApAQCAtMTI0LDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcmVzb2x2ZShSZW5kZXJTdHlsZSYsIE9wdGlvbmFsPFNlY29uZHM+ID0gV1RGOjpudWxsb3B0
KTsKICAgICB2b2lkIGVmZmVjdFRhcmdldERpZENoYW5nZShjb25zdCBPcHRpb25hbDxjb25zdCBT
dHlsZWFibGU+JiBwcmV2aW91c1RhcmdldCwgY29uc3QgT3B0aW9uYWw8Y29uc3QgU3R5bGVhYmxl
PiYgbmV3VGFyZ2V0KTsKICAgICB2b2lkIGFjY2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2UoKTsKLSAg
ICB2b2lkIGFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9ucygpOwogICAgIHZvaWQgd2lsbENo
YW5nZVJlbmRlcmVyKCk7CiAKICAgICBib29sIGlzUnVubmluZ0FjY2VsZXJhdGVkKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uVHlwZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb25UeXBlcy5oCmluZGV4IGJk
Yjg2OTg1MGY2YjEyNzcwYjdlODBiOTQzYWNiYWNkNTYwZjE5NmMuLmM2M2NlOTM1NjY3ZDUzMmM5
NDQwMTBiMzNiMWQ0ODUxZTAzYWQ0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb25UeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb25UeXBlcy5oCkBAIC01NSw2ICs1NSwxMiBAQCBlbnVtIGNsYXNzIEFuaW1hdGlv
bkltcGFjdCB7CiAgICAgRm9yY2VzU3RhY2tpbmdDb250ZXh0ICAgPSAxIDw8IDEKIH07CiAKK2Vu
dW0gY2xhc3MgQWNjZWxlcmF0ZWRBY3Rpb25BcHBsaWNhdGlvblJlc3VsdCB7CisgICAgVHJhbnNm
b3JtUmVsYXRlZEFuaW1hdGlvbkNhbm5vdEJlQWNjZWxlcmF0ZWQgID0gMSA8PCAwCit9OworCitl
bnVtIGNsYXNzIFVzZUFjY2VsZXJhdGVkQWN0aW9uIDogdWludDhfdCB7IFllcywgTm8gfTsKKwog
dXNpbmcgTWFya2FibGVEb3VibGUgPSBNYXJrYWJsZTxkb3VibGUsIFdlYkFuaW1hdGlvbnNNYXJr
YWJsZURvdWJsZVRyYWl0cz47CiAKIHVzaW5nIEFuaW1hdGlvbkNvbGxlY3Rpb24gPSBMaXN0SGFz
aFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUxZTRjYTA3OTE2M2M0YTBmYTU1
YzJlMDU3ZjY4NGI2ZmJlMWQ5YS4uODMyNmI2MTBhNWYyOWRiOTcyNmMzMTNiM2FhYTg5Yjk5ZDMx
MjVjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVyc2VkIHRyYW5zZm9ybSBhbmltYXRp
b24gbm90IGFwcGxpZWQgYWxvbmdzaWRlIG90aGVyIHRyYW5zZm9ybSBhbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg2NTUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxMTE2Mjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMgdGhhdCBzdGFydCBhIHRyYW5zZm9y
bS1yZWxhdGVkIGFuaW1hdGlvbiB0aGF0IHJ1bnMgYWNjZWxlcmF0ZWQsIHRoZW4gYWRkIGFub3Ro
ZXIKKyAgICAgICAgdHJhbnNmb3JtLXJlbGF0ZWQgYW5pbWF0aW9uIHRoYXQgZWl0aGVyIGluaXRp
YWxseSBvciBldmVudHVhbGx5IGlzIG5vdCBhY2NlbGVyYXRlZC4gSW4gYWxsIGNhc2VzLAorICAg
ICAgICB3ZSBjaGVjayB0aGF0IG9uY2UgdGhlIHNlY29uZCBhbmltYXRpb24gaXMgbm8gbG9uZ2Vy
IGFjY2VsZXJhdGVkIHRoYXQgdGhlIGZpcnN0IGFuaW1hdGlvbiBpcyBhbHNvCisgICAgICAgIG5v
IGxvbmdlciBhY2NlbGVyYXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmlt
YXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9y
bS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0t
YW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFu
c2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVz
LTMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNm
b3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRy
YW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRp
ZXMuaHRtbDogQWRkZWQuCisKIDIwMjEtMDEtMTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzU3MSk6IGJsYWNrIGxpbmUgYXBw
ZWFycyB1cG9uIG5hdmlnYXRpbmcgYmFjayBmcm9tIGFwcGxlLmNvbSBzaG9wcGluZyBiYWcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGEzOTg1NDU1ODQ0
Mjc5ZTFmNGY2ZTFhNTgxOTcxZGJhYWNhYzRmYy4uZGMyOWEzYzlmNzAwZTgxNjcwYjVmZWYyMjA0
MzM1NDczYmI1MGE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTQ2MTUsMyArNDYxNSw4IEBAIGpzL2RvbS93ZWJhc3NlbWJseS1tZW1vcnktc2hhcmVk
LWZhaWwuaHRtbCBbIFNraXAgXQogc3RvcmFnZS9pbmRleGVkZGIvc2hhcmVkLW1lbW9yeS1zdHJ1
Y3R1cmVkLWNsb25lLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzIyMDUzNiBmYXN0L3Rl
eHQvY2prLW11bHRpLWNvZGVwb2ludC1jbHVzdGVyLXZlcnRpY2FsLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KKworIyBUaGVzZSB0ZXN0cyB0aW1lIG91dCBvbiBXaW5kb3dzCit3ZWJraXQub3Jn
L2IvMjIwNjUzIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdp
dGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi5odG1sIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvMjIwNjUzIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmlt
YXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMjIwNjUzIHdlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5z
Zm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21i
aW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNh
cGFiaWxpdGllcy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29t
YmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1j
YXBhYmlsaXRpZXMtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUyNGE0YmQ2ZTE5ZTcyNTY1
NWQzZDRhNjQ5MmM4OTkxYWZhMDViZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlmZmVyZW50
LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
aW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3Ro
IGJlY2FtZSAxCitQQVNTIGludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50
KGVsZW1lbnQpLmxlbmd0aCBiZWNhbWUgMgorUEFTUyBpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmlt
YXRpb25zRm9yRWxlbWVudChlbGVtZW50KS5sZW5ndGggYmVjYW1lIDAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMt
d2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy0yLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRp
ZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTY4
N2Y5NjM0MTdhZDQ0YzA3YzIwYTBkMzU3MGM2ZTIwNzBjOThlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMt
d2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy0yLmh0bWwKQEAgLTAsMCAr
MSwzNSBAQAorPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2NvbnN0IGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Citjb25zdCB0aW1pbmcgPSB7IGR1
cmF0aW9uOiAxMDAwLCBpdGVyYXRpb25zOiBJbmZpbml0eSB9OworCitjb25zdCBzaG91bGRCZWNv
bWVFcXVhbEFzeW5jID0gYXN5bmMgKGFjdHVhbCwgZXhwZWN0ZWQpID0+IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgcmVzb2x2ZSkpOwor
CisoYXN5bmMgKCkgPT4geworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBzaG91bGQgYmUgcnVuIGluIGEg
dGVzdCBydW5uZXIuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworICAgIC8vIEZpcnN0LCBzdGFydCBhIHRyYW5zZm9ybS1yZWxh
dGVkIGFuaW1hdGlvbiB0aGF0IGNhbiBiZSBhY2NlbGVyYXRlZC4KKyAgICBlbGVtZW50LmFuaW1h
dGUoeyBzY2FsZTogWzEsIDJdIH0sIHRpbWluZyk7CisgICAgYXdhaXQgc2hvdWxkQmVjb21lRXF1
YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVu
dCkubGVuZ3RoIiwgIjEiKTsKKworICAgIC8vIE5vdywgc3RhcnQgYW5vdGhlciB0cmFuc2Zvcm0t
cmVsYXRlZCBhbmltYXRpb24gdGhhdCBjYW4gYWxzbyBiZSBhY2NlbGVyYXRlZC4KKyAgICBjb25z
dCByb3RhdGlvbkFuaW1hdGlvbiA9IGVsZW1lbnQuYW5pbWF0ZSh7IHJvdGF0ZTogWyIzMGRlZyIs
ICI2MGRlZyJdIH0sIHRpbWluZyk7CisgICAgYXdhaXQgc2hvdWxkQmVjb21lRXF1YWxBc3luYygi
aW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3Ro
IiwgIjIiKTsKKworICAgIC8vIE5vdywgdXBkYXRlIHRoZSBsYXN0IHRyYW5zZm9ybS1yZWxhdGVk
IGFuaW1hdGlvbiB0byBhIHN0YXRlIHRoYXQgY2Fubm90IGJlIGFjY2VsZXJhdGVkIGFueW1vcmUK
KyAgICAvLyBkdWUgdG8gdXNpbmcgYSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4gVGhpcyBzaG91
bGQgbm90IG9ubHkgcHJldmVudCB0aGlzIGFuaW1hdGlvbiBmcm9tCisgICAgLy8gcnVubmluZyBh
Y2NlbGVyYXRlZCwgYnV0IGFsc28gbWFrZSB0aGUgZmlyc3QgYW5pbWF0aW9uIHJldmVydCB0byBh
IG5vbi1hY2NlbGVyYXRlZCBzdGF0ZS4KKyAgICByb3RhdGlvbkFuaW1hdGlvbi5lZmZlY3QudXBk
YXRlVGltaW5nKHsgZWFzaW5nOiAic3RlcHMoNjApIiB9KTsKKyAgICBhd2FpdCBzaG91bGRCZWNv
bWVFcXVhbEFzeW5jKCJpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChl
bGVtZW50KS5sZW5ndGgiLCAiMCIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
KSgpOworICAgIAorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRp
b25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVy
YXRpb24tY2FwYWJpbGl0aWVzLTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0
aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQtYWNjZWxl
cmF0aW9uLWNhcGFiaWxpdGllcy0zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTA0M2I4MGY1
MjJkZGUyMzllYTIyNmY3MjhiZTgyMmI3ODQ0M2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1k
aWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy0zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorUEFTUyBpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChlbGVtZW50
KS5sZW5ndGggYmVjYW1lIDEKK1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0Zv
ckVsZW1lbnQoZWxlbWVudCkubGVuZ3RoIGJlY2FtZSAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlm
ZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
YW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMtd2l0aC1kaWZmZXJlbnQt
YWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy0zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA3OWU4MjE0M2Fk
ZjZkMWQ2Y2Q5YzllZGIxNGUxZGRkNDAxYTk0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgtZGlm
ZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtMy5odG1sCkBAIC0wLDAgKzEsMzIgQEAK
KzxkaXYgaWQ9InRhcmdldCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFj
a2dyb3VuZC1jb2xvcjogYmxhY2s7Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitjb25zdCBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY29uc3QgZHVyYXRpb24gPSAxMDAwOworY29u
c3QgaXRlcmF0aW9ucyA9IEluZmluaXR5OworCitjb25zdCBzaG91bGRCZWNvbWVFcXVhbEFzeW5j
ID0gYXN5bmMgKGFjdHVhbCwgZXhwZWN0ZWQpID0+IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hv
dWxkQmVjb21lRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgcmVzb2x2ZSkpOworCisoYXN5bmMgKCkg
PT4geworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBzaG91bGQgYmUgcnVuIGluIGEgdGVzdCBydW5uZXIu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgIC8vIEZpcnN0LCBzdGFydCBhIHRyYW5zZm9ybS1yZWxhdGVkIGFuaW1hdGlv
biB0aGF0IGNhbiBiZSBhY2NlbGVyYXRlZC4KKyAgICBlbGVtZW50LmFuaW1hdGUoeyBzY2FsZTog
WzEsIDJdIH0sIHsgZHVyYXRpb24sIGl0ZXJhdGlvbnMgfSk7CisgICAgYXdhaXQgc2hvdWxkQmVj
b21lRXF1YWxBc3luYygiaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQo
ZWxlbWVudCkubGVuZ3RoIiwgIjEiKTsKKworICAgIC8vIE5vdywgc3RhcnQgYW5vdGhlciB0cmFu
c2Zvcm0tcmVsYXRlZCBhbmltYXRpb24gdGhhdCBjYW5ub3QgYmUgYWNjZWxlcmF0ZWQgZHVlIHRv
IHVzaW5nCisgICAgLy8gc3RlcHMoKSBlYXNpbmcuIFRoaXMgc2hvdWxkIG5vdCBvbmx5IHByZXZl
bnQgdGhpcyBhbmltYXRpb24gZnJvbSBydW5uaW5nIGFjY2VsZXJhdGVkLAorICAgIC8vIGJ1dCBh
bHNvIG1ha2UgdGhlIHByZXZpb3VzIGFuaW1hdGlvbiByZXZlcnQgdG8gYSBub24tYWNjZWxlcmF0
ZWQgc3RhdGUuCisgICAgZWxlbWVudC5hbmltYXRlKHsgcm90YXRlOiBbIjMwZGVnIiwgIjYwZGVn
Il0gfSwgeyBkdXJhdGlvbiwgaXRlcmF0aW9ucywgZWFzaW5nOiAic3RlcHMoNjApIiB9KTsKKyAg
ICBhd2FpdCBzaG91bGRCZWNvbWVFcXVhbEFzeW5jKCJpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmlt
YXRpb25zRm9yRWxlbWVudChlbGVtZW50KS5sZW5ndGgiLCAiMCIpOworCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9KSgpOworICAgIAorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5pbWF0aW9ucy13aXRo
LWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgt
ZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxMDQzYjgwZjUyMmRkZTIzOWVhMjI2ZjcyOGJlODIyYjc4NDQzZWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2NvbWJpbmluZy10cmFuc2Zvcm0tYW5p
bWF0aW9ucy13aXRoLWRpZmZlcmVudC1hY2NlbGVyYXRpb24tY2FwYWJpbGl0aWVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorUEFTUyBpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxl
bWVudChlbGVtZW50KS5sZW5ndGggYmVjYW1lIDEKK1BBU1MgaW50ZXJuYWxzLmFjY2VsZXJhdGVk
QW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCkubGVuZ3RoIGJlY2FtZSAwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRp
b25zLXdpdGgtZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvY29tYmluaW5nLXRyYW5zZm9ybS1hbmltYXRpb25zLXdpdGgt
ZGlmZmVyZW50LWFjY2VsZXJhdGlvbi1jYXBhYmlsaXRpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTU5
YjJiMDM3ODAwYzkxNGViN2E0N2MwZGI5ZDU0NzBjYjZjYjhmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jb21iaW5pbmctdHJhbnNmb3JtLWFuaW1hdGlvbnMt
d2l0aC1kaWZmZXJlbnQtYWNjZWxlcmF0aW9uLWNhcGFiaWxpdGllcy5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzxkaXYgaWQ9InRhcmdldCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eDsgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitjb25zdCBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY29uc3QgdGltaW5nID0geyBkdXJh
dGlvbjogMTAwMCwgaXRlcmF0aW9uczogSW5maW5pdHkgfTsKKworY29uc3Qgc2hvdWxkQmVjb21l
RXF1YWxBc3luYyA9IGFzeW5jIChhY3R1YWwsIGV4cGVjdGVkKSA9PiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHNob3VsZEJlY29tZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIHJlc29sdmUpKTsKKwor
KGFzeW5jICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGJlIHJ1biBpbiBhIHRl
c3QgcnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKKyAgICAvLyBGaXJzdCwgc3RhcnQgYSB0cmFuc2Zvcm0tcmVsYXRl
ZCBhbmltYXRpb24gdGhhdCBjYW4gYmUgYWNjZWxlcmF0ZWQuCisgICAgZWxlbWVudC5hbmltYXRl
KHsgc2NhbGU6IFsxLCAyXSB9LCB0aW1pbmcpOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVxdWFs
QXN5bmMoImludGVybmFscy5hY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQp
Lmxlbmd0aCIsICIxIik7CisKKyAgICAvLyBOb3csIHN0YXJ0IGFub3RoZXIgdHJhbnNmb3JtLXJl
bGF0ZWQgYW5pbWF0aW9uIHRoYXQgY2Fubm90IGJlIGFjY2VsZXJhdGVkIGR1ZSB0byBydW5uaW5n
IGF0CisgICAgLy8gYSBzcGVlZCBvdGhlciB0aGFuIDEuIFRoaXMgc2hvdWxkIG5vdCBvbmx5IHBy
ZXZlbnQgdGhpcyBhbmltYXRpb24gZnJvbSBydW5uaW5nIGFjY2VsZXJhdGVkLAorICAgIC8vIGJ1
dCBhbHNvIG1ha2UgdGhlIHByZXZpb3VzIGFuaW1hdGlvbiByZXZlcnQgdG8gYSBub24tYWNjZWxl
cmF0ZWQgc3RhdGUuCisgICAgZWxlbWVudC5hbmltYXRlKHsgcm90YXRlOiBbIjMwZGVnIiwgIjYw
ZGVnIl0gfSwgdGltaW5nKS51cGRhdGVQbGF5YmFja1JhdGUoMC41KTsKKyAgICBhd2FpdCBzaG91
bGRCZWNvbWVFcXVhbEFzeW5jKCJpbnRlcm5hbHMuYWNjZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxl
bWVudChlbGVtZW50KS5sZW5ndGgiLCAiMCIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Cit9KSgpOworICAgIAorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>