<?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>198566</bug_id>
          
          <creation_ts>2019-06-05 08:44:44 -0700</creation_ts>
          <short_desc>CSS Scroll Snap is not in effect when the user scrolls via the keyboard</short_desc>
          <delta_ts>2020-12-15 06:34:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Šime Vidas">sime.vidas</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1541995</commentid>
    <comment_count>0</comment_count>
    <who name="Šime Vidas">sime.vidas</who>
    <bug_when>2019-06-05 08:44:44 -0700</bug_when>
    <thetext>1. Open this page https://output.jsbin.com/yugijov/quiet
2. Scroll the page by pressing the spacebar or arrow down keys

Actual results:

Safari scrolls the page without taking the scroll snap positions into account.

Expected results:

When pressing the spacebar or arrow down keys, the page should scroll to the next scroll snap position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542459</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-06 10:09:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/51488088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712402</commentid>
    <comment_count>2</comment_count>
      <attachid>415539</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-07 01:41:55 -0800</bug_when>
    <thetext>Created attachment 415539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712467</commentid>
    <comment_count>3</comment_count>
      <attachid>415539</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-07 08:52:01 -0800</bug_when>
    <thetext>Comment on attachment 415539
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:141
&gt;      if (velocity &lt; 0) {
&gt; -        if (lowerSnapOffsetRangeIndex != invalidSnapOffsetIndex &amp;&amp; lowerSnapPosition &lt; snapOffsetRanges[lowerSnapOffsetRangeIndex].end) {
&gt; +        if (lowerSnapOffsetRangeIndex == invalidSnapOffsetIndex || lowerSnapPosition &gt;= snapOffsetRanges[lowerSnapOffsetRangeIndex].end) {
&gt; +            activeSnapIndex = lowerIndex;
&gt; +            return lowerSnapPosition;

Is this logic correct for horizontal scrolling in RTL? Please add a test to ensure that it is.

&gt; Source/WebCore/platform/ScrollAnimator.h:83
&gt; +    bool scrollWithDirectionalSnapping(ScrollbarOrientation, ScrollGranularity, float step, float multiplier);

Instead of a new function, can we just add a behavior enum to an existing function?

&gt; Source/WebCore/platform/cocoa/ScrollController.mm:919
&gt; +    return closestSnapOffset(snapState.snapOffsetsForAxis(axis), snapState.snapOffsetRangesForAxis(axis), LayoutUnit(destination / m_client.pageScaleFactor()), velocity, snapIndex, LayoutUnit(originalPosition / m_client.pageScaleFactor()));

Would be nice to have a test that exercises the &quot;destination / m_client.pageScaleFactor()&quot; logic (i.e. zooms then snaps).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713567</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-10 09:33:24 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 415539 [details]
&gt; Patch
&gt; 

Thanks for the review!

&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415539&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:141
&gt; &gt;      if (velocity &lt; 0) {
&gt; &gt; -        if (lowerSnapOffsetRangeIndex != invalidSnapOffsetIndex &amp;&amp; lowerSnapPosition &lt; snapOffsetRanges[lowerSnapOffsetRangeIndex].end) {
&gt; &gt; +        if (lowerSnapOffsetRangeIndex == invalidSnapOffsetIndex || lowerSnapPosition &gt;= snapOffsetRanges[lowerSnapOffsetRangeIndex].end) {
&gt; &gt; +            activeSnapIndex = lowerIndex;
&gt; &gt; +            return lowerSnapPosition;
&gt; 
&gt; Is this logic correct for horizontal scrolling in RTL? Please add a test to
&gt; ensure that it is.

This part was correct for horizontal scrolling in RTL, but the caller was incorrect. I&apos;ve fixed that and added a test.

&gt; 
&gt; &gt; Source/WebCore/platform/ScrollAnimator.h:83
&gt; &gt; +    bool scrollWithDirectionalSnapping(ScrollbarOrientation, ScrollGranularity, float step, float multiplier);
&gt; 
&gt; Instead of a new function, can we just add a behavior enum to an existing
&gt; function?

Okay. I&apos;ve done this.

&gt; &gt; Source/WebCore/platform/cocoa/ScrollController.mm:919
&gt; &gt; +    return closestSnapOffset(snapState.snapOffsetsForAxis(axis), snapState.snapOffsetRangesForAxis(axis), LayoutUnit(destination / m_client.pageScaleFactor()), velocity, snapIndex, LayoutUnit(originalPosition / m_client.pageScaleFactor()));
&gt; 
&gt; Would be nice to have a test that exercises the &quot;destination /
&gt; m_client.pageScaleFactor()&quot; logic (i.e. zooms then snaps).


I added some tests...and discovered a bug here. I&apos;ve fixed that and included the tests in the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713568</commentid>
    <comment_count>5</comment_count>
      <attachid>415885</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-10 09:34:39 -0800</bug_when>
    <thetext>Created attachment 415885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713569</commentid>
    <comment_count>6</comment_count>
      <attachid>415886</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-10 09:35:26 -0800</bug_when>
    <thetext>Created attachment 415886
Diff from reviewed version of the change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713631</commentid>
    <comment_count>7</comment_count>
      <attachid>415906</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-10 11:28:50 -0800</bug_when>
    <thetext>Created attachment 415906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713856</commentid>
    <comment_count>8</comment_count>
      <attachid>415979</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-11 02:10:23 -0800</bug_when>
    <thetext>Created attachment 415979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714724</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-15 06:34:53 -0800</bug_when>
    <thetext>Committed r270838: &lt;https://trac.webkit.org/changeset/270838&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415979.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415539</attachid>
            <date>2020-12-07 01:41:55 -0800</date>
            <delta_ts>2020-12-10 09:34:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198566-20201207104153.patch</filename>
            <type>text/plain</type>
            <size>39492</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZjMmMzODI4N2JlNTMy
ZTI4MmVmYzg0NGJlMDIyOWU5M2I5YzYwMi4uNzdjYzQ1ZjkzZDhiYzBjZjE0MDE2OGQyYWRiNTFk
MTIyZjY1ZTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTEyLTA3ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgU2Nyb2xs
IFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgdmlhIHRoZSBrZXli
b2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTQ4ODA4OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIHNu
YXAgZm9yIGtleWJvYXJkIHNjcm9sbGluZworCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgc3Vw
cG9ydCBmb3IgdGhlIGNvbmNlcHQgb2YgZGlyZWN0aW9uYWwgc2Nyb2xsIHNuYXBwaW5nLAorICAg
ICAgICB3aGljaCB3aWxsIG5ldmVyIHNuYXAgdG8gYSBzbmFwIHBvaW50IHRoYXQgaXMgYXdheSBm
cm9tIHRoZSBvcmlnaW5hbAorICAgICAgICBzY3JvbGwgb2Zmc2V0IGluIHRoZSBvcHBvc2l0ZSBk
aXJlY3Rpb24gb2YgdGhlIHNjcm9sbCBkaXJlY3Rpb24uIFRoaXMKKyAgICAgICAgYWxsb3dzIGVz
Y2FwaW5nIHNuYXAgcG9pbnRzLgorCisgICAgICAgIFRlc3RzOiB0aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250
YWwtd2l0aC1rZXlib2FyZC5odG1sCisgICAgICAgICAgICAgICB0aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2Fs
LXdpdGgta2V5Ym9hcmQuaHRtbAorICAgICAgICAgICAgICAgdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFs
LXdpdGgta2V5Ym9hcmQuaHRtbAorICAgICAgICAgICAgICAgdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13
aXRoLWtleWJvYXJkLmh0bWwKKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBP
ZmZzZXRzSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbG9zZXN0U25hcE9mZnNldCk6IEFk
ZGVkIGEgbmV3IG9wdGlvbmFsIGFyZ3VtZW50IHRoYXQgc2lnbmFscworICAgICAgICBkaXJlY3Rp
b25hbCBzbmFwcGluZy4gVGhpcyBjaGFuZ2VzIHRoZSBiZWhhdmlvciB3aGVuIGNob29zaW5nIGEg
c25hcCBvZmZzZXQKKyAgICAgICAgdGhhdCBpcyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGFz
IHRoZSBzY3JvbGwgZGlyZWN0aW9uLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5oOiBVcGRhdGVkIGFyZ3VtZW50IGxpc3QuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6
OnNjcm9sbCk6IE5vIGxvbmdlciB1c2UgdGhlIGdyYW51bGFyaXR5IGFyZ3VtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24pOiBSZW1v
dmUgdGhlIHVudXNlZCBTY3JvbGxHcmFudWxhcml0eQorICAgICAgICBhcmd1bWVudCBhbmQgdXNl
IHRoZSBuZXcgcG9zaXRpb25Gcm9tU3RlcCBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6c2Nyb2xsV2l0aERpcmVjdGlvbmFsU25hcHBpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21TdGVwKTogQWRkZWQgdGhp
cyBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxF
dmVudCk6IFJlbW92ZSB0aGUgZ3JhbnVsYXJpdHkgYXJndW1lbnQuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuaDogVXBkYXRlIG1ldGhvZCBkZWNsYXJhdGlvbnMuCisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbCk6IFVzZSB0aGUgbmV3IHNjcm9sbFdpdGhEaXJlY3Rpb25hbFNuYXBw
aW5nIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmg6
IEFkZGVkIG5ldyBtZXRob2QuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmFkanVzdFNjcm9s
bERlc3RpbmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBVc2UgbmV3IHBvc2l0aW9uRnJvbVN0ZXAgaGVscGVyLgor
CiAyMDIwLTEyLTAzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBNb3ZlIGNvZGUgZnJvbSBBeGlzU2Nyb2xsU25hcE9mZnNldHMgdG8gU2Nyb2xsU25h
cE9mZnNldHNJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAppbmRleCA2MDM5Mzc2Y2M4MWQ4NDgwNjE4YmExNjY4
NTdlNTgxYzk4YTU0YmU0Li5lYzBiNTA3OWM5MmYxYzcxNjI1ZTM2NGZiMDc4NjNhMzMwY2YxM2I2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zm
c2V0c0luZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgdm9pZCBpbmRpY2Vz
T2ZOZWFyZXN0U25hcE9mZnNldHMoTGF5b3V0VHlwZSBvZmZzZXQsIGNvbnN0IFZlY3RvcjxMYXlv
dXRUeQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGF5b3V0VHlwZT4KLUxheW91dFR5cGUgY2xv
c2VzdFNuYXBPZmZzZXQoY29uc3QgVmVjdG9yPExheW91dFR5cGU+JiBzbmFwT2Zmc2V0cywgY29u
c3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFR5cGU+PiYgc25hcE9mZnNldFJhbmdl
cywgTGF5b3V0VHlwZSBzY3JvbGxEZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIHVuc2lnbmVk
JiBhY3RpdmVTbmFwSW5kZXgpCitzdGF0aWMgTGF5b3V0VHlwZSBjbG9zZXN0U25hcE9mZnNldChj
b25zdCBWZWN0b3I8TGF5b3V0VHlwZT4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xs
T2Zmc2V0UmFuZ2U8TGF5b3V0VHlwZT4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRUeXBlIHNj
cm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRl
eCwgT3B0aW9uYWw8TGF5b3V0VHlwZT4gb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25h
cHBpbmcpCiB7CiAgICAgQVNTRVJUKHNuYXBPZmZzZXRzLnNpemUoKSk7CiAgICAgYWN0aXZlU25h
cEluZGV4ID0gMDsKQEAgLTEzMiwzMiArMTMyLDQzIEBAIExheW91dFR5cGUgY2xvc2VzdFNuYXBP
ZmZzZXQoY29uc3QgVmVjdG9yPExheW91dFR5cGU+JiBzbmFwT2Zmc2V0cywgY29uc3QgVmVjdG9y
CiAgICAgfQogCiAgICAgLy8gTm9uLXplcm8gdmVsb2NpdHkgaW5kaWNhdGVzIGEgZmxpY2sgZ2Vz
dHVyZS4gRXZlbiBpZiBhbm90aGVyIHNuYXAgcG9pbnQgaXMgY2xvc2VyLCB3ZSBzaG91bGQgY2hv
b3NlIHRoZSBvbmUgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgZmxpY2sgZ2VzdHVyZQotICAgIC8v
IGFzIGxvbmcgYXMgYSBzY3JvbGwgc25hcCBvZmZzZXQgcmFuZ2UgZG9lcyBub3QgbGllIGJldHdl
ZW4gdGhlIHNjcm9sbCBkZXN0aW5hdGlvbiBhbmQgdGhlIHRhcmdldGVkIHNuYXAgb2Zmc2V0Lgor
ICAgIC8vIGFzIGxvbmcgYXMgYSBzY3JvbGwgc25hcCBvZmZzZXQgcmFuZ2UgZG9lcyBub3QgbGll
IGJldHdlZW4gdGhlIHNjcm9sbCBkZXN0aW5hdGlvbiBhbmQgdGhlIHRhcmdldGVkIHNuYXAgb2Zm
c2V0LiBJZiB3ZSBhcmUgZG9pbmcgZGlyZWN0aW9uYWwKKyAgICAvLyBzbmFwcGluZywgd2Ugc2hv
dWxkIG5ldmVyIHNuYXAgdG8gYSBwb2ludCB0aGF0IHdhcyBvbiB0aGUgb3RoZXIgc2lkZSBvZiB0
aGUgb3JpZ2luYWwgcG9zaXRpb24gaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBvZiB0aGlzIHNj
cm9sbC4KKyAgICAvLyBUaGlzIGFsbG93cyBkaXJlY3Rpb25hbCBzY3JvbGxpbmcgdG8gZXNjYXBl
IHNuYXAgcG9pbnRzLgogICAgIGlmICh2ZWxvY2l0eSA8IDApIHsKLSAgICAgICAgaWYgKGxvd2Vy
U25hcE9mZnNldFJhbmdlSW5kZXggIT0gaW52YWxpZFNuYXBPZmZzZXRJbmRleCAmJiBsb3dlclNu
YXBQb3NpdGlvbiA8IHNuYXBPZmZzZXRSYW5nZXNbbG93ZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleF0u
ZW5kKSB7CisgICAgICAgIGlmIChsb3dlclNuYXBPZmZzZXRSYW5nZUluZGV4ID09IGludmFsaWRT
bmFwT2Zmc2V0SW5kZXggfHwgbG93ZXJTbmFwUG9zaXRpb24gPj0gc25hcE9mZnNldFJhbmdlc1ts
b3dlclNuYXBPZmZzZXRSYW5nZUluZGV4XS5lbmQpIHsKKyAgICAgICAgICAgIGFjdGl2ZVNuYXBJ
bmRleCA9IGxvd2VySW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbG93ZXJTbmFwUG9zaXRpb247
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25h
bFNuYXBwaW5nLmhhc1ZhbHVlKCkgfHwgKm9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25hbFNu
YXBwaW5nID4gdXBwZXJTbmFwUG9zaXRpb24pIHsKKyAgICAgICAgICAgIGFjdGl2ZVNuYXBJbmRl
eCA9IHVwcGVySW5kZXg7CisgICAgICAgICAgICByZXR1cm4gdXBwZXJTbmFwUG9zaXRpb247Cisg
ICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodXBwZXJTbmFwT2Zmc2V0UmFuZ2VJ
bmRleCA9PSBpbnZhbGlkU25hcE9mZnNldEluZGV4IHx8IHNuYXBPZmZzZXRSYW5nZXNbdXBwZXJT
bmFwT2Zmc2V0UmFuZ2VJbmRleF0uc3RhcnQgPj0gdXBwZXJTbmFwUG9zaXRpb24pIHsKICAgICAg
ICAgICAgIGFjdGl2ZVNuYXBJbmRleCA9IHVwcGVySW5kZXg7CiAgICAgICAgICAgICByZXR1cm4g
dXBwZXJTbmFwUG9zaXRpb247CiAgICAgICAgIH0KLSAgICAgICAgYWN0aXZlU25hcEluZGV4ID0g
bG93ZXJJbmRleDsKLSAgICAgICAgcmV0dXJuIGxvd2VyU25hcFBvc2l0aW9uOwotICAgIH0KIAot
ICAgIGlmICh1cHBlclNuYXBPZmZzZXRSYW5nZUluZGV4ICE9IGludmFsaWRTbmFwT2Zmc2V0SW5k
ZXggJiYgc25hcE9mZnNldFJhbmdlc1t1cHBlclNuYXBPZmZzZXRSYW5nZUluZGV4XS5zdGFydCA8
IHVwcGVyU25hcFBvc2l0aW9uKSB7Ci0gICAgICAgIGFjdGl2ZVNuYXBJbmRleCA9IGxvd2VySW5k
ZXg7Ci0gICAgICAgIHJldHVybiBsb3dlclNuYXBQb3NpdGlvbjsKKyAgICAgICAgaWYgKCFvcmln
aW5hbFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZy5oYXNWYWx1ZSgpIHx8ICpvcmlnaW5h
bFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyA8IGxvd2VyU25hcFBvc2l0aW9uKSB7Cisg
ICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSBsb3dlckluZGV4OworICAgICAgICAgICAgcmV0
dXJuIGxvd2VyU25hcFBvc2l0aW9uOworICAgICAgICB9CiAgICAgfQotICAgIGFjdGl2ZVNuYXBJ
bmRleCA9IHVwcGVySW5kZXg7Ci0gICAgcmV0dXJuIHVwcGVyU25hcFBvc2l0aW9uOworCisgICAg
YWN0aXZlU25hcEluZGV4ID0gaW52YWxpZFNuYXBPZmZzZXRJbmRleDsKKyAgICByZXR1cm4gc2Ny
b2xsRGVzdGluYXRpb247CiB9CiAKLUxheW91dFVuaXQgY2xvc2VzdFNuYXBPZmZzZXQoY29uc3Qg
VmVjdG9yPExheW91dFVuaXQ+JiBzbmFwT2Zmc2V0cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNl
dFJhbmdlPExheW91dFVuaXQ+PiYgc25hcE9mZnNldFJhbmdlcywgTGF5b3V0VW5pdCBzY3JvbGxE
ZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIHVuc2lnbmVkJiBhY3RpdmVTbmFwSW5kZXgpCitM
YXlvdXRVbml0IGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25h
cE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNu
YXBPZmZzZXRSYW5nZXMsIExheW91dFVuaXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9j
aXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4LCBPcHRpb25hbDxMYXlvdXRVbml0PiBvcmln
aW5hbFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZykKIHsKLSAgICByZXR1cm4gY2xvc2Vz
dFNuYXBPZmZzZXQ8TGF5b3V0VW5pdD4oc25hcE9mZnNldHMsIHNuYXBPZmZzZXRSYW5nZXMsIHNj
cm9sbERlc3RpbmF0aW9uLCB2ZWxvY2l0eSwgYWN0aXZlU25hcEluZGV4KTsKKyAgICByZXR1cm4g
Y2xvc2VzdFNuYXBPZmZzZXQ8TGF5b3V0VW5pdD4oc25hcE9mZnNldHMsIHNuYXBPZmZzZXRSYW5n
ZXMsIHNjcm9sbERlc3RpbmF0aW9uLCB2ZWxvY2l0eSwgYWN0aXZlU25hcEluZGV4LCBvcmlnaW5h
bFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyk7CiB9CiAKLWZsb2F0IGNsb3Nlc3RTbmFw
T2Zmc2V0KGNvbnN0IFZlY3RvcjxmbG9hdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Ny
b2xsT2Zmc2V0UmFuZ2U8ZmxvYXQ+PiYgc25hcE9mZnNldFJhbmdlcywgZmxvYXQgc2Nyb2xsRGVz
dGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4KQorZmxv
YXQgY2xvc2VzdFNuYXBPZmZzZXQoY29uc3QgVmVjdG9yPGZsb2F0PiYgc25hcE9mZnNldHMsIGNv
bnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxmbG9hdD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBm
bG9hdCBzY3JvbGxEZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIHVuc2lnbmVkJiBhY3RpdmVT
bmFwSW5kZXgsIE9wdGlvbmFsPGZsb2F0PiBvcmlnaW5hbFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxT
bmFwcGluZykKIHsKLSAgICByZXR1cm4gY2xvc2VzdFNuYXBPZmZzZXQ8ZmxvYXQ+KHNuYXBPZmZz
ZXRzLCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFjdGl2
ZVNuYXBJbmRleCk7CisgICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PGZsb2F0PihzbmFwT2Zm
c2V0cywgc25hcE9mZnNldFJhbmdlcywgc2Nyb2xsRGVzdGluYXRpb24sIHZlbG9jaXR5LCBhY3Rp
dmVTbmFwSW5kZXgsIG9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKTsKIH0K
IAogZW51bSBjbGFzcyBJbnNldE9yT3V0c2V0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgKaW5kZXggZmNhMzdkZWYzYTBj
NmI2NGE3MzYwYjYzYmRmZDU5NDM1MWJkMDYxMi4uNjMyZDdlN2FhZjcyOGEwM2M1MzRmMDcyMjk0
Y2ZlMDAzODhlMTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsU25hcE9mZnNldHNJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUg
IkxheW91dFVuaXQuaCIKICNpbmNsdWRlICJTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCIKKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTY1LDggKzY2LDggQEAgY29uc3QgdW5zaWduZWQgaW52YWxpZFNuYXBP
ZmZzZXRJbmRleCA9IFVJTlRfTUFYOwogLy8gdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBib3Jk
ZXIgYm94Lgogdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFi
bGVBcmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94LCBjb25zdCBSZW5k
ZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZpZXdwb3J0UmVjdElu
Qm9yZGVyQm94Q29vcmRpbmF0ZXMpOwogCi1XRUJDT1JFX0VYUE9SVCBMYXlvdXRVbml0IGNsb3Nl
c3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0
IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5nZXMs
IExheW91dFVuaXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYg
YWN0aXZlU25hcEluZGV4KTsKLVdFQkNPUkVfRVhQT1JUIGZsb2F0IGNsb3Nlc3RTbmFwT2Zmc2V0
KGNvbnN0IFZlY3RvcjxmbG9hdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zm
c2V0UmFuZ2U8ZmxvYXQ+PiYgc25hcE9mZnNldFJhbmdlcywgZmxvYXQgc2Nyb2xsRGVzdGluYXRp
b24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4KTsKK1dFQkNPUkVf
RVhQT1JUIExheW91dFVuaXQgY2xvc2VzdFNuYXBPZmZzZXQoY29uc3QgVmVjdG9yPExheW91dFVu
aXQ+JiBzbmFwT2Zmc2V0cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVu
aXQ+PiYgc25hcE9mZnNldFJhbmdlcywgTGF5b3V0VW5pdCBzY3JvbGxEZXN0aW5hdGlvbiwgZmxv
YXQgdmVsb2NpdHksIHVuc2lnbmVkJiBhY3RpdmVTbmFwSW5kZXgsIE9wdGlvbmFsPExheW91dFVu
aXQ+IG9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nID0gV1RGOjpudWxsb3B0
KTsKK1dFQkNPUkVfRVhQT1JUIGZsb2F0IGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8ZmxvYXQ+
PiYgc25hcE9mZnNldFJhbmdlcywgZmxvYXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9j
aXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4LCBPcHRpb25hbDxmbG9hdD4gb3JpZ2luYWxQ
b3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcgPSBXVEY6Om51bGxvcHQpOwogCiB9OyAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAKaW5kZXggZGFlMjdkZjNkMjg4N2FmZmE4Y2EwMmIyYzEwODAzMzM3NDg2YjJkZC4uZGM0
NWExNDMxMWFjMzdjMDA0NjY3NDY1ZjBjZjgyNjNhMDVhNDJiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtODAsMjEgKzgwLDE2IEBAIFNjcm9sbEFu
aW1hdG9yOjp+U2Nyb2xsQW5pbWF0b3IoKQogI2VuZGlmCiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCitib29sIFNj
cm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNj
cm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQogewotICAgIHJl
dHVybiBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3Rl
cCwgbXVsdGlwbGllcik7CisgICAgcmV0dXJuIHNjcm9sbFdpdGhvdXRBbmltYXRpb24ob3JpZW50
YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOwogfQogCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpzY3Jv
bGxXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikKK2Jvb2wgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCiB7CiAgICAgRmxvYXRQb2lu
dCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKTsKLSAgICBGbG9hdFNp
emUgZGVsdGE7Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCi0g
ICAgICAgIGRlbHRhLnNldFdpZHRoKHN0ZXAgKiBtdWx0aXBsaWVyKTsKLSAgICBlbHNlCi0gICAg
ICAgIGRlbHRhLnNldEhlaWdodChzdGVwICogbXVsdGlwbGllcik7Ci0KLSAgICBGbG9hdFBvaW50
IG5ld1Bvc2l0aW9uID0gRmxvYXRQb2ludChjdXJyZW50UG9zaXRpb24gKyBkZWx0YSkuY29uc3Ry
YWluZWRCZXR3ZWVuKG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCksIG1f
c2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOworICAgIEZsb2F0UG9pbnQg
bmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0aXBs
aWVyKTsKKyAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2Vlbiht
X3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBtX3Njcm9sbGFibGVBcmVh
Lm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKICAgICBpZiAoY3VycmVudFBvc2l0aW9uID09IG5l
d1Bvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEyMCw2ICsxMTUsMzIgQEAg
dm9pZCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmIG9mZnNldCwgU2MKICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhG
b3JPZmZzZXQoKTsKIH0KIAorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsV2l0aERpcmVjdGlv
bmFsU25hcHBpbmcoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQoreworI2lm
IEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9IHBv
c2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOworICAgIGlmIChv
cmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7CisgICAgICAgIGZsb2F0IG5ld1gg
PSBtX3Njcm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25h
bFNuYXBwaW5nKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgbmV3UG9zaXRpb24ueCgpLCBt
dWx0aXBsaWVyLCB0aGlzLT5jdXJyZW50UG9zaXRpb24oKS54KCkpOworICAgICAgICByZXR1cm4g
c2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdYIC0gdGhpcy0+Y3Vy
cmVudFBvc2l0aW9uKCkueCgpLCAxLjApOworICAgIH0KKworICAgIGZsb2F0IG5ld1kgPSBtX3Nj
cm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBw
aW5nKFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG5ld1Bvc2l0aW9uLnkoKSwgbXVsdGlwbGll
ciwgdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkueSgpKTsKKyAgICByZXR1cm4gc2Nyb2xsKFZlcnRp
Y2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3WSAtIHRoaXMtPmN1cnJlbnRQb3NpdGlvbigp
LnkoKSwgMS4wKTsKKyNlbHNlCisgICAgcmV0dXJuIHNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVs
YXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworI2VuZGlmCit9CisKK0Zsb2F0UG9pbnQgU2Nyb2xs
QW5pbWF0b3I6OnBvc2l0aW9uRnJvbVN0ZXAoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRp
b24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCit7CisgICAgRmxvYXRTaXplIGRlbHRh
OworICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICBk
ZWx0YS5zZXRXaWR0aChzdGVwICogbXVsdGlwbGllcik7CisgICAgZWxzZQorICAgICAgICBkZWx0
YS5zZXRIZWlnaHQoc3RlcCAqIG11bHRpcGxpZXIpOworICAgIHJldHVybiB0aGlzLT5jdXJyZW50
UG9zaXRpb24oKSArIGRlbHRhOworfQorCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICNp
ZiBQTEFURk9STShNQUMpCiBib29sIFNjcm9sbEFuaW1hdG9yOjpwcm9jZXNzV2hlZWxFdmVudEZv
clNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQpAQCAtMTgy
LDcgKzIwMyw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAtZGVs
dGFZOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNjcm9sbFdpdGhvdXRBbmltYXRpb24oVmVydGlj
YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCB2ZXJ0aWNhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCks
IC1kZWx0YVkpOworICAgICAgICAgICAgICAgIHNjcm9sbFdpdGhvdXRBbmltYXRpb24oVmVydGlj
YWxTY3JvbGxiYXIsIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7CiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFy
LCBncmFudWxhcml0eSwgdmVydGljYWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZKTsK
ICAgICAgICAgfQpAQCAtMTk1LDcgKzIxNiw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OmhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgICAgICAgICAgICAg
ICAgICBkZWx0YVggPSAtZGVsdGFYOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGUu
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNjcm9sbFdpdGhv
dXRBbmltYXRpb24oSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIGhvcml6b250YWxT
Y3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYKTsKKyAgICAgICAgICAgICAgICBzY3JvbGxX
aXRob3V0QW5pbWF0aW9uKEhvcml6b250YWxTY3JvbGxiYXIsIGhvcml6b250YWxTY3JvbGxiYXIt
PnBpeGVsU3RlcCgpLCAtZGVsdGFYKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBzY3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIGhvcml6b250YWxTY3Jv
bGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggNTlmY2M0ZDQ0OWQzNDQ5NzUyMTU0NGUxMzI4
OGUyZTRlODc4NzQxZC4uODEyYzhhZDRhOThhNmUwZmE3OGYwY2JhNGFiZWFmYTNhMzU1YmYzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC03MiwxMSArNzIs
MTYgQEAgcHVibGljOgogICAgIC8vIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5zIHRydWUuICBTY3Jv
bGxpbmcgbWF5IGJlIGltbWVkaWF0ZSBvciBhbmltYXRlZC4KICAgICAvLyBUaGUgYmFzZSBjbGFz
cyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1lZGlhdGVseSwgbmV2ZXIgYW5pbWF0
ZXMuCiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpOwotICAgIGJvb2wgc2Ny
b2xsV2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpOworICAgIGJvb2wgc2Nyb2xsV2l0aG91
dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlw
bGllcik7CiAKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAorICAg
IC8vIFdvcmtzIHNpbWlsYXJseSB0byBgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbGAsIGJ1dCBpZiBz
Y3JvbGwgc25hcHBpbmcgaXMgZW5hYmxlZCwKKyAgICAvLyB3aWxsIGFkanVzdCB0aGUgc2Nyb2xs
IGRlc3RpbmF0aW9uIHRvIHNuYXAgdG8gaW4gdGhlIGRpcmVjdGlvbiBvZiBzY3JvbGwgKGRldGVy
bWluZWQKKyAgICAvLyB2aWEgbXVsdGlwbGllcikuCisgICAgYm9vbCBzY3JvbGxXaXRoRGlyZWN0
aW9uYWxTbmFwcGluZyhTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZs
b2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpOworCiAgICAgU2Nyb2xsYWJsZUFyZWEmIHNjcm9s
bGFibGVBcmVhKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYTsgfQogCiAgICAgdmly
dHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CkBA
IC0xNTgsNiArMTYzLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlQb3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSk7CiAgICAgdm9pZCB1
cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKKyAgICBGbG9hdFBvaW50IHBv
c2l0aW9uRnJvbVN0ZXAoU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11
bHRpcGxpZXIpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWEmIG1fc2Nyb2xsYWJsZUFyZWE7CiAgICAg
UmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTA0MmI1YzE4
MmY5ZDg1YWJlYmQxOTNiNWVmMWQwOTE2OTJjMmMyNi4uMWI5NTZlNDBiYWU4ZmI1NzUyNjg5Y2Mw
ODQwNDUzNWEyZjZjNTQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChT
Y3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAg
ICAgIG11bHRpcGxpZXIgPSAtbXVsdGlwbGllcjsKIAogICAgIHN0ZXAgPSBhZGp1c3RTY3JvbGxT
dGVwRm9yRml4ZWRDb250ZW50KHN0ZXAsIG9yaWVudGF0aW9uLCBncmFudWxhcml0eSk7Ci0gICAg
cmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwg
c3RlcCwgbXVsdGlwbGllcik7CisgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsV2l0
aERpcmVjdGlvbmFsU25hcHBpbmcob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0
aXBsaWVyKTsKIH0KIAogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCwgU2Nyb2xsQ2xhbXBpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggZmIy
YWE4NjM3Y2Y4YzczMGVlYzFlNDMzZmQ2YWIwMTA4ZmQ5YjExMi4uMGRiMWFkNjYyMDA4OWM1ZGU4
MDkxMWRkODg4NDYyMWViYzAxOTE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtMTY3LDkgKzE2Nyw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNjcm9sbFNuYXBJbmRleERpZENoYW5nZShib29sIHN0YXRlKSB7IG1fYWN0aXZl
U2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlID0gc3RhdGU7IH0KICAgICB1bnNpZ25lZCBhY3RpdmVT
Y3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAgICAgdm9pZCB1
cGRhdGVTY3JvbGxTbmFwU3RhdGUoY29uc3QgU2Nyb2xsYWJsZUFyZWEmKTsKLQogICAgIHZvaWQg
dXBkYXRlR2VzdHVyZUluUHJvZ3Jlc3NTdGF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
LQorICAgIGZsb2F0IGFkanVzdFNjcm9sbERlc3RpbmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGlu
ZyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgZmxv
YXQgb3JpZ2luYWxQb3NpdGlvbik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgcHJvY2Vz
c1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbQppbmRleCAyNzAwYTJmOWE5NDM3M2ZjODc5YjdiYTNhMTI3NDA5NzhkYjY5ZTUyLi5iMWNk
YjM2YWVjNDI3M2FmMzNkYTIxODJiYmJlMDdmYmU2ZWEyNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTkwNSw2ICs5MDUs
MjEgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9y
QXhpc0FuZE9mZnNldChTY3JvbGxFdmVudEF4aXMKICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5k
ZXhGb3JBeGlzKGF4aXMsIGFjdGl2ZUluZGV4KTsKIH0KIAorZmxvYXQgU2Nyb2xsQ29udHJvbGxl
cjo6YWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKFNjcm9sbEV2
ZW50QXhpcyBheGlzLCBmbG9hdCBkZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIGZsb2F0IG9y
aWdpbmFsUG9zaXRpb24pCit7CisgICAgaWYgKCF1c2VzU2Nyb2xsU25hcCgpKQorICAgICAgICBy
ZXR1cm4gZGVzdGluYXRpb247CisKKyAgICBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSYgc25hcFN0
YXRlID0gKm1fc2Nyb2xsU25hcFN0YXRlOworICAgIGF1dG8gc25hcE9mZnNldHMgPSBzbmFwU3Rh
dGUuc25hcE9mZnNldHNGb3JBeGlzKGF4aXMpOworICAgIGlmICghc25hcE9mZnNldHMuc2l6ZSgp
KQorICAgICAgICByZXR1cm4gZGVzdGluYXRpb247CisKKyAgICB1bnNpZ25lZCBzbmFwSW5kZXg7
CisgICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0KHNuYXBTdGF0ZS5zbmFwT2Zmc2V0c0ZvckF4
aXMoYXhpcyksIHNuYXBTdGF0ZS5zbmFwT2Zmc2V0UmFuZ2VzRm9yQXhpcyhheGlzKSwgTGF5b3V0
VW5pdChkZXN0aW5hdGlvbiAvIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpKSwgdmVsb2NpdHks
IHNuYXBJbmRleCwgTGF5b3V0VW5pdChvcmlnaW5hbFBvc2l0aW9uIC8gbV9jbGllbnQucGFnZVNj
YWxlRmFjdG9yKCkpKTsKK30KKworCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNldEFjdGl2ZVNj
cm9sbFNuYXBJbmRpY2VzRm9yT2Zmc2V0KFNjcm9sbE9mZnNldCBvZmZzZXQpCiB7CiAgICAgaWYg
KCF1c2VzU2Nyb2xsU25hcCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IGNkOGMzNmQyN2UyYjE2NWNjZjAwMWFlZDg5M2FjZmFj
ZTVlZDBkNWYuLjlmOWQ3NWFlY2I4YTg5YWY3ZmU3Nzk5NzQzNDcwMmQyYmEzOGFmZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAg
LTc5MCwxMyArNzkwLDggQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcmkKICAgICAgICAgcmV0dXJu
IFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBt
dWx0aXBsaWVyKTsKIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3Vy
cmVudFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRTaXplIGRlbHRhOwotICAgIGlmIChvcmllbnRhdGlv
biA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICBkZWx0YS5zZXRXaWR0aChzdGVwICog
bXVsdGlwbGllcik7Ci0gICAgZWxzZQotICAgICAgICBkZWx0YS5zZXRIZWlnaHQoc3RlcCAqIG11
bHRpcGxpZXIpOwotCi0gICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9IEZsb2F0UG9pbnQoY3Vy
cmVudFBvc2l0aW9uICsgZGVsdGEpLmNvbnN0cmFpbmVkQmV0d2VlbihtX3Njcm9sbGFibGVBcmVh
Lm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQ
b3NpdGlvbigpKTsKKyAgICBGbG9hdFBvaW50IG5ld1Bvc2l0aW9uID0gcG9zaXRpb25Gcm9tU3Rl
cChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7CisgICAgbmV3UG9zaXRpb24gPSBuZXdQ
b3NpdGlvbi5jb25zdHJhaW5lZEJldHdlZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xs
UG9zaXRpb24oKSwgbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAg
ICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjgwNGIwZTJhNGZkOWNjNmUwMjU2OTAwMTcyNDBmZmY0YjBhMDU2MC4u
NWJmYzhjNzljMjIyNzI3NTQzZTU0NGFhNDZmYTM2YWNmNzZlMmQyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDIwLTEyLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBDU1MgU2Nyb2xsIFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRoZSB1
c2VyIHNjcm9sbHMgdmlhIHRoZSBrZXlib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTQ4
ODA4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIHNuYXAgZm9yIGtleWJvYXJkIHNjcm9sbGluZworCisgICAg
ICAgIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGNvbmNlcHQgb2YgZGlyZWN0aW9u
YWwgc2Nyb2xsIHNuYXBwaW5nLAorICAgICAgICB3aGljaCB3aWxsIG5ldmVyIHNuYXAgdG8gYSBz
bmFwIHBvaW50IHRoYXQgaXMgYXdheSBmcm9tIHRoZSBvcmlnaW5hbAorICAgICAgICBzY3JvbGwg
b2Zmc2V0IGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbCBkaXJlY3Rpb24u
IFRoaXMKKyAgICAgICAgYWxsb3dzIGVzY2FwaW5nIHNuYXAgcG9pbnRzLgorCisgICAgICAgICog
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5
LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQu
aHRtbDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9h
cmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwt
d2l0aC1rZXlib2FyZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLXZlcnRpY2Fs
LXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1l
LXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbDogQWRkZWQuCisKIDIwMjAtMTItMDIgIERpZWdv
IFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJldmll
d2VkIHRlc3QgZ2FyZGVuaW5nLiBHYXJkZW5lZCBzZXZlcmFsIGZsYWt5IHRpbWVvdXQgZmFpbHVy
ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1r
ZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwt
d2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY2NDU3MzczZDgyZDhhOTMz
ZTIyNWM2NWRiOTdiMzlkZDIzNjMwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1t
YWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK1BBU1MgYXJyb3cga2V5IGRpdiBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LgorUEFTUyBh
cnJvdyBrZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmlyc3QgZGl2LgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRh
dG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgz
NzE5NzVhZTBmOTBiYzU0ZDk4NDM0MjU3YzgwZmQ3ZGUxYmE0MzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sCkBA
IC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGh0bWwgeworICAgICAgICAgICAgICAgIHNjcm9sbC1z
bmFwLXR5cGU6IHggbWFuZGF0b3J5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmhvcml6
b250YWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogNjAwdnc7CisgICAgICAgICAg
ICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAg
ICAgICAgICAgcGFkZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJv
eCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0
aDogMTAwdnc7CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAg
c2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0
ZW0wIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1j
b2xvcjogYmx1ZTsgfQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1
YTsgfQorICAgICAgICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9Cisg
ICAgICAgICAgICAjaXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAg
IDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Rz
KCkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5kZWxheUZvcigwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlv
bkJlZm9yZVNuYXAgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAg
ICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09
IHdpbmRvdy5pbm5lcldpZHRoLCAiYXJyb3cga2V5IGRpdiBzY3JvbGxlZCB0byBzZWNvbmQgZGl2
LiIpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7
CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQgPT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwLCAiYXJyb3cga2V5IGRpdiBzY3Jv
bGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7Cisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdHMoKTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtMCcpOworICAgICAgICAgICAgICAgIHZhciBtZXNz
YWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAgbWVz
c2FnZS5pbm5lckhUTUwgPSAiPHA+VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgc2Nyb2xsIHRo
ZSBwYWdlIGhvcml6b250YWxseSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAg
ICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9u
bG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0iaG9yaXpvbnRhbEdhbGxlcnkiPgorICAgICAgICA8ZGl2
IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj48L2Rp
dj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRl
bTQiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01IiBjbGFz
cz0iY29sb3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM3ZmVhMGQxNmMwNWQyYTBkYzgxNDUyYjQ2NTg1NmU4Yzk0N2NkOGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgt
a2V5Ym9hcmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBhcnJvdyBrZXkgc2Ny
b2xsZWQgdG8gc2Vjb25kIGRpdi4KK1BBU1MgYXJyb3cga2V5IHNjcm9sbGVkIHRvIHRoaXJkIGRp
di4KK1BBU1MgYXJyb3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4KK1BBU1Mg
cGFnZSBkb3duIHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIHBhZ2UgdXAgZGl2IHNjcm9s
bGVkIGJhY2sgdG8gZmlyc3QgZGl2LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNh
bC13aXRoLWtleWJvYXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM2YzBiMDI2OTkyMDg2Y2RhYzM4Njc3
YjE3NDcwMzM5NmI5Njk2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJh
bWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAg
IGh0bWwgeworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5Owor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgLnZlcnRpY2FsR2FsbGVyeSB7CisgICAgICAgICAg
ICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGhlaWdodDogNjAwdmg7CisgICAg
ICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAuY29sb3JCb3ggeworICAgICAgICAgICAgICAgIGhlaWdo
dDogMTAwdmg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAg
IGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29sb3I6IHJl
ZDsgfQorICAgICAgICAgICAgI2l0ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAg
ICAgICAgICAgICNpdGVtMiB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAgICAgICAg
ICNpdGVtMyB7IGJhY2tncm91bmQtY29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNpdGVtNCB7
IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsgYmFja2dy
b3VuZC1jb2xvcjogZnVjaHNpYTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAg
ICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigiZG93bkFycm93Iik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJhcnJvdyBr
ZXkgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9j
dW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gKHdpbmRvdy5pbm5lckhlaWdodCAq
IDIpLCAiYXJyb3cga2V5IHNjcm9sbGVkIHRvIHRoaXJkIGRpdi4iKTsKKworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShk
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSBzY3JvbGxQb3NpdGlvbkJlZm9y
ZVNuYXAsICJhcnJvdyBrZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmlyc3QgZGl2LiIpOworCisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicGFnZURvd24iKTsKKyAgICAgICAg
ICAgICAgICBleHBlY3RUcnVlKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09
IHdpbmRvdy5pbm5lckhlaWdodCwgInBhZ2UgZG93biBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LiIp
OworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicGFnZVVwIik7CisgICAg
ICAgICAgICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCA9PSBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAsICJwYWdlIHVwIGRpdiBzY3JvbGxlZCBiYWNr
IHRvIGZpcnN0IGRpdi4iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdHMoKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpdGVtMCcpOworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5l
ckhUTUwgPSAiPHA+VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgc2Nyb2xsIHRoZSBwYWdlIHZl
cnRpY2FsbHkgd2l0aCB0aGUga2V5Ym9hcmQuPC9wPiI7CisgICAgICAgICAgICAgICAgbWVzc2Fn
ZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9h
ZCgpOyIgY2xhc3M9InZlcnRpY2FsR2FsbGVyeSI+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0wIiBj
bGFzcz0iY29sb3JCb3giPjxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJpdGVtMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
aXRlbTIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0zIiBj
bGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNCIgY2xhc3M9ImNv
bG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTUiIGNsYXNzPSJjb2xvckJveCI+
PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1h
aW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGlt
aXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFiYmZiMTE2N2JkOTRhNTUzNDg5NTk0ZDAwNzdjZmUyMjEzYmIzMDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2Fy
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGFycm93IGtleXMgZGlkbid0IHNj
cm9sbCB0byBzZWNvbmQgZGl2LgorUEFTUyBsZWZ0IGFycm93IHNuYXBwZWQgYmFjay4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sIGIv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZjhmYmZmZGIzOTIzNDYyZDY0M2ExNmQ2NGVjZTRkYjcxNTNhYjdiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9h
cmQuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAg
ICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIC5ob3Jpem9udGFsR2FsbGVyeSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDYwMHZ3Owor
ICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAw
OworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAuY29sb3JCb3ggeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgICAg
ICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAg
ICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorICAgICAgICAgICAgI2l0
ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNpdGVtMiB7IGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAgICAgICAgICNpdGVtMyB7IGJhY2tncm91bmQt
Y29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNpdGVtNCB7IGJhY2tncm91bmQtY29sb3I6IHll
bGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsgYmFja2dyb3VuZC1jb2xvcjogZnVjaHNpYTsg
fQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlv
biBydW5UZXN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAgICAgICAgICAgICAgICBsZXQgc2Ny
b2xsUG9zaXRpb25CZWZvcmVTbmFwID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0OworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsK
KyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAg
ICAgICAgIHZhciBiZXR3ZWVuRmlyc3RTY3JvbGxQb3NpdGlvbkFuZFNlY29uZCA9CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA+IHNjcm9s
bFBvc2l0aW9uQmVmb3JlU25hcAorICAgICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPCB3aW5kb3cuaW5uZXJXaWR0aDsKKyAgICAgICAgICAg
ICAgICBleHBlY3RUcnVlKGJldHdlZW5GaXJzdFNjcm9sbFBvc2l0aW9uQW5kU2Vjb25kLCAiYXJy
b3cga2V5cyBkaWRuJ3Qgc2Nyb2xsIHRvIHNlY29uZCBkaXYuIik7CisKKyAgICAgICAgICAgICAg
ICAvLyBXZSByZXNldCB0aGUgc2Nyb2xsaW5nIHBvc2l0aW9uIGJlY2F1c2UgY2hhbmdpbmcgdGhl
IERPTSB3aGVuIHdlIGFyZSBub3Qgb24KKyAgICAgICAgICAgICAgICAvLyBhIHNuYXAgcG9pbnQg
Y2FuIHJlc2V0IG91ciBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworCisgICAgICAgICAgICAgICAgLy8g
UmV2ZXJzaW5nIGRpcmVjdGlvbnMgc2hvdWxkIHNuYXAgYmFjay4KKyAgICAgICAgICAgICAgICBl
eHBlY3RUcnVlKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9PSBzY3JvbGxQ
b3NpdGlvbkJlZm9yZVNuYXAsICJsZWZ0IGFycm93IHNuYXBwZWQgYmFjay4iKTsKKyAgICAgICAg
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAg
ICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAg
ICAgcnVuVGVzdHMoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFy
IG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtMCcpOworICAg
ICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgc2Nyb2xsIHRoZSBwYWdlIGhvcml6b250YWxseSB3aXRoIHRoZSBrZXlib2Fy
ZC48L3A+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVz
c2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0iaG9yaXpvbnRhbEdh
bGxlcnkiPgorICAgICAgICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJj
b2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3gi
PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9Iml0ZW01IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1r
ZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLXZlcnRpY2FsLXdp
dGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MzRmZDU5NGUxOGFlNjFmODZi
ZWExMDMzNmZlYzY2MjQ5ZjZiYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFp
bmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBkb3duIGFycm93IGtleSBkaWQgbm90IHNjcm9sbCB0byBzZWNvbmQgc25hcCBwb2lu
dAorUEFTUyBwYWdlIGRvd24gc2Nyb2xsZWQgdG8gdGhlIGZpcnN0IHNuYXAgcG9pbnQKK1BBU1Mg
dXAgYXJyb3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5
LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFp
bmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmUzMjMxNWY4
YmEwMDE1NGZmNzM2YmVlZmRkMzQzZjBkMzRkOTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJv
eGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwKQEAgLTAsMCArMSw5
NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTog
eSBwcm94aW1pdHk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAudmVydGljYWxHYWxsZXJ5
IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAgICAgaGVpZ2h0
OiA2MDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAgcGFk
ZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7CisgICAgICAg
ICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7Cisg
ICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAt
YWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0ZW0wIHsgYmFja2dy
b3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsg
fQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1YTsgfQorICAgICAg
ICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9CisgICAgICAgICAgICAj
aXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICAgICAg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxh
eUZvcigwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAg
PSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICB2YXIgYmV0
d2VlbkZpcnN0U2Nyb2xsUG9zaXRpb25BbmRTZWNvbmQgPQorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA+IHNjcm9sbFBvc2l0aW9uQmVmb3Jl
U25hcAorICAgICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCA8IHdpbmRvdy5pbm5lckhlaWdodDsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVl
KGJldHdlZW5GaXJzdFNjcm9sbFBvc2l0aW9uQW5kU2Vjb25kLCAiZG93biBhcnJvdyBrZXkgZGlk
IG5vdCBzY3JvbGwgdG8gc2Vjb25kIHNuYXAgcG9pbnQiKTsKKworICAgICAgICAgICAgICAgIC8v
IFdlIGF2b2lkIGNoYW5naW5nIHRoZSBET00gd2l0aG91dCBhbHNvIHJlc2V0dGluZyBvdXIgc2Ny
b2xsIHBvc2l0aW9uLCBzaW5jZQorICAgICAgICAgICAgICAgIC8vIGNoYW5nZXMgdG8gdGhlIERP
TSB3aGVuIHdlIGFyZSBub3Qgb24gYSBzY3JvbGwgc25hcCBwb2ludCBjYW4gcmVzZXQgb3VyCisg
ICAgICAgICAgICAgICAgLy8gc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFw
OworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7Cisg
ICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCA9PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJwYWdlIGRvd24gc2Nyb2xsZWQgdG8gdGhlIGZp
cnN0IHNuYXAgcG9pbnQiKTsKKworICAgICAgICAgICAgICAgIC8vIERpcmVjdGlvbmFsIHNjcm9s
bGluZyBzaG91bGQgYmUgYWJsZSB0byBlc2NhcGUgYSBzbmFwIHBvaW50LgorICAgICAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAgIHZhciBi
ZXR3ZWVuU2Vjb25kU2Nyb2xsUG9zaXRpb25BbmRUaGlyZCA9CisgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID4gd2luZG93LmlubmVySGVpZ2h0
CisgICAgICAgICAgICAgICAgICAgICYmIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wIDwgKHdpbmRvdy5pbm5lckhlaWdodCAqIDIpOworCisgICAgICAgICAgICAgICAgLy8gU2Vl
IGNvbW1lbnQgYWJvdmUgYWJvdXQgY2hhbmdlcyB0byB0aGUgRE9NLgorICAgICAgICAgICAgICAg
IGlmICghYmV0d2VlblNlY29uZFNjcm9sbFBvc2l0aW9uQW5kVGhpcmQpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImRvd24gYXJyb3cga2V5IGRpZCBub3Qgc2Nyb2xsIGF3YXkgZnJv
bSBzZWNvbmQgZGl2LiIpOworCisgICAgICAgICAgICAgICAgLy8gUmV2ZXJzaW5nIGRpcmVjdGlv
bnMgc2hvdWxkIHNuYXAgYmFjayB0aG91Z2guCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0LCAidXAg
YXJyb3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2Iik7CisgICAgICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZp
bmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHJ1blRlc3Rz
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9j
YXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAg
ICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAg
ICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IHNjcm9sbCB0aGUgcGFnZSB2ZXJ0aWNhbGx5IHdpdGggdGhlIGtleWJvYXJkLjwvcD4iOworICAg
ICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNzPSJ2ZXJ0aWNhbEdhbGxlcnkiPgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415885</attachid>
            <date>2020-12-10 09:34:39 -0800</date>
            <delta_ts>2020-12-10 11:28:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198566-20201210183437.patch</filename>
            <type>text/plain</type>
            <size>62315</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZjMmMzODI4N2JlNTMy
ZTI4MmVmYzg0NGJlMDIyOWU5M2I5YzYwMi4uZTgyNGZjOWUyYzJlYjA4NDNjYTkwZGQ4OTYwNWRj
NjQzMTA0NWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTEyLTEwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgU2Nyb2xs
IFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgdmlhIHRoZSBrZXli
b2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTQ4ODA4OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFw
IGZvciBrZXlib2FyZCBzY3JvbGxpbmcKKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHN1cHBv
cnQgZm9yIHRoZSBjb25jZXB0IG9mIGRpcmVjdGlvbmFsIHNjcm9sbCBzbmFwcGluZywKKyAgICAg
ICAgd2hpY2ggd2lsbCBuZXZlciBzbmFwIHRvIGEgc25hcCBwb2ludCB0aGF0IGlzIGF3YXkgZnJv
bSB0aGUgb3JpZ2luYWwKKyAgICAgICAgc2Nyb2xsIG9mZnNldCBpbiB0aGUgb3Bwb3NpdGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGlyZWN0aW9uLiBUaGlzCisgICAgICAgIGFsbG93cyBlc2Nh
cGluZyBzbmFwIHBvaW50cy4KKworICAgICAgICBUZXN0czogdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFs
LXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9y
aXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbAorICAgICAgICAgICAgICAgdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFt
ZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
aG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
dmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCisgICAgICAgICAgICAgICB0aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRs
LXdpdGgta2V5Ym9hcmQuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwYWdlU2NhbGVGYWN0b3IgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOiBBZGRlZCBzY2FsZSBmYWN0b3IgZ2V0dGVyLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjbG9zZXN0U25hcE9mZnNldCk6IEFkZGVkIGEgbmV3IG9wdGlvbmFsIGFy
Z3VtZW50IHRoYXQgc2lnbmFscworICAgICAgICBkaXJlY3Rpb25hbCBzbmFwcGluZy4gVGhpcyBj
aGFuZ2VzIHRoZSBiZWhhdmlvciB3aGVuIGNob29zaW5nIGEgc25hcCBvZmZzZXQKKyAgICAgICAg
dGhhdCBpcyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGFzIHRoZSBzY3JvbGwgZGlyZWN0aW9u
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yOjpzY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IE5vIGxvbmdlciB1c2UgdGhlIGdyYW51bGFyaXR5IGFyZ3VtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24pOiBSZW1vdmUgdGhl
IHVudXNlZCBTY3JvbGxHcmFudWxhcml0eQorICAgICAgICBhcmd1bWVudCBhbmQgdXNlIHRoZSBu
ZXcgcG9zaXRpb25Gcm9tU3RlcCBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6c2Nyb2xsV2l0aERpcmVjdGlvbmFsU25hcHBpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21TdGVwKTogQWRkZWQgdGhpcyBoZWxw
ZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudCk6
IFJlbW92ZSB0aGUgZ3JhbnVsYXJpdHkgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6cGFnZVNjYWxlRmFjdG9yIGNvbnN0KTogQWRkZWQgdGhpcyBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBvZiBhIFNjcm9sbENvbnRyb2xsZXJDbGllbnQgbWV0aG9kLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6IFVwZGF0ZSBtZXRob2QgZGVjbGFyYXRpb25z
LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGwpOiBVc2UgdGhlIG5ldyBhcmd1bWVudCB0byB0aGUg
c2Nyb2xsIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lmg6IEFkZGVkIG5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6
cGFnZVNjYWxlRmFjdG9yIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmFkanVzdFNjcm9sbERlc3Rp
bmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwpOiBVc2UgbmV3IHBvc2l0aW9uRnJvbVN0ZXAgaGVscGVyLgorCiAyMDIwLTEyLTAzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3ZlIGNvZGUg
ZnJvbSBBeGlzU2Nyb2xsU25hcE9mZnNldHMgdG8gU2Nyb2xsU25hcE9mZnNldHNJbmZvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzY3NzkxZDg2NTJlMDBjZDYwNWQ3YmE5YmU4Y2Iw
MTk3N2MxOTFiMy4uZTkxZjU2YjRlZDNkZjFmM2JjNTI3YTljZTVjMTZjMjI2NjUxOTY2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTUyNSw2ICs1NTI1LDExIEBAIHZvaWQgRnJh
bWVWaWV3OjpkaWRGaW5pc2hQcm9oaWJpdGluZ1Njcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRT
aXplKCkKICAgICB9CiB9CiAKK2Zsb2F0IEZyYW1lVmlldzo6cGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKS5mcmFtZVNjYWxlRmFjdG9yKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIFBBR0VfSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IDhjNWI4NDgxMzliYWRjOTJiMDQzOTJlMmU5NzgwOTlkMzc0MTZkMjcuLmE1MDJjOTE4
Y2RiODJhY2U1N2I5Y2RlYWJhMmUyMmQ3OTVmNjg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtODQ4LDYgKzg0OCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2hp
Yml0aW5nU2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemUoKSBmaW5hbDsKIAorICAgIC8v
IFNjcm9sbGFibGVBcmVhLgorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJy
aWRlOworCiAgICAgc3RhdGljIE1vbm90b25pY1RpbWUgc0N1cnJlbnRQYWludFRpbWVTdGFtcDsg
Ly8gdXNlZCBmb3IgZGV0ZWN0aW5nIGRlY29kZWQgcmVzb3VyY2UgdGhyYXNoIGluIHRoZSBjYWNo
ZQogCiAgICAgY29uc3QgUmVmPEZyYW1lPiBtX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHAKaW5kZXggNjAz
OTM3NmNjODFkODQ4MDYxOGJhMTY2ODU3ZTU4MWM5OGE1NGJlNC4uZWMwYjUwNzljOTJmMWM3MTYy
NWUzNjRmYjA3ODYzYTMzMGNmMTNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwCkBAIC0xMDAsNyArMTAwLDcg
QEAgc3RhdGljIHZvaWQgaW5kaWNlc09mTmVhcmVzdFNuYXBPZmZzZXRzKExheW91dFR5cGUgb2Zm
c2V0LCBjb25zdCBWZWN0b3I8TGF5b3V0VHkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExheW91
dFR5cGU+Ci1MYXlvdXRUeXBlIGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRU
eXBlPiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRU
eXBlPj4mIHNuYXBPZmZzZXRSYW5nZXMsIExheW91dFR5cGUgc2Nyb2xsRGVzdGluYXRpb24sIGZs
b2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4KQorc3RhdGljIExheW91dFR5
cGUgY2xvc2VzdFNuYXBPZmZzZXQoY29uc3QgVmVjdG9yPExheW91dFR5cGU+JiBzbmFwT2Zmc2V0
cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFR5cGU+PiYgc25hcE9mZnNl
dFJhbmdlcywgTGF5b3V0VHlwZSBzY3JvbGxEZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIHVu
c2lnbmVkJiBhY3RpdmVTbmFwSW5kZXgsIE9wdGlvbmFsPExheW91dFR5cGU+IG9yaWdpbmFsUG9z
aXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKQogewogICAgIEFTU0VSVChzbmFwT2Zmc2V0cy5z
aXplKCkpOwogICAgIGFjdGl2ZVNuYXBJbmRleCA9IDA7CkBAIC0xMzIsMzIgKzEzMiw0MyBAQCBM
YXlvdXRUeXBlIGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRUeXBlPiYgc25h
cE9mZnNldHMsIGNvbnN0IFZlY3RvcgogICAgIH0KIAogICAgIC8vIE5vbi16ZXJvIHZlbG9jaXR5
IGluZGljYXRlcyBhIGZsaWNrIGdlc3R1cmUuIEV2ZW4gaWYgYW5vdGhlciBzbmFwIHBvaW50IGlz
IGNsb3Nlciwgd2Ugc2hvdWxkIGNob29zZSB0aGUgb25lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhl
IGZsaWNrIGdlc3R1cmUKLSAgICAvLyBhcyBsb25nIGFzIGEgc2Nyb2xsIHNuYXAgb2Zmc2V0IHJh
bmdlIGRvZXMgbm90IGxpZSBiZXR3ZWVuIHRoZSBzY3JvbGwgZGVzdGluYXRpb24gYW5kIHRoZSB0
YXJnZXRlZCBzbmFwIG9mZnNldC4KKyAgICAvLyBhcyBsb25nIGFzIGEgc2Nyb2xsIHNuYXAgb2Zm
c2V0IHJhbmdlIGRvZXMgbm90IGxpZSBiZXR3ZWVuIHRoZSBzY3JvbGwgZGVzdGluYXRpb24gYW5k
IHRoZSB0YXJnZXRlZCBzbmFwIG9mZnNldC4gSWYgd2UgYXJlIGRvaW5nIGRpcmVjdGlvbmFsCisg
ICAgLy8gc25hcHBpbmcsIHdlIHNob3VsZCBuZXZlciBzbmFwIHRvIGEgcG9pbnQgdGhhdCB3YXMg
b24gdGhlIG90aGVyIHNpZGUgb2YgdGhlIG9yaWdpbmFsIHBvc2l0aW9uIGluIHRoZSBvcHBvc2l0
ZSBkaXJlY3Rpb24gb2YgdGhpcyBzY3JvbGwuCisgICAgLy8gVGhpcyBhbGxvd3MgZGlyZWN0aW9u
YWwgc2Nyb2xsaW5nIHRvIGVzY2FwZSBzbmFwIHBvaW50cy4KICAgICBpZiAodmVsb2NpdHkgPCAw
KSB7Ci0gICAgICAgIGlmIChsb3dlclNuYXBPZmZzZXRSYW5nZUluZGV4ICE9IGludmFsaWRTbmFw
T2Zmc2V0SW5kZXggJiYgbG93ZXJTbmFwUG9zaXRpb24gPCBzbmFwT2Zmc2V0UmFuZ2VzW2xvd2Vy
U25hcE9mZnNldFJhbmdlSW5kZXhdLmVuZCkgeworICAgICAgICBpZiAobG93ZXJTbmFwT2Zmc2V0
UmFuZ2VJbmRleCA9PSBpbnZhbGlkU25hcE9mZnNldEluZGV4IHx8IGxvd2VyU25hcFBvc2l0aW9u
ID49IHNuYXBPZmZzZXRSYW5nZXNbbG93ZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleF0uZW5kKSB7Cisg
ICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSBsb3dlckluZGV4OworICAgICAgICAgICAgcmV0
dXJuIGxvd2VyU25hcFBvc2l0aW9uOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvcmlnaW5h
bFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZy5oYXNWYWx1ZSgpIHx8ICpvcmlnaW5hbFBv
c2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyA+IHVwcGVyU25hcFBvc2l0aW9uKSB7CisgICAg
ICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4OworICAgICAgICAgICAgcmV0dXJu
IHVwcGVyU25hcFBvc2l0aW9uOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KHVwcGVyU25hcE9mZnNldFJhbmdlSW5kZXggPT0gaW52YWxpZFNuYXBPZmZzZXRJbmRleCB8fCBz
bmFwT2Zmc2V0UmFuZ2VzW3VwcGVyU25hcE9mZnNldFJhbmdlSW5kZXhdLnN0YXJ0ID49IHVwcGVy
U25hcFBvc2l0aW9uKSB7CiAgICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4
OwogICAgICAgICAgICAgcmV0dXJuIHVwcGVyU25hcFBvc2l0aW9uOwogICAgICAgICB9Ci0gICAg
ICAgIGFjdGl2ZVNuYXBJbmRleCA9IGxvd2VySW5kZXg7Ci0gICAgICAgIHJldHVybiBsb3dlclNu
YXBQb3NpdGlvbjsKLSAgICB9CiAKLSAgICBpZiAodXBwZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleCAh
PSBpbnZhbGlkU25hcE9mZnNldEluZGV4ICYmIHNuYXBPZmZzZXRSYW5nZXNbdXBwZXJTbmFwT2Zm
c2V0UmFuZ2VJbmRleF0uc3RhcnQgPCB1cHBlclNuYXBQb3NpdGlvbikgewotICAgICAgICBhY3Rp
dmVTbmFwSW5kZXggPSBsb3dlckluZGV4OwotICAgICAgICByZXR1cm4gbG93ZXJTbmFwUG9zaXRp
b247CisgICAgICAgIGlmICghb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcu
aGFzVmFsdWUoKSB8fCAqb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcgPCBs
b3dlclNuYXBQb3NpdGlvbikgeworICAgICAgICAgICAgYWN0aXZlU25hcEluZGV4ID0gbG93ZXJJ
bmRleDsKKyAgICAgICAgICAgIHJldHVybiBsb3dlclNuYXBQb3NpdGlvbjsKKyAgICAgICAgfQog
ICAgIH0KLSAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4OwotICAgIHJldHVybiB1cHBl
clNuYXBQb3NpdGlvbjsKKworICAgIGFjdGl2ZVNuYXBJbmRleCA9IGludmFsaWRTbmFwT2Zmc2V0
SW5kZXg7CisgICAgcmV0dXJuIHNjcm9sbERlc3RpbmF0aW9uOwogfQogCi1MYXlvdXRVbml0IGNs
b3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNv
bnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5n
ZXMsIExheW91dFVuaXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25l
ZCYgYWN0aXZlU25hcEluZGV4KQorTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBW
ZWN0b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0
UmFuZ2U8TGF5b3V0VW5pdD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRVbml0IHNjcm9sbERl
c3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCwgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcp
CiB7Ci0gICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PExheW91dFVuaXQ+KHNuYXBPZmZzZXRz
LCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFjdGl2ZVNu
YXBJbmRleCk7CisgICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PExheW91dFVuaXQ+KHNuYXBP
ZmZzZXRzLCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFj
dGl2ZVNuYXBJbmRleCwgb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcpOwog
fQogCi1mbG9hdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zm
c2V0cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRS
YW5nZXMsIGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQm
IGFjdGl2ZVNuYXBJbmRleCkKK2Zsb2F0IGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8ZmxvYXQ+
PiYgc25hcE9mZnNldFJhbmdlcywgZmxvYXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9j
aXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4LCBPcHRpb25hbDxmbG9hdD4gb3JpZ2luYWxQ
b3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcpCiB7Ci0gICAgcmV0dXJuIGNsb3Nlc3RTbmFw
T2Zmc2V0PGZsb2F0PihzbmFwT2Zmc2V0cywgc25hcE9mZnNldFJhbmdlcywgc2Nyb2xsRGVzdGlu
YXRpb24sIHZlbG9jaXR5LCBhY3RpdmVTbmFwSW5kZXgpOworICAgIHJldHVybiBjbG9zZXN0U25h
cE9mZnNldDxmbG9hdD4oc25hcE9mZnNldHMsIHNuYXBPZmZzZXRSYW5nZXMsIHNjcm9sbERlc3Rp
bmF0aW9uLCB2ZWxvY2l0eSwgYWN0aXZlU25hcEluZGV4LCBvcmlnaW5hbFBvc2l0aW9uRm9yRGly
ZWN0aW9uYWxTbmFwcGluZyk7CiB9CiAKIGVudW0gY2xhc3MgSW5zZXRPck91dHNldCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0lu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5m
by5oCmluZGV4IGZjYTM3ZGVmM2EwYzZiNjRhNzM2MGI2M2JkZmQ1OTQzNTFiZDA2MTIuLjYzMmQ3
ZTdhYWY3MjhhMDNjNTM0ZjA3MjI5NGNmZTAwMzg4ZTE2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAjaW5jbHVkZSAiU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSw4ICs2Niw4IEBAIGNvbnN0
IHVuc2lnbmVkIGludmFsaWRTbmFwT2Zmc2V0SW5kZXggPSBVSU5UX01BWDsKIC8vIHRoZSBzY3Jv
bGxpbmcgY29udGFpbmVyJ3MgYm9yZGVyIGJveC4KIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFJlbmRlckJveCYgc2Nyb2xsaW5n
RWxlbWVudEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHNjcm9sbGluZ0VsZW1lbnRTdHlsZSwgTGF5
b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJvcmRlckJveENvb3JkaW5hdGVzKTsKIAotV0VCQ09SRV9F
WFBPUlQgTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8TGF5b3V0VW5p
dD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5p
dD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRVbml0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9h
dCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCk7Ci1XRUJDT1JFX0VYUE9SVCBm
bG9hdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zmc2V0cywg
Y29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRSYW5nZXMs
IGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2
ZVNuYXBJbmRleCk7CitXRUJDT1JFX0VYUE9SVCBMYXlvdXRVbml0IGNsb3Nlc3RTbmFwT2Zmc2V0
KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3Jv
bGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5nZXMsIExheW91dFVuaXQg
c2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcElu
ZGV4LCBPcHRpb25hbDxMYXlvdXRVbml0PiBvcmlnaW5hbFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxT
bmFwcGluZyA9IFdURjo6bnVsbG9wdCk7CitXRUJDT1JFX0VYUE9SVCBmbG9hdCBjbG9zZXN0U25h
cE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zmc2V0cywgY29uc3QgVmVjdG9yPFNj
cm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRSYW5nZXMsIGZsb2F0IHNjcm9sbERl
c3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCwgT3B0
aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nID0gV1RG
OjpudWxsb3B0KTsKIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGRhZTI3ZGYzZDI4ODdhZmZhOGNhMDJi
MmMxMDgwMzMzNzQ4NmIyZGQuLjIwNjU1Y2I1MTM4ZDBmYTk3NDc3OTBjMjUwN2JhNjM2ZWY0NDQ2
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgw
LDIxICs4MCwzNSBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKICNlbmRpZgog
fQogCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9h
dCBtdWx0aXBsaWVyKQorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IpCiB7Ci0gICAg
cmV0dXJuIHNjcm9sbFdpdGhvdXRBbmltYXRpb24ob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBz
dGVwLCBtdWx0aXBsaWVyKTsKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChi
ZWhhdmlvciAhPSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgICAg
ICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlw
bGllcik7CisKKyAgICBGbG9hdFNpemUgc2Nyb2xsT3JpZ2luID0gdG9GbG9hdFNpemUobV9zY3Jv
bGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSk7CisgICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9
IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOworICAgIGF1
dG8gbmV3T2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihu
ZXdQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJlbnRQb3NpdGlv
bigpLCBzY3JvbGxPcmlnaW4pOworICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyKSB7CisgICAgICAgIG5ld09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1
c3RTY3JvbGxEZXN0aW5hdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcoU2Nyb2xsRXZlbnRBeGlz
OjpIb3Jpem9udGFsLCBuZXdPZmZzZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0Lngo
KSkpOworICAgICAgICBuZXdQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQobmV3T2Zmc2V0LCBzY3JvbGxPcmlnaW4pOworICAgICAgICByZXR1cm4gc2Ny
b2xsKEhvcml6b250YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdQb3NpdGlvbi54KCkgLSB0
aGlzLT5jdXJyZW50UG9zaXRpb24oKS54KCksIDEuMCk7CisgICAgfQorCisgICAgbmV3T2Zmc2V0
LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uRm9yRGlyZWN0
aW9uYWxTbmFwcGluZyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdQb3NpdGlvbi55KCks
IG11bHRpcGxpZXIsIGN1cnJlbnRPZmZzZXQueSgpKSk7CisgICAgbmV3UG9zaXRpb24gPSBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld09mZnNldCwgc2Nyb2xsT3Jp
Z2luKTsKKyAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwg
bmV3UG9zaXRpb24ueSgpIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkueSgpLCAxLjApOworI2Vs
c2UKKyAgICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwg
bXVsdGlwbGllcik7CisjZW5kaWYKIH0KIAotYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsV2l0
aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCitib29sIFNjcm9sbEFuaW1h
dG9yOjpzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0
aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQogewogICAgIEZsb2F0UG9pbnQgY3Vy
cmVudFBvc2l0aW9uID0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRTaXplIGRl
bHRhOwotICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAg
ICBkZWx0YS5zZXRXaWR0aChzdGVwICogbXVsdGlwbGllcik7Ci0gICAgZWxzZQotICAgICAgICBk
ZWx0YS5zZXRIZWlnaHQoc3RlcCAqIG11bHRpcGxpZXIpOwotCi0gICAgRmxvYXRQb2ludCBuZXdQ
b3NpdGlvbiA9IEZsb2F0UG9pbnQoY3VycmVudFBvc2l0aW9uICsgZGVsdGEpLmNvbnN0cmFpbmVk
QmV0d2VlbihtX3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBtX3Njcm9s
bGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKKyAgICBGbG9hdFBvaW50IG5ld1Bv
c2l0aW9uID0gcG9zaXRpb25Gcm9tU3RlcChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7
CisgICAgbmV3UG9zaXRpb24gPSBuZXdQb3NpdGlvbi5jb25zdHJhaW5lZEJldHdlZW4obV9zY3Jv
bGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9zY3JvbGxhYmxlQXJlYS5tYXhp
bXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PSBuZXdQb3Np
dGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMjAsNiArMTM0LDE2IEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBvZmZzZXQsIFNjCiAgICAgdXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zm
c2V0KCk7CiB9CiAKK0Zsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6OnBvc2l0aW9uRnJvbVN0ZXAo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRp
cGxpZXIpCit7CisgICAgRmxvYXRTaXplIGRlbHRhOworICAgIGlmIChvcmllbnRhdGlvbiA9PSBI
b3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICBkZWx0YS5zZXRXaWR0aChzdGVwICogbXVsdGlw
bGllcik7CisgICAgZWxzZQorICAgICAgICBkZWx0YS5zZXRIZWlnaHQoc3RlcCAqIG11bHRpcGxp
ZXIpOworICAgIHJldHVybiB0aGlzLT5jdXJyZW50UG9zaXRpb24oKSArIGRlbHRhOworfQorCiAj
aWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICNpZiBQTEFURk9STShNQUMpCiBib29sIFNjcm9s
bEFuaW1hdG9yOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50KQpAQCAtMTgyLDcgKzIwNiw3IEBAIGJvb2wgU2Nyb2xsQW5p
bWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAg
ICAgICAgICAgICAgICAgICBkZWx0YVkgPSAtZGVsdGFZOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAgICAg
IHNjcm9sbFdpdGhvdXRBbmltYXRpb24oVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCB2
ZXJ0aWNhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVkpOworICAgICAgICAgICAgICAg
IHNjcm9sbFdpdGhvdXRBbmltYXRpb24oVmVydGljYWxTY3JvbGxiYXIsIHZlcnRpY2FsU2Nyb2xs
YmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgdmVydGljYWxTY3Jv
bGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZKTsKICAgICAgICAgfQpAQCAtMTk1LDcgKzIxOSw3
IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBlKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVggPSAtZGVsdGFYOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygp
KQotICAgICAgICAgICAgICAgIHNjcm9sbFdpdGhvdXRBbmltYXRpb24oSG9yaXpvbnRhbFNjcm9s
bGJhciwgZ3JhbnVsYXJpdHksIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVs
dGFYKTsKKyAgICAgICAgICAgICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKEhvcml6b250YWxT
Y3JvbGxiYXIsIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYKTsKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzY3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJh
ciwgZ3JhbnVsYXJpdHksIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFY
KTsKICAgICAgICAgfQpAQCAtMzI0LDQgKzM0OCw5IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OmRp
ZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKICAgICBtX2FuaW1hdGlvblByb2dy
YW1tYXRpY1Njcm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKIH0KIAorZmxvYXQgU2Nyb2xs
QW5pbWF0b3I6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xs
YWJsZUFyZWEucGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDU5ZmNjNGQ0NDlk
MzQ0OTc1MjE1NDRlMTMyODhlMmU0ZTg3ODc0MWQuLjQwMDFmNGFmODAxNGE5NGYzMzBjYzYzZTk0
YmFjZDVkOTdjODc4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
aApAQCAtNjcsMTIgKzY3LDE3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBTY3JvbGxBbmltYXRv
cihTY3JvbGxhYmxlQXJlYSYpOwogICAgIHZpcnR1YWwgflNjcm9sbEFuaW1hdG9yKCk7CiAKKyAg
ICBlbnVtIFNjcm9sbEJlaGF2aW9yIHsKKyAgICAgICAgRGVmYXVsdCwKKyAgICAgICAgRG9EaXJl
Y3Rpb25hbFNuYXBwaW5nLAorICAgIH07CisKICAgICAvLyBDb21wdXRlcyBhIHNjcm9sbCBkZXN0
aW5hdGlvbiBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlcnMuICBSZXR1cm5zIGZhbHNlIGlmCiAgICAg
Ly8gYWxyZWFkeSBhdCB0aGUgZGVzdGluYXRpb24uICBPdGhlcndpc2UsIHN0YXJ0cyBzY3JvbGxp
bmcgdG93YXJkcyB0aGUKICAgICAvLyBkZXN0aW5hdGlvbiBhbmQgcmV0dXJucyB0cnVlLiAgU2Ny
b2xsaW5nIG1heSBiZSBpbW1lZGlhdGUgb3IgYW5pbWF0ZWQuCiAgICAgLy8gVGhlIGJhc2UgY2xh
c3MgaW1wbGVtZW50YXRpb24gYWx3YXlzIHNjcm9sbHMgaW1tZWRpYXRlbHksIG5ldmVyIGFuaW1h
dGVzLgotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKTsKLSAgICBib29sIHNj
cm9sbFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Ny
b2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwg
ZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVmYXVs
dCk7CisgICAgYm9vbCBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9u
LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKTsKIAogICAgIHZvaWQgc2Nyb2xsVG9PZmZz
ZXQoY29uc3QgRmxvYXRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxUb09mZnNldFdp
dGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpOwpAQCAtMTMzLDExICsxMzgsNiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25pdG9y
PiYmIHRlc3RNb25pdG9yKSB7IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yID0gdGVzdE1vbml0b3I7
IH0KIAotI2lmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJ
TkcpKSAmJiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxl
dGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRp
ZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNv
bihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKLQog
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBjcmVhdGVUaW1lcihGdW5j
dGlvbjx2b2lkKCk+JiYpIGZpbmFsOwogI2VuZGlmCkBAIC0xNDcsMTcgKzE0NywyNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50Jik7CiAjZW5kaWYKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgp
OwotICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBpbW1lZGlhdGVTY3JvbGxPbkF4aXMoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3Zl
cnJpZGU7CiAgICAgYm9vbCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdDsK
ICAgICB1bnNpZ25lZCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhp
cykgY29uc3Q7CisjZW5kaWYKKworICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCisjaWYg
RU5BQkxFKENTU19TQ1JPTExfU05BUCkKKyAgICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50
QXhpcywgZmxvYXQgZGVsdGEpIG92ZXJyaWRlOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFNpemUgc2Nyb2xsRXh0ZW50KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgRmxvYXRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2Vu
ZGlmCisjaWYgKEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElO
RykpICYmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0
aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29u
KFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2
ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgogCiBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChjb25zdCBG
bG9hdFNpemUmIGRlbHRhKTsKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ck9mZnNldCgpOworICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gcm9tU3RlcChTY3JvbGxiYXJPcmll
bnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKICAgICBTY3JvbGxhYmxl
QXJlYSYgbV9zY3JvbGxhYmxlQXJlYTsKICAgICBSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25pdG9y
PiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCA5MDQyYjVjMTgyZjlkODVhYmViZDE5M2I1ZWYxZDA5MTY5MmMy
YzI2Li5hNDE3ZjQxNzBhNjIwZDgxMDViZWE3ZGQ3N2E0ZmMyMTY2YTM0MjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
Ym9vbCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGEKICAgICAgICAgbXVsdGlwbGllciA9IC1tdWx0aXBsaWVy
OwogCiAgICAgc3RlcCA9IGFkanVzdFNjcm9sbFN0ZXBGb3JGaXhlZENvbnRlbnQoc3RlcCwgb3Jp
ZW50YXRpb24sIGdyYW51bGFyaXR5KTsKLSAgICByZXR1cm4gc2Nyb2xsQW5pbWF0b3IoKS5zY3Jv
bGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKKyAgICByZXR1
cm4gc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVw
LCBtdWx0aXBsaWVyLCBTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9u
YWxTbmFwcGluZyk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0
aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggZjY0ZTY4MGJhYTAwODE1
OTkzNGM2OWJjZmIzYmZjMTRjMWZjM2FjZi4uZDUxMzliN2U2ZjY4OGYwMjM3MzllYzNlMTRlNGIx
MDJhYzkyYTdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC0zNTUsNiArMzU1LDExIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIDEuMGY7CisgICAgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsYWJsZUFyZWEoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIH5TY3JvbGxhYmxlQXJlYSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCmluZGV4IGZiMmFhODYzN2NmOGM3MzBl
ZWMxZTQzM2ZkNmFiMDEwOGZkOWIxMTIuLmEwYmYwMWI0MDU2YTk3ZTJjODZjOThmMDA3MTI3ZmIx
ZGMwYjEzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9s
bENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLmgKQEAgLTEwOCwxMCArMTA4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VT
Y2FsZUZhY3RvcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gMS4wZjsKLSAgICB9Cisg
ICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIGFjdGl2ZVNjcm9sbE9mZnNldEluZGV4KFNjcm9sbEV2ZW50QXhpcykgY29u
c3QKICAgICB7CkBAIC0xNjcsOSArMTY0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xs
U25hcEluZGV4RGlkQ2hhbmdlKGJvb2wgc3RhdGUpIHsgbV9hY3RpdmVTY3JvbGxTbmFwSW5kZXhE
aWRDaGFuZ2UgPSBzdGF0ZTsgfQogICAgIHVuc2lnbmVkIGFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ckF4aXMoU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBT
dGF0ZShjb25zdCBTY3JvbGxhYmxlQXJlYSYpOwotCiAgICAgdm9pZCB1cGRhdGVHZXN0dXJlSW5Q
cm9ncmVzc1N0YXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwotCisgICAgZmxvYXQgYWRq
dXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKFNjcm9sbEV2ZW50QXhp
cywgZmxvYXQgZGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCBmbG9hdCBvcmlnaW5hbFBvc2l0
aW9uKTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNj
cm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IDI3MDBh
MmY5YTk0MzczZmM4NzliN2JhM2ExMjc0MDk3OGRiNjllNTIuLmZiMGUwNDNlYmNhZDIxNjU3YTJh
NjJkZDlmODVlY2MxYmM5OWNiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtOTA1LDYgKzkwNSwyMiBAQCB2b2lkIFNjcm9s
bENvbnRyb2xsZXI6OnNldE5lYXJlc3RTY3JvbGxTbmFwSW5kZXhGb3JBeGlzQW5kT2Zmc2V0KFNj
cm9sbEV2ZW50QXhpcwogICAgIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoYXhpcywg
YWN0aXZlSW5kZXgpOwogfQogCitmbG9hdCBTY3JvbGxDb250cm9sbGVyOjphZGp1c3RTY3JvbGxE
ZXN0aW5hdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcoU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGZs
b2F0IGRlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgZmxvYXQgb3JpZ2luYWxQb3NpdGlvbikK
K3sKKyAgICBpZiAoIXVzZXNTY3JvbGxTbmFwKCkpCisgICAgICAgIHJldHVybiBkZXN0aW5hdGlv
bjsKKworICAgIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlJiBzbmFwU3RhdGUgPSAqbV9zY3JvbGxT
bmFwU3RhdGU7CisgICAgYXV0byBzbmFwT2Zmc2V0cyA9IHNuYXBTdGF0ZS5zbmFwT2Zmc2V0c0Zv
ckF4aXMoYXhpcyk7CisgICAgaWYgKCFzbmFwT2Zmc2V0cy5zaXplKCkpCisgICAgICAgIHJldHVy
biBkZXN0aW5hdGlvbjsKKworICAgIHVuc2lnbmVkIHNuYXBJbmRleDsKKyAgICBMYXlvdXRVbml0
IG9mZnNldCA9IGNsb3Nlc3RTbmFwT2Zmc2V0KHNuYXBTdGF0ZS5zbmFwT2Zmc2V0c0ZvckF4aXMo
YXhpcyksIHNuYXBTdGF0ZS5zbmFwT2Zmc2V0UmFuZ2VzRm9yQXhpcyhheGlzKSwgTGF5b3V0VW5p
dChkZXN0aW5hdGlvbiAvIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpKSwgdmVsb2NpdHksIHNu
YXBJbmRleCwgTGF5b3V0VW5pdChvcmlnaW5hbFBvc2l0aW9uIC8gbV9jbGllbnQucGFnZVNjYWxl
RmFjdG9yKCkpKTsKKyAgICByZXR1cm4gb2Zmc2V0ICogbV9jbGllbnQucGFnZVNjYWxlRmFjdG9y
KCk7Cit9CisKKwogdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzZXRBY3RpdmVTY3JvbGxTbmFwSW5k
aWNlc0Zvck9mZnNldChTY3JvbGxPZmZzZXQgb2Zmc2V0KQogewogICAgIGlmICghdXNlc1Njcm9s
bFNuYXAoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLmgKaW5kZXggNjRmMDhhYzU0N2I1MDI5MjhhY2FiY2FiMzYzOGU1Yzc1MDE0ODgyNS4uZDNj
ZjU3N2UzZmNlZjc0ZjQ0ZGQ1MDIwNDBhZjJlOWYyMWMxYzZmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTc5LDcgKzc5LDcgQEAg
cHJpdmF0ZToKICAgICBUaW1lciBtX3NlbmRDb250ZW50QXJlYVNjcm9sbGVkVGltZXI7CiAgICAg
RmxvYXRTaXplIG1fY29udGVudEFyZWFTY3JvbGxlZFRpbWVyU2Nyb2xsRGVsdGE7CiAKLSAgICBi
b29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0
IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpIG92ZXJyaWRlOworICAgIGJvb2wgc2Nyb2xsKFNjcm9s
bGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVs
dGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Nyb2xsVG9PZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgb3Zl
cnJpZGU7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggY2Q4YzM2ZDI3ZTJiMTY1
Y2NmMDAxYWVkODkzYWNmYWNlNWVkMGQ1Zi4uMjdlZTBiZDhlNWFhMDNlNWIwNzU2YTAyNTgwMGIz
MjMxNWQ4NmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbQpAQCAtNzc5LDI0ICs3NzksMjQgQEAgc3RhdGljIGJvb2wgcnViYmVyQmFu
ZGluZ0VuYWJsZWRGb3JTeXN0ZW0oKQogfQogI2VuZGlmCiAKLWJvb2wgU2Nyb2xsQW5pbWF0b3JN
YWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCitib29sIFNj
cm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24s
IFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBs
aWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKIHsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNl
UGFnZUxvYWQgPSB0cnVlOwogCiAgICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lz
dGVtKCkgfHwgIW1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAg
ICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0
eSwgc3RlcCwgbXVsdGlwbGllcik7CisgICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Ny
b2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3Ip
OwogCiAgICAgaWYgKGdyYW51bGFyaXR5ID09IFNjcm9sbEJ5UGl4ZWwpCi0gICAgICAgIHJldHVy
biBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwg
bXVsdGlwbGllcik7CisgICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVu
dGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOwogCi0gICAg
RmxvYXRQb2ludCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKTsKLSAg
ICBGbG9hdFNpemUgZGVsdGE7Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3Jv
bGxiYXIpCi0gICAgICAgIGRlbHRhLnNldFdpZHRoKHN0ZXAgKiBtdWx0aXBsaWVyKTsKLSAgICBl
bHNlCi0gICAgICAgIGRlbHRhLnNldEhlaWdodChzdGVwICogbXVsdGlwbGllcik7CisgICAgLy8g
VGhpcyBtZXRob2QgZG9lc24ndCBkbyBkaXJlY3Rpb25hbCBzbmFwcGluZywgYnV0IG91ciBiYXNl
IGNsYXNzIGRvZXMuIEl0IHdpbGwgY2FsbCBpbnRvCisgICAgLy8gU2Nyb2xsQW5pbWF0b3JNYWM6
OnNjcm9sbCBhZ2FpbiB3aXRoIHRoZSBzbmFwcGVkIHBvc2l0aW9ucyBhbmQgU2Nyb2xsQmVoYXZp
b3I6OkRlZmF1bHQuCisgICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVj
dGlvbmFsU25hcHBpbmcpCisgICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9y
aWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOwogCi0g
ICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9IEZsb2F0UG9pbnQoY3VycmVudFBvc2l0aW9uICsg
ZGVsdGEpLmNvbnN0cmFpbmVkQmV0d2VlbihtX3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQ
b3NpdGlvbigpLCBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKKyAg
ICBGbG9hdFBvaW50IGN1cnJlbnRQb3NpdGlvbiA9IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpOwor
ICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9u
LCBzdGVwLCBtdWx0aXBsaWVyKTsKKyAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uLmNvbnN0
cmFpbmVkQmV0d2VlbihtX3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBt
X3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKICAgICBpZiAoY3VycmVu
dFBvc2l0aW9uID09IG5ld1Bvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAyODA0YjBlMmE0ZmQ5Y2M2ZTAyNTY5MDAxNzI0MGZmZjRiMGEwNTYwLi5lMTFiNGZmOThjNzVm
ZjA3ZjRmODBlZTU1OWJhOWJkYzcyYzI1YjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjAt
MTItMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAg
IENTUyBTY3JvbGwgU25hcCBpcyBub3QgaW4gZWZmZWN0IHdoZW4gdGhlIHVzZXIgc2Nyb2xscyB2
aWEgdGhlIGtleWJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTg1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNDg4MDg4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c2Nyb2xsIHNuYXAgZm9yIGtleWJvYXJkIHNjcm9sbGluZworCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkZHMgc3VwcG9ydCBmb3IgdGhlIGNvbmNlcHQgb2YgZGlyZWN0aW9uYWwgc2Nyb2xsIHNuYXBw
aW5nLAorICAgICAgICB3aGljaCB3aWxsIG5ldmVyIHNuYXAgdG8gYSBzbmFwIHBvaW50IHRoYXQg
aXMgYXdheSBmcm9tIHRoZSBvcmlnaW5hbAorICAgICAgICBzY3JvbGwgb2Zmc2V0IGluIHRoZSBv
cHBvc2l0ZSBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbCBkaXJlY3Rpb24uIFRoaXMKKyAgICAgICAg
YWxsb3dzIGVzY2FwaW5nIHNuYXAgcG9pbnRzLgorCisgICAgICAgICogdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jp
em9udGFsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFp
bmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9h
cmQuaHRtbDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJv
YXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13
aXRoLWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0
b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hp
bWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQuaHRtbDog
QWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJv
YXJkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1vdmVyZmxvdy1ydGwtd2l0aC1rZXlib2FyZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1vdmVyZmxvdy1ydGwtd2l0aC1rZXlib2Fy
ZC5odG1sOiBBZGRlZC4KKwogMjAyMC0xMi0wMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIEdh
cmRlbmVkIHNldmVyYWwgZmxha3kgdGltZW91dCBmYWlsdXJlcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNjY0NTczNzNkODJkOGE5MzNlMjI1YzY1ZGI5N2IzOWRkMjM2MzBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdp
dGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBhcnJvdyBrZXkg
ZGl2IHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIGFycm93IGtleSBkaXYgc2Nyb2xsZWQg
YmFjayB0byBmaXJzdCBkaXYuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9u
dGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWlu
ZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTY2NDU3MzczZDgyZDhhOTMzZTIyNWM2NWRiOTdiMzlkZDIzNjMwZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJk
LXNjYWxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGFycm93IGtleSBkaXYg
c2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4KK1BBU1MgYXJyb3cga2V5IGRpdiBzY3JvbGxlZCBiYWNr
IHRvIGZpcnN0IGRpdi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwt
d2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpv
bnRhbC13aXRoLWtleWJvYXJkLXNjYWxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NGI3ODQyNWY1YjYy
MGRmY2RjMTVkZTI4YmJiMjQ2ZDk5NWI2YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbApAQCAtMCww
ICsxLDc0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c3R5bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10
eXBlOiB4IG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5ob3Jpem9udGFs
R2FsbGVyeSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDYwMHZ3OworICAgICAgICAgICAgICAg
IGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAg
ICAgIHBhZGRpbmc6IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuY29sb3JCb3ggewor
ICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEw
MHZ3OworICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgICAgIHNjcm9s
bC1zbmFwLWFsaWduOiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNpdGVtMCB7
IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorICAgICAgICAgICAgI2l0ZW0xIHsgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNpdGVtMiB7IGJhY2tncm91bmQtY29sb3I6
IGJsdWU7IH0KKyAgICAgICAgICAgICNpdGVtMyB7IGJhY2tncm91bmQtY29sb3I6IGFxdWE7IH0K
KyAgICAgICAgICAgICNpdGVtNCB7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgfQorICAgICAg
ICAgICAgI2l0ZW01IHsgYmFja2dyb3VuZC1jb2xvcjogZnVjaHNpYTsgfQorICAgICAgICA8L3N0
eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0cygpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIuZGVsYXlGb3IoMCk7CisKKyAgICAgICAgICAgICAgICBsZXQgc2NhbGUgPSAyLjA7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGUsIDAsIDApOworCisgICAg
ICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCA9IGRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPT0gKHdpbmRvdy5pbm5lcldpZHRoICogc2NhbGUp
LCAiYXJyb3cga2V5IGRpdiBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LiIpOworCisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAgICAgICAgICAg
ZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPT0gc2Nyb2xs
UG9zaXRpb25CZWZvcmVTbmFwLCAiYXJyb3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0
IGRpdi4iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdHMoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpdGVtMCcpOworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAi
PHA+VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgc2Nyb2xsIHRoZSBwYWdlIGhvcml6b250YWxs
eSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRp
b24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7IiBj
bGFzcz0iaG9yaXpvbnRhbEdhbGxlcnkiPgorICAgICAgICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9
ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0y
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9
ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJv
eCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJh
bWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNzE5NzVhZTBmOTBi
YzU0ZDk4NDM0MjU3YzgwZmQ3ZGUxYmE0MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sCkBAIC0wLDAgKzEsNzEg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4K
KyAgICAgICAgICAgIGh0bWwgeworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHgg
bWFuZGF0b3J5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmhvcml6b250YWxHYWxsZXJ5
IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogNjAwdnc7CisgICAgICAgICAgICAgICAgaGVpZ2h0
OiAxMDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAgcGFk
ZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7CisgICAgICAg
ICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7Cisg
ICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAt
YWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0ZW0wIHsgYmFja2dy
b3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsg
fQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1YTsgfQorICAgICAg
ICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9CisgICAgICAgICAgICAj
aXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICAgICAg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxh
eUZvcigwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAg
PSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVj
dFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09IHdpbmRvdy5pbm5l
cldpZHRoLCAiYXJyb3cga2V5IGRpdiBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LiIpOworCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAgICAg
ICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPT0g
c2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwLCAiYXJyb3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRv
IGZpcnN0IGRpdi4iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAg
ICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdHMoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpdGVtMCcpOworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhU
TUwgPSAiPHA+VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgc2Nyb2xsIHRoZSBwYWdlIGhvcml6
b250YWxseSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdl
TG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2Fk
KCk7IiBjbGFzcz0iaG9yaXpvbnRhbEdhbGxlcnkiPgorICAgICAgICA8ZGl2IGlkPSJpdGVtMCIg
Y2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj48L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMyIg
Y2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTQiIGNsYXNzPSJj
b2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01IiBjbGFzcz0iY29sb3JCb3gi
PjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1t
YWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM3ZmVhMGQxNmMwNWQyYTBkYzgxNDUyYjQ2NTg1NmU4Yzk0N2NkOGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBhcnJvdyBrZXkgc2Nyb2xsZWQgdG8gc2Vj
b25kIGRpdi4KK1BBU1MgYXJyb3cga2V5IHNjcm9sbGVkIHRvIHRoaXJkIGRpdi4KK1BBU1MgYXJy
b3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4KK1BBU1MgcGFnZSBkb3duIHNj
cm9sbGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIHBhZ2UgdXAgZGl2IHNjcm9sbGVkIGJhY2sgdG8g
Zmlyc3QgZGl2LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1r
ZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0
aWNhbC13aXRoLWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdmZWEw
ZDE2YzA1ZDJhMGRjODE0NTJiNDY1ODU2ZThjOTQ3Y2Q4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBhcnJvdyBrZXkgc2Nyb2xsZWQgdG8gc2Vjb25k
IGRpdi4KK1BBU1MgYXJyb3cga2V5IHNjcm9sbGVkIHRvIHRoaXJkIGRpdi4KK1BBU1MgYXJyb3cg
a2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4KK1BBU1MgcGFnZSBkb3duIHNjcm9s
bGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIHBhZ2UgdXAgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmly
c3QgZGl2LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXli
b2FyZC1zY2FsZWQuaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1r
ZXlib2FyZC1zY2FsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGVjMmY2ZWUyM2E2ZGE4NzQ3ODRkOGI5
MDE0NDU0YTBiOWNjYzIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFt
ZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLXNjYWxlZC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAg
ICAgICAgIGh0bWwgeworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0
b3J5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLnZlcnRpY2FsR2FsbGVyeSB7CisgICAg
ICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGhlaWdodDogNjAwdmg7
CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuY29sb3JCb3ggeworICAgICAgICAgICAgICAg
IGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAg
ICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBz
dGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29s
b3I6IHJlZDsgfQorICAgICAgICAgICAgI2l0ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
IH0KKyAgICAgICAgICAgICNpdGVtMiB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAg
ICAgICAgICNpdGVtMyB7IGJhY2tncm91bmQtY29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNp
dGVtNCB7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsg
YmFja2dyb3VuZC1jb2xvcjogZnVjaHNpYTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgc2NhbGUgPSAyLjA7CisgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGUsIDAsIDApOworCisgICAgICAgICAgICAgICAgbGV0
IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAqIHNjYWxlOworICAgICAgICAgICAg
ICAgIGxldCBpbml0aWFsU2Nyb2xsUG9zaXRpb24gPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdOworCisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgICAgICAg
ICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3
aW5kb3dIZWlnaHQsICJhcnJvdyBrZXkgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iXSk7CisKKyAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAg
ICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
ID09ICh3aW5kb3dIZWlnaHQgKiAyKSwgImFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBkaXYu
Il0pOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAg
ICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
ID09IDAsICJhcnJvdyBrZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmlyc3QgZGl2LiJdKTsKKwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInBhZ2VEb3duIik7CisgICAgICAg
ICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCA9PSB3aW5kb3dIZWlnaHQsICJwYWdlIGRvd24gc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iXSk7
CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlVXAiKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wID09IDAsICJwYWdlIHVwIGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4iXSk7CisK
KyAgICAgICAgICAgICAgICAvLyBXZSBhdm9pZCBtb2RpZnlpbmcgdGhlIERPTSB1bnRpbCB0aGUg
dGVzdCBpcyBvdmVyLCBiZWNhdXNlIHNvbWV0aW1lcworICAgICAgICAgICAgICAgIC8vIERPTSBt
b2RpZmljYXRpb25zIGNhbiByZXNldCB0aGUgbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24uCisg
ICAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZXhwZWN0VHJ1ZShyZXN1bHRbMF0sIHJlc3VsdFsxXSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29s
ZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
b25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxw
PlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9sbCB0aGUgcGFnZSB2ZXJ0aWNhbGx5IHdp
dGggdGhlIGtleWJvYXJkLjwvcD4iOworICAgICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5h
cHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNz
PSJ2ZXJ0aWNhbEdhbGxlcnkiPgorICAgICAgICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9y
Qm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRl
bTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFz
cz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9y
Qm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJveCI+PC9k
aXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNh
bC13aXRoLWtleWJvYXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJmOTY2OTczZDM2NjQ3YjczZWRhYmY1
OTM4MGU0ODVkODk4MDBjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJh
bWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAg
IGh0bWwgeworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5Owor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgLnZlcnRpY2FsR2FsbGVyeSB7CisgICAgICAgICAg
ICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGhlaWdodDogNjAwdmg7CisgICAg
ICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAuY29sb3JCb3ggeworICAgICAgICAgICAgICAgIGhlaWdo
dDogMTAwdmg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAg
IGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29sb3I6IHJl
ZDsgfQorICAgICAgICAgICAgI2l0ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAg
ICAgICAgICAgICNpdGVtMiB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAgICAgICAg
ICNpdGVtMyB7IGJhY2tncm91bmQtY29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNpdGVtNCB7
IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsgYmFja2dy
b3VuZC1jb2xvcjogZnVjaHNpYTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAg
ICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBb
XTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAg
ICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wID09IHdpbmRvdy5pbm5lckhlaWdodCwgImFycm93IGtleSBzY3JvbGxlZCB0byBzZWNv
bmQgZGl2LiJdKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25B
cnJvdyIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AgPT0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDIpLCAiYXJyb3cga2V5
IHNjcm9sbGVkIHRvIHRoaXJkIGRpdi4iXSk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigidXBBcnJvdyIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwLCAiYXJy
b3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4iXSk7CisKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlRG93biIpOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93
LmlubmVySGVpZ2h0LCAicGFnZSBkb3duIHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuIl0pOworCisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicGFnZVVwIik7CisgICAgICAgICAg
ICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9
PSBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAsICJwYWdlIHVwIGRpdiBzY3JvbGxlZCBiYWNrIHRv
IGZpcnN0IGRpdi4iXSk7CisKKyAgICAgICAgICAgICAgICAvLyBXZSBhdm9pZCBtb2RpZnlpbmcg
dGhlIERPTSB1bnRpbCB0aGUgdGVzdCBpcyBvdmVyLCBiZWNhdXNlIHNvbWV0aW1lcworICAgICAg
ICAgICAgICAgIC8vIERPTSBtb2RpZmljYXRpb25zIGNhbiByZXNldCB0aGUgbWFpbiBmcmFtZSBz
Y3JvbGwgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShyZXN1bHRbMF0sIHJlc3VsdFsx
XSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2Fn
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3Nh
Z2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9sbCB0aGUg
cGFnZSB2ZXJ0aWNhbGx5IHdpdGggdGhlIGtleWJvYXJkLjwvcD4iOworICAgICAgICAgICAgICAg
IG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2Fk
PSJvbkxvYWQoKTsiIGNsYXNzPSJ2ZXJ0aWNhbEdhbGxlcnkiPgorICAgICAgICA8ZGl2IGlkPSJp
dGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj48L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJp
dGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTQiIGNs
YXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01IiBjbGFzcz0iY29s
b3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hp
bWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYmJmYjExNjdiZDk0YTU1MzQ4OTU5NGQwMDc3Y2ZlMjIxM2JiMzA4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgt
a2V5Ym9hcmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBhcnJvdyBrZXlzIGRp
ZG4ndCBzY3JvbGwgdG8gc2Vjb25kIGRpdi4KK1BBU1MgbGVmdCBhcnJvdyBzbmFwcGVkIGJhY2su
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQu
aHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGY4ZmJmZmRiMzkyMzQ2MmQ2NDNhMTZkNjRlY2U0ZGI3MTUzYWI3Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRo
LWtleWJvYXJkLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7CisgICAgICAg
ICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAuaG9yaXpvbnRhbEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiA2
MDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIG1h
cmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAg
ICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsK
KyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAg
ICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRl
bTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNv
bG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1
Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMg
ZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAg
bGV0IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFy
cm93Iik7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIp
OworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAg
ICAgICAgICAgICAgICB2YXIgYmV0d2VlbkZpcnN0U2Nyb2xsUG9zaXRpb25BbmRTZWNvbmQgPQor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQg
PiBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAKKyAgICAgICAgICAgICAgICAgICAgJiYgZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0IDwgd2luZG93LmlubmVyV2lkdGg7CisgICAg
ICAgICAgICAgICAgZXhwZWN0VHJ1ZShiZXR3ZWVuRmlyc3RTY3JvbGxQb3NpdGlvbkFuZFNlY29u
ZCwgImFycm93IGtleXMgZGlkbid0IHNjcm9sbCB0byBzZWNvbmQgZGl2LiIpOworCisgICAgICAg
ICAgICAgICAgLy8gV2UgcmVzZXQgdGhlIHNjcm9sbGluZyBwb3NpdGlvbiBiZWNhdXNlIGNoYW5n
aW5nIHRoZSBET00gd2hlbiB3ZSBhcmUgbm90IG9uCisgICAgICAgICAgICAgICAgLy8gYSBzbmFw
IHBvaW50IGNhbiByZXNldCBvdXIgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IHNjcm9sbFBvc2l0aW9uQmVmb3Jl
U25hcDsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7
CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsKKworICAgICAgICAgICAg
ICAgIC8vIFJldmVyc2luZyBkaXJlY3Rpb25zIHNob3VsZCBzbmFwIGJhY2suCisgICAgICAgICAg
ICAgICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPT0g
c2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwLCAibGVmdCBhcnJvdyBzbmFwcGVkIGJhY2suIik7Cisg
ICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7
CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAg
ICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAn
KTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIHNjcm9sbCB0aGUgcGFnZSBob3Jpem9udGFsbHkgd2l0aCB0aGUg
a2V5Ym9hcmQuPC9wPiI7CisgICAgICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENo
aWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyIgY2xhc3M9Imhvcml6
b250YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBj
bGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNv
bG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLXZlcnRpY2Fs
LXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0
aWNhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDQwZTEzN2EyZDgx
YTU5MzQ1NWJhYzIyNTFkNGFlODk5NzMxMmI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGlt
aXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK1BBU1MgZG93biBhcnJvdyBrZXkgZGlkIG5vdCBzY3JvbGwgdG8gc2Vjb25kIHNu
YXAgcG9pbnQKK1BBU1MgcGFnZSBkb3duIHNjcm9sbGVkIHRvIHRoZSBmaXJzdCBzbmFwIHBvaW50
CitQQVNTIGRvd24gYXJyb3cga2V5IHNjcm9sbGVkIGF3YXkgZnJvbSBzZWNvbmQgZGl2LgorUEFT
UyB1cCBhcnJvdyBzY3JvbGxlZCBiYWNrIHRvIHNlY29uZCBkaXYKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1p
dHktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbCBiL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1t
YWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZjk1MjAy
YjJhYjNjYzk4ZDU5MjUwMzVlYWUzNzU5MWQwZDY3ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1w
cm94aW1pdHktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsx
LDk1IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBl
OiB5IHByb3hpbWl0eTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNhbEdhbGxl
cnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDYwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBw
YWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsK
KyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25h
cC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAg
ICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAg
ICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAg
ICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRl
bGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25h
cCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAg
IGxldCByZXN1bHRzID0gW107CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIua2V5RG93
bigiZG93bkFycm93Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIua2V5RG93bigi
ZG93bkFycm93Iik7CisgICAgICAgICAgICAgICAgdmFyIGJldHdlZW5GaXJzdFNjcm9sbFBvc2l0
aW9uQW5kU2Vjb25kID0KKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AgPiBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAKKyAgICAgICAgICAgICAg
ICAgICAgJiYgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPCB3aW5kb3cuaW5u
ZXJIZWlnaHQ7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtiZXR3ZWVuRmlyc3RTY3Jv
bGxQb3NpdGlvbkFuZFNlY29uZCwgImRvd24gYXJyb3cga2V5IGRpZCBub3Qgc2Nyb2xsIHRvIHNl
Y29uZCBzbmFwIHBvaW50Il0pOworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIua2V5
RG93bigicGFnZURvd24iKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09IHdpbmRvdy5pbm5lckhlaWdodCwgInBhZ2Ug
ZG93biBzY3JvbGxlZCB0byB0aGUgZmlyc3Qgc25hcCBwb2ludCJdKTsKKworICAgICAgICAgICAg
ICAgIC8vIERpcmVjdGlvbmFsIHNjcm9sbGluZyBzaG91bGQgYmUgYWJsZSB0byBlc2NhcGUgYSBz
bmFwIHBvaW50LgorICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25B
cnJvdyIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJv
dyIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIp
OworICAgICAgICAgICAgICAgIHZhciBiZXR3ZWVuU2Vjb25kU2Nyb2xsUG9zaXRpb25BbmRUaGly
ZCA9CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wID4gd2luZG93LmlubmVySGVpZ2h0CisgICAgICAgICAgICAgICAgICAgICYmIGRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wIDwgKHdpbmRvdy5pbm5lckhlaWdodCAqIDIpOwor
ICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbYmV0d2VlblNlY29uZFNjcm9sbFBvc2l0aW9u
QW5kVGhpcmQsICJkb3duIGFycm93IGtleSBzY3JvbGxlZCBhd2F5IGZyb20gc2Vjb25kIGRpdi4i
XSk7CisKKyAgICAgICAgICAgICAgICAvLyBSZXZlcnNpbmcgZGlyZWN0aW9ucyBzaG91bGQgc25h
cCBiYWNrIHRob3VnaC4KKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5rZXlEb3duKCJ1
cEFycm93Iik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJ1cCBhcnJvdyBzY3Jv
bGxlZCBiYWNrIHRvIHNlY29uZCBkaXYiXSk7CisKKyAgICAgICAgICAgICAgICAvLyBXZSBhdm9p
ZCBtb2RpZnlpbmcgdGhlIERPTSB1bnRpbCB0aGUgdGVzdCBpcyBvdmVyLCBiZWNhdXNlIHNvbWV0
aW1lcworICAgICAgICAgICAgICAgIC8vIERPTSBtb2RpZmljYXRpb25zIGNhbiByZXNldCB0aGUg
bWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgcmVzdWx0cy5mb3JF
YWNoKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShyZXN1bHRb
MF0sIHJlc3VsdFsxXSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZp
bmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHJ1blRlc3Rz
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9j
YXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAg
ICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAg
ICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IHNjcm9sbCB0aGUgcGFnZSB2ZXJ0aWNhbGx5IHdpdGggdGhlIGtleWJvYXJkLjwvcD4iOworICAg
ICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNzPSJ2ZXJ0aWNhbEdhbGxlcnkiPgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLXByb3hpbWl0eS1vdmVyZmxvdy1ydGwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkyMjJkMjkzMmMzOGYwYTM5OGFhZTY0YTRjNmY2OTEyYTNlODA1MWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1BBU1Mgc2Nyb2xsIG9yaWdpbiBpcyAwCitQQVNT
IGFycm93IGtleXMgYWxsb3cgZXNjYXBpbmcgZmlyc3Qgc25hcCBwb3NpdGlvbgorUEFTUyByaWdo
dCBhcnJvdyBrZXkgc25hcHBlZCBiYWNrIHRvIGZpcnN0IHNuYXAgcG9zaXRpb24KK1BBU1MgbGVm
dCBhcnJvdyBrZXlzIGFsbG93IGVzY2FwaW5nIHNlY29uZCBzbmFwIHBvc2l0aW9uCitQQVNTIHJp
Z2h0IGFycm93IGtleSBzbmFwcGVkIGJhY2sgdG8gc2Vjb25kIHNuYXAgcG9zaXRpb24KK1BBU1Mg
cmlnaHQgYXJyb3cga2V5cyBhbGxvdyBlc2NhcGluZyBzZWNvbmQgc25hcCBwb3NpdGlvbgorUEFT
UyBsZWZ0IGFycm93IGtleSBzbmFwcGVkIGJhY2sgdG8gc2Vjb25kIHNuYXAgcG9zaXRpb24KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQuaHRtbCBiL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXBy
b3hpbWl0eS1vdmVyZmxvdy1ydGwtd2l0aC1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmOTlj
NmQ3NmYxOGRiNjE4MDRjZjI4YTA3OTNhNWM2MDA4NTRiOTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsxLDEx
NCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgYm9keSB7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAg
ICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICNjb250YWluZXIgeworICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAg
ICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgICAgICAgICB0b3A6IDA7CisgICAgICAgICAgICAgICAgbGVmdDogMDsKKyAgICAg
ICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOworICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6
IGhpZGRlbjsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTsK
KyAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLmRyYXdlciB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDkwMHB4OworICAgICAgICAg
ICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmFyZWEg
eworICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6
IDMwMHB4OworICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgICAgIHNj
cm9sbC1zbmFwLWFsaWduOiBzdGFydDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLnJ0
bCB7CisgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAubHRyIHsKKyAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGx0cjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygxNTAsIDE1MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZSgwID09IHRhcmdl
dEVsZW1lbnQuc2Nyb2xsTGVmdCwgInNjcm9sbCBvcmlnaW4gaXMgMCIpOworCisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisKKyAgICAgICAgICAgICAgICBsZXQg
c2Nyb2xsUG9zaXRpb25CZXR3ZWVuRmlyc3RBbmRTZWNvbmRTbmFwUG9pbnQgPSB0YXJnZXRFbGVt
ZW50LnNjcm9sbExlZnQgPCAwICYmIHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCAgPiAtMzAwOwor
ICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoc2Nyb2xsUG9zaXRpb25CZXR3ZWVuRmlyc3RBbmRT
ZWNvbmRTbmFwUG9pbnQsICJhcnJvdyBrZXlzIGFsbG93IGVzY2FwaW5nIGZpcnN0IHNuYXAgcG9z
aXRpb24iKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJy
b3ciKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVm
dCA9PSAwLCAicmlnaHQgYXJyb3cga2V5IHNuYXBwZWQgYmFjayB0byBmaXJzdCBzbmFwIHBvc2l0
aW9uIik7CisKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIHRvIHRoZSBzZWNvbmQgc2Nyb2xsIHNu
YXAgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0ID0g
LTMwMDsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigwKTsKKworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICAgICAgICAg
IGxldCBzY3JvbGxQb3NpdGlvbkJldHdlZW5TZWNvbmRBbmRUaGlyZFNuYXBQb2ludCA9IHRhcmdl
dEVsZW1lbnQuc2Nyb2xsTGVmdCA8IC0zMDAgJiYgdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0ICA+
IC02MDA7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShzY3JvbGxQb3NpdGlvbkJldHdlZW5T
ZWNvbmRBbmRUaGlyZFNuYXBQb2ludCwgImxlZnQgYXJyb3cga2V5cyBhbGxvdyBlc2NhcGluZyBz
ZWNvbmQgc25hcCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUodGFyZ2V0RWxl
bWVudC5zY3JvbGxMZWZ0ID09IC0zMDAsICJyaWdodCBhcnJvdyBrZXkgc25hcHBlZCBiYWNrIHRv
IHNlY29uZCBzbmFwIHBvc2l0aW9uIik7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uQmV0d2VlbkZp
cnN0QW5kU2Vjb25kU25hcFBvaW50ID0gdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0IDwgMCAmJiB0
YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgID4gLTMwMDsKKyAgICAgICAgICAgICAgICBleHBlY3RU
cnVlKHNjcm9sbFBvc2l0aW9uQmV0d2VlbkZpcnN0QW5kU2Vjb25kU25hcFBvaW50LCAicmlnaHQg
YXJyb3cga2V5cyBhbGxvdyBlc2NhcGluZyBzZWNvbmQgc25hcCBwb3NpdGlvbiIpOworCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAgICAg
ICAgICAgZXhwZWN0VHJ1ZSh0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgPT0gLTMwMCwgImxlZnQg
YXJyb3cga2V5IHNuYXBwZWQgYmFjayB0byBzZWNvbmQgc25hcCBwb3NpdGlvbiIpOworICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAg
ICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAg
ICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgd3JpdGUo
IlRvIG1hbnVhbGx5IHRlc3QsIHZlcmlmeSB0aGF0IHNjcm9sbGluZyBuZWFyIG9uZSBvZiB0aGUg
Ym91bmRhcmllcyBiZXR3ZWVuIHRoZSBjb2xvcmVkIGJveGVzIik7CisgICAgICAgICAgICAgICAg
d3JpdGUoInNuYXBzIHRvIHRoZSBlZGdlIG9mIHRoZSBuZWFyZXN0IGNvbG9yZWQgYm94LCBidXQg
c2Nyb2xsaW5nIHNvbWV3aGVyZSBuZWFyIHRoZSBtaWRkbGUgb2YgdHdvIik7CisgICAgICAgICAg
ICAgICAgd3JpdGUoImJveGVzIGRvZXMgbm90IGNhdXNlIHRoZSBzY3JvbGwgb2Zmc2V0IHRvIHNu
YXAuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcnVuVGVzdCgpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keSBvbmxvYWQ9cnVuKCk+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmF3ZXIiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImFyZWEgcnRsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyI+PC9kaXY+CisgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJlYSBsdHIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOyI+PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJlYSBydGwiIHN0
eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CisgICAgPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415886</attachid>
            <date>2020-12-10 09:35:26 -0800</date>
            <delta_ts>2020-12-11 04:30:22 -0800</delta_ts>
            <desc>Diff from reviewed version of the change</desc>
            <filename>diff-from-previous-version.diff</filename>
            <type>text/plain</type>
            <size>33906</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">Y29tbWl0IDVjOWFjOTk3YTk4YjNlNTAzN2U2MTNkNzFmNTNjNzZkYTBlYTljMDgKQXV0aG9yOiBN
YXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3JnPgpEYXRlOiAgIFRodSBEZWMgMTAg
MTY6NTc6MTQgMjAyMCArMDEwMAoKICAgIENoYW5nZXMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE2
NjQ1NzM3M2Q4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9y
aXpvbnRhbC13aXRoLWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitQQVNTIGFycm93IGtleSBkaXYgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4KK1BBU1MgYXJyb3cg
a2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbCBiL0xheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRh
dG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLXNjYWxlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTU0Yjc4NDI1ZjViCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9h
cmQtc2NhbGVkLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7CisgICAgICAg
ICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAuaG9yaXpvbnRhbEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiA2
MDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIG1h
cmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAg
ICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsK
KyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAg
ICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRl
bTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNv
bG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1
Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMg
ZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAg
bGV0IHNjYWxlID0gMi4wOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5
KHNjYWxlLCAwLCAwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9y
ZVNuYXAgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ7CisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09ICh3aW5k
b3cuaW5uZXJXaWR0aCAqIHNjYWxlKSwgImFycm93IGtleSBkaXYgc2Nyb2xsZWQgdG8gc2Vjb25k
IGRpdi4iKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJv
dyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0ID09IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCwgImFycm93IGtleSBkaXYg
c2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkg
eworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIg
bWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAg
IG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9s
bCB0aGUgcGFnZSBob3Jpem9udGFsbHkgd2l0aCB0aGUga2V5Ym9hcmQuPC9wPiI7CisgICAgICAg
ICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eSBvbmxvYWQ9Im9uTG9hZCgpOyIgY2xhc3M9Imhvcml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAg
PGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIg
Y2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2Fy
ZC1zY2FsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMzdmZWEwZDE2YzA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5m
cmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5IEBACitQQVNTIGFycm93IGtleSBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LgorUEFTUyBhcnJv
dyBrZXkgc2Nyb2xsZWQgdG8gdGhpcmQgZGl2LgorUEFTUyBhcnJvdyBrZXkgZGl2IHNjcm9sbGVk
IGJhY2sgdG8gZmlyc3QgZGl2LgorUEFTUyBwYWdlIGRvd24gc2Nyb2xsZWQgdG8gc2Vjb25kIGRp
di4KK1BBU1MgcGFnZSB1cCBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLXNjYWxlZC5odG1s
IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLXNjYWxlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjBlYzJmNmVlMjNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRo
LWtleWJvYXJkLXNjYWxlZC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhRE9DVFlQRSBIVE1MPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGh0bWwgewor
ICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5OworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgLnZlcnRpY2FsR2FsbGVyeSB7CisgICAgICAgICAgICAgICAgd2lk
dGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGhlaWdodDogNjAwdmg7CisgICAgICAgICAgICAg
ICAgbWFyZ2luOiAwOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAuY29sb3JCb3ggeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7
CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGZsb2F0OiBs
ZWZ0OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorICAg
ICAgICAgICAgI2l0ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAg
ICNpdGVtMiB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAgICAgICAgICNpdGVtMyB7
IGJhY2tncm91bmQtY29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNpdGVtNCB7IGJhY2tncm91
bmQtY29sb3I6IHllbGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsgYmFja2dyb3VuZC1jb2xv
cjogZnVjaHNpYTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBh
c3luYyBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAgICAgICAgICAg
ICAgICBsZXQgc2NhbGUgPSAyLjA7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQ
YWdlQnkoc2NhbGUsIDAsIDApOworCisgICAgICAgICAgICAgICAgbGV0IHdpbmRvd0hlaWdodCA9
IHdpbmRvdy5pbm5lckhlaWdodCAqIHNjYWxlOworICAgICAgICAgICAgICAgIGxldCBpbml0aWFs
U2Nyb2xsUG9zaXRpb24gPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAg
ICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdOworCisgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3dIZWlnaHQsICJh
cnJvdyBrZXkgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iXSk7CisKKyAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICByZXN1bHRz
LnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09ICh3aW5kb3dIZWln
aHQgKiAyKSwgImFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBkaXYuIl0pOworCisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAgICAgICAgICByZXN1bHRz
LnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09IDAsICJhcnJvdyBr
ZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmlyc3QgZGl2LiJdKTsKKworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oInBhZ2VEb3duIik7CisgICAgICAgICAgICAgICAgcmVzdWx0
cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3dIZWln
aHQsICJwYWdlIGRvd24gc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iXSk7CisKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlVXAiKTsKKyAgICAgICAgICAgICAgICByZXN1
bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09IDAsICJwYWdl
IHVwIGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4iXSk7CisKKyAgICAgICAgICAgICAg
ICAvLyBXZSBhdm9pZCBtb2RpZnlpbmcgdGhlIERPTSB1bnRpbCB0aGUgdGVzdCBpcyBvdmVyLCBi
ZWNhdXNlIHNvbWV0aW1lcworICAgICAgICAgICAgICAgIC8vIERPTSBtb2RpZmljYXRpb25zIGNh
biByZXNldCB0aGUgbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgICAgICAgICAg
cmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0
VHJ1ZShyZXN1bHRbMF0sIHJlc3VsdFsxXSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAg
ICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAg
ICAgIHJ1blRlc3RzKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZh
ciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAg
ICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIHNjcm9sbCB0aGUgcGFnZSB2ZXJ0aWNhbGx5IHdpdGggdGhlIGtleWJvYXJk
LjwvcD4iOworICAgICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNz
YWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNzPSJ2ZXJ0aWNhbEdhbGxl
cnkiPgorICAgICAgICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xv
ckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9Iml0ZW01IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXli
b2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJk
Lmh0bWwKaW5kZXggMGM2YzBiMDI2OTkyLi5jMmY5NjY5NzNkMzYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCkBAIC0zNSwyMSAr
MzUsMjggQEAKICAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigwKTsKIAog
ICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBkb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9
IFtdOwogICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOwot
ICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0LCAiYXJyb3cga2V5IHNjcm9sbGVkIHRvIHNlY29u
ZCBkaXYuIik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJhcnJvdyBrZXkgc2Ny
b2xsZWQgdG8gc2Vjb25kIGRpdi4iXSk7CiAKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJkb3duQXJyb3ciKTsKLSAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAyKSwg
ImFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBkaXYuIik7CisgICAgICAgICAgICAgICAgcmVz
dWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSAod2luZG93
LmlubmVySGVpZ2h0ICogMiksICJhcnJvdyBrZXkgc2Nyb2xsZWQgdG8gdGhpcmQgZGl2LiJdKTsK
IAogICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKICAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7Ci0gICAgICAgICAgICAg
ICAgZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSBzY3Jv
bGxQb3NpdGlvbkJlZm9yZVNuYXAsICJhcnJvdyBrZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmly
c3QgZGl2LiIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwLCAiYXJyb3cg
a2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4iXSk7CiAKICAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlRG93biIpOwotICAgICAgICAgICAgICAgIGV4cGVj
dFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVy
SGVpZ2h0LCAicGFnZSBkb3duIHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuIik7CisgICAgICAgICAg
ICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9
PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJwYWdlIGRvd24gc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4i
XSk7CiAKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlVXAiKTsKLSAg
ICAgICAgICAgICAgICBleHBlY3RUcnVlKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wID09IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCwgInBhZ2UgdXAgZGl2IHNjcm9sbGVkIGJh
Y2sgdG8gZmlyc3QgZGl2LiIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFw
LCAicGFnZSB1cCBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIl0pOworCisgICAgICAg
ICAgICAgICAgLy8gV2UgYXZvaWQgbW9kaWZ5aW5nIHRoZSBET00gdW50aWwgdGhlIHRlc3QgaXMg
b3ZlciwgYmVjYXVzZSBzb21ldGltZXMKKyAgICAgICAgICAgICAgICAvLyBET00gbW9kaWZpY2F0
aW9ucyBjYW4gcmVzZXQgdGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAg
ICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUocmVzdWx0WzBdLCByZXN1bHRbMV0pOworICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUp
OwogICAgICAgICAgICAgfSBmaW5hbGx5IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHkt
bWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CmluZGV4IDk5MzRm
ZDU5NGUxOC4uMzQ0MGUxMzdhMmQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1l
LXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1t
YWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw2
IEBACiBQQVNTIGRvd24gYXJyb3cga2V5IGRpZCBub3Qgc2Nyb2xsIHRvIHNlY29uZCBzbmFwIHBv
aW50CiBQQVNTIHBhZ2UgZG93biBzY3JvbGxlZCB0byB0aGUgZmlyc3Qgc25hcCBwb2ludAorUEFT
UyBkb3duIGFycm93IGtleSBzY3JvbGxlZCBhd2F5IGZyb20gc2Vjb25kIGRpdi4KIFBBU1MgdXAg
YXJyb3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwt
d2l0aC1rZXlib2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRo
LWtleWJvYXJkLmh0bWwKaW5kZXggOGJlMzIzMTVmOGJhLi5mZmY5NTIwMmIyYWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCkBA
IC0zNSwxOSArMzUsMTYgQEAKICAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZv
cigwKTsKIAogICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBk
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBsZXQg
cmVzdWx0cyA9IFtdOwogICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRv
d25BcnJvdyIpOwogICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25B
cnJvdyIpOwogICAgICAgICAgICAgICAgIHZhciBiZXR3ZWVuRmlyc3RTY3JvbGxQb3NpdGlvbkFu
ZFNlY29uZCA9CiAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID4gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwCiAgICAgICAgICAgICAgICAgICAg
ICYmIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wIDwgd2luZG93LmlubmVySGVp
Z2h0OwotICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoYmV0d2VlbkZpcnN0U2Nyb2xsUG9zaXRp
b25BbmRTZWNvbmQsICJkb3duIGFycm93IGtleSBkaWQgbm90IHNjcm9sbCB0byBzZWNvbmQgc25h
cCBwb2ludCIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbYmV0d2VlbkZpcnN0U2Ny
b2xsUG9zaXRpb25BbmRTZWNvbmQsICJkb3duIGFycm93IGtleSBkaWQgbm90IHNjcm9sbCB0byBz
ZWNvbmQgc25hcCBwb2ludCJdKTsKIAotICAgICAgICAgICAgICAgIC8vIFdlIGF2b2lkIGNoYW5n
aW5nIHRoZSBET00gd2l0aG91dCBhbHNvIHJlc2V0dGluZyBvdXIgc2Nyb2xsIHBvc2l0aW9uLCBz
aW5jZQotICAgICAgICAgICAgICAgIC8vIGNoYW5nZXMgdG8gdGhlIERPTSB3aGVuIHdlIGFyZSBu
b3Qgb24gYSBzY3JvbGwgc25hcCBwb2ludCBjYW4gcmVzZXQgb3VyCi0gICAgICAgICAgICAgICAg
Ly8gc2Nyb2xsIHBvc2l0aW9uLgotICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wID0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwOwogICAgICAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7Ci0gICAgICAgICAgICAgICAg
ZXhwZWN0VHJ1ZShkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cu
aW5uZXJIZWlnaHQsICJwYWdlIGRvd24gc2Nyb2xsZWQgdG8gdGhlIGZpcnN0IHNuYXAgcG9pbnQi
KTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wID09IHdpbmRvdy5pbm5lckhlaWdodCwgInBhZ2UgZG93biBzY3JvbGxlZCB0
byB0aGUgZmlyc3Qgc25hcCBwb2ludCJdKTsKIAogICAgICAgICAgICAgICAgIC8vIERpcmVjdGlv
bmFsIHNjcm9sbGluZyBzaG91bGQgYmUgYWJsZSB0byBlc2NhcGUgYSBzbmFwIHBvaW50LgogICAg
ICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIpOwpAQCAtNTYs
MTQgKzUzLDE3IEBACiAgICAgICAgICAgICAgICAgdmFyIGJldHdlZW5TZWNvbmRTY3JvbGxQb3Np
dGlvbkFuZFRoaXJkID0KICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AgPiB3aW5kb3cuaW5uZXJIZWlnaHQKICAgICAgICAgICAgICAgICAgICAg
JiYgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPCAod2luZG93LmlubmVySGVp
Z2h0ICogMik7Ci0KLSAgICAgICAgICAgICAgICAvLyBTZWUgY29tbWVudCBhYm92ZSBhYm91dCBj
aGFuZ2VzIHRvIHRoZSBET00uCi0gICAgICAgICAgICAgICAgaWYgKCFiZXR3ZWVuU2Vjb25kU2Ny
b2xsUG9zaXRpb25BbmRUaGlyZCkKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG93
biBhcnJvdyBrZXkgZGlkIG5vdCBzY3JvbGwgYXdheSBmcm9tIHNlY29uZCBkaXYuIik7CisgICAg
ICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtiZXR3ZWVuU2Vjb25kU2Nyb2xsUG9zaXRpb25BbmRU
aGlyZCwgImRvd24gYXJyb3cga2V5IHNjcm9sbGVkIGF3YXkgZnJvbSBzZWNvbmQgZGl2LiJdKTsK
IAogICAgICAgICAgICAgICAgIC8vIFJldmVyc2luZyBkaXJlY3Rpb25zIHNob3VsZCBzbmFwIGJh
Y2sgdGhvdWdoLgogICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oInVwQXJy
b3ciKTsKLSAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wID09IHdpbmRvdy5pbm5lckhlaWdodCwgInVwIGFycm93IHNjcm9sbGVkIGJh
Y2sgdG8gc2Vjb25kIGRpdiIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0LCAidXAg
YXJyb3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2Il0pOworCisgICAgICAgICAgICAgICAg
Ly8gV2UgYXZvaWQgbW9kaWZ5aW5nIHRoZSBET00gdW50aWwgdGhlIHRlc3QgaXMgb3ZlciwgYmVj
YXVzZSBzb21ldGltZXMKKyAgICAgICAgICAgICAgICAvLyBET00gbW9kaWZpY2F0aW9ucyBjYW4g
cmVzZXQgdGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHJl
c3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdFRy
dWUocmVzdWx0WzBdLCByZXN1bHRbMV0pOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOwogICAgICAg
ICAgICAgfSBmaW5hbGx5IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1vdmVyZmxvdy1ydGwt
d2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdp
dGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uOTIyMmQyOTMyYzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW92
ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQ
QVNTIHNjcm9sbCBvcmlnaW4gaXMgMAorUEFTUyBhcnJvdyBrZXlzIGFsbG93IGVzY2FwaW5nIGZp
cnN0IHNuYXAgcG9zaXRpb24KK1BBU1MgcmlnaHQgYXJyb3cga2V5IHNuYXBwZWQgYmFjayB0byBm
aXJzdCBzbmFwIHBvc2l0aW9uCitQQVNTIGxlZnQgYXJyb3cga2V5cyBhbGxvdyBlc2NhcGluZyBz
ZWNvbmQgc25hcCBwb3NpdGlvbgorUEFTUyByaWdodCBhcnJvdyBrZXkgc25hcHBlZCBiYWNrIHRv
IHNlY29uZCBzbmFwIHBvc2l0aW9uCitQQVNTIHJpZ2h0IGFycm93IGtleXMgYWxsb3cgZXNjYXBp
bmcgc2Vjb25kIHNuYXAgcG9zaXRpb24KK1BBU1MgbGVmdCBhcnJvdyBrZXkgc25hcHBlZCBiYWNr
IHRvIHNlY29uZCBzbmFwIHBvc2l0aW9uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW92ZXJmbG93LXJ0
bC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5
Ym9hcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNmOTlj
NmQ3NmYxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1vdmVyZmxvdy1ydGwtd2l0
aC1rZXlib2FyZC5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBib2R5IHsKKyAgICAg
ICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI2NvbnRhaW5lciB7CisgICAgICAgICAgICAg
ICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgICAgIHRvcDogMDsKKyAg
ICAgICAgICAgICAgICBsZWZ0OiAwOworICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87
CisgICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICAgICAgICAgICAgICAgIHNj
cm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5OworICAgICAgICAgICAgICAgIGRpcmVjdGlvbjog
cnRsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuZHJhd2VyIHsKKyAgICAgICAgICAg
ICAgICB3aWR0aDogOTAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAuYXJlYSB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAz
MDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICAgICAgZmxv
YXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAucnRsIHsKKyAgICAgICAgICAgICAgICBkaXJlY3Rp
b246IHJ0bDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5sdHIgeworICAgICAgICAgICAg
ICAgIGRpcmVjdGlvbjogbHRyOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgewor
ICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZv
cigwKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE1MCwgMTUw
KTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgICAgICAg
ICAgICAgICBleHBlY3RUcnVlKDAgPT0gdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0LCAic2Nyb2xs
IG9yaWdpbiBpcyAwIik7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJs
ZWZ0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJy
b3ciKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJldHdlZW5GaXJzdEFu
ZFNlY29uZFNuYXBQb2ludCA9IHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCA8IDAgJiYgdGFyZ2V0
RWxlbWVudC5zY3JvbGxMZWZ0ICA+IC0zMDA7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShz
Y3JvbGxQb3NpdGlvbkJldHdlZW5GaXJzdEFuZFNlY29uZFNuYXBQb2ludCwgImFycm93IGtleXMg
YWxsb3cgZXNjYXBpbmcgZmlyc3Qgc25hcCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVj
dFRydWUodGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0ID09IDAsICJyaWdodCBhcnJvdyBrZXkgc25h
cHBlZCBiYWNrIHRvIGZpcnN0IHNuYXAgcG9zaXRpb24iKTsKKworICAgICAgICAgICAgICAgIC8v
IE1vdmUgdG8gdGhlIHNlY29uZCBzY3JvbGwgc25hcCBwb3NpdGlvbi4KKyAgICAgICAgICAgICAg
ICB0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgPSAtMzAwOworICAgICAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigibGVmdEFycm93Iik7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
bGVmdEFycm93Iik7CisgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uQmV0d2VlblNl
Y29uZEFuZFRoaXJkU25hcFBvaW50ID0gdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0IDwgLTMwMCAm
JiB0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgID4gLTYwMDsKKyAgICAgICAgICAgICAgICBleHBl
Y3RUcnVlKHNjcm9sbFBvc2l0aW9uQmV0d2VlblNlY29uZEFuZFRoaXJkU25hcFBvaW50LCAibGVm
dCBhcnJvdyBrZXlzIGFsbG93IGVzY2FwaW5nIHNlY29uZCBzbmFwIHBvc2l0aW9uIik7CisKKyAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAg
ICAgICAgICAgZXhwZWN0VHJ1ZSh0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgPT0gLTMwMCwgInJp
Z2h0IGFycm93IGtleSBzbmFwcGVkIGJhY2sgdG8gc2Vjb25kIHNuYXAgcG9zaXRpb24iKTsKKwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAg
ICAgICAgc2Nyb2xsUG9zaXRpb25CZXR3ZWVuRmlyc3RBbmRTZWNvbmRTbmFwUG9pbnQgPSB0YXJn
ZXRFbGVtZW50LnNjcm9sbExlZnQgPCAwICYmIHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCAgPiAt
MzAwOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoc2Nyb2xsUG9zaXRpb25CZXR3ZWVuRmly
c3RBbmRTZWNvbmRTbmFwUG9pbnQsICJyaWdodCBhcnJvdyBrZXlzIGFsbG93IGVzY2FwaW5nIHNl
Y29uZCBzbmFwIHBvc2l0aW9uIik7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCJsZWZ0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHRhcmdldEVsZW1l
bnQuc2Nyb2xsTGVmdCA9PSAtMzAwLCAibGVmdCBhcnJvdyBrZXkgc25hcHBlZCBiYWNrIHRvIHNl
Y29uZCBzbmFwIHBvc2l0aW9uIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
ICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgiVG8gbWFudWFsbHkgdGVzdCwgdmVyaWZ5IHRo
YXQgc2Nyb2xsaW5nIG5lYXIgb25lIG9mIHRoZSBib3VuZGFyaWVzIGJldHdlZW4gdGhlIGNvbG9y
ZWQgYm94ZXMiKTsKKyAgICAgICAgICAgICAgICB3cml0ZSgic25hcHMgdG8gdGhlIGVkZ2Ugb2Yg
dGhlIG5lYXJlc3QgY29sb3JlZCBib3gsIGJ1dCBzY3JvbGxpbmcgc29tZXdoZXJlIG5lYXIgdGhl
IG1pZGRsZSBvZiB0d28iKTsKKyAgICAgICAgICAgICAgICB3cml0ZSgiYm94ZXMgZG9lcyBub3Qg
Y2F1c2UgdGhlIHNjcm9sbCBvZmZzZXQgdG8gc25hcC4iKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0KKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD1ydW4oKT4KKyAg
ICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYXdl
ciI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJlYSBydGwiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcmVh
IGx0ciIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7Ij48L2Rpdj4KKyAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhcmVhIHJ0bCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGFxdWE7
Ij48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggYzY3NzkxZDg2NTJlLi5lOTFmNTZiNGVkM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU1MjUsNiArNTUyNSwxMSBAQCB2b2lkIEZyYW1lVmlldzo6
ZGlkRmluaXNoUHJvaGliaXRpbmdTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZSgpCiAg
ICAgfQogfQogCitmbG9hdCBGcmFtZVZpZXc6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZyYW1lKCkuZnJhbWVTY2FsZUZhY3RvcigpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICN1bmRlZiBQQUdFX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA4
YzViODQ4MTM5YmEuLmE1MDJjOTE4Y2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC04
NDgsNiArODQ4LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmluaXNoUHJvaGliaXRpbmdT
Y3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZSgpIGZpbmFsOwogCisgICAgLy8gU2Nyb2xs
YWJsZUFyZWEuCisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisK
ICAgICBzdGF0aWMgTW9ub3RvbmljVGltZSBzQ3VycmVudFBhaW50VGltZVN0YW1wOyAvLyB1c2Vk
IGZvciBkZXRlY3RpbmcgZGVjb2RlZCByZXNvdXJjZSB0aHJhc2ggaW4gdGhlIGNhY2hlCiAKICAg
ICBjb25zdCBSZWY8RnJhbWU+IG1fZnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAKaW5kZXggZGM0NWExNDMxMWFjLi4yMDY1NWNiNTEzOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgwLDkgKzgwLDI4IEBA
IFNjcm9sbEFuaW1hdG9yOjp+U2Nyb2xsQW5pbWF0b3IoKQogI2VuZGlmCiB9CiAKLWJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCitib29sIFNjcm9s
bEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBT
Y3JvbGxCZWhhdmlvciBiZWhhdmlvcikKIHsKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQor
ICAgIGlmIChiZWhhdmlvciAhPSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5n
KQorICAgICAgICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3Rl
cCwgbXVsdGlwbGllcik7CisKKyAgICBGbG9hdFNpemUgc2Nyb2xsT3JpZ2luID0gdG9GbG9hdFNp
emUobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSk7CisgICAgRmxvYXRQb2ludCBuZXdQ
b3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIp
OworICAgIGF1dG8gbmV3T2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihuZXdQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBhdXRvIGN1cnJlbnRPZmZz
ZXQgPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJl
bnRQb3NpdGlvbigpLCBzY3JvbGxPcmlnaW4pOworICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jp
em9udGFsU2Nyb2xsYmFyKSB7CisgICAgICAgIG5ld09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJv
bGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcoU2Nyb2xs
RXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdPZmZzZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50
T2Zmc2V0LngoKSkpOworICAgICAgICBuZXdQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3Jv
bGxQb3NpdGlvbkZyb21PZmZzZXQobmV3T2Zmc2V0LCBzY3JvbGxPcmlnaW4pOworICAgICAgICBy
ZXR1cm4gc2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdQb3NpdGlv
bi54KCkgLSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKS54KCksIDEuMCk7CisgICAgfQorCisgICAg
bmV3T2Zmc2V0LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9u
Rm9yRGlyZWN0aW9uYWxTbmFwcGluZyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdQb3Np
dGlvbi55KCksIG11bHRpcGxpZXIsIGN1cnJlbnRPZmZzZXQueSgpKSk7CisgICAgbmV3UG9zaXRp
b24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld09mZnNldCwg
c2Nyb2xsT3JpZ2luKTsKKyAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFu
dWxhcml0eSwgbmV3UG9zaXRpb24ueSgpIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkueSgpLCAx
LjApOworI2Vsc2UKICAgICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlv
biwgc3RlcCwgbXVsdGlwbGllcik7CisjZW5kaWYKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvcjo6
c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
ZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikKQEAgLTExNSwyMiArMTM0LDYgQEAgdm9pZCBT
Y3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmIG9mZnNldCwgU2MKICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZz
ZXQoKTsKIH0KIAotYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsV2l0aERpcmVjdGlvbmFsU25h
cHBpbmcoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQotewotI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCi0gICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9IHBvc2l0aW9u
RnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOwotICAgIGlmIChvcmllbnRh
dGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7Ci0gICAgICAgIGZsb2F0IG5ld1ggPSBtX3Nj
cm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBw
aW5nKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgbmV3UG9zaXRpb24ueCgpLCBtdWx0aXBs
aWVyLCB0aGlzLT5jdXJyZW50UG9zaXRpb24oKS54KCkpOwotICAgICAgICByZXR1cm4gc2Nyb2xs
KEhvcml6b250YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdYIC0gdGhpcy0+Y3VycmVudFBv
c2l0aW9uKCkueCgpLCAxLjApOwotICAgIH0KLQotICAgIGZsb2F0IG5ld1kgPSBtX3Njcm9sbENv
bnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKFNj
cm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG5ld1Bvc2l0aW9uLnkoKSwgbXVsdGlwbGllciwgdGhp
cy0+Y3VycmVudFBvc2l0aW9uKCkueSgpKTsKLSAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2FsU2Ny
b2xsYmFyLCBncmFudWxhcml0eSwgbmV3WSAtIHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpLnkoKSwg
MS4wKTsKLSNlbHNlCi0gICAgcmV0dXJuIHNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHks
IHN0ZXAsIG11bHRpcGxpZXIpOwotI2VuZGlmCi19Ci0KIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0
b3I6OnBvc2l0aW9uRnJvbVN0ZXAoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIGZs
b2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCiB7CiAgICAgRmxvYXRTaXplIGRlbHRhOwpAQCAt
MzQ1LDQgKzM0OCw5IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250YWxTY3Jv
bGxiYXIoU2Nyb2xsYmFyKikKICAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+dXBk
YXRlVmlzaWJsZUxlbmd0aHMoKTsKIH0KIAorZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OnBhZ2VTY2Fs
ZUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEucGFnZVNjYWxl
RmFjdG9yKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDgxMmM4YWQ0YTk4YS4uNzE4OTljMTQ0ODE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY3LDExICs2Nywx
NiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEm
KTsKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRvcigpOwogCisgICAgZW51bSBTY3JvbGxCZWhh
dmlvciB7CisgICAgICAgIERlZmF1bHQsCisgICAgICAgIERvRGlyZWN0aW9uYWxTbmFwcGluZywK
KyAgICB9OworCiAgICAgLy8gQ29tcHV0ZXMgYSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBn
aXZlbiBwYXJhbWV0ZXJzLiAgUmV0dXJucyBmYWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhl
IGRlc3RpbmF0aW9uLiAgT3RoZXJ3aXNlLCBzdGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAg
ICAgLy8gZGVzdGluYXRpb24gYW5kIHJldHVybnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1t
ZWRpYXRlIG9yIGFuaW1hdGVkLgogICAgIC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9u
IGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFs
IGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxv
YXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CisgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3Jv
bGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11
bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6OkRlZmF1bHQpOwogICAg
IGJvb2wgc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0
IEZsb2F0UG9pbnQmKTsKQEAgLTEzOCwxMSArMTQzLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0
ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAK
LSNpZiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkg
JiYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25G
b3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIs
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24oV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCi0KICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248
dm9pZCgpPiYmKSBmaW5hbDsKICNlbmRpZgpAQCAtMTUyLDEzICsxNTIsMjIgQEAgcHVibGljOgog
ICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpOwogI2VuZGlmCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKTsKLSAg
ICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgaW1t
ZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgZGVsdGEpIG92ZXJyaWRl
OwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXMpIGNv
bnN0OworI2VuZGlmCisKKyAgICAvLyBTY3JvbGxDb250cm9sbGVyQ2xpZW50LgorI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCisgICAgRmxvYXRQb2ludCBzY3JvbGxPZmZzZXQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbE9uQXhpcyhTY3JvbGxFdmVudEF4aXMs
IGZsb2F0IGRlbHRhKSBvdmVycmlkZTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25z
dCBvdmVycmlkZTsKICAgICBMYXlvdXRTaXplIHNjcm9sbEV4dGVudCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgor
I2lmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpKSAm
JiBQTEFURk9STShNQUMpCisgICAgdm9pZCBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZv
clJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwg
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKIAogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRT
aXplJiBkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAK
aW5kZXggMWI5NTZlNDBiYWU4Li5hNDE3ZjQxNzBhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFNjcm9sbGFi
bGVBcmVhOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHkgZ3JhbnVsYQogICAgICAgICBtdWx0aXBsaWVyID0gLW11bHRpcGxpZXI7CiAKICAgICBzdGVw
ID0gYWRqdXN0U2Nyb2xsU3RlcEZvckZpeGVkQ29udGVudChzdGVwLCBvcmllbnRhdGlvbiwgZ3Jh
bnVsYXJpdHkpOwotICAgIHJldHVybiBzY3JvbGxBbmltYXRvcigpLnNjcm9sbFdpdGhEaXJlY3Rp
b25hbFNuYXBwaW5nKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7
CisgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxh
cml0eSwgc3RlcCwgbXVsdGlwbGllciwgU2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEJlaGF2aW9yOjpE
b0RpcmVjdGlvbmFsU25hcHBpbmcpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxU
b09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFt
cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IGY2NGU2
ODBiYWEwMC4uZDUxMzliN2U2ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmgKQEAgLTM1NSw2ICszNTUsMTEgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwg
U3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIGZsb2F0
IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gMS4wZjsKKyAg
ICB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxhYmxlQXJlYSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflNjcm9sbGFibGVBcmVhKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggMGRiMWFk
NjYyMDA4Li5hMGJmMDFiNDA1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTEwOCwxMCArMTA4LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCkgeyB9CiAKLSAgICB2aXJ0dWFs
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gMS4w
ZjsKLSAgICB9CisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7
CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGFjdGl2ZVNjcm9sbE9mZnNldEluZGV4KFNjcm9sbEV2
ZW50QXhpcykgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCBiMWNkYjM2YWVjNDIuLmZiMGUwNDNlYmNhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lm1tCkBAIC05MTYsNyArOTE2LDggQEAgZmxvYXQgU2Nyb2xsQ29udHJvbGxlcjo6YWRqdXN0U2Ny
b2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKFNjcm9sbEV2ZW4KICAgICAgICAg
cmV0dXJuIGRlc3RpbmF0aW9uOwogCiAgICAgdW5zaWduZWQgc25hcEluZGV4OwotICAgIHJldHVy
biBjbG9zZXN0U25hcE9mZnNldChzbmFwU3RhdGUuc25hcE9mZnNldHNGb3JBeGlzKGF4aXMpLCBz
bmFwU3RhdGUuc25hcE9mZnNldFJhbmdlc0ZvckF4aXMoYXhpcyksIExheW91dFVuaXQoZGVzdGlu
YXRpb24gLyBtX2NsaWVudC5wYWdlU2NhbGVGYWN0b3IoKSksIHZlbG9jaXR5LCBzbmFwSW5kZXgs
IExheW91dFVuaXQob3JpZ2luYWxQb3NpdGlvbiAvIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3Rvcigp
KSk7CisgICAgTGF5b3V0VW5pdCBvZmZzZXQgPSBjbG9zZXN0U25hcE9mZnNldChzbmFwU3RhdGUu
c25hcE9mZnNldHNGb3JBeGlzKGF4aXMpLCBzbmFwU3RhdGUuc25hcE9mZnNldFJhbmdlc0ZvckF4
aXMoYXhpcyksIExheW91dFVuaXQoZGVzdGluYXRpb24gLyBtX2NsaWVudC5wYWdlU2NhbGVGYWN0
b3IoKSksIHZlbG9jaXR5LCBzbmFwSW5kZXgsIExheW91dFVuaXQob3JpZ2luYWxQb3NpdGlvbiAv
IG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpKSk7CisgICAgcmV0dXJuIG9mZnNldCAqIG1fY2xp
ZW50LnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNjRmMDhhYzU0N2I1Li5kM2NmNTc3ZTNm
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRv
ck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5oCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9zZW5kQ29udGVudEFy
ZWFTY3JvbGxlZFRpbWVyOwogICAgIEZsb2F0U2l6ZSBtX2NvbnRlbnRBcmVhU2Nyb2xsZWRUaW1l
clNjcm9sbERlbHRhOwogCi0gICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNj
cm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsK
KyAgICBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHks
IGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50
JiwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
CmluZGV4IDlmOWQ3NWFlY2I4YS4uMjdlZTBiZDhlNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC03NzksMTUgKzc3OSwyMCBA
QCBzdGF0aWMgYm9vbCBydWJiZXJCYW5kaW5nRW5hYmxlZEZvclN5c3RlbSgpCiB9CiAjZW5kaWYK
IAotYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxv
YXQgbXVsdGlwbGllcikKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZs
b2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQogewog
ICAgIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IHRydWU7CiAKICAgICBpZiAoIXNjcm9s
bEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxB
bmltYXRvckVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwo
b3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKKyAgICAgICAgcmV0
dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVw
LCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CiAKICAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xs
QnlQaXhlbCkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRp
b24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKKyAgICAgICAgcmV0dXJuIFNjcm9s
bEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBs
aWVyLCBiZWhhdmlvcik7CisKKyAgICAvLyBUaGlzIG1ldGhvZCBkb2Vzbid0IGRvIGRpcmVjdGlv
bmFsIHNuYXBwaW5nLCBidXQgb3VyIGJhc2UgY2xhc3MgZG9lcy4gSXQgd2lsbCBjYWxsIGludG8K
KyAgICAvLyBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsIGFnYWluIHdpdGggdGhlIHNuYXBwZWQg
cG9zaXRpb25zIGFuZCBTY3JvbGxCZWhhdmlvcjo6RGVmYXVsdC4KKyAgICBpZiAoYmVoYXZpb3Ig
PT0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykKKyAgICAgICAgcmV0dXJu
IFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBt
dWx0aXBsaWVyLCBiZWhhdmlvcik7CiAKICAgICBGbG9hdFBvaW50IGN1cnJlbnRQb3NpdGlvbiA9
IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpOwogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRpb24gPSBw
b3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0aXBsaWVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415906</attachid>
            <date>2020-12-10 11:28:50 -0800</date>
            <delta_ts>2020-12-11 02:10:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198566-20201210202848.patch</filename>
            <type>text/plain</type>
            <size>62388</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZjMmMzODI4N2JlNTMy
ZTI4MmVmYzg0NGJlMDIyOWU5M2I5YzYwMi4uZTgyNGZjOWUyYzJlYjA4NDNjYTkwZGQ4OTYwNWRj
NjQzMTA0NWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTEyLTEwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgU2Nyb2xs
IFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgdmlhIHRoZSBrZXli
b2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTQ4ODA4OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFw
IGZvciBrZXlib2FyZCBzY3JvbGxpbmcKKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHN1cHBv
cnQgZm9yIHRoZSBjb25jZXB0IG9mIGRpcmVjdGlvbmFsIHNjcm9sbCBzbmFwcGluZywKKyAgICAg
ICAgd2hpY2ggd2lsbCBuZXZlciBzbmFwIHRvIGEgc25hcCBwb2ludCB0aGF0IGlzIGF3YXkgZnJv
bSB0aGUgb3JpZ2luYWwKKyAgICAgICAgc2Nyb2xsIG9mZnNldCBpbiB0aGUgb3Bwb3NpdGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGlyZWN0aW9uLiBUaGlzCisgICAgICAgIGFsbG93cyBlc2Nh
cGluZyBzbmFwIHBvaW50cy4KKworICAgICAgICBUZXN0czogdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFs
LXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9y
aXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbAorICAgICAgICAgICAgICAgdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFt
ZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
aG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
dmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCisgICAgICAgICAgICAgICB0aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRs
LXdpdGgta2V5Ym9hcmQuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwYWdlU2NhbGVGYWN0b3IgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOiBBZGRlZCBzY2FsZSBmYWN0b3IgZ2V0dGVyLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjbG9zZXN0U25hcE9mZnNldCk6IEFkZGVkIGEgbmV3IG9wdGlvbmFsIGFy
Z3VtZW50IHRoYXQgc2lnbmFscworICAgICAgICBkaXJlY3Rpb25hbCBzbmFwcGluZy4gVGhpcyBj
aGFuZ2VzIHRoZSBiZWhhdmlvciB3aGVuIGNob29zaW5nIGEgc25hcCBvZmZzZXQKKyAgICAgICAg
dGhhdCBpcyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGFzIHRoZSBzY3JvbGwgZGlyZWN0aW9u
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yOjpzY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IE5vIGxvbmdlciB1c2UgdGhlIGdyYW51bGFyaXR5IGFyZ3VtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24pOiBSZW1vdmUgdGhl
IHVudXNlZCBTY3JvbGxHcmFudWxhcml0eQorICAgICAgICBhcmd1bWVudCBhbmQgdXNlIHRoZSBu
ZXcgcG9zaXRpb25Gcm9tU3RlcCBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6c2Nyb2xsV2l0aERpcmVjdGlvbmFsU25hcHBpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21TdGVwKTogQWRkZWQgdGhpcyBoZWxw
ZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudCk6
IFJlbW92ZSB0aGUgZ3JhbnVsYXJpdHkgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6cGFnZVNjYWxlRmFjdG9yIGNvbnN0KTogQWRkZWQgdGhpcyBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBvZiBhIFNjcm9sbENvbnRyb2xsZXJDbGllbnQgbWV0aG9kLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6IFVwZGF0ZSBtZXRob2QgZGVjbGFyYXRpb25z
LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGwpOiBVc2UgdGhlIG5ldyBhcmd1bWVudCB0byB0aGUg
c2Nyb2xsIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lmg6IEFkZGVkIG5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6
cGFnZVNjYWxlRmFjdG9yIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmFkanVzdFNjcm9sbERlc3Rp
bmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwpOiBVc2UgbmV3IHBvc2l0aW9uRnJvbVN0ZXAgaGVscGVyLgorCiAyMDIwLTEyLTAzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3ZlIGNvZGUg
ZnJvbSBBeGlzU2Nyb2xsU25hcE9mZnNldHMgdG8gU2Nyb2xsU25hcE9mZnNldHNJbmZvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzY3NzkxZDg2NTJlMDBjZDYwNWQ3YmE5YmU4Y2Iw
MTk3N2MxOTFiMy4uZTkxZjU2YjRlZDNkZjFmM2JjNTI3YTljZTVjMTZjMjI2NjUxOTY2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTUyNSw2ICs1NTI1LDExIEBAIHZvaWQgRnJh
bWVWaWV3OjpkaWRGaW5pc2hQcm9oaWJpdGluZ1Njcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRT
aXplKCkKICAgICB9CiB9CiAKK2Zsb2F0IEZyYW1lVmlldzo6cGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKS5mcmFtZVNjYWxlRmFjdG9yKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIFBBR0VfSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IDhjNWI4NDgxMzliYWRjOTJiMDQzOTJlMmU5NzgwOTlkMzc0MTZkMjcuLmE1MDJjOTE4
Y2RiODJhY2U1N2I5Y2RlYWJhMmUyMmQ3OTVmNjg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtODQ4LDYgKzg0OCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2hp
Yml0aW5nU2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemUoKSBmaW5hbDsKIAorICAgIC8v
IFNjcm9sbGFibGVBcmVhLgorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJy
aWRlOworCiAgICAgc3RhdGljIE1vbm90b25pY1RpbWUgc0N1cnJlbnRQYWludFRpbWVTdGFtcDsg
Ly8gdXNlZCBmb3IgZGV0ZWN0aW5nIGRlY29kZWQgcmVzb3VyY2UgdGhyYXNoIGluIHRoZSBjYWNo
ZQogCiAgICAgY29uc3QgUmVmPEZyYW1lPiBtX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHAKaW5kZXggNjAz
OTM3NmNjODFkODQ4MDYxOGJhMTY2ODU3ZTU4MWM5OGE1NGJlNC4uZWMwYjUwNzljOTJmMWM3MTYy
NWUzNjRmYjA3ODYzYTMzMGNmMTNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwCkBAIC0xMDAsNyArMTAwLDcg
QEAgc3RhdGljIHZvaWQgaW5kaWNlc09mTmVhcmVzdFNuYXBPZmZzZXRzKExheW91dFR5cGUgb2Zm
c2V0LCBjb25zdCBWZWN0b3I8TGF5b3V0VHkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExheW91
dFR5cGU+Ci1MYXlvdXRUeXBlIGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRU
eXBlPiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRU
eXBlPj4mIHNuYXBPZmZzZXRSYW5nZXMsIExheW91dFR5cGUgc2Nyb2xsRGVzdGluYXRpb24sIGZs
b2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4KQorc3RhdGljIExheW91dFR5
cGUgY2xvc2VzdFNuYXBPZmZzZXQoY29uc3QgVmVjdG9yPExheW91dFR5cGU+JiBzbmFwT2Zmc2V0
cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFR5cGU+PiYgc25hcE9mZnNl
dFJhbmdlcywgTGF5b3V0VHlwZSBzY3JvbGxEZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIHVu
c2lnbmVkJiBhY3RpdmVTbmFwSW5kZXgsIE9wdGlvbmFsPExheW91dFR5cGU+IG9yaWdpbmFsUG9z
aXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKQogewogICAgIEFTU0VSVChzbmFwT2Zmc2V0cy5z
aXplKCkpOwogICAgIGFjdGl2ZVNuYXBJbmRleCA9IDA7CkBAIC0xMzIsMzIgKzEzMiw0MyBAQCBM
YXlvdXRUeXBlIGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRUeXBlPiYgc25h
cE9mZnNldHMsIGNvbnN0IFZlY3RvcgogICAgIH0KIAogICAgIC8vIE5vbi16ZXJvIHZlbG9jaXR5
IGluZGljYXRlcyBhIGZsaWNrIGdlc3R1cmUuIEV2ZW4gaWYgYW5vdGhlciBzbmFwIHBvaW50IGlz
IGNsb3Nlciwgd2Ugc2hvdWxkIGNob29zZSB0aGUgb25lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhl
IGZsaWNrIGdlc3R1cmUKLSAgICAvLyBhcyBsb25nIGFzIGEgc2Nyb2xsIHNuYXAgb2Zmc2V0IHJh
bmdlIGRvZXMgbm90IGxpZSBiZXR3ZWVuIHRoZSBzY3JvbGwgZGVzdGluYXRpb24gYW5kIHRoZSB0
YXJnZXRlZCBzbmFwIG9mZnNldC4KKyAgICAvLyBhcyBsb25nIGFzIGEgc2Nyb2xsIHNuYXAgb2Zm
c2V0IHJhbmdlIGRvZXMgbm90IGxpZSBiZXR3ZWVuIHRoZSBzY3JvbGwgZGVzdGluYXRpb24gYW5k
IHRoZSB0YXJnZXRlZCBzbmFwIG9mZnNldC4gSWYgd2UgYXJlIGRvaW5nIGRpcmVjdGlvbmFsCisg
ICAgLy8gc25hcHBpbmcsIHdlIHNob3VsZCBuZXZlciBzbmFwIHRvIGEgcG9pbnQgdGhhdCB3YXMg
b24gdGhlIG90aGVyIHNpZGUgb2YgdGhlIG9yaWdpbmFsIHBvc2l0aW9uIGluIHRoZSBvcHBvc2l0
ZSBkaXJlY3Rpb24gb2YgdGhpcyBzY3JvbGwuCisgICAgLy8gVGhpcyBhbGxvd3MgZGlyZWN0aW9u
YWwgc2Nyb2xsaW5nIHRvIGVzY2FwZSBzbmFwIHBvaW50cy4KICAgICBpZiAodmVsb2NpdHkgPCAw
KSB7Ci0gICAgICAgIGlmIChsb3dlclNuYXBPZmZzZXRSYW5nZUluZGV4ICE9IGludmFsaWRTbmFw
T2Zmc2V0SW5kZXggJiYgbG93ZXJTbmFwUG9zaXRpb24gPCBzbmFwT2Zmc2V0UmFuZ2VzW2xvd2Vy
U25hcE9mZnNldFJhbmdlSW5kZXhdLmVuZCkgeworICAgICAgICBpZiAobG93ZXJTbmFwT2Zmc2V0
UmFuZ2VJbmRleCA9PSBpbnZhbGlkU25hcE9mZnNldEluZGV4IHx8IGxvd2VyU25hcFBvc2l0aW9u
ID49IHNuYXBPZmZzZXRSYW5nZXNbbG93ZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleF0uZW5kKSB7Cisg
ICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSBsb3dlckluZGV4OworICAgICAgICAgICAgcmV0
dXJuIGxvd2VyU25hcFBvc2l0aW9uOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvcmlnaW5h
bFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZy5oYXNWYWx1ZSgpIHx8ICpvcmlnaW5hbFBv
c2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyA+IHVwcGVyU25hcFBvc2l0aW9uKSB7CisgICAg
ICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4OworICAgICAgICAgICAgcmV0dXJu
IHVwcGVyU25hcFBvc2l0aW9uOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KHVwcGVyU25hcE9mZnNldFJhbmdlSW5kZXggPT0gaW52YWxpZFNuYXBPZmZzZXRJbmRleCB8fCBz
bmFwT2Zmc2V0UmFuZ2VzW3VwcGVyU25hcE9mZnNldFJhbmdlSW5kZXhdLnN0YXJ0ID49IHVwcGVy
U25hcFBvc2l0aW9uKSB7CiAgICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4
OwogICAgICAgICAgICAgcmV0dXJuIHVwcGVyU25hcFBvc2l0aW9uOwogICAgICAgICB9Ci0gICAg
ICAgIGFjdGl2ZVNuYXBJbmRleCA9IGxvd2VySW5kZXg7Ci0gICAgICAgIHJldHVybiBsb3dlclNu
YXBQb3NpdGlvbjsKLSAgICB9CiAKLSAgICBpZiAodXBwZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleCAh
PSBpbnZhbGlkU25hcE9mZnNldEluZGV4ICYmIHNuYXBPZmZzZXRSYW5nZXNbdXBwZXJTbmFwT2Zm
c2V0UmFuZ2VJbmRleF0uc3RhcnQgPCB1cHBlclNuYXBQb3NpdGlvbikgewotICAgICAgICBhY3Rp
dmVTbmFwSW5kZXggPSBsb3dlckluZGV4OwotICAgICAgICByZXR1cm4gbG93ZXJTbmFwUG9zaXRp
b247CisgICAgICAgIGlmICghb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcu
aGFzVmFsdWUoKSB8fCAqb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcgPCBs
b3dlclNuYXBQb3NpdGlvbikgeworICAgICAgICAgICAgYWN0aXZlU25hcEluZGV4ID0gbG93ZXJJ
bmRleDsKKyAgICAgICAgICAgIHJldHVybiBsb3dlclNuYXBQb3NpdGlvbjsKKyAgICAgICAgfQog
ICAgIH0KLSAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4OwotICAgIHJldHVybiB1cHBl
clNuYXBQb3NpdGlvbjsKKworICAgIGFjdGl2ZVNuYXBJbmRleCA9IGludmFsaWRTbmFwT2Zmc2V0
SW5kZXg7CisgICAgcmV0dXJuIHNjcm9sbERlc3RpbmF0aW9uOwogfQogCi1MYXlvdXRVbml0IGNs
b3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNv
bnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5n
ZXMsIExheW91dFVuaXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25l
ZCYgYWN0aXZlU25hcEluZGV4KQorTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBW
ZWN0b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0
UmFuZ2U8TGF5b3V0VW5pdD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRVbml0IHNjcm9sbERl
c3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCwgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcp
CiB7Ci0gICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PExheW91dFVuaXQ+KHNuYXBPZmZzZXRz
LCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFjdGl2ZVNu
YXBJbmRleCk7CisgICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PExheW91dFVuaXQ+KHNuYXBP
ZmZzZXRzLCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFj
dGl2ZVNuYXBJbmRleCwgb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcpOwog
fQogCi1mbG9hdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zm
c2V0cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRS
YW5nZXMsIGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQm
IGFjdGl2ZVNuYXBJbmRleCkKK2Zsb2F0IGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8ZmxvYXQ+
PiYgc25hcE9mZnNldFJhbmdlcywgZmxvYXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9j
aXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4LCBPcHRpb25hbDxmbG9hdD4gb3JpZ2luYWxQ
b3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcpCiB7Ci0gICAgcmV0dXJuIGNsb3Nlc3RTbmFw
T2Zmc2V0PGZsb2F0PihzbmFwT2Zmc2V0cywgc25hcE9mZnNldFJhbmdlcywgc2Nyb2xsRGVzdGlu
YXRpb24sIHZlbG9jaXR5LCBhY3RpdmVTbmFwSW5kZXgpOworICAgIHJldHVybiBjbG9zZXN0U25h
cE9mZnNldDxmbG9hdD4oc25hcE9mZnNldHMsIHNuYXBPZmZzZXRSYW5nZXMsIHNjcm9sbERlc3Rp
bmF0aW9uLCB2ZWxvY2l0eSwgYWN0aXZlU25hcEluZGV4LCBvcmlnaW5hbFBvc2l0aW9uRm9yRGly
ZWN0aW9uYWxTbmFwcGluZyk7CiB9CiAKIGVudW0gY2xhc3MgSW5zZXRPck91dHNldCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0lu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5m
by5oCmluZGV4IGZjYTM3ZGVmM2EwYzZiNjRhNzM2MGI2M2JkZmQ1OTQzNTFiZDA2MTIuLjYzMmQ3
ZTdhYWY3MjhhMDNjNTM0ZjA3MjI5NGNmZTAwMzg4ZTE2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAjaW5jbHVkZSAiU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSw4ICs2Niw4IEBAIGNvbnN0
IHVuc2lnbmVkIGludmFsaWRTbmFwT2Zmc2V0SW5kZXggPSBVSU5UX01BWDsKIC8vIHRoZSBzY3Jv
bGxpbmcgY29udGFpbmVyJ3MgYm9yZGVyIGJveC4KIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFJlbmRlckJveCYgc2Nyb2xsaW5n
RWxlbWVudEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHNjcm9sbGluZ0VsZW1lbnRTdHlsZSwgTGF5
b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJvcmRlckJveENvb3JkaW5hdGVzKTsKIAotV0VCQ09SRV9F
WFBPUlQgTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8TGF5b3V0VW5p
dD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5p
dD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRVbml0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9h
dCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCk7Ci1XRUJDT1JFX0VYUE9SVCBm
bG9hdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zmc2V0cywg
Y29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRSYW5nZXMs
IGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2
ZVNuYXBJbmRleCk7CitXRUJDT1JFX0VYUE9SVCBMYXlvdXRVbml0IGNsb3Nlc3RTbmFwT2Zmc2V0
KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3Jv
bGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5nZXMsIExheW91dFVuaXQg
c2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcElu
ZGV4LCBPcHRpb25hbDxMYXlvdXRVbml0PiBvcmlnaW5hbFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxT
bmFwcGluZyA9IFdURjo6bnVsbG9wdCk7CitXRUJDT1JFX0VYUE9SVCBmbG9hdCBjbG9zZXN0U25h
cE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zmc2V0cywgY29uc3QgVmVjdG9yPFNj
cm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRSYW5nZXMsIGZsb2F0IHNjcm9sbERl
c3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCwgT3B0
aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nID0gV1RG
OjpudWxsb3B0KTsKIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGRhZTI3ZGYzZDI4ODdhZmZhOGNhMDJi
MmMxMDgwMzMzNzQ4NmIyZGQuLmEzYmY4ZWUzNTE4YWEzYzIyY2U1ZDk4MWIzNDFmNTU3NjlmN2E4
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgw
LDIxICs4MCwzNyBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKICNlbmRpZgog
fQogCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9h
dCBtdWx0aXBsaWVyKQorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IpCiB7Ci0gICAg
cmV0dXJuIHNjcm9sbFdpdGhvdXRBbmltYXRpb24ob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBz
dGVwLCBtdWx0aXBsaWVyKTsKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChi
ZWhhdmlvciAhPSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgICAg
ICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlw
bGllcik7CisKKyAgICBGbG9hdFNpemUgc2Nyb2xsT3JpZ2luID0gdG9GbG9hdFNpemUobV9zY3Jv
bGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSk7CisgICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9
IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOworICAgIGF1
dG8gbmV3T2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihu
ZXdQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJlbnRQb3NpdGlv
bigpLCBzY3JvbGxPcmlnaW4pOworICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyKSB7CisgICAgICAgIG5ld09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1
c3RTY3JvbGxEZXN0aW5hdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcoU2Nyb2xsRXZlbnRBeGlz
OjpIb3Jpem9udGFsLCBuZXdPZmZzZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0Lngo
KSkpOworICAgICAgICBuZXdQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQobmV3T2Zmc2V0LCBzY3JvbGxPcmlnaW4pOworICAgICAgICByZXR1cm4gc2Ny
b2xsKEhvcml6b250YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdQb3NpdGlvbi54KCkgLSB0
aGlzLT5jdXJyZW50UG9zaXRpb24oKS54KCksIDEuMCk7CisgICAgfQorCisgICAgbmV3T2Zmc2V0
LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uRm9yRGlyZWN0
aW9uYWxTbmFwcGluZyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdQb3NpdGlvbi55KCks
IG11bHRpcGxpZXIsIGN1cnJlbnRPZmZzZXQueSgpKSk7CisgICAgbmV3UG9zaXRpb24gPSBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld09mZnNldCwgc2Nyb2xsT3Jp
Z2luKTsKKyAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwg
bmV3UG9zaXRpb24ueSgpIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkueSgpLCAxLjApOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOworICAgIFVOVVNFRF9QQVJBTShiZWhh
dmlvcik7CisgICAgcmV0dXJuIHNjcm9sbFdpdGhvdXRBbmltYXRpb24ob3JpZW50YXRpb24sIHN0
ZXAsIG11bHRpcGxpZXIpOworI2VuZGlmCiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQorYm9vbCBTY3JvbGxB
bmltYXRvcjo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikKIHsKICAgICBGbG9hdFBvaW50
IGN1cnJlbnRQb3NpdGlvbiA9IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpOwotICAgIEZsb2F0U2l6
ZSBkZWx0YTsKLSAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKLSAg
ICAgICAgZGVsdGEuc2V0V2lkdGgoc3RlcCAqIG11bHRpcGxpZXIpOwotICAgIGVsc2UKLSAgICAg
ICAgZGVsdGEuc2V0SGVpZ2h0KHN0ZXAgKiBtdWx0aXBsaWVyKTsKLQotICAgIEZsb2F0UG9pbnQg
bmV3UG9zaXRpb24gPSBGbG9hdFBvaW50KGN1cnJlbnRQb3NpdGlvbiArIGRlbHRhKS5jb25zdHJh
aW5lZEJldHdlZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9z
Y3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CisgICAgRmxvYXRQb2ludCBu
ZXdQb3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxp
ZXIpOworICAgIG5ld1Bvc2l0aW9uID0gbmV3UG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKG1f
c2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCksIG1fc2Nyb2xsYWJsZUFyZWEu
bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIGlmIChjdXJyZW50UG9zaXRpb24gPT0gbmV3
UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTIwLDYgKzEzNiwxNiBAQCB2
b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgb2Zmc2V0LCBTYwogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ck9mZnNldCgpOwogfQogCitGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21T
dGVwKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBt
dWx0aXBsaWVyKQoreworICAgIEZsb2F0U2l6ZSBkZWx0YTsKKyAgICBpZiAob3JpZW50YXRpb24g
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKKyAgICAgICAgZGVsdGEuc2V0V2lkdGgoc3RlcCAqIG11
bHRpcGxpZXIpOworICAgIGVsc2UKKyAgICAgICAgZGVsdGEuc2V0SGVpZ2h0KHN0ZXAgKiBtdWx0
aXBsaWVyKTsKKyAgICByZXR1cm4gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkgKyBkZWx0YTsKK30K
KwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFDKQogYm9vbCBT
Y3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKQEAgLTE4Miw3ICsyMDgsNyBAQCBib29sIFNjcm9s
bEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkK
ICAgICAgICAgICAgICAgICAgICAgZGVsdGFZID0gLWRlbHRhWTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKLSAgICAgICAgICAg
ICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0
eSwgdmVydGljYWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZKTsKKyAgICAgICAgICAg
ICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFZlcnRpY2FsU2Nyb2xsYmFyLCB2ZXJ0aWNhbFNj
cm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVkpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIHZlcnRpY2Fs
U2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7CiAgICAgICAgIH0KQEAgLTE5NSw3ICsy
MjEsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAgICAgICAgICAgZGVsdGFYID0gLWRlbHRhWDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMoKSkKLSAgICAgICAgICAgICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKEhvcml6b250YWxT
Y3JvbGxiYXIsIGdyYW51bGFyaXR5LCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwg
LWRlbHRhWCk7CisgICAgICAgICAgICAgICAgc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihIb3Jpem9u
dGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2Nyb2xsKEhvcml6b250YWxTY3Jv
bGxiYXIsIGdyYW51bGFyaXR5LCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRl
bHRhWCk7CiAgICAgICAgIH0KQEAgLTI3MSw2ICsyOTcsMTAgQEAgRmxvYXRTaXplIFNjcm9sbEFu
aW1hdG9yOjp2aWV3cG9ydFNpemUoKSBjb25zdAogICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVh
LnZpc2libGVTaXplKCk7CiB9CiAKK2Zsb2F0IFNjcm9sbEFuaW1hdG9yOjpwYWdlU2NhbGVGYWN0
b3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLnBhZ2VTY2FsZUZhY3Rv
cigpOworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApp
bmRleCA1OWZjYzRkNDQ5ZDM0NDk3NTIxNTQ0ZTEzMjg4ZTJlNGU4Nzg3NDFkLi40MDAxZjRhZjgw
MTRhOTRmMzMwY2M2M2U5NGJhY2Q1ZDk3Yzg3OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY3LDEyICs2NywxNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgU2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEmKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxB
bmltYXRvcigpOwogCisgICAgZW51bSBTY3JvbGxCZWhhdmlvciB7CisgICAgICAgIERlZmF1bHQs
CisgICAgICAgIERvRGlyZWN0aW9uYWxTbmFwcGluZywKKyAgICB9OworCiAgICAgLy8gQ29tcHV0
ZXMgYSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgUmV0dXJu
cyBmYWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3RpbmF0aW9uLiAgT3RoZXJ3aXNl
LCBzdGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8gZGVzdGluYXRpb24gYW5kIHJl
dHVybnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRlIG9yIGFuaW1hdGVkLgogICAg
IC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0
ZWx5LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9y
aWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGll
cik7Ci0gICAgYm9vbCBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9u
LCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CisgICAg
dmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xs
QmVoYXZpb3I6OkRlZmF1bHQpOworICAgIGJvb2wgc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3Jv
bGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKQEAgLTEzMywxMSArMTM4LDYgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0TW9uaXRv
ciA9IHRlc3RNb25pdG9yOyB9CiAKLSNpZiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGVmZXJXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24p
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
RGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IG92ZXJy
aWRlOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVC
QkVSX0JBTkRJTkcpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4g
Y3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKICNlbmRpZgpAQCAtMTQ3LDE3
ICsxNDcsMjcgQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxT
bmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogI2VuZGlmCiAgICAgdm9pZCB1cGRhdGVT
Y3JvbGxTbmFwU3RhdGUoKTsKLSAgICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywg
ZmxvYXQgZGVsdGEpIG92ZXJyaWRlOwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlk
Q2hhbmdlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhp
cyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OworI2VuZGlmCisKKyAgICAvLyBTY3JvbGxDb250cm9s
bGVyQ2xpZW50LgorI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgRmxvYXRQb2ludCBz
Y3JvbGxPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbE9u
QXhpcyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlbHRhKSBvdmVycmlkZTsKKyAgICBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRTaXplIHNjcm9sbEV4
dGVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25z
dCBvdmVycmlkZTsKICNlbmRpZgorI2lmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFC
TEUoUlVCQkVSX0JBTkRJTkcpKSAmJiBQTEFURk9STShNQUMpCisgICAgdm9pZCBkZWZlcldoZWVs
RXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25E
ZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJp
ZGU7CisjZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlv
bkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVT
Y3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uRnJvbVN0
ZXAoU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpOwog
CiAgICAgU2Nyb2xsYWJsZUFyZWEmIG1fc2Nyb2xsYWJsZUFyZWE7CiAgICAgUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTA0MmI1YzE4MmY5ZDg1YWJlYmQx
OTNiNWVmMWQwOTE2OTJjMmMyNi4uYTQxN2Y0MTcwYTYyMGQ4MTA1YmVhN2RkNzdhNGZjMjE2NmEz
NDIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAt
MTQwLDcgKzE0MCw3IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rp
b24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgICAgIG11bHRpcGxp
ZXIgPSAtbXVsdGlwbGllcjsKIAogICAgIHN0ZXAgPSBhZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRD
b250ZW50KHN0ZXAsIG9yaWVudGF0aW9uLCBncmFudWxhcml0eSk7Ci0gICAgcmV0dXJuIHNjcm9s
bEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlw
bGllcik7CisgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBn
cmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgU2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEJlaGF2
aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3Jv
bGxDbGFtcGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4
IGY2NGU2ODBiYWEwMDgxNTk5MzRjNjliY2ZiM2JmYzE0YzFmYzNhY2YuLmQ1MTM5YjdlNmY2ODhm
MDIzNzM5ZWMzZTE0ZTRiMTAyYWM5MmE3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaApAQCAtMzU1LDYgKzM1NSwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmly
dHVhbCBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAxLjBm
OworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGFibGVBcmVh
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+U2Nyb2xsYWJsZUFyZWEoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCBm
YjJhYTg2MzdjZjhjNzMwZWVjMWU0MzNmZDZhYjAxMDhmZDliMTEyLi5hMGJmMDFiNDA1NmE5N2Uy
Yzg2Yzk4ZjAwNzEyN2ZiMWRjMGIxMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCkBAIC0xMDgsMTAgKzEwOCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpIHsgfQogCi0gICAgdmly
dHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IDEuMGY7Ci0gICAgfQorICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBhY3RpdmVTY3JvbGxPZmZzZXRJbmRleChTY3Jv
bGxFdmVudEF4aXMpIGNvbnN0CiAgICAgewpAQCAtMTY3LDkgKzE2NCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNjcm9sbFNuYXBJbmRleERpZENoYW5nZShib29sIHN0YXRlKSB7IG1fYWN0aXZl
U2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlID0gc3RhdGU7IH0KICAgICB1bnNpZ25lZCBhY3RpdmVT
Y3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAgICAgdm9pZCB1
cGRhdGVTY3JvbGxTbmFwU3RhdGUoY29uc3QgU2Nyb2xsYWJsZUFyZWEmKTsKLQogICAgIHZvaWQg
dXBkYXRlR2VzdHVyZUluUHJvZ3Jlc3NTdGF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
LQorICAgIGZsb2F0IGFkanVzdFNjcm9sbERlc3RpbmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGlu
ZyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgZmxv
YXQgb3JpZ2luYWxQb3NpdGlvbik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgcHJvY2Vz
c1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbQppbmRleCAyNzAwYTJmOWE5NDM3M2ZjODc5YjdiYTNhMTI3NDA5NzhkYjY5ZTUyLi5mYjBl
MDQzZWJjYWQyMTY1N2EyYTYyZGQ5Zjg1ZWNjMWJjOTljYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTkwNSw2ICs5MDUs
MjIgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9y
QXhpc0FuZE9mZnNldChTY3JvbGxFdmVudEF4aXMKICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5k
ZXhGb3JBeGlzKGF4aXMsIGFjdGl2ZUluZGV4KTsKIH0KIAorZmxvYXQgU2Nyb2xsQ29udHJvbGxl
cjo6YWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKFNjcm9sbEV2
ZW50QXhpcyBheGlzLCBmbG9hdCBkZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIGZsb2F0IG9y
aWdpbmFsUG9zaXRpb24pCit7CisgICAgaWYgKCF1c2VzU2Nyb2xsU25hcCgpKQorICAgICAgICBy
ZXR1cm4gZGVzdGluYXRpb247CisKKyAgICBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSYgc25hcFN0
YXRlID0gKm1fc2Nyb2xsU25hcFN0YXRlOworICAgIGF1dG8gc25hcE9mZnNldHMgPSBzbmFwU3Rh
dGUuc25hcE9mZnNldHNGb3JBeGlzKGF4aXMpOworICAgIGlmICghc25hcE9mZnNldHMuc2l6ZSgp
KQorICAgICAgICByZXR1cm4gZGVzdGluYXRpb247CisKKyAgICB1bnNpZ25lZCBzbmFwSW5kZXg7
CisgICAgTGF5b3V0VW5pdCBvZmZzZXQgPSBjbG9zZXN0U25hcE9mZnNldChzbmFwU3RhdGUuc25h
cE9mZnNldHNGb3JBeGlzKGF4aXMpLCBzbmFwU3RhdGUuc25hcE9mZnNldFJhbmdlc0ZvckF4aXMo
YXhpcyksIExheW91dFVuaXQoZGVzdGluYXRpb24gLyBtX2NsaWVudC5wYWdlU2NhbGVGYWN0b3Io
KSksIHZlbG9jaXR5LCBzbmFwSW5kZXgsIExheW91dFVuaXQob3JpZ2luYWxQb3NpdGlvbiAvIG1f
Y2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpKSk7CisgICAgcmV0dXJuIG9mZnNldCAqIG1fY2xpZW50
LnBhZ2VTY2FsZUZhY3RvcigpOworfQorCisKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2V0QWN0
aXZlU2Nyb2xsU25hcEluZGljZXNGb3JPZmZzZXQoU2Nyb2xsT2Zmc2V0IG9mZnNldCkKIHsKICAg
ICBpZiAoIXVzZXNTY3JvbGxTbmFwKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5oCmluZGV4IDY0ZjA4YWM1NDdiNTAyOTI4YWNhYmNhYjM2Mzhl
NWM3NTAxNDg4MjUuLmQzY2Y1NzdlM2ZjZWY3NGY0NGRkNTAyMDQwYWYyZTlmMjFjMWM2ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBA
IC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9zZW5kQ29udGVudEFyZWFTY3Jv
bGxlZFRpbWVyOwogICAgIEZsb2F0U2l6ZSBtX2NvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lclNjcm9s
bERlbHRhOwogCi0gICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICBi
b29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0
IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Ny
b2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4
IGNkOGMzNmQyN2UyYjE2NWNjZjAwMWFlZDg5M2FjZmFjZTVlZDBkNWYuLjI3ZWUwYmQ4ZTVhYTAz
ZTViMDc1NmEwMjU4MDBiMzIzMTVkODZlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTc3OSwyNCArNzc5LDI0IEBAIHN0YXRp
YyBib29sIHJ1YmJlckJhbmRpbmdFbmFibGVkRm9yU3lzdGVtKCkKIH0KICNlbmRpZgogCi1ib29s
IFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRp
b24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0
aXBsaWVyKQorYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0
aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgbV9o
YXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAogICAgIGlmICghc2Nyb2xsQW5pbWF0
aW9uRW5hYmxlZEZvclN5c3RlbSgpIHx8ICFtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFuaW1hdG9y
RW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRh
dGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworICAgICAgICByZXR1cm4gU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRp
cGxpZXIsIGJlaGF2aW9yKTsKIAogICAgIGlmIChncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVs
KQotICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3Jh
bnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJl
aGF2aW9yKTsKIAotICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3VycmVu
dFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRTaXplIGRlbHRhOwotICAgIGlmIChvcmllbnRhdGlvbiA9
PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICBkZWx0YS5zZXRXaWR0aChzdGVwICogbXVs
dGlwbGllcik7Ci0gICAgZWxzZQotICAgICAgICBkZWx0YS5zZXRIZWlnaHQoc3RlcCAqIG11bHRp
cGxpZXIpOworICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBp
bmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bworICAgIC8vIFNj
cm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgYWdhaW4gd2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMg
YW5kIFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0LgorICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxC
ZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgICAgICByZXR1cm4gU2Nyb2xsQW5p
bWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIs
IGJlaGF2aW9yKTsKIAotICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRpb24gPSBGbG9hdFBvaW50KGN1
cnJlbnRQb3NpdGlvbiArIGRlbHRhKS5jb25zdHJhaW5lZEJldHdlZW4obV9zY3JvbGxhYmxlQXJl
YS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xs
UG9zaXRpb24oKSk7CisgICAgRmxvYXRQb2ludCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLT5jdXJy
ZW50UG9zaXRpb24oKTsKKyAgICBGbG9hdFBvaW50IG5ld1Bvc2l0aW9uID0gcG9zaXRpb25Gcm9t
U3RlcChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7CisgICAgbmV3UG9zaXRpb24gPSBu
ZXdQb3NpdGlvbi5jb25zdHJhaW5lZEJldHdlZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Ny
b2xsUG9zaXRpb24oKSwgbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7
CiAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMjgwNGIwZTJhNGZkOWNjNmUwMjU2OTAwMTcyNDBmZmY0YjBhMDU2
MC4uZTExYjRmZjk4Yzc1ZmYwN2Y0ZjgwZWU1NTliYTliZGM3MmMyNWIyOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMzIEBACisyMDIwLTEyLTEwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0
Lm9yZz4KKworICAgICAgICBDU1MgU2Nyb2xsIFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRo
ZSB1c2VyIHNjcm9sbHMgdmlhIHRoZSBrZXlib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MTQ4ODA4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFwIGZvciBrZXlib2FyZCBzY3JvbGxpbmcKKworICAg
ICAgICBUaGlzIGNoYW5nZSBhZGRzIHN1cHBvcnQgZm9yIHRoZSBjb25jZXB0IG9mIGRpcmVjdGlv
bmFsIHNjcm9sbCBzbmFwcGluZywKKyAgICAgICAgd2hpY2ggd2lsbCBuZXZlciBzbmFwIHRvIGEg
c25hcCBwb2ludCB0aGF0IGlzIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWwKKyAgICAgICAgc2Nyb2xs
IG9mZnNldCBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGlyZWN0aW9u
LiBUaGlzCisgICAgICAgIGFsbG93cyBlc2NhcGluZyBzbmFwIHBvaW50cy4KKworICAgICAgICAq
IHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9y
eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgt
a2V5Ym9hcmQtc2NhbGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpv
bnRhbC13aXRoLWtleWJvYXJkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRo
LWtleWJvYXJkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0
aC1rZXlib2FyZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRs
LXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ct
cnRsLXdpdGgta2V5Ym9hcmQuaHRtbDogQWRkZWQuCisKIDIwMjAtMTItMDIgIERpZWdvIFBpbm8g
R2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIHRl
c3QgZ2FyZGVuaW5nLiBHYXJkZW5lZCBzZXZlcmFsIGZsYWt5IHRpbWVvdXQgZmFpbHVyZXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2Fy
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1r
ZXlib2FyZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY2NDU3MzczZDgyZDhhOTMzZTIyNWM2
NWRiOTdiMzlkZDIzNjMwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJh
bWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1BBU1MgYXJyb3cga2V5IGRpdiBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LgorUEFTUyBhcnJvdyBr
ZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8gZmlyc3QgZGl2LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1t
YWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NjQ1NzM3M2Q4MmQ4YTkzM2UyMjVjNjVkYjk3YjM5ZGQy
MzYzMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250
YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFT
UyBhcnJvdyBrZXkgZGl2IHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIGFycm93IGtleSBk
aXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5m
cmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNTRiNzg0MjVmNWI2MjBkZmNkYzE1ZGUyOGJiYjI0NmQ5OTViNmM5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2Nh
bGVkLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAg
ICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAuaG9yaXpvbnRhbEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiA2MDB2dzsK
KyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjog
MDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAg
ICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAg
ICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNp
dGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5k
LWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5
ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rp
b24gcnVuVGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAgbGV0IHNj
YWxlID0gMi4wOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxl
LCAwLCAwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAg
PSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVj
dFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09ICh3aW5kb3cuaW5u
ZXJXaWR0aCAqIHNjYWxlKSwgImFycm93IGtleSBkaXYgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4i
KTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOwor
ICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0ID09IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCwgImFycm93IGtleSBkaXYgc2Nyb2xs
ZWQgYmFjayB0byBmaXJzdCBkaXYuIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2Fn
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3Nh
Z2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9sbCB0aGUg
cGFnZSBob3Jpem9udGFsbHkgd2l0aCB0aGUga2V5Ym9hcmQuPC9wPiI7CisgICAgICAgICAgICAg
ICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxv
YWQ9Im9uTG9hZCgpOyIgY2xhc3M9Imhvcml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9
ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1t
YW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sIGIvTGF5b3V0
VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFu
ZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MzcxOTc1YWUwZjkwYmM1NGQ5ODQzNDI1N2M4MGZkN2RlMWJhNDMxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQuaHRt
bApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3Jv
bGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5o
b3Jpem9udGFsR2FsbGVyeSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDYwMHZ3OworICAgICAg
ICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAg
ICAgICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuY29s
b3JCb3ggeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAg
d2lkdGg6IDEwMHZ3OworICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICAgICAg
ICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICNpdGVtMCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorICAgICAgICAgICAgI2l0ZW0xIHsg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNpdGVtMiB7IGJhY2tncm91
bmQtY29sb3I6IGJsdWU7IH0KKyAgICAgICAgICAgICNpdGVtMyB7IGJhY2tncm91bmQtY29sb3I6
IGFxdWE7IH0KKyAgICAgICAgICAgICNpdGVtNCB7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsg
fQorICAgICAgICAgICAgI2l0ZW01IHsgYmFja2dyb3VuZC1jb2xvcjogZnVjaHNpYTsgfQorICAg
ICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5U
ZXN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9z
aXRpb25CZWZvcmVTbmFwID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0Owor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAg
ICAgICAgICAgICBleHBlY3RUcnVlKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCA9PSB3aW5kb3cuaW5uZXJXaWR0aCwgImFycm93IGtleSBkaXYgc2Nyb2xsZWQgdG8gc2Vjb25k
IGRpdi4iKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJv
dyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0ID09IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCwgImFycm93IGtleSBkaXYg
c2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkg
eworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIg
bWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAg
IG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9s
bCB0aGUgcGFnZSBob3Jpem9udGFsbHkgd2l0aCB0aGUga2V5Ym9hcmQuPC9wPiI7CisgICAgICAg
ICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eSBvbmxvYWQ9Im9uTG9hZCgpOyIgY2xhc3M9Imhvcml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAg
PGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIg
Y2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zN2ZlYTBkMTZjMDVkMmEwZGM4MTQ1MmI0NjU4NTZlOGM5NDdj
ZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13
aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgYXJyb3cga2V5
IHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIGFycm93IGtleSBzY3JvbGxlZCB0byB0aGly
ZCBkaXYuCitQQVNTIGFycm93IGtleSBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuCitQ
QVNTIHBhZ2UgZG93biBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LgorUEFTUyBwYWdlIHVwIGRpdiBz
Y3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9y
eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM3ZmVhMGQxNmMwNWQyYTBkYzgxNDUyYjQ2NTg1NmU4Yzk0N2NkOGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9h
cmQtc2NhbGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgYXJyb3cga2V5IHNj
cm9sbGVkIHRvIHNlY29uZCBkaXYuCitQQVNTIGFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBk
aXYuCitQQVNTIGFycm93IGtleSBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuCitQQVNT
IHBhZ2UgZG93biBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LgorUEFTUyBwYWdlIHVwIGRpdiBzY3Jv
bGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZl
cnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBlYzJmNmVl
MjNhNmRhODc0Nzg0ZDhiOTAxNDQ1NGEwYjljY2MyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbApAQCAt
MCwwICsxLDkzIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25h
cC10eXBlOiB5IG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNh
bEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAg
ICBoZWlnaHQ6IDYwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAg
ICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbG9yQm94IHsK
KyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIHdpZHRoOiAx
MDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3Jv
bGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjaXRlbTAg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9
CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAg
ICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9z
dHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQor
ICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAgbGV0IHNjYWxlID0gMi4wOworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlLCAwLCAwKTsKKworICAg
ICAgICAgICAgICAgIGxldCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiBzY2Fs
ZTsKKyAgICAgICAgICAgICAgICBsZXQgaW5pdGlhbFNjcm9sbFBvc2l0aW9uID0gZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdHMg
PSBbXTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIp
OworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AgPT0gd2luZG93SGVpZ2h0LCAiYXJyb3cga2V5IHNjcm9sbGVkIHRvIHNlY29u
ZCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFy
cm93Iik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCA9PSAod2luZG93SGVpZ2h0ICogMiksICJhcnJvdyBrZXkgc2Nyb2xs
ZWQgdG8gdGhpcmQgZGl2LiJdKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oInVwQXJyb3ciKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFy
cm93Iik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCA9PSAwLCAiYXJyb3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZp
cnN0IGRpdi4iXSk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdl
RG93biIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93SGVpZ2h0LCAicGFnZSBkb3duIHNjcm9sbGVkIHRv
IHNlY29uZCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
cGFnZVVwIik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCA9PSAwLCAicGFnZSB1cCBkaXYgc2Nyb2xsZWQgYmFjayB0byBm
aXJzdCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgLy8gV2UgYXZvaWQgbW9kaWZ5aW5nIHRo
ZSBET00gdW50aWwgdGhlIHRlc3QgaXMgb3ZlciwgYmVjYXVzZSBzb21ldGltZXMKKyAgICAgICAg
ICAgICAgICAvLyBET00gbW9kaWZpY2F0aW9ucyBjYW4gcmVzZXQgdGhlIG1haW4gZnJhbWUgc2Ny
b2xsIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdFRydWUocmVzdWx0WzBdLCByZXN1bHRbMV0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdl
LmlubmVySFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBzY3JvbGwgdGhlIHBh
Z2UgdmVydGljYWxseSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0i
b25Mb2FkKCk7IiBjbGFzcz0idmVydGljYWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRl
bTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRl
bTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFz
cz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9y
Qm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbCBiL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1t
YWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZjk2Njk3
M2QzNjY0N2I3M2VkYWJmNTkzODBlNDg1ZDg5ODAwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1t
YW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsx
LDg4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBl
OiB5IG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNhbEdhbGxl
cnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDYwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBw
YWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsK
KyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25h
cC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAg
ICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAg
ICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAg
ICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRl
bGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25h
cCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAg
IGxldCByZXN1bHRzID0gW107CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
ZG93bkFycm93Iik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJhcnJvdyBrZXkg
c2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iXSk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2Rv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09ICh3aW5kb3cuaW5uZXJIZWlnaHQg
KiAyKSwgImFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBkaXYuIl0pOworCisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1
c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09IHNjcm9sbFBvc2l0aW9u
QmVmb3JlU25hcCwgImFycm93IGtleSBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIl0p
OworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicGFnZURvd24iKTsKKyAg
ICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wID09IHdpbmRvdy5pbm5lckhlaWdodCwgInBhZ2UgZG93biBzY3JvbGxlZCB0byBzZWNv
bmQgZGl2LiJdKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInBhZ2VV
cCIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AgPT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwLCAicGFnZSB1cCBkaXYg
c2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgLy8gV2Ug
YXZvaWQgbW9kaWZ5aW5nIHRoZSBET00gdW50aWwgdGhlIHRlc3QgaXMgb3ZlciwgYmVjYXVzZSBz
b21ldGltZXMKKyAgICAgICAgICAgICAgICAvLyBET00gbW9kaWZpY2F0aW9ucyBjYW4gcmVzZXQg
dGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHJlc3VsdHMu
Zm9yRWFjaCgocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdFRydWUocmVz
dWx0WzBdLCByZXN1bHRbMV0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAg
fSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBydW5U
ZXN0cygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2Fn
ZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAgICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAg
ICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBzY3JvbGwgdGhlIHBhZ2UgdmVydGljYWxseSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsK
KyAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgor
ICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0idmVydGljYWxHYWxsZXJ5Ij4KKyAg
ICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJp
dGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXli
b2FyZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJiZmIxMTY3YmQ5NGE1NTM0ODk1OTRkMDA3
N2NmZTIyMTNiYjMwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
aG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BB
U1MgYXJyb3cga2V5cyBkaWRuJ3Qgc2Nyb2xsIHRvIHNlY29uZCBkaXYuCitQQVNTIGxlZnQgYXJy
b3cgc25hcHBlZCBiYWNrLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRh
bC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwt
d2l0aC1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmOGZiZmZkYjM5MjM0NjJkNjQzYTE2ZDY0
ZWNlNGRiNzE1M2FiN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1l
LWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAg
IGh0bWwgeworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5Owor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgLmhvcml6b250YWxHYWxsZXJ5IHsKKyAgICAgICAg
ICAgICAgICB3aWR0aDogNjAwdnc7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAg
ICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAgcGFkZGluZzogMDsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7CisgICAgICAgICAgICAgICAgaGVp
Z2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAg
ICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0ZW0wIHsgYmFja2dyb3VuZC1jb2xvcjog
cmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQor
ICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorICAgICAgICAg
ICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1YTsgfQorICAgICAgICAgICAgI2l0ZW00
IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9CisgICAgICAgICAgICAjaXRlbTUgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigwKTsKKwor
ICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBkb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJy
aWdodEFycm93Iik7CisgICAgICAgICAgICAgICAgdmFyIGJldHdlZW5GaXJzdFNjcm9sbFBvc2l0
aW9uQW5kU2Vjb25kID0KKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0ID4gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwCisgICAgICAgICAgICAg
ICAgICAgICYmIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA8IHdpbmRvdy5p
bm5lcldpZHRoOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoYmV0d2VlbkZpcnN0U2Nyb2xs
UG9zaXRpb25BbmRTZWNvbmQsICJhcnJvdyBrZXlzIGRpZG4ndCBzY3JvbGwgdG8gc2Vjb25kIGRp
di4iKTsKKworICAgICAgICAgICAgICAgIC8vIFdlIHJlc2V0IHRoZSBzY3JvbGxpbmcgcG9zaXRp
b24gYmVjYXVzZSBjaGFuZ2luZyB0aGUgRE9NIHdoZW4gd2UgYXJlIG5vdCBvbgorICAgICAgICAg
ICAgICAgIC8vIGEgc25hcCBwb2ludCBjYW4gcmVzZXQgb3VyIHNjcm9sbCBwb3NpdGlvbi4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSBzY3Jv
bGxQb3NpdGlvbkJlZm9yZVNuYXA7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJp
Z2h0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFy
cm93Iik7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7
CisKKyAgICAgICAgICAgICAgICAvLyBSZXZlcnNpbmcgZGlyZWN0aW9ucyBzaG91bGQgc25hcCBi
YWNrLgorICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0ID09IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCwgImxlZnQgYXJyb3cgc25h
cHBlZCBiYWNrLiIpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAg
IGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRN
TCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBzY3JvbGwgdGhlIHBhZ2UgaG9yaXpv
bnRhbGx5IHdpdGggdGhlIGtleWJvYXJkLjwvcD4iOworICAgICAgICAgICAgICAgIG1lc3NhZ2VM
b2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQo
KTsiIGNsYXNzPSJob3Jpem9udGFsR2FsbGVyeSI+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0wIiBj
bGFzcz0iY29sb3JCb3giPjxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJpdGVtMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
aXRlbTIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0zIiBj
bGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNCIgY2xhc3M9ImNv
bG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTUiIGNsYXNzPSJjb2xvckJveCI+
PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1h
aW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0
eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzQ0MGUxMzdhMmQ4MWE1OTM0NTViYWMyMjUxZDRhZTg5OTczMTJiOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitQQVNTIGRvd24gYXJyb3cga2V5IGRpZCBub3Qgc2Ny
b2xsIHRvIHNlY29uZCBzbmFwIHBvaW50CitQQVNTIHBhZ2UgZG93biBzY3JvbGxlZCB0byB0aGUg
Zmlyc3Qgc25hcCBwb2ludAorUEFTUyBkb3duIGFycm93IGtleSBzY3JvbGxlZCBhd2F5IGZyb20g
c2Vjb25kIGRpdi4KK1BBU1MgdXAgYXJyb3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2CitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwg
Yi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1wcm94aW1pdHktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZmY5NTIwMmIyYWIzY2M5OGQ1OTI1MDM1ZWFlMzc1OTFkMGQ2N2Q3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJk
Lmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAgICAg
c2Nyb2xsLXNuYXAtdHlwZTogeSBwcm94aW1pdHk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAudmVydGljYWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiA2MDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7Cisg
ICAgICAgICAgICAgICAgcGFkZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5j
b2xvckJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAg
ICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAg
ICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgI2l0ZW0wIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsgfQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xv
cjogYXF1YTsgfQorICAgICAgICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93
OyB9CisgICAgICAgICAgICAjaXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5kZWxheUZvcigwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQ
b3NpdGlvbkJlZm9yZVNuYXAgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdOworICAgICAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAgIHZhciBiZXR3ZWVu
Rmlyc3RTY3JvbGxQb3NpdGlvbkFuZFNlY29uZCA9CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID4gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFw
CisgICAgICAgICAgICAgICAgICAgICYmIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wIDwgd2luZG93LmlubmVySGVpZ2h0OworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChb
YmV0d2VlbkZpcnN0U2Nyb2xsUG9zaXRpb25BbmRTZWNvbmQsICJkb3duIGFycm93IGtleSBkaWQg
bm90IHNjcm9sbCB0byBzZWNvbmQgc25hcCBwb2ludCJdKTsKKworICAgICAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7CisgICAgICAgICAgICAgICAgcmVzdWx0
cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cuaW5u
ZXJIZWlnaHQsICJwYWdlIGRvd24gc2Nyb2xsZWQgdG8gdGhlIGZpcnN0IHNuYXAgcG9pbnQiXSk7
CisKKyAgICAgICAgICAgICAgICAvLyBEaXJlY3Rpb25hbCBzY3JvbGxpbmcgc2hvdWxkIGJlIGFi
bGUgdG8gZXNjYXBlIGEgc25hcCBwb2ludC4KKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBl
ci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5r
ZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5rZXlE
b3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgICAgICAgICB2YXIgYmV0d2VlblNlY29uZFNjcm9s
bFBvc2l0aW9uQW5kVGhpcmQgPQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCA+IHdpbmRvdy5pbm5lckhlaWdodAorICAgICAgICAgICAgICAg
ICAgICAmJiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA8ICh3aW5kb3cuaW5u
ZXJIZWlnaHQgKiAyKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2JldHdlZW5TZWNv
bmRTY3JvbGxQb3NpdGlvbkFuZFRoaXJkLCAiZG93biBhcnJvdyBrZXkgc2Nyb2xsZWQgYXdheSBm
cm9tIHNlY29uZCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgLy8gUmV2ZXJzaW5nIGRpcmVj
dGlvbnMgc2hvdWxkIHNuYXAgYmFjayB0aG91Z2guCisgICAgICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChb
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0
LCAidXAgYXJyb3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2Il0pOworCisgICAgICAgICAg
ICAgICAgLy8gV2UgYXZvaWQgbW9kaWZ5aW5nIHRoZSBET00gdW50aWwgdGhlIHRlc3QgaXMgb3Zl
ciwgYmVjYXVzZSBzb21ldGltZXMKKyAgICAgICAgICAgICAgICAvLyBET00gbW9kaWZpY2F0aW9u
cyBjYW4gcmVzZXQgdGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAgICAg
ICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4
cGVjdFRydWUocmVzdWx0WzBdLCByZXN1bHRbMV0pOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOwor
ICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
ICAgICAgICBydW5UZXN0cygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7
CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBzY3JvbGwgdGhlIHBhZ2UgdmVydGljYWxseSB3aXRoIHRoZSBrZXli
b2FyZC48L3A+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQo
bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0idmVydGljYWxH
YWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0i
Y29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9h
cmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjIyZDI5MzJjMzhmMGEzOThhYWU2NGE0YzZmNjkx
MmEzZTgwNTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW92ZXJmbG93LXJ0bC13
aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQQVNTIHNjcm9sbCBv
cmlnaW4gaXMgMAorUEFTUyBhcnJvdyBrZXlzIGFsbG93IGVzY2FwaW5nIGZpcnN0IHNuYXAgcG9z
aXRpb24KK1BBU1MgcmlnaHQgYXJyb3cga2V5IHNuYXBwZWQgYmFjayB0byBmaXJzdCBzbmFwIHBv
c2l0aW9uCitQQVNTIGxlZnQgYXJyb3cga2V5cyBhbGxvdyBlc2NhcGluZyBzZWNvbmQgc25hcCBw
b3NpdGlvbgorUEFTUyByaWdodCBhcnJvdyBrZXkgc25hcHBlZCBiYWNrIHRvIHNlY29uZCBzbmFw
IHBvc2l0aW9uCitQQVNTIHJpZ2h0IGFycm93IGtleXMgYWxsb3cgZXNjYXBpbmcgc2Vjb25kIHNu
YXAgcG9zaXRpb24KK1BBU1MgbGVmdCBhcnJvdyBrZXkgc25hcHBlZCBiYWNrIHRvIHNlY29uZCBz
bmFwIHBvc2l0aW9uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJv
YXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZjk5YzZkNzZmMThkYjYxODA0Y2YyOGEwNzkzYTVjNjAwODU0Yjk1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJkLmh0
bWwKQEAgLTAsMCArMSwxMTQgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJvZHkgeworICAgICAgICAgICAgICAgIG1h
cmdpbjogMDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAjY29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMzAw
cHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgICAg
IGxlZnQ6IDA7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKKyAgICAgICAgICAg
ICAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlw
ZTogeCBwcm94aW1pdHk7CisgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC5kcmF3ZXIgeworICAgICAgICAgICAgICAgIHdpZHRoOiA5
MDBweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIC5hcmVhIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAg
ICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAg
ICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC5ydGwgeworICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgLmx0ciB7CisgICAgICAgICAgICAgICAgZGlyZWN0aW9u
OiBsdHI7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGxldCB0YXJnZXRFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIGV4cGVj
dFRydWUoMCA9PSB0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQsICJzY3JvbGwgb3JpZ2luIGlzIDAi
KTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworCisgICAg
ICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uQmV0d2VlbkZpcnN0QW5kU2Vjb25kU25hcFBv
aW50ID0gdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0IDwgMCAmJiB0YXJnZXRFbGVtZW50LnNjcm9s
bExlZnQgID4gLTMwMDsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHNjcm9sbFBvc2l0aW9u
QmV0d2VlbkZpcnN0QW5kU2Vjb25kU25hcFBvaW50LCAiYXJyb3cga2V5cyBhbGxvdyBlc2NhcGlu
ZyBmaXJzdCBzbmFwIHBvc2l0aW9uIik7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZSh0YXJnZXRF
bGVtZW50LnNjcm9sbExlZnQgPT0gMCwgInJpZ2h0IGFycm93IGtleSBzbmFwcGVkIGJhY2sgdG8g
Zmlyc3Qgc25hcCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUg
c2Vjb25kIHNjcm9sbCBzbmFwIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHRhcmdldEVsZW1l
bnQuc2Nyb2xsTGVmdCA9IC0zMDA7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVs
YXlGb3IoMCk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJy
b3ciKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsK
KyAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb25CZXR3ZWVuU2Vjb25kQW5kVGhpcmRT
bmFwUG9pbnQgPSB0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgPCAtMzAwICYmIHRhcmdldEVsZW1l
bnQuc2Nyb2xsTGVmdCAgPiAtNjAwOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoc2Nyb2xs
UG9zaXRpb25CZXR3ZWVuU2Vjb25kQW5kVGhpcmRTbmFwUG9pbnQsICJsZWZ0IGFycm93IGtleXMg
YWxsb3cgZXNjYXBpbmcgc2Vjb25kIHNuYXAgcG9zaXRpb24iKTsKKworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBleHBl
Y3RUcnVlKHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCA9PSAtMzAwLCAicmlnaHQgYXJyb3cga2V5
IHNuYXBwZWQgYmFjayB0byBzZWNvbmQgc25hcCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBzY3JvbGxQ
b3NpdGlvbkJldHdlZW5GaXJzdEFuZFNlY29uZFNuYXBQb2ludCA9IHRhcmdldEVsZW1lbnQuc2Ny
b2xsTGVmdCA8IDAgJiYgdGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0ICA+IC0zMDA7CisgICAgICAg
ICAgICAgICAgZXhwZWN0VHJ1ZShzY3JvbGxQb3NpdGlvbkJldHdlZW5GaXJzdEFuZFNlY29uZFNu
YXBQb2ludCwgInJpZ2h0IGFycm93IGtleXMgYWxsb3cgZXNjYXBpbmcgc2Vjb25kIHNuYXAgcG9z
aXRpb24iKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJv
dyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUodGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0
ID09IC0zMDAsICJsZWZ0IGFycm93IGtleSBzbmFwcGVkIGJhY2sgdG8gc2Vjb25kIHNuYXAgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBydW4oKSB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAg
ICAgICAgICAgIHdyaXRlKCJUbyBtYW51YWxseSB0ZXN0LCB2ZXJpZnkgdGhhdCBzY3JvbGxpbmcg
bmVhciBvbmUgb2YgdGhlIGJvdW5kYXJpZXMgYmV0d2VlbiB0aGUgY29sb3JlZCBib3hlcyIpOwor
ICAgICAgICAgICAgICAgIHdyaXRlKCJzbmFwcyB0byB0aGUgZWRnZSBvZiB0aGUgbmVhcmVzdCBj
b2xvcmVkIGJveCwgYnV0IHNjcm9sbGluZyBzb21ld2hlcmUgbmVhciB0aGUgbWlkZGxlIG9mIHR3
byIpOworICAgICAgICAgICAgICAgIHdyaXRlKCJib3hlcyBkb2VzIG5vdCBjYXVzZSB0aGUgc2Ny
b2xsIG9mZnNldCB0byBzbmFwLiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPXJ1bigpPgorICAgICAgICA8ZGl2IGlk
PSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyIj4KKyAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhIHJ0bCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJl
ZDsiPjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFyZWEgbHRyIiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImFyZWEgcnRsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYXF1YTsiPjwvZGl2PgorICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415979</attachid>
            <date>2020-12-11 02:10:23 -0800</date>
            <delta_ts>2020-12-15 06:34:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198566-20201211111021.patch</filename>
            <type>text/plain</type>
            <size>64530</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZjMmMzODI4N2JlNTMy
ZTI4MmVmYzg0NGJlMDIyOWU5M2I5YzYwMi4uZTgyNGZjOWUyYzJlYjA4NDNjYTkwZGQ4OTYwNWRj
NjQzMTA0NWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTEyLTEwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgU2Nyb2xs
IFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgdmlhIHRoZSBrZXli
b2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTQ4ODA4OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFw
IGZvciBrZXlib2FyZCBzY3JvbGxpbmcKKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHN1cHBv
cnQgZm9yIHRoZSBjb25jZXB0IG9mIGRpcmVjdGlvbmFsIHNjcm9sbCBzbmFwcGluZywKKyAgICAg
ICAgd2hpY2ggd2lsbCBuZXZlciBzbmFwIHRvIGEgc25hcCBwb2ludCB0aGF0IGlzIGF3YXkgZnJv
bSB0aGUgb3JpZ2luYWwKKyAgICAgICAgc2Nyb2xsIG9mZnNldCBpbiB0aGUgb3Bwb3NpdGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGlyZWN0aW9uLiBUaGlzCisgICAgICAgIGFsbG93cyBlc2Nh
cGluZyBzbmFwIHBvaW50cy4KKworICAgICAgICBUZXN0czogdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFs
LXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9y
aXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVy
dGljYWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbAorICAgICAgICAgICAgICAgdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFt
ZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
aG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUt
dmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sCisgICAgICAgICAgICAgICB0aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRs
LXdpdGgta2V5Ym9hcmQuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwYWdlU2NhbGVGYWN0b3IgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOiBBZGRlZCBzY2FsZSBmYWN0b3IgZ2V0dGVyLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjbG9zZXN0U25hcE9mZnNldCk6IEFkZGVkIGEgbmV3IG9wdGlvbmFsIGFy
Z3VtZW50IHRoYXQgc2lnbmFscworICAgICAgICBkaXJlY3Rpb25hbCBzbmFwcGluZy4gVGhpcyBj
aGFuZ2VzIHRoZSBiZWhhdmlvciB3aGVuIGNob29zaW5nIGEgc25hcCBvZmZzZXQKKyAgICAgICAg
dGhhdCBpcyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGFzIHRoZSBzY3JvbGwgZGlyZWN0aW9u
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yOjpzY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IE5vIGxvbmdlciB1c2UgdGhlIGdyYW51bGFyaXR5IGFyZ3VtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24pOiBSZW1vdmUgdGhl
IHVudXNlZCBTY3JvbGxHcmFudWxhcml0eQorICAgICAgICBhcmd1bWVudCBhbmQgdXNlIHRoZSBu
ZXcgcG9zaXRpb25Gcm9tU3RlcCBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6c2Nyb2xsV2l0aERpcmVjdGlvbmFsU25hcHBpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21TdGVwKTogQWRkZWQgdGhpcyBoZWxw
ZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudCk6
IFJlbW92ZSB0aGUgZ3JhbnVsYXJpdHkgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6cGFnZVNjYWxlRmFjdG9yIGNvbnN0KTogQWRkZWQgdGhpcyBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBvZiBhIFNjcm9sbENvbnRyb2xsZXJDbGllbnQgbWV0aG9kLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6IFVwZGF0ZSBtZXRob2QgZGVjbGFyYXRpb25z
LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGwpOiBVc2UgdGhlIG5ldyBhcmd1bWVudCB0byB0aGUg
c2Nyb2xsIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lmg6IEFkZGVkIG5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6
cGFnZVNjYWxlRmFjdG9yIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmFkanVzdFNjcm9sbERlc3Rp
bmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwpOiBVc2UgbmV3IHBvc2l0aW9uRnJvbVN0ZXAgaGVscGVyLgorCiAyMDIwLTEyLTAzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3ZlIGNvZGUg
ZnJvbSBBeGlzU2Nyb2xsU25hcE9mZnNldHMgdG8gU2Nyb2xsU25hcE9mZnNldHNJbmZvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzY3NzkxZDg2NTJlMDBjZDYwNWQ3YmE5YmU4Y2Iw
MTk3N2MxOTFiMy4uZTkxZjU2YjRlZDNkZjFmM2JjNTI3YTljZTVjMTZjMjI2NjUxOTY2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTUyNSw2ICs1NTI1LDExIEBAIHZvaWQgRnJh
bWVWaWV3OjpkaWRGaW5pc2hQcm9oaWJpdGluZ1Njcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRT
aXplKCkKICAgICB9CiB9CiAKK2Zsb2F0IEZyYW1lVmlldzo6cGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKS5mcmFtZVNjYWxlRmFjdG9yKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIFBBR0VfSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IDhjNWI4NDgxMzliYWRjOTJiMDQzOTJlMmU5NzgwOTlkMzc0MTZkMjcuLmE1MDJjOTE4
Y2RiODJhY2U1N2I5Y2RlYWJhMmUyMmQ3OTVmNjg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtODQ4LDYgKzg0OCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2hp
Yml0aW5nU2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemUoKSBmaW5hbDsKIAorICAgIC8v
IFNjcm9sbGFibGVBcmVhLgorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJy
aWRlOworCiAgICAgc3RhdGljIE1vbm90b25pY1RpbWUgc0N1cnJlbnRQYWludFRpbWVTdGFtcDsg
Ly8gdXNlZCBmb3IgZGV0ZWN0aW5nIGRlY29kZWQgcmVzb3VyY2UgdGhyYXNoIGluIHRoZSBjYWNo
ZQogCiAgICAgY29uc3QgUmVmPEZyYW1lPiBtX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHAKaW5kZXggNjAz
OTM3NmNjODFkODQ4MDYxOGJhMTY2ODU3ZTU4MWM5OGE1NGJlNC4uZWMwYjUwNzljOTJmMWM3MTYy
NWUzNjRmYjA3ODYzYTMzMGNmMTNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwCkBAIC0xMDAsNyArMTAwLDcg
QEAgc3RhdGljIHZvaWQgaW5kaWNlc09mTmVhcmVzdFNuYXBPZmZzZXRzKExheW91dFR5cGUgb2Zm
c2V0LCBjb25zdCBWZWN0b3I8TGF5b3V0VHkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExheW91
dFR5cGU+Ci1MYXlvdXRUeXBlIGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRU
eXBlPiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRU
eXBlPj4mIHNuYXBPZmZzZXRSYW5nZXMsIExheW91dFR5cGUgc2Nyb2xsRGVzdGluYXRpb24sIGZs
b2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4KQorc3RhdGljIExheW91dFR5
cGUgY2xvc2VzdFNuYXBPZmZzZXQoY29uc3QgVmVjdG9yPExheW91dFR5cGU+JiBzbmFwT2Zmc2V0
cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFR5cGU+PiYgc25hcE9mZnNl
dFJhbmdlcywgTGF5b3V0VHlwZSBzY3JvbGxEZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIHVu
c2lnbmVkJiBhY3RpdmVTbmFwSW5kZXgsIE9wdGlvbmFsPExheW91dFR5cGU+IG9yaWdpbmFsUG9z
aXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKQogewogICAgIEFTU0VSVChzbmFwT2Zmc2V0cy5z
aXplKCkpOwogICAgIGFjdGl2ZVNuYXBJbmRleCA9IDA7CkBAIC0xMzIsMzIgKzEzMiw0MyBAQCBM
YXlvdXRUeXBlIGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRUeXBlPiYgc25h
cE9mZnNldHMsIGNvbnN0IFZlY3RvcgogICAgIH0KIAogICAgIC8vIE5vbi16ZXJvIHZlbG9jaXR5
IGluZGljYXRlcyBhIGZsaWNrIGdlc3R1cmUuIEV2ZW4gaWYgYW5vdGhlciBzbmFwIHBvaW50IGlz
IGNsb3Nlciwgd2Ugc2hvdWxkIGNob29zZSB0aGUgb25lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhl
IGZsaWNrIGdlc3R1cmUKLSAgICAvLyBhcyBsb25nIGFzIGEgc2Nyb2xsIHNuYXAgb2Zmc2V0IHJh
bmdlIGRvZXMgbm90IGxpZSBiZXR3ZWVuIHRoZSBzY3JvbGwgZGVzdGluYXRpb24gYW5kIHRoZSB0
YXJnZXRlZCBzbmFwIG9mZnNldC4KKyAgICAvLyBhcyBsb25nIGFzIGEgc2Nyb2xsIHNuYXAgb2Zm
c2V0IHJhbmdlIGRvZXMgbm90IGxpZSBiZXR3ZWVuIHRoZSBzY3JvbGwgZGVzdGluYXRpb24gYW5k
IHRoZSB0YXJnZXRlZCBzbmFwIG9mZnNldC4gSWYgd2UgYXJlIGRvaW5nIGRpcmVjdGlvbmFsCisg
ICAgLy8gc25hcHBpbmcsIHdlIHNob3VsZCBuZXZlciBzbmFwIHRvIGEgcG9pbnQgdGhhdCB3YXMg
b24gdGhlIG90aGVyIHNpZGUgb2YgdGhlIG9yaWdpbmFsIHBvc2l0aW9uIGluIHRoZSBvcHBvc2l0
ZSBkaXJlY3Rpb24gb2YgdGhpcyBzY3JvbGwuCisgICAgLy8gVGhpcyBhbGxvd3MgZGlyZWN0aW9u
YWwgc2Nyb2xsaW5nIHRvIGVzY2FwZSBzbmFwIHBvaW50cy4KICAgICBpZiAodmVsb2NpdHkgPCAw
KSB7Ci0gICAgICAgIGlmIChsb3dlclNuYXBPZmZzZXRSYW5nZUluZGV4ICE9IGludmFsaWRTbmFw
T2Zmc2V0SW5kZXggJiYgbG93ZXJTbmFwUG9zaXRpb24gPCBzbmFwT2Zmc2V0UmFuZ2VzW2xvd2Vy
U25hcE9mZnNldFJhbmdlSW5kZXhdLmVuZCkgeworICAgICAgICBpZiAobG93ZXJTbmFwT2Zmc2V0
UmFuZ2VJbmRleCA9PSBpbnZhbGlkU25hcE9mZnNldEluZGV4IHx8IGxvd2VyU25hcFBvc2l0aW9u
ID49IHNuYXBPZmZzZXRSYW5nZXNbbG93ZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleF0uZW5kKSB7Cisg
ICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSBsb3dlckluZGV4OworICAgICAgICAgICAgcmV0
dXJuIGxvd2VyU25hcFBvc2l0aW9uOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvcmlnaW5h
bFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZy5oYXNWYWx1ZSgpIHx8ICpvcmlnaW5hbFBv
c2l0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGluZyA+IHVwcGVyU25hcFBvc2l0aW9uKSB7CisgICAg
ICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4OworICAgICAgICAgICAgcmV0dXJu
IHVwcGVyU25hcFBvc2l0aW9uOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KHVwcGVyU25hcE9mZnNldFJhbmdlSW5kZXggPT0gaW52YWxpZFNuYXBPZmZzZXRJbmRleCB8fCBz
bmFwT2Zmc2V0UmFuZ2VzW3VwcGVyU25hcE9mZnNldFJhbmdlSW5kZXhdLnN0YXJ0ID49IHVwcGVy
U25hcFBvc2l0aW9uKSB7CiAgICAgICAgICAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4
OwogICAgICAgICAgICAgcmV0dXJuIHVwcGVyU25hcFBvc2l0aW9uOwogICAgICAgICB9Ci0gICAg
ICAgIGFjdGl2ZVNuYXBJbmRleCA9IGxvd2VySW5kZXg7Ci0gICAgICAgIHJldHVybiBsb3dlclNu
YXBQb3NpdGlvbjsKLSAgICB9CiAKLSAgICBpZiAodXBwZXJTbmFwT2Zmc2V0UmFuZ2VJbmRleCAh
PSBpbnZhbGlkU25hcE9mZnNldEluZGV4ICYmIHNuYXBPZmZzZXRSYW5nZXNbdXBwZXJTbmFwT2Zm
c2V0UmFuZ2VJbmRleF0uc3RhcnQgPCB1cHBlclNuYXBQb3NpdGlvbikgewotICAgICAgICBhY3Rp
dmVTbmFwSW5kZXggPSBsb3dlckluZGV4OwotICAgICAgICByZXR1cm4gbG93ZXJTbmFwUG9zaXRp
b247CisgICAgICAgIGlmICghb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcu
aGFzVmFsdWUoKSB8fCAqb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcgPCBs
b3dlclNuYXBQb3NpdGlvbikgeworICAgICAgICAgICAgYWN0aXZlU25hcEluZGV4ID0gbG93ZXJJ
bmRleDsKKyAgICAgICAgICAgIHJldHVybiBsb3dlclNuYXBQb3NpdGlvbjsKKyAgICAgICAgfQog
ICAgIH0KLSAgICBhY3RpdmVTbmFwSW5kZXggPSB1cHBlckluZGV4OwotICAgIHJldHVybiB1cHBl
clNuYXBQb3NpdGlvbjsKKworICAgIGFjdGl2ZVNuYXBJbmRleCA9IGludmFsaWRTbmFwT2Zmc2V0
SW5kZXg7CisgICAgcmV0dXJuIHNjcm9sbERlc3RpbmF0aW9uOwogfQogCi1MYXlvdXRVbml0IGNs
b3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNv
bnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5n
ZXMsIExheW91dFVuaXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25l
ZCYgYWN0aXZlU25hcEluZGV4KQorTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBW
ZWN0b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0
UmFuZ2U8TGF5b3V0VW5pdD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRVbml0IHNjcm9sbERl
c3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCwgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcp
CiB7Ci0gICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PExheW91dFVuaXQ+KHNuYXBPZmZzZXRz
LCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFjdGl2ZVNu
YXBJbmRleCk7CisgICAgcmV0dXJuIGNsb3Nlc3RTbmFwT2Zmc2V0PExheW91dFVuaXQ+KHNuYXBP
ZmZzZXRzLCBzbmFwT2Zmc2V0UmFuZ2VzLCBzY3JvbGxEZXN0aW5hdGlvbiwgdmVsb2NpdHksIGFj
dGl2ZVNuYXBJbmRleCwgb3JpZ2luYWxQb3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcpOwog
fQogCi1mbG9hdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zm
c2V0cywgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRS
YW5nZXMsIGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQm
IGFjdGl2ZVNuYXBJbmRleCkKK2Zsb2F0IGNsb3Nlc3RTbmFwT2Zmc2V0KGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8ZmxvYXQ+
PiYgc25hcE9mZnNldFJhbmdlcywgZmxvYXQgc2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9j
aXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcEluZGV4LCBPcHRpb25hbDxmbG9hdD4gb3JpZ2luYWxQ
b3NpdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcpCiB7Ci0gICAgcmV0dXJuIGNsb3Nlc3RTbmFw
T2Zmc2V0PGZsb2F0PihzbmFwT2Zmc2V0cywgc25hcE9mZnNldFJhbmdlcywgc2Nyb2xsRGVzdGlu
YXRpb24sIHZlbG9jaXR5LCBhY3RpdmVTbmFwSW5kZXgpOworICAgIHJldHVybiBjbG9zZXN0U25h
cE9mZnNldDxmbG9hdD4oc25hcE9mZnNldHMsIHNuYXBPZmZzZXRSYW5nZXMsIHNjcm9sbERlc3Rp
bmF0aW9uLCB2ZWxvY2l0eSwgYWN0aXZlU25hcEluZGV4LCBvcmlnaW5hbFBvc2l0aW9uRm9yRGly
ZWN0aW9uYWxTbmFwcGluZyk7CiB9CiAKIGVudW0gY2xhc3MgSW5zZXRPck91dHNldCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0lu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5m
by5oCmluZGV4IGZjYTM3ZGVmM2EwYzZiNjRhNzM2MGI2M2JkZmQ1OTQzNTFiZDA2MTIuLjYzMmQ3
ZTdhYWY3MjhhMDNjNTM0ZjA3MjI5NGNmZTAwMzg4ZTE2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAjaW5jbHVkZSAiU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSw4ICs2Niw4IEBAIGNvbnN0
IHVuc2lnbmVkIGludmFsaWRTbmFwT2Zmc2V0SW5kZXggPSBVSU5UX01BWDsKIC8vIHRoZSBzY3Jv
bGxpbmcgY29udGFpbmVyJ3MgYm9yZGVyIGJveC4KIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFJlbmRlckJveCYgc2Nyb2xsaW5n
RWxlbWVudEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHNjcm9sbGluZ0VsZW1lbnRTdHlsZSwgTGF5
b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJvcmRlckJveENvb3JkaW5hdGVzKTsKIAotV0VCQ09SRV9F
WFBPUlQgTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8TGF5b3V0VW5p
dD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5p
dD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRVbml0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9h
dCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCk7Ci1XRUJDT1JFX0VYUE9SVCBm
bG9hdCBjbG9zZXN0U25hcE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zmc2V0cywg
Y29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRSYW5nZXMs
IGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2
ZVNuYXBJbmRleCk7CitXRUJDT1JFX0VYUE9SVCBMYXlvdXRVbml0IGNsb3Nlc3RTbmFwT2Zmc2V0
KGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3Jv
bGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5nZXMsIExheW91dFVuaXQg
c2Nyb2xsRGVzdGluYXRpb24sIGZsb2F0IHZlbG9jaXR5LCB1bnNpZ25lZCYgYWN0aXZlU25hcElu
ZGV4LCBPcHRpb25hbDxMYXlvdXRVbml0PiBvcmlnaW5hbFBvc2l0aW9uRm9yRGlyZWN0aW9uYWxT
bmFwcGluZyA9IFdURjo6bnVsbG9wdCk7CitXRUJDT1JFX0VYUE9SVCBmbG9hdCBjbG9zZXN0U25h
cE9mZnNldChjb25zdCBWZWN0b3I8ZmxvYXQ+JiBzbmFwT2Zmc2V0cywgY29uc3QgVmVjdG9yPFNj
cm9sbE9mZnNldFJhbmdlPGZsb2F0Pj4mIHNuYXBPZmZzZXRSYW5nZXMsIGZsb2F0IHNjcm9sbERl
c3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNuYXBJbmRleCwgT3B0
aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsUG9zaXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nID0gV1RG
OjpudWxsb3B0KTsKIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGRhZTI3ZGYzZDI4ODdhZmZhOGNhMDJi
MmMxMDgwMzMzNzQ4NmIyZGQuLmEzYmY4ZWUzNTE4YWEzYzIyY2U1ZDk4MWIzNDFmNTU3NjlmN2E4
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgw
LDIxICs4MCwzNyBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKICNlbmRpZgog
fQogCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9h
dCBtdWx0aXBsaWVyKQorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IpCiB7Ci0gICAg
cmV0dXJuIHNjcm9sbFdpdGhvdXRBbmltYXRpb24ob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBz
dGVwLCBtdWx0aXBsaWVyKTsKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChi
ZWhhdmlvciAhPSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgICAg
ICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlw
bGllcik7CisKKyAgICBGbG9hdFNpemUgc2Nyb2xsT3JpZ2luID0gdG9GbG9hdFNpemUobV9zY3Jv
bGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSk7CisgICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9
IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOworICAgIGF1
dG8gbmV3T2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihu
ZXdQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJlbnRQb3NpdGlv
bigpLCBzY3JvbGxPcmlnaW4pOworICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyKSB7CisgICAgICAgIG5ld09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1
c3RTY3JvbGxEZXN0aW5hdGlvbkZvckRpcmVjdGlvbmFsU25hcHBpbmcoU2Nyb2xsRXZlbnRBeGlz
OjpIb3Jpem9udGFsLCBuZXdPZmZzZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0Lngo
KSkpOworICAgICAgICBuZXdQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQobmV3T2Zmc2V0LCBzY3JvbGxPcmlnaW4pOworICAgICAgICByZXR1cm4gc2Ny
b2xsKEhvcml6b250YWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdQb3NpdGlvbi54KCkgLSB0
aGlzLT5jdXJyZW50UG9zaXRpb24oKS54KCksIDEuMCk7CisgICAgfQorCisgICAgbmV3T2Zmc2V0
LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uRm9yRGlyZWN0
aW9uYWxTbmFwcGluZyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdQb3NpdGlvbi55KCks
IG11bHRpcGxpZXIsIGN1cnJlbnRPZmZzZXQueSgpKSk7CisgICAgbmV3UG9zaXRpb24gPSBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld09mZnNldCwgc2Nyb2xsT3Jp
Z2luKTsKKyAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwg
bmV3UG9zaXRpb24ueSgpIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkueSgpLCAxLjApOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOworICAgIFVOVVNFRF9QQVJBTShiZWhh
dmlvcik7CisgICAgcmV0dXJuIHNjcm9sbFdpdGhvdXRBbmltYXRpb24ob3JpZW50YXRpb24sIHN0
ZXAsIG11bHRpcGxpZXIpOworI2VuZGlmCiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQorYm9vbCBTY3JvbGxB
bmltYXRvcjo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikKIHsKICAgICBGbG9hdFBvaW50
IGN1cnJlbnRQb3NpdGlvbiA9IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpOwotICAgIEZsb2F0U2l6
ZSBkZWx0YTsKLSAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKLSAg
ICAgICAgZGVsdGEuc2V0V2lkdGgoc3RlcCAqIG11bHRpcGxpZXIpOwotICAgIGVsc2UKLSAgICAg
ICAgZGVsdGEuc2V0SGVpZ2h0KHN0ZXAgKiBtdWx0aXBsaWVyKTsKLQotICAgIEZsb2F0UG9pbnQg
bmV3UG9zaXRpb24gPSBGbG9hdFBvaW50KGN1cnJlbnRQb3NpdGlvbiArIGRlbHRhKS5jb25zdHJh
aW5lZEJldHdlZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9z
Y3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CisgICAgRmxvYXRQb2ludCBu
ZXdQb3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxp
ZXIpOworICAgIG5ld1Bvc2l0aW9uID0gbmV3UG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKG1f
c2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCksIG1fc2Nyb2xsYWJsZUFyZWEu
bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIGlmIChjdXJyZW50UG9zaXRpb24gPT0gbmV3
UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTIwLDYgKzEzNiwxNiBAQCB2
b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgb2Zmc2V0LCBTYwogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ck9mZnNldCgpOwogfQogCitGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21T
dGVwKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBt
dWx0aXBsaWVyKQoreworICAgIEZsb2F0U2l6ZSBkZWx0YTsKKyAgICBpZiAob3JpZW50YXRpb24g
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKKyAgICAgICAgZGVsdGEuc2V0V2lkdGgoc3RlcCAqIG11
bHRpcGxpZXIpOworICAgIGVsc2UKKyAgICAgICAgZGVsdGEuc2V0SGVpZ2h0KHN0ZXAgKiBtdWx0
aXBsaWVyKTsKKyAgICByZXR1cm4gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkgKyBkZWx0YTsKK30K
KwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFDKQogYm9vbCBT
Y3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKQEAgLTE4Miw3ICsyMDgsNyBAQCBib29sIFNjcm9s
bEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkK
ICAgICAgICAgICAgICAgICAgICAgZGVsdGFZID0gLWRlbHRhWTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKLSAgICAgICAgICAg
ICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0
eSwgdmVydGljYWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZKTsKKyAgICAgICAgICAg
ICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFZlcnRpY2FsU2Nyb2xsYmFyLCB2ZXJ0aWNhbFNj
cm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVkpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIHZlcnRpY2Fs
U2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7CiAgICAgICAgIH0KQEAgLTE5NSw3ICsy
MjEsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAgICAgICAgICAgZGVsdGFYID0gLWRlbHRhWDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMoKSkKLSAgICAgICAgICAgICAgICBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKEhvcml6b250YWxT
Y3JvbGxiYXIsIGdyYW51bGFyaXR5LCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwg
LWRlbHRhWCk7CisgICAgICAgICAgICAgICAgc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihIb3Jpem9u
dGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2Nyb2xsKEhvcml6b250YWxTY3Jv
bGxiYXIsIGdyYW51bGFyaXR5LCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRl
bHRhWCk7CiAgICAgICAgIH0KQEAgLTI3MSw2ICsyOTcsMTAgQEAgRmxvYXRTaXplIFNjcm9sbEFu
aW1hdG9yOjp2aWV3cG9ydFNpemUoKSBjb25zdAogICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVh
LnZpc2libGVTaXplKCk7CiB9CiAKK2Zsb2F0IFNjcm9sbEFuaW1hdG9yOjpwYWdlU2NhbGVGYWN0
b3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLnBhZ2VTY2FsZUZhY3Rv
cigpOworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApp
bmRleCA1OWZjYzRkNDQ5ZDM0NDk3NTIxNTQ0ZTEzMjg4ZTJlNGU4Nzg3NDFkLi40MDAxZjRhZjgw
MTRhOTRmMzMwY2M2M2U5NGJhY2Q1ZDk3Yzg3OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY3LDEyICs2NywxNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgU2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEmKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxB
bmltYXRvcigpOwogCisgICAgZW51bSBTY3JvbGxCZWhhdmlvciB7CisgICAgICAgIERlZmF1bHQs
CisgICAgICAgIERvRGlyZWN0aW9uYWxTbmFwcGluZywKKyAgICB9OworCiAgICAgLy8gQ29tcHV0
ZXMgYSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgUmV0dXJu
cyBmYWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3RpbmF0aW9uLiAgT3RoZXJ3aXNl
LCBzdGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8gZGVzdGluYXRpb24gYW5kIHJl
dHVybnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRlIG9yIGFuaW1hdGVkLgogICAg
IC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0
ZWx5LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9y
aWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGll
cik7Ci0gICAgYm9vbCBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9u
LCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CisgICAg
dmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xs
QmVoYXZpb3I6OkRlZmF1bHQpOworICAgIGJvb2wgc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3Jv
bGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKQEAgLTEzMywxMSArMTM4LDYgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0TW9uaXRv
ciA9IHRlc3RNb25pdG9yOyB9CiAKLSNpZiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGVmZXJXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24p
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
RGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IG92ZXJy
aWRlOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVC
QkVSX0JBTkRJTkcpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4g
Y3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKICNlbmRpZgpAQCAtMTQ3LDE3
ICsxNDcsMjcgQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxT
bmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogI2VuZGlmCiAgICAgdm9pZCB1cGRhdGVT
Y3JvbGxTbmFwU3RhdGUoKTsKLSAgICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywg
ZmxvYXQgZGVsdGEpIG92ZXJyaWRlOwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlk
Q2hhbmdlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhp
cyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OworI2VuZGlmCisKKyAgICAvLyBTY3JvbGxDb250cm9s
bGVyQ2xpZW50LgorI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgRmxvYXRQb2ludCBz
Y3JvbGxPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbE9u
QXhpcyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlbHRhKSBvdmVycmlkZTsKKyAgICBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRTaXplIHNjcm9sbEV4
dGVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25z
dCBvdmVycmlkZTsKICNlbmRpZgorI2lmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFC
TEUoUlVCQkVSX0JBTkRJTkcpKSAmJiBQTEFURk9STShNQUMpCisgICAgdm9pZCBkZWZlcldoZWVs
RXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25E
ZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJp
ZGU7CisjZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlv
bkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVT
Y3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uRnJvbVN0
ZXAoU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpOwog
CiAgICAgU2Nyb2xsYWJsZUFyZWEmIG1fc2Nyb2xsYWJsZUFyZWE7CiAgICAgUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTA0MmI1YzE4MmY5ZDg1YWJlYmQx
OTNiNWVmMWQwOTE2OTJjMmMyNi4uYTQxN2Y0MTcwYTYyMGQ4MTA1YmVhN2RkNzdhNGZjMjE2NmEz
NDIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAt
MTQwLDcgKzE0MCw3IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rp
b24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgICAgIG11bHRpcGxp
ZXIgPSAtbXVsdGlwbGllcjsKIAogICAgIHN0ZXAgPSBhZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRD
b250ZW50KHN0ZXAsIG9yaWVudGF0aW9uLCBncmFudWxhcml0eSk7Ci0gICAgcmV0dXJuIHNjcm9s
bEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlw
bGllcik7CisgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBn
cmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgU2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEJlaGF2
aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3Jv
bGxDbGFtcGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4
IGY2NGU2ODBiYWEwMDgxNTk5MzRjNjliY2ZiM2JmYzE0YzFmYzNhY2YuLmQ1MTM5YjdlNmY2ODhm
MDIzNzM5ZWMzZTE0ZTRiMTAyYWM5MmE3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaApAQCAtMzU1LDYgKzM1NSwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmly
dHVhbCBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAxLjBm
OworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGFibGVBcmVh
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+U2Nyb2xsYWJsZUFyZWEoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCBm
YjJhYTg2MzdjZjhjNzMwZWVjMWU0MzNmZDZhYjAxMDhmZDliMTEyLi5hMGJmMDFiNDA1NmE5N2Uy
Yzg2Yzk4ZjAwNzEyN2ZiMWRjMGIxMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCkBAIC0xMDgsMTAgKzEwOCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpIHsgfQogCi0gICAgdmly
dHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IDEuMGY7Ci0gICAgfQorICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBhY3RpdmVTY3JvbGxPZmZzZXRJbmRleChTY3Jv
bGxFdmVudEF4aXMpIGNvbnN0CiAgICAgewpAQCAtMTY3LDkgKzE2NCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNjcm9sbFNuYXBJbmRleERpZENoYW5nZShib29sIHN0YXRlKSB7IG1fYWN0aXZl
U2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlID0gc3RhdGU7IH0KICAgICB1bnNpZ25lZCBhY3RpdmVT
Y3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAgICAgdm9pZCB1
cGRhdGVTY3JvbGxTbmFwU3RhdGUoY29uc3QgU2Nyb2xsYWJsZUFyZWEmKTsKLQogICAgIHZvaWQg
dXBkYXRlR2VzdHVyZUluUHJvZ3Jlc3NTdGF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
LQorICAgIGZsb2F0IGFkanVzdFNjcm9sbERlc3RpbmF0aW9uRm9yRGlyZWN0aW9uYWxTbmFwcGlu
ZyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgZmxv
YXQgb3JpZ2luYWxQb3NpdGlvbik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgcHJvY2Vz
c1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbQppbmRleCAyNzAwYTJmOWE5NDM3M2ZjODc5YjdiYTNhMTI3NDA5NzhkYjY5ZTUyLi5mYjBl
MDQzZWJjYWQyMTY1N2EyYTYyZGQ5Zjg1ZWNjMWJjOTljYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTkwNSw2ICs5MDUs
MjIgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9y
QXhpc0FuZE9mZnNldChTY3JvbGxFdmVudEF4aXMKICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5k
ZXhGb3JBeGlzKGF4aXMsIGFjdGl2ZUluZGV4KTsKIH0KIAorZmxvYXQgU2Nyb2xsQ29udHJvbGxl
cjo6YWRqdXN0U2Nyb2xsRGVzdGluYXRpb25Gb3JEaXJlY3Rpb25hbFNuYXBwaW5nKFNjcm9sbEV2
ZW50QXhpcyBheGlzLCBmbG9hdCBkZXN0aW5hdGlvbiwgZmxvYXQgdmVsb2NpdHksIGZsb2F0IG9y
aWdpbmFsUG9zaXRpb24pCit7CisgICAgaWYgKCF1c2VzU2Nyb2xsU25hcCgpKQorICAgICAgICBy
ZXR1cm4gZGVzdGluYXRpb247CisKKyAgICBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSYgc25hcFN0
YXRlID0gKm1fc2Nyb2xsU25hcFN0YXRlOworICAgIGF1dG8gc25hcE9mZnNldHMgPSBzbmFwU3Rh
dGUuc25hcE9mZnNldHNGb3JBeGlzKGF4aXMpOworICAgIGlmICghc25hcE9mZnNldHMuc2l6ZSgp
KQorICAgICAgICByZXR1cm4gZGVzdGluYXRpb247CisKKyAgICB1bnNpZ25lZCBzbmFwSW5kZXg7
CisgICAgTGF5b3V0VW5pdCBvZmZzZXQgPSBjbG9zZXN0U25hcE9mZnNldChzbmFwU3RhdGUuc25h
cE9mZnNldHNGb3JBeGlzKGF4aXMpLCBzbmFwU3RhdGUuc25hcE9mZnNldFJhbmdlc0ZvckF4aXMo
YXhpcyksIExheW91dFVuaXQoZGVzdGluYXRpb24gLyBtX2NsaWVudC5wYWdlU2NhbGVGYWN0b3Io
KSksIHZlbG9jaXR5LCBzbmFwSW5kZXgsIExheW91dFVuaXQob3JpZ2luYWxQb3NpdGlvbiAvIG1f
Y2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpKSk7CisgICAgcmV0dXJuIG9mZnNldCAqIG1fY2xpZW50
LnBhZ2VTY2FsZUZhY3RvcigpOworfQorCisKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2V0QWN0
aXZlU2Nyb2xsU25hcEluZGljZXNGb3JPZmZzZXQoU2Nyb2xsT2Zmc2V0IG9mZnNldCkKIHsKICAg
ICBpZiAoIXVzZXNTY3JvbGxTbmFwKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKaW5kZXggY2IxOTU1YTg4
NDA3MzkzYjM3ZTVmMGY0Njg0MDE2Njg4YTg1Nzg1NC4uZTcyOTFiMzE0OWQ3YjE0YWQwZmZlNjAx
Y2M5NmQ1ODY4Yjk0Y2MyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApAQCAtOTQsMTEgKzk0LDE2IEBA
IHZvaWQgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjplbnN1cmVTbW9vdGhTY3JvbGxpbmdBbmltYXRp
b24oKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLWJvb2wgU2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24s
IFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBs
aWVyKQorYm9vbCBTY3JvbGxBbmltYXRvckdlbmVyaWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0
ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQogewogICAgIGlm
ICghbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVw
LCBtdWx0aXBsaWVyKTsKIAorICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9u
YWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bwor
ICAgIC8vIFNjcm9sbEFuaW1hdG9yR2VuZXJpYzo6c2Nyb2xsIGFnYWluIHdpdGggdGhlIHNuYXBw
ZWQgcG9zaXRpb25zIGFuZCBTY3JvbGxCZWhhdmlvcjo6RGVmYXVsdC4KKyAgICBpZiAoYmVoYXZp
b3IgPT0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykKKyAgICAgICAgcmV0
dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVw
LCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CisKICAgICBlbnN1cmVTbW9vdGhTY3JvbGxpbmdBbmlt
YXRpb24oKTsKICAgICByZXR1cm4gbV9zbW9vdGhBbmltYXRpb24tPnNjcm9sbChvcmllbnRhdGlv
biwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmgKaW5kZXgg
NmE4OTUzODlkMjRiMmJjMGM0ZmE1ZTg5MDQ2MzI0YWM0N2RiNGJmMS4uMGUwNWZjNjIzNWI0Zjk0
YjQzMzY4MGNjMTg5MmU1NDBlNjU2ZjgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5oCkBAIC00NSw3ICs0NSw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAg
ICBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZs
b2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpIG92ZXJyaWRlOworICAgIGJvb2wgc2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQg
bXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOwogI2VuZGlmCiAgICAgdm9pZCBz
Y3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENs
YW1waW5nKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCmlu
ZGV4IDY0ZjA4YWM1NDdiNTAyOTI4YWNhYmNhYjM2MzhlNWM3NTAxNDg4MjUuLmQzY2Y1NzdlM2Zj
ZWY3NGY0NGRkNTAyMDQwYWYyZTlmMjFjMWM2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6
CiAgICAgVGltZXIgbV9zZW5kQ29udGVudEFyZWFTY3JvbGxlZFRpbWVyOwogICAgIEZsb2F0U2l6
ZSBtX2NvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lclNjcm9sbERlbHRhOwogCi0gICAgYm9vbCBzY3Jv
bGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBm
bG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICBib29sIHNjcm9sbChTY3JvbGxiYXJPcmll
bnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIs
IFNjcm9sbEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91
dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwog
CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IGNkOGMzNmQyN2UyYjE2NWNjZjAwMWFl
ZDg5M2FjZmFjZTVlZDBkNWYuLjI3ZWUwYmQ4ZTVhYTAzZTViMDc1NmEwMjU4MDBiMzIzMTVkODZl
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRv
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KQEAgLTc3OSwyNCArNzc5LDI0IEBAIHN0YXRpYyBib29sIHJ1YmJlckJhbmRpbmdFbmFi
bGVkRm9yU3lzdGVtKCkKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQorYm9vbCBTY3JvbGxBbmlt
YXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Ny
b2xsQmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2Fk
ID0gdHJ1ZTsKIAogICAgIGlmICghc2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclN5c3RlbSgpIHx8
ICFtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAs
IG11bHRpcGxpZXIpOworICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmll
bnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJlaGF2aW9yKTsKIAogICAg
IGlmIChncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKQotICAgICAgICByZXR1cm4gU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxp
ZXIpOworICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwg
Z3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJlaGF2aW9yKTsKIAotICAgIEZsb2F0UG9p
bnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRT
aXplIGRlbHRhOwotICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQot
ICAgICAgICBkZWx0YS5zZXRXaWR0aChzdGVwICogbXVsdGlwbGllcik7Ci0gICAgZWxzZQotICAg
ICAgICBkZWx0YS5zZXRIZWlnaHQoc3RlcCAqIG11bHRpcGxpZXIpOworICAgIC8vIFRoaXMgbWV0
aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBk
b2VzLiBJdCB3aWxsIGNhbGwgaW50bworICAgIC8vIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwg
YWdhaW4gd2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yOjpEZWZh
dWx0LgorICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNu
YXBwaW5nKQorICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlv
biwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJlaGF2aW9yKTsKIAotICAgIEZsb2F0
UG9pbnQgbmV3UG9zaXRpb24gPSBGbG9hdFBvaW50KGN1cnJlbnRQb3NpdGlvbiArIGRlbHRhKS5j
b25zdHJhaW5lZEJldHdlZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24o
KSwgbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CisgICAgRmxvYXRQ
b2ludCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKTsKKyAgICBGbG9h
dFBvaW50IG5ld1Bvc2l0aW9uID0gcG9zaXRpb25Gcm9tU3RlcChvcmllbnRhdGlvbiwgc3RlcCwg
bXVsdGlwbGllcik7CisgICAgbmV3UG9zaXRpb24gPSBuZXdQb3NpdGlvbi5jb25zdHJhaW5lZEJl
dHdlZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9zY3JvbGxh
YmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgaWYgKGN1cnJlbnRQb3NpdGlv
biA9PSBuZXdQb3NpdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjgwNGIw
ZTJhNGZkOWNjNmUwMjU2OTAwMTcyNDBmZmY0YjBhMDU2MC4uZTExYjRmZjk4Yzc1ZmYwN2Y0Zjgw
ZWU1NTliYTliZGM3MmMyNWIyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEyLTEwICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgU2Ny
b2xsIFNuYXAgaXMgbm90IGluIGVmZmVjdCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgdmlhIHRoZSBr
ZXlib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk4NTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTQ4ODA4OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBz
bmFwIGZvciBrZXlib2FyZCBzY3JvbGxpbmcKKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHN1
cHBvcnQgZm9yIHRoZSBjb25jZXB0IG9mIGRpcmVjdGlvbmFsIHNjcm9sbCBzbmFwcGluZywKKyAg
ICAgICAgd2hpY2ggd2lsbCBuZXZlciBzbmFwIHRvIGEgc25hcCBwb2ludCB0aGF0IGlzIGF3YXkg
ZnJvbSB0aGUgb3JpZ2luYWwKKyAgICAgICAgc2Nyb2xsIG9mZnNldCBpbiB0aGUgb3Bwb3NpdGUg
ZGlyZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGlyZWN0aW9uLiBUaGlzCisgICAgICAgIGFsbG93cyBl
c2NhcGluZyBzbmFwIHBvaW50cy4KKworICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13
aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1o
b3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFu
ZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXli
b2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZl
cnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFp
bmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXBy
b3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1wcm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQuaHRtbDog
QWRkZWQuCisKIDIwMjAtMTItMDIgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBHYXJkZW5lZCBz
ZXZlcmFsIGZsYWt5IHRpbWVvdXQgZmFpbHVyZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5k
YXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTY2NDU3MzczZDgyZDhhOTMzZTIyNWM2NWRiOTdiMzlkZDIzNjMwZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJv
YXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgYXJyb3cga2V5IGRpdiBzY3Jv
bGxlZCB0byBzZWNvbmQgZGl2LgorUEFTUyBhcnJvdyBrZXkgZGl2IHNjcm9sbGVkIGJhY2sgdG8g
Zmlyc3QgZGl2LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRo
LWtleWJvYXJkLXNjYWxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhv
cml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2
NjQ1NzM3M2Q4MmQ4YTkzM2UyMjVjNjVkYjk3YjM5ZGQyMzYzMGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBhcnJvdyBrZXkgZGl2IHNjcm9sbGVk
IHRvIHNlY29uZCBkaXYuCitQQVNTIGFycm93IGtleSBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJz
dCBkaXYuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgta2V5
Ym9hcmQtc2NhbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0
aC1rZXlib2FyZC1zY2FsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTRiNzg0MjVmNWI2MjBkZmNkYzE1
ZGUyOGJiYjI0NmQ5OTViNmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5m
cmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLmh0bWwKQEAgLTAsMCArMSw3NCBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgor
ICAgICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBt
YW5kYXRvcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuaG9yaXpvbnRhbEdhbGxlcnkg
eworICAgICAgICAgICAgICAgIHdpZHRoOiA2MDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRk
aW5nOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAg
ICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9
CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAg
ICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNp
dGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAgICB7
CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5
Rm9yKDApOworCisgICAgICAgICAgICAgICAgbGV0IHNjYWxlID0gMi4wOworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlLCAwLCAwKTsKKworICAgICAgICAgICAg
ICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmln
aHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0ID09ICh3aW5kb3cuaW5uZXJXaWR0aCAqIHNjYWxlKSwgImFycm93
IGtleSBkaXYgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iKTsKKworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRy
dWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09IHNjcm9sbFBvc2l0aW9u
QmVmb3JlU25hcCwgImFycm93IGtleSBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIik7
CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2co
ZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2Fk
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAg
ICAgICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRl
bTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9sbCB0aGUgcGFnZSBob3Jpem9udGFsbHkgd2l0aCB0
aGUga2V5Ym9hcmQuPC9wPiI7CisgICAgICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVu
ZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyIgY2xhc3M9Imhv
cml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJv
eCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0x
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9
ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJv
eCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6
b250YWwtd2l0aC1rZXlib2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9u
dGFsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzcxOTc1YWUwZjkwYmM1NGQ5ODQz
NDI1N2M4MGZkN2RlMWJhNDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5m
cmFtZS1ob3Jpem9udGFsLXdpdGgta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9y
eTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5ob3Jpem9udGFsR2FsbGVyeSB7CisgICAg
ICAgICAgICAgICAgd2lkdGg6IDYwMHZ3OworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7
CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuY29sb3JCb3ggeworICAgICAgICAgICAgICAg
IGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAg
ICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBz
dGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29s
b3I6IHJlZDsgfQorICAgICAgICAgICAgI2l0ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
IH0KKyAgICAgICAgICAgICNpdGVtMiB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAg
ICAgICAgICNpdGVtMyB7IGJhY2tncm91bmQtY29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNp
dGVtNCB7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsg
YmFja2dyb3VuZC1jb2xvcjogZnVjaHNpYTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwID0gZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9PSB3aW5kb3cuaW5uZXJXaWR0aCwg
ImFycm93IGtleSBkaXYgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4iKTsKKworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4
cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09IHNjcm9sbFBv
c2l0aW9uQmVmb3JlU25hcCwgImFycm93IGtleSBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBk
aXYuIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29s
ZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
b25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxw
PlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHNjcm9sbCB0aGUgcGFnZSBob3Jpem9udGFsbHkg
d2l0aCB0aGUga2V5Ym9hcmQuPC9wPiI7CisgICAgICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9u
LmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyIgY2xh
c3M9Imhvcml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJj
b2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIg
Y2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJj
b2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3gi
PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5m
cmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2Zl
YTBkMTZjMDVkMmEwZGM4MTQ1MmI0NjU4NTZlOGM5NDdjZDhlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgYXJyb3cga2V5IHNjcm9sbGVkIHRvIHNlY29uZCBkaXYu
CitQQVNTIGFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBkaXYuCitQQVNTIGFycm93IGtleSBk
aXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuCitQQVNTIHBhZ2UgZG93biBzY3JvbGxlZCB0
byBzZWNvbmQgZGl2LgorUEFTUyBwYWdlIHVwIGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRp
di4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQt
c2NhbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0
aC1rZXlib2FyZC1zY2FsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZmVhMGQxNmMwNWQy
YTBkYzgxNDUyYjQ2NTg1NmU4Yzk0N2NkOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtc2NhbGVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1BBU1MgYXJyb3cga2V5IHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuCitQ
QVNTIGFycm93IGtleSBzY3JvbGxlZCB0byB0aGlyZCBkaXYuCitQQVNTIGFycm93IGtleSBkaXYg
c2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuCitQQVNTIHBhZ2UgZG93biBzY3JvbGxlZCB0byBz
ZWNvbmQgZGl2LgorUEFTUyBwYWdlIHVwIGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQtc2Nh
bGVkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQt
c2NhbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBlYzJmNmVlMjNhNmRhODc0Nzg0ZDhiOTAxNDQ1NGEw
YjljY2MyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGlj
YWwtd2l0aC1rZXlib2FyZC1zY2FsZWQuaHRtbApAQCAtMCwwICsxLDkzIEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBo
dG1sIHsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNhbEdhbGxlcnkgeworICAgICAgICAgICAg
ICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwMHZoOworICAgICAg
ICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEwMHZoOworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBm
bG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
IH0KKyAgICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAg
ICAgICAgICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAj
aXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBi
YWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91
bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAg
ICAgICAgICAgICAgbGV0IHNjYWxlID0gMi4wOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KHNjYWxlLCAwLCAwKTsKKworICAgICAgICAgICAgICAgIGxldCB3aW5kb3dI
ZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiBzY2FsZTsKKyAgICAgICAgICAgICAgICBsZXQg
aW5pdGlhbFNjcm9sbFBvc2l0aW9uID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTsKKworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICAgICAgICAgIHJlc3Vs
dHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2luZG93SGVp
Z2h0LCAiYXJyb3cga2V5IHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuIl0pOworCisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgICAgICAgICAg
cmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSAod2lu
ZG93SGVpZ2h0ICogMiksICJhcnJvdyBrZXkgc2Nyb2xsZWQgdG8gdGhpcmQgZGl2LiJdKTsKKwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAgICAgICAgICAg
cmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSAwLCAi
YXJyb3cga2V5IGRpdiBzY3JvbGxlZCBiYWNrIHRvIGZpcnN0IGRpdi4iXSk7CisKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlRG93biIpOworICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gd2lu
ZG93SGVpZ2h0LCAicGFnZSBkb3duIHNjcm9sbGVkIHRvIHNlY29uZCBkaXYuIl0pOworCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicGFnZVVwIik7CisgICAgICAgICAgICAg
ICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9PSAw
LCAicGFnZSB1cCBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIl0pOworCisgICAgICAg
ICAgICAgICAgLy8gV2UgYXZvaWQgbW9kaWZ5aW5nIHRoZSBET00gdW50aWwgdGhlIHRlc3QgaXMg
b3ZlciwgYmVjYXVzZSBzb21ldGltZXMKKyAgICAgICAgICAgICAgICAvLyBET00gbW9kaWZpY2F0
aW9ucyBjYW4gcmVzZXQgdGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAg
ICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUocmVzdWx0WzBdLCByZXN1bHRbMV0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUp
OworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0w
Jyk7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBzY3JvbGwgdGhlIHBhZ2UgdmVydGljYWxseSB3aXRoIHRoZSBr
ZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hp
bGQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0idmVydGlj
YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRp
diBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFz
cz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9y
Qm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9k
aXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdp
dGgta2V5Ym9hcmQuaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1r
ZXlib2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZjk2Njk3M2QzNjY0N2I3M2VkYWJmNTkzODBlNDg1
ZDg5ODAwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRp
Y2FsLXdpdGgta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgSFRNTD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsK
KyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNhbEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdp
ZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwMHZoOworICAgICAgICAgICAg
ICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZo
OworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDog
bGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAg
ICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAg
ICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29s
b3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAg
ICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCA9IGRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGxldCByZXN1bHRzID0gW107CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgICAg
ICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9
PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJhcnJvdyBrZXkgc2Nyb2xsZWQgdG8gc2Vjb25kIGRpdi4i
XSk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsK
KyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID09ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAyKSwgImFycm93IGtleSBzY3JvbGxl
ZCB0byB0aGlyZCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigidXBBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJy
b3ciKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goW2RvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wID09IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCwgImFycm93IGtleSBk
aXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBkaXYuIl0pOworCisgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIua2V5RG93bigicGFnZURvd24iKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1
c2goW2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID09IHdpbmRvdy5pbm5lckhl
aWdodCwgInBhZ2UgZG93biBzY3JvbGxlZCB0byBzZWNvbmQgZGl2LiJdKTsKKworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInBhZ2VVcCIpOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPT0gc2Nyb2xs
UG9zaXRpb25CZWZvcmVTbmFwLCAicGFnZSB1cCBkaXYgc2Nyb2xsZWQgYmFjayB0byBmaXJzdCBk
aXYuIl0pOworCisgICAgICAgICAgICAgICAgLy8gV2UgYXZvaWQgbW9kaWZ5aW5nIHRoZSBET00g
dW50aWwgdGhlIHRlc3QgaXMgb3ZlciwgYmVjYXVzZSBzb21ldGltZXMKKyAgICAgICAgICAgICAg
ICAvLyBET00gbW9kaWZpY2F0aW9ucyBjYW4gcmVzZXQgdGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBv
c2l0aW9uLgorICAgICAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdFRydWUocmVzdWx0WzBdLCByZXN1bHRbMV0pOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAg
ICAgIGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVy
SFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBzY3JvbGwgdGhlIHBhZ2UgdmVy
dGljYWxseSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdl
TG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2Fk
KCk7IiBjbGFzcz0idmVydGljYWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNs
YXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJp
dGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNs
YXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29s
b3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48
L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFp
bmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1p
dHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWJiZmIxMTY3YmQ5NGE1NTM0ODk1OTRkMDA3N2NmZTIyMTNiYjMwOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgYXJyb3cga2V5cyBkaWRuJ3Qgc2Ny
b2xsIHRvIHNlY29uZCBkaXYuCitQQVNTIGxlZnQgYXJyb3cgc25hcHBlZCBiYWNrLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLXByb3hpbWl0eS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLWtleWJvYXJkLmh0bWwgYi9M
YXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2FyZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBmOGZiZmZkYjM5MjM0NjJkNjQzYTE2ZDY0ZWNlNGRiNzE1M2FiN2IKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1rZXlib2Fy
ZC5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGh0bWwgeworICAgICAgICAgICAgICAg
IHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5OworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgLmhvcml6b250YWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogNjAwdnc7Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7
CisgICAgICAgICAgICAgICAgcGFkZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IC5jb2xvckJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAg
ICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAg
ICAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI2l0ZW0wIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRl
bTEgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1j
b2xvcjogYXF1YTsgfQorICAgICAgICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVs
bG93OyB9CisgICAgICAgICAgICAjaXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigwKTsKKworICAgICAgICAgICAgICAgIGxldCBzY3Jv
bGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQ7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAg
ICAgICAgdmFyIGJldHdlZW5GaXJzdFNjcm9sbFBvc2l0aW9uQW5kU2Vjb25kID0KKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID4gc2Nyb2xs
UG9zaXRpb25CZWZvcmVTbmFwCisgICAgICAgICAgICAgICAgICAgICYmIGRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA8IHdpbmRvdy5pbm5lcldpZHRoOworICAgICAgICAgICAg
ICAgIGV4cGVjdFRydWUoYmV0d2VlbkZpcnN0U2Nyb2xsUG9zaXRpb25BbmRTZWNvbmQsICJhcnJv
dyBrZXlzIGRpZG4ndCBzY3JvbGwgdG8gc2Vjb25kIGRpdi4iKTsKKworICAgICAgICAgICAgICAg
IC8vIFdlIHJlc2V0IHRoZSBzY3JvbGxpbmcgcG9zaXRpb24gYmVjYXVzZSBjaGFuZ2luZyB0aGUg
RE9NIHdoZW4gd2UgYXJlIG5vdCBvbgorICAgICAgICAgICAgICAgIC8vIGEgc25hcCBwb2ludCBj
YW4gcmVzZXQgb3VyIHNjcm9sbCBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXA7Cisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisKKyAgICAgICAgICAgICAgICAvLyBS
ZXZlcnNpbmcgZGlyZWN0aW9ucyBzaG91bGQgc25hcCBiYWNrLgorICAgICAgICAgICAgICAgIGV4
cGVjdFRydWUoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID09IHNjcm9sbFBv
c2l0aW9uQmVmb3JlU25hcCwgImxlZnQgYXJyb3cgc25hcHBlZCBiYWNrLiIpOworICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgICAg
ICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAg
ICBydW5UZXN0cygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIg
bWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAg
ICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBzY3JvbGwgdGhlIHBhZ2UgaG9yaXpvbnRhbGx5IHdpdGggdGhlIGtleWJvYXJk
LjwvcD4iOworICAgICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNz
YWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNzPSJob3Jpem9udGFsR2Fs
bGVyeSI+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0wIiBjbGFzcz0iY29sb3JCb3giPjxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMSIgY2xhc3M9ImNv
bG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTIiIGNsYXNzPSJjb2xvckJveCI+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0zIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJpdGVtNCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0iaXRlbTUiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtl
eWJvYXJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWluZnJhbWUtdmVydGljYWwtd2l0
aC1rZXlib2FyZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ0MGUxMzdhMmQ4MWE1OTM0NTVi
YWMyMjUxZDRhZTg5OTczMTJiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXByb3hpbWl0eS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBA
CitQQVNTIGRvd24gYXJyb3cga2V5IGRpZCBub3Qgc2Nyb2xsIHRvIHNlY29uZCBzbmFwIHBvaW50
CitQQVNTIHBhZ2UgZG93biBzY3JvbGxlZCB0byB0aGUgZmlyc3Qgc25hcCBwb2ludAorUEFTUyBk
b3duIGFycm93IGtleSBzY3JvbGxlZCBhd2F5IGZyb20gc2Vjb25kIGRpdi4KK1BBU1MgdXAgYXJy
b3cgc2Nyb2xsZWQgYmFjayB0byBzZWNvbmQgZGl2CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5LW1haW5m
cmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHktbWFpbmZyYW1l
LXZlcnRpY2FsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmY5NTIwMmIyYWIzY2M5
OGQ1OTI1MDM1ZWFlMzc1OTFkMGQ2N2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGltaXR5
LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLWtleWJvYXJkLmh0bWwKQEAgLTAsMCArMSw5NSBAQAor
PCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeSBwcm94
aW1pdHk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAudmVydGljYWxHYWxsZXJ5IHsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiA2MDB2
aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAgcGFkZGluZzog
MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7CisgICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAg
ICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246
IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0ZW0wIHsgYmFja2dyb3VuZC1j
b2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorICAg
ICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1YTsgfQorICAgICAgICAgICAg
I2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9CisgICAgICAgICAgICAjaXRlbTUg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigw
KTsKKworICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBkb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBsZXQgcmVz
dWx0cyA9IFtdOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25B
cnJvdyIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oImRvd25BcnJv
dyIpOworICAgICAgICAgICAgICAgIHZhciBiZXR3ZWVuRmlyc3RTY3JvbGxQb3NpdGlvbkFuZFNl
Y29uZCA9CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wID4gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwCisgICAgICAgICAgICAgICAgICAgICYm
IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wIDwgd2luZG93LmlubmVySGVpZ2h0
OworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbYmV0d2VlbkZpcnN0U2Nyb2xsUG9zaXRp
b25BbmRTZWNvbmQsICJkb3duIGFycm93IGtleSBkaWQgbm90IHNjcm9sbCB0byBzZWNvbmQgc25h
cCBwb2ludCJdKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmtleURvd24oInBh
Z2VEb3duIik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCA9PSB3aW5kb3cuaW5uZXJIZWlnaHQsICJwYWdlIGRvd24gc2Ny
b2xsZWQgdG8gdGhlIGZpcnN0IHNuYXAgcG9pbnQiXSk7CisKKyAgICAgICAgICAgICAgICAvLyBE
aXJlY3Rpb25hbCBzY3JvbGxpbmcgc2hvdWxkIGJlIGFibGUgdG8gZXNjYXBlIGEgc25hcCBwb2lu
dC4KKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciKTsK
KyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAg
ICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAg
ICAgICAgICAgICB2YXIgYmV0d2VlblNlY29uZFNjcm9sbFBvc2l0aW9uQW5kVGhpcmQgPQorICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA+IHdp
bmRvdy5pbm5lckhlaWdodAorICAgICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCA8ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAyKTsKKyAgICAgICAg
ICAgICAgICByZXN1bHRzLnB1c2goW2JldHdlZW5TZWNvbmRTY3JvbGxQb3NpdGlvbkFuZFRoaXJk
LCAiZG93biBhcnJvdyBrZXkgc2Nyb2xsZWQgYXdheSBmcm9tIHNlY29uZCBkaXYuIl0pOworCisg
ICAgICAgICAgICAgICAgLy8gUmV2ZXJzaW5nIGRpcmVjdGlvbnMgc2hvdWxkIHNuYXAgYmFjayB0
aG91Z2guCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIua2V5RG93bigidXBBcnJvdyIp
OworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChbZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0LCAidXAgYXJyb3cgc2Nyb2xsZWQgYmFj
ayB0byBzZWNvbmQgZGl2Il0pOworCisgICAgICAgICAgICAgICAgLy8gV2UgYXZvaWQgbW9kaWZ5
aW5nIHRoZSBET00gdW50aWwgdGhlIHRlc3QgaXMgb3ZlciwgYmVjYXVzZSBzb21ldGltZXMKKyAg
ICAgICAgICAgICAgICAvLyBET00gbW9kaWZpY2F0aW9ucyBjYW4gcmVzZXQgdGhlIG1haW4gZnJh
bWUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVz
dWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdFRydWUocmVzdWx0WzBdLCByZXN1
bHRbMV0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0cygpOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAgICAgICAgICAgICAgdmFyIG1l
c3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBzY3JvbGwg
dGhlIHBhZ2UgdmVydGljYWxseSB3aXRoIHRoZSBrZXlib2FyZC48L3A+IjsKKyAgICAgICAgICAg
ICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9u
bG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0idmVydGljYWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9
ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1w
cm94aW1pdHktb3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJv
eGltaXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MjIyZDI5MzJjMzhmMGEzOThhYWU2NGE0YzZmNjkxMmEzZTgwNTFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtcHJveGltaXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitQQVNTIHNjcm9sbCBvcmlnaW4gaXMgMAorUEFTUyBhcnJvdyBr
ZXlzIGFsbG93IGVzY2FwaW5nIGZpcnN0IHNuYXAgcG9zaXRpb24KK1BBU1MgcmlnaHQgYXJyb3cg
a2V5IHNuYXBwZWQgYmFjayB0byBmaXJzdCBzbmFwIHBvc2l0aW9uCitQQVNTIGxlZnQgYXJyb3cg
a2V5cyBhbGxvdyBlc2NhcGluZyBzZWNvbmQgc25hcCBwb3NpdGlvbgorUEFTUyByaWdodCBhcnJv
dyBrZXkgc25hcHBlZCBiYWNrIHRvIHNlY29uZCBzbmFwIHBvc2l0aW9uCitQQVNTIHJpZ2h0IGFy
cm93IGtleXMgYWxsb3cgZXNjYXBpbmcgc2Vjb25kIHNuYXAgcG9zaXRpb24KK1BBU1MgbGVmdCBh
cnJvdyBrZXkgc25hcHBlZCBiYWNrIHRvIHNlY29uZCBzbmFwIHBvc2l0aW9uCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAt
cHJveGltaXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1wcm94aW1pdHkt
b3ZlcmZsb3ctcnRsLXdpdGgta2V5Ym9hcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjk5YzZkNzZmMThk
YjYxODA0Y2YyOGEwNzkzYTVjNjAwODU0Yjk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtcHJveGlt
aXR5LW92ZXJmbG93LXJ0bC13aXRoLWtleWJvYXJkLmh0bWwKQEAgLTAsMCArMSwxMTQgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAg
ICAgICAgIGJvZHkgeworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAg
ICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjY29udGFp
bmVyIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICAgICAgaGVp
Z2h0OiAzMDBweDsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
ICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgICAgIGxlZnQ6IDA7CisgICAgICAgICAgICAg
ICAgb3ZlcmZsb3cteDogYXV0bzsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47
CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7CisgICAgICAg
ICAgICAgICAgZGlyZWN0aW9uOiBydGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5k
cmF3ZXIgeworICAgICAgICAgICAgICAgIHdpZHRoOiA5MDBweDsKKyAgICAgICAgICAgICAgICBo
ZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5hcmVhIHsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsK
KyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25h
cC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ydGwgeworICAg
ICAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Lmx0ciB7CisgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBsdHI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oMTUwLCAxNTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAg
ICAgICAgICAgIGxldCB0YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnRhaW5lciIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoMCA9PSB0YXJnZXRFbGVtZW50
LnNjcm9sbExlZnQsICJzY3JvbGwgb3JpZ2luIGlzIDAiKTsKKworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworCisgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFBv
c2l0aW9uQmV0d2VlbkZpcnN0QW5kU2Vjb25kU25hcFBvaW50ID0gdGFyZ2V0RWxlbWVudC5zY3Jv
bGxMZWZ0IDwgMCAmJiB0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgID4gLTMwMDsKKyAgICAgICAg
ICAgICAgICBleHBlY3RUcnVlKHNjcm9sbFBvc2l0aW9uQmV0d2VlbkZpcnN0QW5kU2Vjb25kU25h
cFBvaW50LCAiYXJyb3cga2V5cyBhbGxvdyBlc2NhcGluZyBmaXJzdCBzbmFwIHBvc2l0aW9uIik7
CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7Cisg
ICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZSh0YXJnZXRFbGVtZW50LnNjcm9sbExlZnQgPT0gMCwg
InJpZ2h0IGFycm93IGtleSBzbmFwcGVkIGJhY2sgdG8gZmlyc3Qgc25hcCBwb3NpdGlvbiIpOwor
CisgICAgICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgc2Vjb25kIHNjcm9sbCBzbmFwIHBvc2l0
aW9uLgorICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCA9IC0zMDA7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CisKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBsZXQgc2Ny
b2xsUG9zaXRpb25CZXR3ZWVuU2Vjb25kQW5kVGhpcmRTbmFwUG9pbnQgPSB0YXJnZXRFbGVtZW50
LnNjcm9sbExlZnQgPCAtMzAwICYmIHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCAgPiAtNjAwOwor
ICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoc2Nyb2xsUG9zaXRpb25CZXR3ZWVuU2Vjb25kQW5k
VGhpcmRTbmFwUG9pbnQsICJsZWZ0IGFycm93IGtleXMgYWxsb3cgZXNjYXBpbmcgc2Vjb25kIHNu
YXAgcG9zaXRpb24iKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJp
Z2h0QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHRhcmdldEVsZW1lbnQuc2Ny
b2xsTGVmdCA9PSAtMzAwLCAicmlnaHQgYXJyb3cga2V5IHNuYXBwZWQgYmFjayB0byBzZWNvbmQg
c25hcCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
cmlnaHRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0
QXJyb3ciKTsKKyAgICAgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbkJldHdlZW5GaXJzdEFuZFNl
Y29uZFNuYXBQb2ludCA9IHRhcmdldEVsZW1lbnQuc2Nyb2xsTGVmdCA8IDAgJiYgdGFyZ2V0RWxl
bWVudC5zY3JvbGxMZWZ0ICA+IC0zMDA7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShzY3Jv
bGxQb3NpdGlvbkJldHdlZW5GaXJzdEFuZFNlY29uZFNuYXBQb2ludCwgInJpZ2h0IGFycm93IGtl
eXMgYWxsb3cgZXNjYXBpbmcgc2Vjb25kIHNuYXAgcG9zaXRpb24iKTsKKworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICAgICAgICAgIGV4
cGVjdFRydWUodGFyZ2V0RWxlbWVudC5zY3JvbGxMZWZ0ID09IC0zMDAsICJsZWZ0IGFycm93IGtl
eSBzbmFwcGVkIGJhY2sgdG8gc2Vjb25kIHNuYXAgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAg
IH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICBp
ZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHdyaXRlKCJUbyBtYW51
YWxseSB0ZXN0LCB2ZXJpZnkgdGhhdCBzY3JvbGxpbmcgbmVhciBvbmUgb2YgdGhlIGJvdW5kYXJp
ZXMgYmV0d2VlbiB0aGUgY29sb3JlZCBib3hlcyIpOworICAgICAgICAgICAgICAgIHdyaXRlKCJz
bmFwcyB0byB0aGUgZWRnZSBvZiB0aGUgbmVhcmVzdCBjb2xvcmVkIGJveCwgYnV0IHNjcm9sbGlu
ZyBzb21ld2hlcmUgbmVhciB0aGUgbWlkZGxlIG9mIHR3byIpOworICAgICAgICAgICAgICAgIHdy
aXRlKCJib3hlcyBkb2VzIG5vdCBjYXVzZSB0aGUgc2Nyb2xsIG9mZnNldCB0byBzbmFwLiIpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHkgb25sb2FkPXJ1bigpPgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iZHJhd2VyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcmVh
IHJ0bCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsiPjwvZGl2PgorICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFyZWEgbHRyIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsi
PjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFyZWEgcnRsIiBzdHlsZT0iYmFj
a2dyb3VuZC1jb2xvcjogYXF1YTsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorICAgIDwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>