<?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>235026</bug_id>
          
          <creation_ts>2022-01-10 04:18:50 -0800</creation_ts>
          <short_desc>Enforce focus check for getUserMedia</short_desc>
          <delta_ts>2022-01-16 22:46:19 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829411</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-10 04:18:50 -0800</bug_when>
    <thetext>As per spec, we should wait for focus before starting the getUserMedia algorithm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829434</commentid>
    <comment_count>1</comment_count>
      <attachid>448740</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-10 06:06:13 -0800</bug_when>
    <thetext>Created attachment 448740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829454</commentid>
    <comment_count>2</comment_count>
      <attachid>448747</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-10 07:09:23 -0800</bug_when>
    <thetext>Created attachment 448747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829486</commentid>
    <comment_count>3</comment_count>
      <attachid>448747</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-01-10 09:01:47 -0800</bug_when>
    <thetext>Comment on attachment 448747
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        The spec currently defines that we should wait for the current document to have focus but this is about to be changed and is not aligned with other browser implementations.

Nit: this line should be wrapped to make it easier to read</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829488</commentid>
    <comment_count>4</comment_count>
      <attachid>448757</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-10 09:04:55 -0800</bug_when>
    <thetext>Created attachment 448757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829842</commentid>
    <comment_count>5</comment_count>
      <attachid>448853</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-11 10:14:06 -0800</bug_when>
    <thetext>Created attachment 448853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830040</commentid>
    <comment_count>6</comment_count>
      <attachid>448915</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 01:33:45 -0800</bug_when>
    <thetext>Created attachment 448915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830041</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-12 01:34:46 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830042</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 01:35:28 -0800</bug_when>
    <thetext>@pnormand, can you look at GTK API test failures?
I tried to fix some of them but one should remain as we are now checking that the page is focused when getDisplayMedia is called, which does not seem to be the case when running the API test in GTK.
You can also probably fix the other GTK tests in the same way without introducing the private API as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830077</commentid>
    <comment_count>9</comment_count>
      <attachid>448929</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 04:00:49 -0800</bug_when>
    <thetext>Created attachment 448929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830091</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 05:07:15 -0800</bug_when>
    <thetext>/webkit/WebKitWebView/display-usermedia-permission-request remains broken given the page does not have focus when calling getDisplayMedia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830107</commentid>
    <comment_count>11</comment_count>
      <attachid>448940</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 06:40:56 -0800</bug_when>
    <thetext>Created attachment 448940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830474</commentid>
    <comment_count>12</comment_count>
      <attachid>449028</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-13 00:14:56 -0800</bug_when>
    <thetext>Created attachment 449028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830531</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-13 06:08:52 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #8)
&gt; @pnormand, can you look at GTK API test failures?
&gt; I tried to fix some of them but one should remain as we are now checking
&gt; that the page is focused when getDisplayMedia is called, which does not seem
&gt; to be the case when running the API test in GTK.
&gt; You can also probably fix the other GTK tests in the same way without
&gt; introducing the private API as well.

GTK failure is tricky. The view is always focused because we are synthesizing a click event that grab the focus in the view, but under Xvfb gtk_widget_grab_focus does nothing, because there&apos;s no toplevel focus support. So, we need to pretend the view is always focused and under the active window when running under Xvfb. I&apos;ll submit an updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830533</commentid>
    <comment_count>14</comment_count>
      <attachid>449055</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-13 06:23:25 -0800</bug_when>
    <thetext>Created attachment 449055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830847</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-14 02:16:38 -0800</bug_when>
    <thetext>Doing some more testing, it does not seem like document focus is the right approach.
If I call getUserMedia, the prompt will get the focus.
If shortly after calling getUserMedia, I call getDisplayMedia, the call will now fail while it would have before this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830862</commentid>
    <comment_count>16</comment_count>
      <attachid>449157</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-14 03:41:54 -0800</bug_when>
    <thetext>Created attachment 449157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830884</commentid>
    <comment_count>17</comment_count>
      <attachid>449165</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-14 05:06:10 -0800</bug_when>
    <thetext>Created attachment 449165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831400</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-16 22:45:52 -0800</bug_when>
    <thetext>Committed r288087 (246101@main): &lt;https://commits.webkit.org/246101@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449165.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831401</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-16 22:46:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/87666800&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448740</attachid>
            <date>2022-01-10 06:06:13 -0800</date>
            <delta_ts>2022-01-10 07:13:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220110150611.patch</filename>
            <type>text/plain</type>
            <size>18732</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y5M2U5NjE0MDJmOWVj
MmQ3NjVkY2YxODZhNjNiOTY4NWMyZmU4Ny4uYjU3YzM2MzgwN2RjZmRkYTNkNDRmYzA0ODM5ZmRh
MmM3MjgxOThkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNo
ZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byByZWdpc3RlciBhIGNhbGxiYWNrIHNv
IHRoYXQgYSB0YXNrIGlzIGV4ZWN1dGVkIHdoZW4gdGhlIHRvcCBsZXZlbCBkb2N1bWVudCBoYXMg
Zm9jdXMuCisgICAgICAgIFVzZSB0aGlzIHRvIGRlbGF5IGdldFVzZXJNZWRpYSByZXF1ZXN0cyB1
bnRpbCB0b3AgbGV2ZWwgZG9jdW1lbnQgaGFzIGZvY3VzLgorICAgICAgICBUaGUgc3BlYyBjdXJy
ZW50bHkgZGVmaW5lcyB0aGF0IHdlIHNob3VsZCB3YWl0IGZvciB0aGUgY3VycmVudCBkb2N1bWVu
dCB0byBoYXZlIGZvY3VzIGJ1dCB0aGlzIGlzIGFib3V0IHRvIGJlIGNoYW5nZWQgYW5kIGlzIG5v
dCBhbGlnbmVkIHdpdGggb3RoZXIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAg
VGhlIHBhdGNoIGFsc28gbW92ZXMgc29tZSBnZXRVc2VyTWVkaWEgY2hlY2tzIGVhcmxpZXIgc28g
YXMgdG8gcmVzcGVjdCBvcmRlciBwcm92aWRlZCBieSB0aGUgc3BlY3MuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisKIDIwMjItMDEtMDkgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZv
ciBEaXJlY3QyRCAvIEZUVwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5
NmUxNTY1ZjU4ZTUuLmYzZmJhYTQ1NDI3ZDA2OGQzOWZiY2U1ODRjNGM3NThlMDBiZWNlYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKQEAgLTExOCwxNSArMTE4LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNl
ckdlc3R1cmVQcml2aWxlZGdlKEdlc3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZv
aWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWlu
dHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRv
IHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZp
ZGVvKTsKKworICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0
cmFpbnRzLmlzVmFsaWQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8g
Y29uc3RyYWludHMgcHJvdmlkZWQiX3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5pc0Z1bGx5QWN0aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFp
bnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0
byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52
aWRlbyk7Ci0KICAgICBib29sIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAg
ICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODAgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWludHMsIFByb21pc2UmJgogICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpV
c2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJh
aW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICByZXF1ZXN0LT5zdGFydCgpOworCisgICAgZG9jdW1lbnQtPndoZW5Ub3BMZXZlbERvY3VtZW50
SGFzRm9jdXMoW3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgICAgIGlmIChyZXF1
ZXN0LT5pc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJl
cXVlc3QtPnN0YXJ0KCk7CisgICAgfSk7Cit9CisKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXRE
aXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRz
KQoreworICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNo
YXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRo
ZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJl
c2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwg
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5z
IGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGgg
YSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFp
bnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1l
bWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAo
IWNvbnN0cmFpbnRzLmlzVmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
Y29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFu
ZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgY29uc3RyYWludCkgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25z
dHJhaW50VHlwZSgpKSB7CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAg
ICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWlu
dCk7CisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29u
c3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkFzcGVjdFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZTogeworICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25j
YXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZh
bHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5
U3VyZmFjZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFj
ZTogeworICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFu
Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAg
ICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpGYWNpbmdNb2RlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlk
OgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAg
ICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihj
b25zdHJhaW50KTsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAg
ICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlUmF0ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVT
aXplOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAg
Ly8gSWdub3JlZC4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsK
KyAgICB9KTsKKworICAgIHJldHVybiBpbnZhbGlkOwogfQogCiB2b2lkIE1lZGlhRGV2aWNlczo6
Z2V0RGlzcGxheU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xNTMsNyArMjMxLDE4IEBAIHZvaWQgTWVk
aWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3Ry
YWludHMmIGNvbnN0cmFpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcXVl
c3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVx
dWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29u
c3RyYWludHMudmlkZW8pLCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9t
aXNlKSk7CisgICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50
cyhjb25zdHJhaW50cy52aWRlbyk7CisgICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFD
b25zdHJhaW50KHZpZGVvQ29uc3RyYWludHMpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgImdldERpc3BsYXlNZWRpYSBtdXN0IGJlIGNhbGxlZCB3aXRo
IHZhbGlkIGNvbnN0cmFpbnRzLiJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghZG9jdW1lbnQtPmlzRnVsbHlBY3RpdmUoKSB8fCAhZG9jdW1lbnQtPmhhc0ZvY3VzKCkp
IHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3Mg
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVk
aWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6
RGlzcGxheU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1
cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgx
ZDViYzY3ZGY1Li4xZTBlZjU0N2VmMmJiMTc1NGIwNThhMDRiNGUyNDQ3MTAzYzQ2ZGMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAKQEAgLTg1LDc0ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFS
ZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4
dCA/ICZjb250ZXh0LT50b3BPcmlnaW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhh
c0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMm
IGNvbnN0cmFpbnRzKQotewotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1
cmUtc2NyZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0
cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFj
aCBtZW1iZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEg
ZGljdGlvbmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZh
bHVlIGNvbnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYg
dmFsdWUgY29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29u
dGFpbmluZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0
LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJv
ci4KLSAgICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29u
c3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1l
ZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29u
c3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6V2lkdGg6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7
Ci0gICAgICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWlu
dD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZh
bGlkID0gaW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRN
aW4odmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkZyYW1lUmF0ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3Ry
YWludCA9IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAg
ICAgZG91YmxlIHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQu
Z2V0RXhhY3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpEaXNwbGF5U3VyZmFjZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpM
b2dpY2FsU3VyZmFjZTogewotICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3du
Y2FzdDxCb29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZh
bHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVl
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6OkRldmljZUlkOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6
IHsKLSAgICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdD
b25zdHJhaW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVl
czsKLSAgICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVl
cyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpTYW1wbGVTaXplOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVt
ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgot
ICAgICAgICAgICAgLy8gSWdub3JlZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1
cm4gaW52YWxpZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVz
ZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwpAQCAtMTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVz
dDo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50
eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAg
IGlmIChoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9D
b25zdHJhaW50cykpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
OklsbGVnYWxDb25zdHJhaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1
c2VybWVkaWEuaHRtbCNkb20tbWVkaWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4g
TGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAy
LiBMZXQgcmVxdWVzdGVkTWVkaWFUeXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNv
bnN0cmFpbnRzIHdpdGggZWl0aGVyIGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEg
dmFsdWUgb2YgInRydWUiLgotICAgIC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhl
IGVtcHR5IHNldCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBU
aGUgd29yZAotICAgIC8vICAgICJvcHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRv
IFdlYklETCBydWxlcywgYnV0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVy
Ci0gICAgLy8gICAgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3Qu
YXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5p
c1ZhbGlkKSB7Ci0gICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3Ry
YWludHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJl
bnQgc2V0dGluZ3Mgb2JqZWN0J3MgcmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQg
dG8gdXNlIHRoZSBmZWF0dXJlIGluZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1l
IGFsbG93dXNlcm1lZGlhLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNl
cHRpb24gb2JqZWN0IHdob3NlIG5hbWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1
ZSBTZWN1cml0eUVycm9yLgpAQCAtMjg5LDE0ICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OmRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1l
c3NhZwogCiAgICAgRXhjZXB0aW9uQ29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0g
ICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAg
ICAgIFJFTEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGlu
dmFsaWQgY29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoK
LSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55
IC0gbm8gY29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJs
ZWQ6CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6
ZGVueSAtIHVzZXIgbWVkaWEgZGlzYWJsZWQiKTsKICAgICAgICAgY29kZSA9IFNlY3VyaXR5RXJy
b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5oCmluZGV4IDM5YWJmNjBjZDA2Yjg5NzI1YTBiNjc0MzVlODhlM2EyNWI0NmYy
ZjAuLjQ5ZDljODE5NjQ1MDU2NzQ1MjI1ODNhZjc5YWEwYzcwM2FkYzgxNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFs
bG93ZWRNZWRpYURldmljZVVJRHMoY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvdyhD
YXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwg
U3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCi0gICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWlu
dHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWlu
dCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgSWxsZWdh
bENvbnN0cmFpbnQsIE90aGVyRmFpbHVyZSB9OworICAgIGVudW0gTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24geyBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0
cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIEludmFsaWRBY2Nlc3MsIE90
aGVyRmFpbHVyZSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVueShNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBlbXB0eVN0cmluZygpKTsK
IAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMoKSBjb25zdCB7IHJl
dHVybiBtX2F1ZGlvRGV2aWNlVUlEczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmM3
ZTJkMWEzODY0MzZlZWE5NTg0YjU3MGZhNjY1YmE5NmZhMzM2Mi4uNmZjNzc1YjBiNDZhNTNhM2Nm
OWZmMGFlNTVlZTgxMjUzMDc3NDViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDk5
LDYgKzkwOTksMjYgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiB0czsKIH0KIAordm9pZCBEb2N1bWVu
dDo6d2hlblRvcExldmVsRG9jdW1lbnRIYXNGb2N1cyhGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJh
Y2spCit7CisgICAgYXV0byYgdG9wRG9jdW1lbnQgPSB0aGlzLT50b3BEb2N1bWVudCgpOworCisg
ICAgaWYgKHRvcERvY3VtZW50Lmhhc0ZvY3VzKCkpIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRvcERvY3VtZW50Lm1fd2hlbkZvY3VzSGFuZGxl
cnMuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9pZCBEb2N1bWVudDo6Y2hhbmdl
ZFRvQWN0aXZlQW5kRm9jdXNlZCgpCit7CisgICAgQVNTRVJUKGhhc0ZvY3VzKCkpOworICAgIGF1
dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZSh0b3BEb2N1bWVudCgpLm1fd2hlbkZvY3VzSGFu
ZGxlcnMsIHsgfSk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykKKyAgICAg
ICAgY2FsbGJhY2soKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9D
VU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMmM4ZGYzMTY4MDZkNjUz
NmY5ZTBjYzUyYjc0YTg1MTdlMDk3YmU3Ni4uYzA0YzRiMDgxMTI5MTczYWUyMzIzYmFhYjY2ZTMx
NGE1YjdlMjUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTQyOSw2ICs0MjksOCBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNGb2N1cygpIGNvbnN0OworICAgIHZvaWQgd2hlblRvcExl
dmVsRG9jdW1lbnRIYXNGb2N1cyhGdW5jdGlvbjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2hhbmdl
ZFRvQWN0aXZlQW5kRm9jdXNlZCgpOwogCiAgICAgYm9vbCBoYXNNYW5pZmVzdCgpIGNvbnN0Owog
ICAgIApAQCAtMjI2MCw2ICsyMjYyLDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI+IG1fbW9kYWxDb250YWluZXJPYnNlcnZl
cjsKKworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3doZW5Gb2N1c0hhbmRsZXJzOwog
fTsKIAogRWxlbWVudCogZXZlbnRUYXJnZXRFbGVtZW50Rm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggZGIxNjJhNGM1
ODk4ZmUyZTk0Mjg5ZjBjOTY4NTAwMDM3NmEzZmIwYy4uN2NmOGVmZmM5NTUzODA0MDg2ZDhhMmMx
ODg1MmY5MDFlNWNhZDNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTIwODksNiArMjA4OSw5IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OmZvY3VzZWRP
ckFjdGl2ZVN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgYm9vbCBhY3RpdmVBbmRGb2N1c2VkID0gaXNG
b2N1c2VkQW5kQWN0aXZlKCk7CiAKKyAgICBpZiAoYWN0aXZlQW5kRm9jdXNlZCkKKyAgICAgICAg
bV9kb2N1bWVudC0+Y2hhbmdlZFRvQWN0aXZlQW5kRm9jdXNlZCgpOworCiAgICAgbV9kb2N1bWVu
dC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAjaWYgVVNFKFVJS0lUX0VESVRJTkcpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY4Nzk0Zjcz
NGYxYzExOTc1MDZmMGJjZTcwNTE0YWFkZjZkMDI2My4uMGRiNGZhNmFiODdiNTRkYmI2Mzg4MmVj
NzIxNmZjMGIwOTYyMzY0YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAxLTEwICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZvciBnZXRV
c2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tOgorCiAyMDIyLTAx
LTA5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3Vw
cG9ydCBmb3IgRGlyZWN0MkQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldFVzZXJNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dldFVzZXJNZWRpYS5tbQppbmRleCA5MzYyZWYzNTdlOWIwODYxMDM0ZmJlYzMzOGNiMTk4YTE5
MWI2YmZhLi44M2IxYTQ3OTRlNDE0ODBmMzVjNjJkN2YzZGQwYzM5ZjE4MTZiOTA3IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC04
OTgsNiArODk4LDcxIEBAIFRFU1QoV2ViS2l0LCBBdXRvcGxheU9uVmlzaWJpbGl0eUNoYW5nZSkK
ICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9UZXN0KCkiXTsK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQorCitzdGF0aWMgY29uc3Qg
Y2hhciogZ2V0VXNlck1lZGlhRm9jdXNUZXh0ID0gUiJET0NET0NET0MoCis8aHRtbD48Ym9keT4K
KzxzY3JpcHQ+CitvbmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQub252aXNpYmlsaXR5Y2hh
bmdlID0gKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdl
KCJQQVNTIik7CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNz
YWdlKCJQQVNTIik7Cit9CisKK2Z1bmN0aW9uIGNhcHR1cmUoKQoreworICAgIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbyA6IHRydWV9KS50aGVuKHN0cmVhbSA9PiB7
CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZShk
b2N1bWVudC5oYXNGb2N1cygpID8gIlBBU1MiIDogIkZBSUwiKTsKKyAgICB9KTsKK30KKzwvc2Ny
aXB0PgorPC9ib2R5PjwvaHRtbD4KKylET0NET0NET0MiOworCitURVNUKFdlYktpdCwgR2V0VXNl
ck1lZGlhRm9jdXMpCit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoewor
ICAgICAgICB7ICIvIiwgeyBnZXRVc2VyTWVkaWFGb2N1c1RleHQgfSB9CisgICAgfSwgVGVzdFdl
YktpdEFQSTo6SFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHAsIG51bGxwdHIsIG51bGxwdHIsIDkw
OTApOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soVGVz
dFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50
ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJv
Y2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisKKyAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOworCisgICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJl
bmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKworICAgIGRvbmUgPSBmYWxz
ZTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
d2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAgICAvLyBMb2Fk
IHBhZ2UuCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIE1pbmltaXplCisgICAg
ZG9uZSA9IGZhbHNlOworICAgIGF1dG8gKmhvc3RXaW5kb3cgPSBbd2ViVmlldyBob3N0V2luZG93
XTsKKyAgICBbaG9zdFdpbmRvdyBtaW5pYXR1cml6ZTpob3N0V2luZG93XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gV2UgY2FsbCBjYXB0dXJlIHdoaWxl
IG1pbmltaXppbmcuCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJjYXB0dXJlKCkiXTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IGdldFVzZXJNZWRpYSBkb2VzIG5vdCByZXNvbHZlIHRvbyBzb29uLgorICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnNwaW5SdW5Mb29wKDEwMCk7CisgICAgRVhQRUNUX0ZBTFNFKGRvbmUpOworCisg
ICAgW2hvc3RXaW5kb3cgZGVtaW5pYXR1cml6ZTpob3N0V2luZG93XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogVEVT
VChXZWJLaXQsIEludmFsaWREZXZpY2VJZEhhc2hTYWx0cykK
</data>
<flag name="commit-queue"
          id="474688"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448747</attachid>
            <date>2022-01-10 07:09:23 -0800</date>
            <delta_ts>2022-01-10 09:04:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220110160921.patch</filename>
            <type>text/plain</type>
            <size>18563</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y5M2U5NjE0MDJmOWVj
MmQ3NjVkY2YxODZhNjNiOTY4NWMyZmU4Ny4uYjU3YzM2MzgwN2RjZmRkYTNkNDRmYzA0ODM5ZmRh
MmM3MjgxOThkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNo
ZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byByZWdpc3RlciBhIGNhbGxiYWNrIHNv
IHRoYXQgYSB0YXNrIGlzIGV4ZWN1dGVkIHdoZW4gdGhlIHRvcCBsZXZlbCBkb2N1bWVudCBoYXMg
Zm9jdXMuCisgICAgICAgIFVzZSB0aGlzIHRvIGRlbGF5IGdldFVzZXJNZWRpYSByZXF1ZXN0cyB1
bnRpbCB0b3AgbGV2ZWwgZG9jdW1lbnQgaGFzIGZvY3VzLgorICAgICAgICBUaGUgc3BlYyBjdXJy
ZW50bHkgZGVmaW5lcyB0aGF0IHdlIHNob3VsZCB3YWl0IGZvciB0aGUgY3VycmVudCBkb2N1bWVu
dCB0byBoYXZlIGZvY3VzIGJ1dCB0aGlzIGlzIGFib3V0IHRvIGJlIGNoYW5nZWQgYW5kIGlzIG5v
dCBhbGlnbmVkIHdpdGggb3RoZXIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAg
VGhlIHBhdGNoIGFsc28gbW92ZXMgc29tZSBnZXRVc2VyTWVkaWEgY2hlY2tzIGVhcmxpZXIgc28g
YXMgdG8gcmVzcGVjdCBvcmRlciBwcm92aWRlZCBieSB0aGUgc3BlY3MuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisKIDIwMjItMDEtMDkgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZv
ciBEaXJlY3QyRCAvIEZUVwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5
NmUxNTY1ZjU4ZTUuLmYzZmJhYTQ1NDI3ZDA2OGQzOWZiY2U1ODRjNGM3NThlMDBiZWNlYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKQEAgLTExOCwxNSArMTE4LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNl
ckdlc3R1cmVQcml2aWxlZGdlKEdlc3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZv
aWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWlu
dHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRv
IHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZp
ZGVvKTsKKworICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0
cmFpbnRzLmlzVmFsaWQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8g
Y29uc3RyYWludHMgcHJvdmlkZWQiX3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5pc0Z1bGx5QWN0aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFp
bnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0
byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52
aWRlbyk7Ci0KICAgICBib29sIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAg
ICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODAgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWludHMsIFByb21pc2UmJgogICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpV
c2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJh
aW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICByZXF1ZXN0LT5zdGFydCgpOworCisgICAgZG9jdW1lbnQtPndoZW5Ub3BMZXZlbERvY3VtZW50
SGFzRm9jdXMoW3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgICAgIGlmIChyZXF1
ZXN0LT5pc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJl
cXVlc3QtPnN0YXJ0KCk7CisgICAgfSk7Cit9CisKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXRE
aXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRz
KQoreworICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNo
YXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRo
ZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJl
c2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwg
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5z
IGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGgg
YSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFp
bnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1l
bWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAo
IWNvbnN0cmFpbnRzLmlzVmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
Y29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFu
ZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgY29uc3RyYWludCkgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25z
dHJhaW50VHlwZSgpKSB7CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAg
ICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWlu
dCk7CisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29u
c3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkFzcGVjdFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZTogeworICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25j
YXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZh
bHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5
U3VyZmFjZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFj
ZTogeworICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFu
Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAg
ICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpGYWNpbmdNb2RlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlk
OgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAg
ICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihj
b25zdHJhaW50KTsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAg
ICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlUmF0ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVT
aXplOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAg
Ly8gSWdub3JlZC4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsK
KyAgICB9KTsKKworICAgIHJldHVybiBpbnZhbGlkOwogfQogCiB2b2lkIE1lZGlhRGV2aWNlczo6
Z2V0RGlzcGxheU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xNTMsNyArMjMxLDE4IEBAIHZvaWQgTWVk
aWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3Ry
YWludHMmIGNvbnN0cmFpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcXVl
c3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVx
dWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29u
c3RyYWludHMudmlkZW8pLCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9t
aXNlKSk7CisgICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50
cyhjb25zdHJhaW50cy52aWRlbyk7CisgICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFD
b25zdHJhaW50KHZpZGVvQ29uc3RyYWludHMpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgImdldERpc3BsYXlNZWRpYSBtdXN0IGJlIGNhbGxlZCB3aXRo
IHZhbGlkIGNvbnN0cmFpbnRzLiJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghZG9jdW1lbnQtPmlzRnVsbHlBY3RpdmUoKSB8fCAhZG9jdW1lbnQtPmhhc0ZvY3VzKCkp
IHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3Mg
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVk
aWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6
RGlzcGxheU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1
cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgx
ZDViYzY3ZGY1Li5jMzliOGYwYTc3ZTNiZTNiNmU3YTVkZTRiMDVjNWQwZTY0MTFmMjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAKQEAgLTg1LDc0ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFS
ZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4
dCA/ICZjb250ZXh0LT50b3BPcmlnaW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhh
c0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMm
IGNvbnN0cmFpbnRzKQotewotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1
cmUtc2NyZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0
cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFj
aCBtZW1iZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEg
ZGljdGlvbmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZh
bHVlIGNvbnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYg
dmFsdWUgY29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29u
dGFpbmluZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0
LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJv
ci4KLSAgICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29u
c3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1l
ZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29u
c3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6V2lkdGg6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7
Ci0gICAgICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWlu
dD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZh
bGlkID0gaW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRN
aW4odmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkZyYW1lUmF0ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3Ry
YWludCA9IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAg
ICAgZG91YmxlIHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQu
Z2V0RXhhY3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpEaXNwbGF5U3VyZmFjZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpM
b2dpY2FsU3VyZmFjZTogewotICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3du
Y2FzdDxCb29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZh
bHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVl
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6OkRldmljZUlkOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6
IHsKLSAgICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdD
b25zdHJhaW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVl
czsKLSAgICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVl
cyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpTYW1wbGVTaXplOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVt
ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgot
ICAgICAgICAgICAgLy8gSWdub3JlZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1
cm4gaW52YWxpZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVz
ZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwpAQCAtMTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVz
dDo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50
eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAg
IGlmIChoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9D
b25zdHJhaW50cykpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
OklsbGVnYWxDb25zdHJhaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1
c2VybWVkaWEuaHRtbCNkb20tbWVkaWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4g
TGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAy
LiBMZXQgcmVxdWVzdGVkTWVkaWFUeXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNv
bnN0cmFpbnRzIHdpdGggZWl0aGVyIGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEg
dmFsdWUgb2YgInRydWUiLgotICAgIC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhl
IGVtcHR5IHNldCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBU
aGUgd29yZAotICAgIC8vICAgICJvcHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRv
IFdlYklETCBydWxlcywgYnV0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVy
Ci0gICAgLy8gICAgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3Qu
YXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5p
c1ZhbGlkKSB7Ci0gICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3Ry
YWludHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJl
bnQgc2V0dGluZ3Mgb2JqZWN0J3MgcmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQg
dG8gdXNlIHRoZSBmZWF0dXJlIGluZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1l
IGFsbG93dXNlcm1lZGlhLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNl
cHRpb24gb2JqZWN0IHdob3NlIG5hbWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1
ZSBTZWN1cml0eUVycm9yLgpAQCAtMjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OmRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1l
c3NhZwogCiAgICAgRXhjZXB0aW9uQ29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0g
ICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAg
ICAgIFJFTEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGlu
dmFsaWQgY29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoK
ICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55
IC0gbm8gY29uc3RyYWludHMiKTsKICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgK
aW5kZXggMzlhYmY2MGNkMDZiODk3MjVhMGI2NzQzNWU4OGUzYTI1YjQ2ZjJmMC4uOWNjN2EyYmQ2
ODJiNTU5NjBiOWY0MTBiYTYwOWJjNmNlZDRjODk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2
aWNlVUlEcyhjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVv
RGV2aWNlVUlEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFsbG93KENhcHR1cmVEZXZpY2Um
JiBhdWRpb0RldmljZSwgQ2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZp
Y2VJZGVudGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAg
ICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlh
RGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVy
cm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBJbGxlZ2FsQ29uc3RyYWludCwg
T3RoZXJGYWlsdXJlIH07CisgICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29u
c3RyYWludHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29u
c3RyYWludCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2Vzcywg
T3RoZXJGYWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkp
OwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsg
cmV0dXJuIG1fYXVkaW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAy
YzdlMmQxYTM4NjQzNmVlYTk1ODRiNTcwZmE2NjViYTk2ZmEzMzYyLi42ZmM3NzViMGI0NmE1M2Ez
Y2Y5ZmYwYWU1NWVlODEyNTMwNzc0NWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTkw
OTksNiArOTA5OSwyNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIHRzOwogfQogCit2b2lkIERvY3Vt
ZW50Ojp3aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IHRoaXMtPnRvcERvY3VtZW50KCk7CisK
KyAgICBpZiAodG9wRG9jdW1lbnQuaGFzRm9jdXMoKSkgeworICAgICAgICBjYWxsYmFjaygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdG9wRG9jdW1lbnQubV93aGVuRm9jdXNIYW5k
bGVycy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2b2lkIERvY3VtZW50OjpjaGFu
Z2VkVG9BY3RpdmVBbmRGb2N1c2VkKCkKK3sKKyAgICBBU1NFUlQoaGFzRm9jdXMoKSk7CisgICAg
YXV0byBjYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKHRvcERvY3VtZW50KCkubV93aGVuRm9jdXNI
YW5kbGVycywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKQorICAg
ICAgICBjYWxsYmFjaygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBE
T0NVTUVOVF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyYzhkZjMxNjgwNmQ2
NTM2ZjllMGNjNTJiNzRhODUxN2UwOTdiZTc2Li5jMDRjNGIwODExMjkxNzNhZTIzMjNiYWFiNjZl
MzE0YTViN2UyNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDI5LDYgKzQyOSw4IEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0ZvY3VzKCkgY29uc3Q7CisgICAgdm9pZCB3aGVuVG9w
TGV2ZWxEb2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBjaGFu
Z2VkVG9BY3RpdmVBbmRGb2N1c2VkKCk7CiAKICAgICBib29sIGhhc01hbmlmZXN0KCkgY29uc3Q7
CiAgICAgCkBAIC0yMjYwLDYgKzIyNjIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TW9kYWxDb250YWluZXJPYnNlcnZlcj4gbV9tb2RhbENvbnRhaW5lck9ic2Vy
dmVyOworCisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fd2hlbkZvY3VzSGFuZGxlcnM7
CiB9OwogCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBkYjE2MmE0
YzU4OThmZTJlOTQyODlmMGM5Njg1MDAwMzc2YTNmYjBjLi43Y2Y4ZWZmYzk1NTM4MDQwODZkOGEy
YzE4ODUyZjkwMWU1Y2FkM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtMjA4OSw2ICsyMDg5LDkgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6Zm9jdXNl
ZE9yQWN0aXZlU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBib29sIGFjdGl2ZUFuZEZvY3VzZWQgPSBp
c0ZvY3VzZWRBbmRBY3RpdmUoKTsKIAorICAgIGlmIChhY3RpdmVBbmRGb2N1c2VkKQorICAgICAg
ICBtX2RvY3VtZW50LT5jaGFuZ2VkVG9BY3RpdmVBbmRGb2N1c2VkKCk7CisKICAgICBtX2RvY3Vt
ZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICNpZiBVU0UoVUlLSVRfRURJVElORykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Njg3OTRm
NzM0ZjFjMTE5NzUwNmYwYmNlNzA1MTRhYWRmNmQwMjYzLi4wZGI0ZmE2YWI4N2I1NGRiYjYzODgy
ZWM3MjE2ZmMwYjA5NjIzNjRhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTAgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdl
dFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW06CisKIDIwMjIt
MDEtMDkgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBz
dXBwb3J0IGZvciBEaXJlY3QyRApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvR2V0VXNlck1lZGlhLm1tCmluZGV4IDkzNjJlZjM1N2U5YjA4NjEwMzRmYmVjMzM4Y2IxOThh
MTkxYjZiZmEuLjgzYjFhNDc5NGU0MTQ4MGYzNWM2MmQ3ZjNkZDBjMzlmMTgxNmI5MDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KQEAg
LTg5OCw2ICs4OTgsNzEgQEAgVEVTVChXZWJLaXQsIEF1dG9wbGF5T25WaXNpYmlsaXR5Q2hhbmdl
KQogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb1Rlc3QoKSJd
OwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CisKK3N0YXRpYyBjb25z
dCBjaGFyKiBnZXRVc2VyTWVkaWFGb2N1c1RleHQgPSBSIkRPQ0RPQ0RPQygKKzxodG1sPjxib2R5
PgorPHNjcmlwdD4KK29ubG9hZCA9ICgpID0+IHsKKyAgICBkb2N1bWVudC5vbnZpc2liaWxpdHlj
aGFuZ2UgPSAoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3Nh
Z2UoIlBBU1MiKTsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1l
c3NhZ2UoIlBBU1MiKTsKK30KKworZnVuY3Rpb24gY2FwdHVyZSgpCit7CisgICAgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0pLnRoZW4oc3RyZWFtID0+
IHsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdl
KGRvY3VtZW50Lmhhc0ZvY3VzKCkgPyAiUEFTUyIgOiAiRkFJTCIpOworICAgIH0pOworfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+PC9odG1sPgorKURPQ0RPQ0RPQyI7CisKK1RFU1QoV2ViS2l0LCBHZXRV
c2VyTWVkaWFGb2N1cykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7
CisgICAgICAgIHsgIi8iLCB7IGdldFVzZXJNZWRpYUZvY3VzVGV4dCB9IH0KKyAgICB9LCBUZXN0
V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cCwgbnVsbHB0ciwgbnVsbHB0ciwg
OTA5MCk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJ
bnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5w
cm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKworICAgIGF1dG8g
bWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CisKKyAgICBh
dXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZl
cmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBj
b25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOworICAgIHByZWZl
cmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKworICAgIC8vIExv
YWQgcGFnZS4KKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gTWluaW1pemUKKyAg
ICBkb25lID0gZmFsc2U7CisgICAgYXV0byAqaG9zdFdpbmRvdyA9IFt3ZWJWaWV3IGhvc3RXaW5k
b3ddOworICAgIFtob3N0V2luZG93IG1pbmlhdHVyaXplOmhvc3RXaW5kb3ddOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAvLyBXZSBjYWxsIGNhcHR1cmUgd2hp
bGUgbWluaW1pemluZy4KKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1cmUoKSJdOworCisgICAgLy8gTWFrZSBzdXJlIHRo
YXQgZ2V0VXNlck1lZGlhIGRvZXMgbm90IHJlc29sdmUgdG9vIHNvb24uCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoMTAwKTsKKyAgICBFWFBFQ1RfRkFMU0UoZG9uZSk7CisK
KyAgICBbaG9zdFdpbmRvdyBkZW1pbmlhdHVyaXplOmhvc3RXaW5kb3ddOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiBU
RVNUKFdlYktpdCwgSW52YWxpZERldmljZUlkSGFzaFNhbHRzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448757</attachid>
            <date>2022-01-10 09:04:55 -0800</date>
            <delta_ts>2022-01-11 10:13:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220110180453.patch</filename>
            <type>text/plain</type>
            <size>20459</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y5M2U5NjE0MDJmOWVj
MmQ3NjVkY2YxODZhNjNiOTY4NWMyZmU4Ny4uYjU3YzM2MzgwN2RjZmRkYTNkNDRmYzA0ODM5ZmRh
MmM3MjgxOThkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNo
ZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byByZWdpc3RlciBhIGNhbGxiYWNrIHNv
IHRoYXQgYSB0YXNrIGlzIGV4ZWN1dGVkIHdoZW4gdGhlIHRvcCBsZXZlbCBkb2N1bWVudCBoYXMg
Zm9jdXMuCisgICAgICAgIFVzZSB0aGlzIHRvIGRlbGF5IGdldFVzZXJNZWRpYSByZXF1ZXN0cyB1
bnRpbCB0b3AgbGV2ZWwgZG9jdW1lbnQgaGFzIGZvY3VzLgorICAgICAgICBUaGUgc3BlYyBjdXJy
ZW50bHkgZGVmaW5lcyB0aGF0IHdlIHNob3VsZCB3YWl0IGZvciB0aGUgY3VycmVudCBkb2N1bWVu
dCB0byBoYXZlIGZvY3VzIGJ1dCB0aGlzIGlzIGFib3V0IHRvIGJlIGNoYW5nZWQgYW5kIGlzIG5v
dCBhbGlnbmVkIHdpdGggb3RoZXIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAg
VGhlIHBhdGNoIGFsc28gbW92ZXMgc29tZSBnZXRVc2VyTWVkaWEgY2hlY2tzIGVhcmxpZXIgc28g
YXMgdG8gcmVzcGVjdCBvcmRlciBwcm92aWRlZCBieSB0aGUgc3BlY3MuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisKIDIwMjItMDEtMDkgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZv
ciBEaXJlY3QyRCAvIEZUVwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5
NmUxNTY1ZjU4ZTUuLjA2NzIzYzM3ODczZjkxNWQ5NDk2MzljZmIyZjNkMWIxYTgxZDAyYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKQEAgLTExOCwxNSArMTE4LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNl
ckdlc3R1cmVQcml2aWxlZGdlKEdlc3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZv
aWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWlu
dHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRv
IHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZp
ZGVvKTsKKworICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0
cmFpbnRzLmlzVmFsaWQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8g
Y29uc3RyYWludHMgcHJvdmlkZWQiX3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5pc0Z1bGx5QWN0aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFp
bnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0
byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52
aWRlbyk7Ci0KICAgICBib29sIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAg
ICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODAgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWludHMsIFByb21pc2UmJgogICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpV
c2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJh
aW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICByZXF1ZXN0LT5zdGFydCgpOworCisgICAgZG9jdW1lbnQtPndoZW5Ub3BMZXZlbERvY3VtZW50
SGFzRm9jdXMoW3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgICAgIGlmIChyZXF1
ZXN0LT5pc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJl
cXVlc3QtPnN0YXJ0KCk7CisgICAgfSk7Cit9CisKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXRE
aXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRz
KQoreworICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNo
YXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRo
ZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJl
c2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwg
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5z
IGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGgg
YSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFp
bnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1l
bWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAo
IWNvbnN0cmFpbnRzLmlzVmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
Y29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFu
ZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgY29uc3RyYWludCkgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25z
dHJhaW50VHlwZSgpKSB7CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAg
ICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWlu
dCk7CisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29u
c3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkFzcGVjdFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZTogeworICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25j
YXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZh
bHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5
U3VyZmFjZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFj
ZTogeworICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFu
Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAg
ICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpGYWNpbmdNb2RlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlk
OgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAg
ICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihj
b25zdHJhaW50KTsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAg
ICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlUmF0ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVT
aXplOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAg
Ly8gSWdub3JlZC4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsK
KyAgICB9KTsKKworICAgIHJldHVybiBpbnZhbGlkOwogfQogCiB2b2lkIE1lZGlhRGV2aWNlczo6
Z2V0RGlzcGxheU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xNTMsNyArMjMxLDE4IEBAIHZvaWQgTWVk
aWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3Ry
YWludHMmIGNvbnN0cmFpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcXVl
c3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVx
dWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29u
c3RyYWludHMudmlkZW8pLCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9t
aXNlKSk7CisgICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50
cyhjb25zdHJhaW50cy52aWRlbyk7CisgICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFD
b25zdHJhaW50KHZpZGVvQ29uc3RyYWludHMpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgImdldERpc3BsYXlNZWRpYSBtdXN0IGJlIGNhbGxlZCB3aXRo
IHZhbGlkIGNvbnN0cmFpbnRzLiJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghZG9jdW1lbnQtPmlzRnVsbHlBY3RpdmUoKSB8fCAhZG9jdW1lbnQtPnRvcERvY3VtZW50
KCkuaGFzRm9jdXMoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUgb3IgZG9lcyBub3Qg
aGF2ZSBmb2N1cyJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVx
dWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1S
ZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRz
KSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJl
cXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGUwNmNkZTA4OWJhZTM3Mjcw
ZWIyYmQxMjVmYzA2ODFkNWJjNjdkZjUuLmMzOWI4ZjBhNzdlM2JlM2I2ZTdhNWRlNGIwNWM1ZDBl
NjQxMWYyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtODUsNzQgKzg1LDYgQEAgU2VjdXJpdHlPcmln
aW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdAogICAg
IHJldHVybiBjb250ZXh0ID8gJmNvbnRleHQtPnRvcE9yaWdpbigpIDogbnVsbHB0cjsKIH0KIAot
c3RhdGljIGJvb2wgaGFzSW52YWxpZEdldERpc3BsYXlNZWRpYUNvbnN0cmFpbnQoY29uc3QgTWVk
aWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCi17Ci0gICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL21lZGlhY2FwdHVyZS1zY3JlZW4tc2hhcmUvI25hdmlnYXRvci1hZGRpdGlvbnMKLSAgICAv
LyAxLiBMZXQgY29uc3RyYWludHMgYmUgdGhlIG1ldGhvZCdzIGZpcnN0IGFyZ3VtZW50LgotICAg
IC8vIDIuIEZvciBlYWNoIG1lbWJlciBwcmVzZW50IGluIGNvbnN0cmFpbnRzIHdob3NlIHZhbHVl
LCB2YWx1ZSwgaXMgYSBkaWN0aW9uYXJ5LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAv
LyAgICAgMS4gSWYgdmFsdWUgY29udGFpbnMgYSBtZW1iZXIgbmFtZWQgYWR2YW5jZWQsIHJldHVy
biBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgotICAg
IC8vICAgICAyLiBJZiB2YWx1ZSBjb250YWlucyBhIG1lbWJlciB3aGljaCBpbiB0dXJuIGlzIGEg
ZGljdGlvbmFyeSBjb250YWluaW5nIGEgbWVtYmVyIG5hbWVkIGVpdGhlciBtaW4gb3IKLSAgICAv
LyAgICAgICAgZXhhY3QsIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhIG5ld2x5IGNy
ZWF0ZWQgVHlwZUVycm9yLgotICAgIGlmICghY29uc3RyYWludHMuaXNWYWxpZCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRz
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBib29sIGludmFsaWQgPSBm
YWxzZTsKLSAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5maWx0ZXIoWyZpbnZh
bGlkXSAoY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KSBtdXRhYmxlIHsKLSAgICAg
ICAgc3dpdGNoIChjb25zdHJhaW50LmNvbnN0cmFpbnRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDoKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpIZWlnaHQ6IHsKLSAgICAgICAgICAgIGF1dG8mIGludENvbnN0cmFpbnQgPSBkb3duY2Fz
dDxJbnRDb25zdHJhaW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIGludCB2YWx1ZTsKLSAg
ICAgICAgICAgIGludmFsaWQgPSBpbnRDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKSB8fCBpbnRD
b25zdHJhaW50LmdldE1pbih2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW86Ci0gICAgICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlOiB7Ci0gICAgICAgICAgICBhdXRv
JiBkb3VibGVDb25zdHJhaW50ID0gZG93bmNhc3Q8RG91YmxlQ29uc3RyYWludD4oY29uc3RyYWlu
dCk7Ci0gICAgICAgICAgICBkb3VibGUgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0gZG91
YmxlQ29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgZG91YmxlQ29uc3RyYWludC5nZXRNaW4o
dmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlOgotICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOiB7Ci0gICAgICAgICAgICBhdXRvJiBib29sQ29u
c3RyYWludCA9IGRvd25jYXN0PEJvb2xlYW5Db25zdHJhaW50Pihjb25zdHJhaW50KTsKLSAgICAg
ICAgICAgIGJvb2wgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0gYm9vbENvbnN0cmFpbnQu
Z2V0RXhhY3QodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGU6Ci0gICAgICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQ6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6R3JvdXBJZDogewotICAgICAgICAgICAgYXV0byYgc3RyaW5nQ29uc3RyYWludCA9IGRv
d25jYXN0PFN0cmluZ0NvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgVmVjdG9y
PFN0cmluZz4gdmFsdWVzOwotICAgICAgICAgICAgaW52YWxpZCA9IHN0cmluZ0NvbnN0cmFpbnQu
Z2V0RXhhY3QodmFsdWVzKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlOgotICAgICAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemU6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6Vm9sdW1lOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9D
YW5jZWxsYXRpb246Ci0gICAgICAgICAgICAvLyBJZ25vcmVkLgotICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpVbmtub3duOgotICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybiBpbnZhbGlkOwotICAgIH0pOwotCi0gICAgcmV0dXJuIGludmFsaWQ7
Ci19Ci0KIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKQogewogICAgIGF1dG8qIGNvbnRl
eHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0xNjIsMjUgKzk0LDYgQEAgdm9pZCBV
c2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAobV9yZXF1ZXN0LnR5cGUgPT0gTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVk
aWEpIHsKLSAgICAgICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KG1f
cmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKSkgewotICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vz
c0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2Fw
dHVyZS1tYWluL2dldHVzZXJtZWRpYS5odG1sI2RvbS1tZWRpYWRldmljZXMtZ2V0dXNlcm1lZGlh
KCkKLSAgICAvLyAxLiBMZXQgY29uc3RyYWludHMgYmUgdGhlIG1ldGhvZCdzIGZpcnN0IGFyZ3Vt
ZW50LgotICAgIC8vIDIuIExldCByZXF1ZXN0ZWRNZWRpYVR5cGVzIGJlIHRoZSBzZXQgb2YgbWVk
aWEgdHlwZXMgaW4gY29uc3RyYWludHMgd2l0aCBlaXRoZXIgYSBkaWN0aW9uYXJ5Ci0gICAgLy8g
ICAgdmFsdWUgb3IgYSB2YWx1ZSBvZiAidHJ1ZSIuCi0gICAgLy8gMy4gSWYgcmVxdWVzdGVkTWVk
aWFUeXBlcyBpcyB0aGUgZW1wdHkgc2V0LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGgg
YSBUeXBlRXJyb3IuIFRoZSB3b3JkCi0gICAgLy8gICAgIm9wdGlvbmFsIiBvY2N1cnMgaW4gdGhl
IFdlYklETCBkdWUgdG8gV2ViSURMIHJ1bGVzLCBidXQgdGhlIGFyZ3VtZW50IG11c3QgYmUgc3Vw
cGxpZWQgaW4gb3JkZXIKLSAgICAvLyAgICBmb3IgdGhlIGNhbGwgdG8gc3VjY2VlZC4KLSAgICBp
ZiAoIW1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgIW1fcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKLSAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJl
YXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyA0
LiBJZiB0aGUgY3VycmVudCBzZXR0aW5ncyBvYmplY3QncyByZXNwb25zaWJsZSBkb2N1bWVudCBp
cyBOT1QgYWxsb3dlZCB0byB1c2UgdGhlIGZlYXR1cmUgaW5kaWNhdGVkIGJ5CiAgICAgLy8gICAg
YXR0cmlidXRlIG5hbWUgYWxsb3d1c2VybWVkaWEsIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQg
d2l0aCBhIERPTUV4Y2VwdGlvbiBvYmplY3Qgd2hvc2UgbmFtZQogICAgIC8vICAgIGF0dHJpYnV0
ZSBoYXMgdGhlIHZhbHVlIFNlY3VyaXR5RXJyb3IuCkBAIC0yODksMTAgKzIwMiw2IEBAIHZvaWQg
VXNlck1lZGlhUmVxdWVzdDo6ZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiByZWFzb24sIGNv
bnN0IFN0cmluZyYgbWVzc2FnCiAKICAgICBFeGNlcHRpb25Db2RlIGNvZGU7CiAgICAgc3dpdGNo
IChyZWFzb24pIHsKLSAgICBjYXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpJbGxlZ2FsQ29u
c3RyYWludDoKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1
ZXN0OjpkZW55IC0gaW52YWxpZCBjb25zdHJhaW50cyIpOwotICAgICAgICBjb2RlID0gVHlwZUVy
cm9yOwotICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpO
b0NvbnN0cmFpbnRzOgogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRp
YVJlcXVlc3Q6OmRlbnkgLSBubyBjb25zdHJhaW50cyIpOwogICAgICAgICBjb2RlID0gVHlwZUVy
cm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaAppbmRleCAzOWFiZjYwY2QwNmI4OTcyNWEwYjY3NDM1ZTg4ZTNhMjViNDZm
MmYwLi45Y2M3YTJiZDY4MmI1NTk2MGI5ZjQxMGJhNjA5YmM2Y2VkNGM4OTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRB
bGxvd2VkTWVkaWFEZXZpY2VVSURzKGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0
IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3co
Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2Us
IFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAotICAgIGVudW0gTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFp
bnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFp
bnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIEludmFsaWRBY2Nlc3MsIElsbGVn
YWxDb25zdHJhaW50LCBPdGhlckZhaWx1cmUgfTsKKyAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmlj
ZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJ
bnZhbGlkQWNjZXNzLCBPdGhlckZhaWx1cmUgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0g
ZW1wdHlTdHJpbmcoKSk7CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VV
SURzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0RldmljZVVJRHM7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDJjN2UyZDFhMzg2NDM2ZWVhOTU4NGI1NzBmYTY2NWJhOTZmYTMzNjIuLjZm
Yzc3NWIwYjQ2YTUzYTNjZjlmZjBhZTU1ZWU4MTI1MzA3NzQ1YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtOTA5OSw2ICs5MDk5LDI2IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gdHM7CiB9
CiAKK3ZvaWQgRG9jdW1lbnQ6OndoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248
dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8mIHRvcERvY3VtZW50ID0gdGhpcy0+dG9w
RG9jdW1lbnQoKTsKKworICAgIGlmICh0b3BEb2N1bWVudC5oYXNGb2N1cygpKSB7CisgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0b3BEb2N1bWVudC5t
X3doZW5Gb2N1c0hhbmRsZXJzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQg
RG9jdW1lbnQ6OmNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKQoreworICAgIEFTU0VSVChoYXNG
b2N1cygpKTsKKyAgICBhdXRvIGNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UodG9wRG9jdW1lbnQo
KS5tX3doZW5Gb2N1c0hhbmRsZXJzLCB7IH0pOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBj
YWxsYmFja3MpCisgICAgICAgIGNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI3VuZGVmIERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDJjOGRmMzE2ODA2ZDY1MzZmOWUwY2M1MmI3NGE4NTE3ZTA5N2JlNzYuLmMwNGM0YjA4MTEyOTE3
M2FlMjMyM2JhYWI2NmUzMTRhNWI3ZTI1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00Mjks
NiArNDI5LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgRWxlbWVudCogYWN0aXZl
RWxlbWVudCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRm9jdXMoKSBjb25zdDsKKyAg
ICB2b2lkIHdoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248dm9pZCgpPiYmKTsK
KyAgICB2b2lkIGNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsKIAogICAgIGJvb2wgaGFzTWFu
aWZlc3QoKSBjb25zdDsKICAgICAKQEAgLTIyNjAsNiArMjI2Miw4IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2RhbENvbnRhaW5lck9ic2VydmVyPiBtX21vZGFs
Q29udGFpbmVyT2JzZXJ2ZXI7CisKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV93aGVu
Rm9jdXNIYW5kbGVyczsKIH07CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3Vt
ZW50KERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CmluZGV4IGRiMTYyYTRjNTg5OGZlMmU5NDI4OWYwYzk2ODUwMDAzNzZhM2ZiMGMuLjdjZjhlZmZj
OTU1MzgwNDA4NmQ4YTJjMTg4NTJmOTAxZTVjYWQzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yMDg5LDYgKzIwODksOSBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpmb2N1c2VkT3JBY3RpdmVTdGF0ZUNoYW5nZWQoKQogewogICAgIGJvb2wgYWN0aXZl
QW5kRm9jdXNlZCA9IGlzRm9jdXNlZEFuZEFjdGl2ZSgpOwogCisgICAgaWYgKGFjdGl2ZUFuZEZv
Y3VzZWQpCisgICAgICAgIG1fZG9jdW1lbnQtPmNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsK
KwogICAgIG1fZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIAogI2lmIFVTRShVSUtJ
VF9FRElUSU5HKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDc2ODc5NGY3MzRmMWMxMTk3NTA2ZjBiY2U3MDUxNGFhZGY2ZDAyNjMuLjBkYjRmYTZh
Yjg3YjU0ZGJiNjM4ODJlYzcyMTZmYzBiMDk2MjM2NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMS0xMCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1
cyBjaGVjayBmb3IgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YS5tbToKKwogMjAyMi0wMS0wOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIERpcmVjdDJECmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KaW5kZXggOTM2MmVmMzU3ZTliMDg2MTAz
NGZiZWMzMzhjYjE5OGExOTFiNmJmYS4uODNiMWE0Nzk0ZTQxNDgwZjM1YzYyZDdmM2RkMGMzOWYx
ODE2YjkwNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYS5tbQpAQCAtODk4LDYgKzg5OCw3MSBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZp
c2liaWxpdHlDaGFuZ2UpCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvVGVzdCgpIl07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0K
Kworc3RhdGljIGNvbnN0IGNoYXIqIGdldFVzZXJNZWRpYUZvY3VzVGV4dCA9IFIiRE9DRE9DRE9D
KAorPGh0bWw+PGJvZHk+Cis8c2NyaXB0Pgorb25sb2FkID0gKCkgPT4geworICAgIGRvY3VtZW50
Lm9udmlzaWJpbGl0eWNoYW5nZSA9ICgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
Lmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOworfQorCitmdW5jdGlvbiBjYXB0dXJlKCkKK3sK
KyAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW8gOiB0cnVlfSku
dGhlbihzdHJlYW0gPT4geworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5n
dW0ucG9zdE1lc3NhZ2UoZG9jdW1lbnQuaGFzRm9jdXMoKSA/ICJQQVNTIiA6ICJGQUlMIik7Cisg
ICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CispRE9DRE9DRE9DIjsKKworVEVT
VChXZWJLaXQsIEdldFVzZXJNZWRpYUZvY3VzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBT
ZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgZ2V0VXNlck1lZGlhRm9jdXNUZXh0IH0g
fQorICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwLCBudWxs
cHRyLCBudWxscHRyLCA5MDkwKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1
cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgp
OworCisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xs
ZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJn
dW0iXTsKKworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c107CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
biA9IE5POworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZ
RVM7CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisK
KyAgICBkb25lID0gZmFsc2U7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgp
OworCisgICAgLy8gTG9hZCBwYWdlLgorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5y
ZXF1ZXN0KCldOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAv
LyBNaW5pbWl6ZQorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvICpob3N0V2luZG93ID0gW3dl
YlZpZXcgaG9zdFdpbmRvd107CisgICAgW2hvc3RXaW5kb3cgbWluaWF0dXJpemU6aG9zdFdpbmRv
d107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIFdlIGNh
bGwgY2FwdHVyZSB3aGlsZSBtaW5pbWl6aW5nLgorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZSgpIl07CisKKyAgICAv
LyBNYWtlIHN1cmUgdGhhdCBnZXRVc2VyTWVkaWEgZG9lcyBub3QgcmVzb2x2ZSB0b28gc29vbi4K
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgxMDApOworICAgIEVYUEVDVF9G
QUxTRShkb25lKTsKKworICAgIFtob3N0V2luZG93IGRlbWluaWF0dXJpemU6aG9zdFdpbmRvd107
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KICNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCiAKIFRFU1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjNhMjk5ZjAzYzE5OTViYzM3NGNmYjI3ZTZiNWQ2M2ViMzUzYjQzMS4uODI1NjEwOTU4NTRk
YzM5ZGU1NDAyNGM2NzEwOTgxYmVkZjMyYzZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIy
LTAxLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZv
cmNlIGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMt
Z2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMS0wOSAgWmlyYW4gU3VuICA8enN1
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gUmVzeW5jIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQgdGVzdHMgZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJN
ZWRpYS1leHBlY3RlZC50eHQKaW5kZXggMjI2NTc4ZjZmMGNmNjBlY2IxNGQzMGNmM2Y4NWUyZWMw
NjNkNTA0Ni4uNDY5NjI3MWQ5ZWMwNjc0NTRjODY5MDE2NjhmNTk4NTAwYjU1OTIzOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1l
ZGlhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CkBAIC02LDggKzYsOCBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogUEFTUyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy53ZWJr
aXRHZXRVc2VyTWVkaWEgaXMgJ3VuZGVmaW5lZCcKIAogUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtMSk7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSgpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgotUEFTUyBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7fSkgcmVqZWN0ZWQgd2l0aCBlcnJvcjog
VHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBObyBjb25zdHJhaW50cyBw
cm92aWRlZAorUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7fSkgcmVq
ZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBObyBjb25zdHJhaW50cyBwcm92aWRlZAogUEFT
UyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYS5hcHBseSh1bmRlZmluZWQpIHJl
amVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBNZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhIG9uIGluc3RhbmNlcyBvZiBNZWRpYURldmljZXMKIFBBU1MgU3RyZWFtIDEg
Z2VuZXJhdGVkLgogUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448853</attachid>
            <date>2022-01-11 10:14:06 -0800</date>
            <delta_ts>2022-01-12 01:33:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220111191404.patch</filename>
            <type>text/plain</type>
            <size>52902</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg5YTczYTM5MTkxYjEwY2M4MjlmYmRm
M2ViNWQ4ODY2MTI3OGI5NTEuLjQ1M2NkZTFhYTk4OGU3YWRiYjEwMDYxMTFjNTVjNDg0NTFiNWNh
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjItMDEt
MTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbXBpbGUg
b3V0IEVOQUJMRV9NRURJQV9DQVBUVVJFIG9uIFdBVENIT1MgYW5kIEFQUExFVFYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBmZDA4NDI5YjJkZWExNjkxZWNjZmIxZWVjMDMxMDVhZDg0MDI2NjI4Li4zZjdmZTQ0ZDEx
N2EyNWRiNThmOWY0MDk1YjkyZDUyMzY2NmQ2ZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIHJl
Z2lzdGVyIGEgY2FsbGJhY2sgc28gdGhhdCBhIHRhc2sgaXMgZXhlY3V0ZWQgd2hlbiB0aGUgdG9w
IGxldmVsIGRvY3VtZW50IGhhcyBmb2N1cy4KKyAgICAgICAgVXNlIHRoaXMgdG8gZGVsYXkgZ2V0
VXNlck1lZGlhIHJlcXVlc3RzIHVudGlsIHRvcCBsZXZlbCBkb2N1bWVudCBoYXMgZm9jdXMuCisg
ICAgICAgIFRoZSBzcGVjIGN1cnJlbnRseSBkZWZpbmVzIHRoYXQgd2Ugc2hvdWxkIHdhaXQgZm9y
IHRoZSBjdXJyZW50IGRvY3VtZW50IHRvIGhhdmUgZm9jdXMgYnV0IHRoaXMgaXMgYWJvdXQgdG8g
YmUgY2hhbmdlZCBhbmQgaXMgbm90IGFsaWduZWQgd2l0aCBvdGhlciBicm93c2VyIGltcGxlbWVu
dGF0aW9ucy4KKworICAgICAgICBUaGUgcGF0Y2ggYWxzbyBtb3ZlcyBzb21lIGdldFVzZXJNZWRp
YSBjaGVja3MgZWFybGllciBzbyBhcyB0byByZXNwZWN0IG9yZGVyIHByb3ZpZGVkIGJ5IHRoZSBz
cGVjcy4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cDoKKwogMjAyMi0wMS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSBTZXJ2aWNlV29ya2VyQ2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3Ry
aW5nIGRlcml2ZWQgZnJvbSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDNjOGNlYmYzNzNlMTgwNGI0YTc5NGFjNjUzMzhlM2RmNjliMTRiNWUuLjMwMDg5OWJi
OWU1ZjllNGIxZTFhNjk4OWY1OTAwOTQxNGVlZTA0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBzZXR0ZXJzL2dldHRlcnMgZm9yIHRo
ZSBnZXRVc2VyTWVkaWEgZm9jdXMgc2V0dGluZ3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1l
ZGlhUmVxdWlyZXNGb2N1cyk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oOgorCiAyMDIyLTAxLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGluc3RlYWQgb2YgYSBz
dHJpbmcgZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0lu
dGVybmFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNJbnRlcm5hbC55YW1sCmluZGV4IDFjMDcwNTEzZGU3YTNkNjM0YTAyZjViZjY3N2VjOTlmZTI3
OTRmZmIuLjY2NzEwZjg0OWY5ZDFhYTZmZmMyZmE4OWRmZWI0ZjUyNDNjOTI2NGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
SW50ZXJuYWwueWFtbApAQCAtMjkzLDYgKzI5MywxOSBAQCBGdWxsU2NyZWVuRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorR2V0VXNlck1lZGlhUmVxdWlyZXNG
b2N1czoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlJlcXVpcmUgZm9jdXMg
dG8gc3RhcnQgZ2V0VXNlck1lZGlhIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJSZXF1
aXJlIGZvY3VzIHRvIHN0YXJ0IGdldFVzZXJNZWRpYSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVm
YXVsdDogdHJ1ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOgog
ICB0eXBlOiBib29sCiAgIHdlYmNvcmVPbkNoYW5nZTogaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5h
YmxlZENoYW5nZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmNwcAppbmRleCA3MTVlZjZiNGY0ZDFiYTA2MGFlZjc2YTMxMDRhOTZlMTU2
NWY1OGU1Li4xNWU5MmNiNDllM2ZjODk3ZjQ3M2U5YTBhMzc2ZDE3NGE5YjE5YzNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CkBAIC0xMTgsMTUgKzExOCwyMCBAQCBib29sIE1lZGlhRGV2aWNlczo6Y29tcHV0ZVVzZXJHZXN0
dXJlUHJpdmlsZWRnZShHZXN0dXJlQWxsb3dlZFJlcXVlc3QgcmVxdWVzdFR5cAogCiB2b2lkIE1l
ZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgUHJvbWlzZSYmIHByb21pc2UpCiB7CisgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0g
Y3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7CisgICAgYXV0byB2aWRl
b0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7
CisKKyAgICBpZiAoIWF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiAhdmlkZW9Db25zdHJhaW50
cy5pc1ZhbGlkKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJvciwgIk5vIGNvbnN0
cmFpbnRzIHByb3ZpZGVkIl9zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGF1dG8q
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+aXNGdWxseUFjdGl2ZSgpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9
IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMuYXVkaW8pOwotICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8p
OwotCiAgICAgYm9vbCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgPSBmYWxzZTsKIAogICAgIGlm
IChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpCkBAIC0xMzgsNyArMTQzLDg1IEBAIHZvaWQgTWVk
aWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzLCBQcm9taXNlJiYKICAgICB9CiAKICAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1
ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1l
ZGlhLCBXVEZNb3ZlKGF1ZGlvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWludHMp
LCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9taXNlKSk7Ci0gICAgcmVx
dWVzdC0+c3RhcnQoKTsKKworICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1l
ZGlhUmVxdWlyZXNGb2N1cygpKSB7CisgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC0+d2hlblRvcExldmVsRG9jdW1lbnRIYXNG
b2N1cyhbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldIHsKKyAgICAgICAgaWYgKHJlcXVlc3Qt
PmlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcmVxdWVz
dC0+c3RhcnQoKTsKKyAgICB9KTsKK30KKworc3RhdGljIGJvb2wgaGFzSW52YWxpZEdldERpc3Bs
YXlNZWRpYUNvbnN0cmFpbnQoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit7
CisgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1zY3JlZW4tc2hhcmUv
I25hdmlnYXRvci1hZGRpdGlvbnMKKyAgICAvLyAxLiBMZXQgY29uc3RyYWludHMgYmUgdGhlIG1l
dGhvZCdzIGZpcnN0IGFyZ3VtZW50LgorICAgIC8vIDIuIEZvciBlYWNoIG1lbWJlciBwcmVzZW50
IGluIGNvbnN0cmFpbnRzIHdob3NlIHZhbHVlLCB2YWx1ZSwgaXMgYSBkaWN0aW9uYXJ5LCBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyAgICAgMS4gSWYgdmFsdWUgY29udGFpbnMgYSBt
ZW1iZXIgbmFtZWQgYWR2YW5jZWQsIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhIG5l
d2x5IGNyZWF0ZWQgVHlwZUVycm9yLgorICAgIC8vICAgICAyLiBJZiB2YWx1ZSBjb250YWlucyBh
IG1lbWJlciB3aGljaCBpbiB0dXJuIGlzIGEgZGljdGlvbmFyeSBjb250YWluaW5nIGEgbWVtYmVy
IG5hbWVkIGVpdGhlciBtaW4gb3IKKyAgICAvLyAgICAgICAgZXhhY3QsIHJldHVybiBhIHByb21p
c2UgcmVqZWN0ZWQgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgorICAgIGlmICghY29u
c3RyYWludHMuaXNWYWxpZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFjb25z
dHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBib29sIGludmFsaWQgPSBmYWxzZTsKKyAgICBjb25zdHJhaW50cy5tYW5kYXRv
cnlDb25zdHJhaW50cy5maWx0ZXIoWyZpbnZhbGlkXSAoY29uc3QgTWVkaWFDb25zdHJhaW50JiBj
b25zdHJhaW50KSBtdXRhYmxlIHsKKyAgICAgICAgc3dpdGNoIChjb25zdHJhaW50LmNvbnN0cmFp
bnRUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDoKKyAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQ6IHsKKyAgICAgICAgICAgIGF1
dG8mIGludENvbnN0cmFpbnQgPSBkb3duY2FzdDxJbnRDb25zdHJhaW50Pihjb25zdHJhaW50KTsK
KyAgICAgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgICAgIGludmFsaWQgPSBpbnRDb25zdHJh
aW50LmdldEV4YWN0KHZhbHVlKSB8fCBpbnRDb25zdHJhaW50LmdldE1pbih2YWx1ZSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6QXNwZWN0UmF0aW86CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJh
bWVSYXRlOiB7CisgICAgICAgICAgICBhdXRvJiBkb3VibGVDb25zdHJhaW50ID0gZG93bmNhc3Q8
RG91YmxlQ29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBkb3VibGUgdmFsdWU7
CisgICAgICAgICAgICBpbnZhbGlkID0gZG91YmxlQ29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkg
fHwgZG91YmxlQ29uc3RyYWludC5nZXRNaW4odmFsdWUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJm
YWNlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOiB7
CisgICAgICAgICAgICBhdXRvJiBib29sQ29uc3RyYWludCA9IGRvd25jYXN0PEJvb2xlYW5Db25z
dHJhaW50Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAgIGJvb2wgdmFsdWU7CisgICAgICAgICAg
ICBpbnZhbGlkID0gYm9vbENvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZh
Y2luZ01vZGU6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQ6Cisg
ICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZDogeworICAgICAgICAgICAg
YXV0byYgc3RyaW5nQ29uc3RyYWludCA9IGRvd25jYXN0PFN0cmluZ0NvbnN0cmFpbnQ+KGNvbnN0
cmFpbnQpOworICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmFsdWVzOworICAgICAgICAgICAg
aW52YWxpZCA9IHN0cmluZ0NvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWVzKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpT
YW1wbGVSYXRlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemU6
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lOgorICAgICAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb246CisgICAgICAgICAgICAvLyBJ
Z25vcmVkLgorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpVbmtub3duOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbnZhbGlkOworICAg
IH0pOworCisgICAgcmV0dXJuIGludmFsaWQ7CiB9CiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRE
aXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzLCBQcm9taXNlJiYgcHJvbWlzZSkKQEAgLTE1Myw3ICsyMzYsMTggQEAgdm9pZCBNZWRpYURl
dmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50
cyYgY29uc3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9
IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0
OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJh
aW50cy52aWRlbyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2Up
KTsKKyAgICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNv
bnN0cmFpbnRzLnZpZGVvKTsKKyAgICBpZiAoaGFzSW52YWxpZEdldERpc3BsYXlNZWRpYUNvbnN0
cmFpbnQodmlkZW9Db25zdHJhaW50cykpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiZ2V0RGlzcGxheU1lZGlhIG11c3QgYmUgY2FsbGVkIHdpdGggdmFs
aWQgY29uc3RyYWludHMuIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCFkb2N1bWVudC0+aXNGdWxseUFjdGl2ZSgpIHx8ICFkb2N1bWVudC0+dG9wRG9jdW1lbnQoKS5o
YXNGb2N1cygpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSBvciBkb2VzIG5vdCBoYXZl
IGZvY3VzIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXF1ZXN0
ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVl
c3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSwgeyB9LCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpLCBp
c1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgcmVxdWVz
dC0+c3RhcnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZTA2Y2RlMDg5YmFlMzcyNzBlYjJi
ZDEyNWZjMDY4MWQ1YmM2N2RmNS4uYzM5YjhmMGE3N2UzYmUzYjZlN2E1ZGU0YjA1YzVkMGU2NDEx
ZjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC04NSw3NCArODUsNiBAQCBTZWN1cml0eU9yaWdpbiog
VXNlck1lZGlhUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbnRleHQgPyAmY29udGV4dC0+dG9wT3JpZ2luKCkgOiBudWxscHRyOwogfQogCi1zdGF0
aWMgYm9vbCBoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChjb25zdCBNZWRpYUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cykKLXsKLSAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8v
bWVkaWFjYXB0dXJlLXNjcmVlbi1zaGFyZS8jbmF2aWdhdG9yLWFkZGl0aW9ucwotICAgIC8vIDEu
IExldCBjb25zdHJhaW50cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJndW1lbnQuCi0gICAgLy8g
Mi4gRm9yIGVhY2ggbWVtYmVyIHByZXNlbnQgaW4gY29uc3RyYWludHMgd2hvc2UgdmFsdWUsIHZh
bHVlLCBpcyBhIGRpY3Rpb25hcnksIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIC8vICAg
ICAxLiBJZiB2YWx1ZSBjb250YWlucyBhIG1lbWJlciBuYW1lZCBhZHZhbmNlZCwgcmV0dXJuIGEg
cHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCi0gICAgLy8g
ICAgIDIuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIHdoaWNoIGluIHR1cm4gaXMgYSBkaWN0
aW9uYXJ5IGNvbnRhaW5pbmcgYSBtZW1iZXIgbmFtZWQgZWl0aGVyIG1pbiBvcgotICAgIC8vICAg
ICAgICBleGFjdCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRl
ZCBUeXBlRXJyb3IuCi0gICAgaWYgKCFjb25zdHJhaW50cy5pc1ZhbGlkKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGJvb2wgaW52YWxpZCA9IGZhbHNl
OwotICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmZpbHRlcihbJmludmFsaWRd
IChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIG11dGFibGUgewotICAgICAgICBz
d2l0Y2ggKGNvbnN0cmFpbnQuY29uc3RyYWludFR5cGUoKSkgewotICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OldpZHRoOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkhlaWdodDogewotICAgICAgICAgICAgYXV0byYgaW50Q29uc3RyYWludCA9IGRvd25jYXN0PElu
dENvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgaW50IHZhbHVlOwotICAgICAg
ICAgICAgaW52YWxpZCA9IGludENvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGludENvbnN0
cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbzoKLSAgICAgICAgY2Fz
ZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6IHsKLSAgICAgICAgICAgIGF1dG8mIGRv
dWJsZUNvbnN0cmFpbnQgPSBkb3duY2FzdDxEb3VibGVDb25zdHJhaW50Pihjb25zdHJhaW50KTsK
LSAgICAgICAgICAgIGRvdWJsZSB2YWx1ZTsKLSAgICAgICAgICAgIGludmFsaWQgPSBkb3VibGVD
b25zdHJhaW50LmdldEV4YWN0KHZhbHVlKSB8fCBkb3VibGVDb25zdHJhaW50LmdldE1pbih2YWx1
ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6TG9naWNhbFN1cmZhY2U6IHsKLSAgICAgICAgICAgIGF1dG8mIGJvb2xDb25zdHJh
aW50ID0gZG93bmNhc3Q8Qm9vbGVhbkNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAg
ICAgYm9vbCB2YWx1ZTsKLSAgICAgICAgICAgIGludmFsaWQgPSBib29sQ29uc3RyYWludC5nZXRF
eGFjdCh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZToKLSAgICAgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpHcm91cElkOiB7Ci0gICAgICAgICAgICBhdXRvJiBzdHJpbmdDb25zdHJhaW50ID0gZG93bmNh
c3Q8U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBWZWN0b3I8U3Ry
aW5nPiB2YWx1ZXM7Ci0gICAgICAgICAgICBpbnZhbGlkID0gc3RyaW5nQ29uc3RyYWludC5nZXRF
eGFjdCh2YWx1ZXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGU6Ci0gICAgICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpWb2x1bWU6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNob0NhbmNl
bGxhdGlvbjoKLSAgICAgICAgICAgIC8vIElnbm9yZWQuCi0gICAgICAgICAgICBicmVhazsKLQot
ICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246Ci0gICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAg
ICAgICAgcmV0dXJuIGludmFsaWQ7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gaW52YWxpZDsKLX0K
LQogdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgpCiB7CiAgICAgYXV0byogY29udGV4dCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTE2MiwyNSArOTQsNiBAQCB2b2lkIFVzZXJN
ZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICht
X3JlcXVlc3QudHlwZSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSkg
ewotICAgICAgICBpZiAoaGFzSW52YWxpZEdldERpc3BsYXlNZWRpYUNvbnN0cmFpbnQobV9yZXF1
ZXN0LnZpZGVvQ29uc3RyYWludHMpKSB7Ci0gICAgICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpJbGxlZ2FsQ29uc3RyYWludCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJl
LW1haW4vZ2V0dXNlcm1lZGlhLmh0bWwjZG9tLW1lZGlhZGV2aWNlcy1nZXR1c2VybWVkaWEoKQot
ICAgIC8vIDEuIExldCBjb25zdHJhaW50cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJndW1lbnQu
Ci0gICAgLy8gMi4gTGV0IHJlcXVlc3RlZE1lZGlhVHlwZXMgYmUgdGhlIHNldCBvZiBtZWRpYSB0
eXBlcyBpbiBjb25zdHJhaW50cyB3aXRoIGVpdGhlciBhIGRpY3Rpb25hcnkKLSAgICAvLyAgICB2
YWx1ZSBvciBhIHZhbHVlIG9mICJ0cnVlIi4KLSAgICAvLyAzLiBJZiByZXF1ZXN0ZWRNZWRpYVR5
cGVzIGlzIHRoZSBlbXB0eSBzZXQsIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhIFR5
cGVFcnJvci4gVGhlIHdvcmQKLSAgICAvLyAgICAib3B0aW9uYWwiIG9jY3VycyBpbiB0aGUgV2Vi
SURMIGR1ZSB0byBXZWJJREwgcnVsZXMsIGJ1dCB0aGUgYXJndW1lbnQgbXVzdCBiZSBzdXBwbGll
ZCBpbiBvcmRlcgotICAgIC8vICAgIGZvciB0aGUgY2FsbCB0byBzdWNjZWVkLgotICAgIGlmICgh
bV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiAhbV9yZXF1ZXN0LnZpZGVvQ29u
c3RyYWludHMuaXNWYWxpZCkgewotICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
OjpOb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIDQuIElm
IHRoZSBjdXJyZW50IHNldHRpbmdzIG9iamVjdCdzIHJlc3BvbnNpYmxlIGRvY3VtZW50IGlzIE5P
VCBhbGxvd2VkIHRvIHVzZSB0aGUgZmVhdHVyZSBpbmRpY2F0ZWQgYnkKICAgICAvLyAgICBhdHRy
aWJ1dGUgbmFtZSBhbGxvd3VzZXJtZWRpYSwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgRE9NRXhjZXB0aW9uIG9iamVjdCB3aG9zZSBuYW1lCiAgICAgLy8gICAgYXR0cmlidXRlIGhh
cyB0aGUgdmFsdWUgU2VjdXJpdHlFcnJvci4KQEAgLTI4OSwxMCArMjAyLDYgQEAgdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0OjpkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHJlYXNvbiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWcKIAogICAgIEV4Y2VwdGlvbkNvZGUgY29kZTsKICAgICBzd2l0Y2ggKHJl
YXNvbikgewotICAgIGNhc2UgTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OklsbGVnYWxDb25zdHJh
aW50OgotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRpYVJlcXVlc3Q6
OmRlbnkgLSBpbnZhbGlkIGNvbnN0cmFpbnRzIik7Ci0gICAgICAgIGNvZGUgPSBUeXBlRXJyb3I7
Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29u
c3RyYWludHM6CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVx
dWVzdDo6ZGVueSAtIG5vIGNvbnN0cmFpbnRzIik7CiAgICAgICAgIGNvZGUgPSBUeXBlRXJyb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5oCmluZGV4IDM5YWJmNjBjZDA2Yjg5NzI1YTBiNjc0MzVlODhlM2EyNWI0NmYyZjAu
LjljYzdhMmJkNjgyYjU1OTYwYjlmNDEwYmE2MDliYzZjZWQ0Yzg5NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBA
IC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93
ZWRNZWRpYURldmljZVVJRHMoY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3Ry
aW5nJiB2aWRlb0RldmljZVVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvdyhDYXB0
dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgU3Ry
aW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCi0gICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMs
IFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwg
SGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgSWxsZWdhbENv
bnN0cmFpbnQsIE90aGVyRmFpbHVyZSB9OworICAgIGVudW0gTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywg
SW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIEludmFs
aWRBY2Nlc3MsIE90aGVyRmFpbHVyZSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVueShN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBlbXB0
eVN0cmluZygpKTsKIAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMo
KSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRGV2aWNlVUlEczsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggMmM3ZTJkMWEzODY0MzZlZWE5NTg0YjU3MGZhNjY1YmE5NmZhMzM2Mi4uNmZjNzc1
YjBiNDZhNTNhM2NmOWZmMGFlNTVlZTgxMjUzMDc3NDViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC05MDk5LDYgKzkwOTksMjYgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiB0czsKIH0KIAor
dm9pZCBEb2N1bWVudDo6d2hlblRvcExldmVsRG9jdW1lbnRIYXNGb2N1cyhGdW5jdGlvbjx2b2lk
KCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byYgdG9wRG9jdW1lbnQgPSB0aGlzLT50b3BEb2N1
bWVudCgpOworCisgICAgaWYgKHRvcERvY3VtZW50Lmhhc0ZvY3VzKCkpIHsKKyAgICAgICAgY2Fs
bGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRvcERvY3VtZW50Lm1fd2hl
bkZvY3VzSGFuZGxlcnMuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9pZCBEb2N1
bWVudDo6Y2hhbmdlZFRvQWN0aXZlQW5kRm9jdXNlZCgpCit7CisgICAgQVNTRVJUKGhhc0ZvY3Vz
KCkpOworICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZSh0b3BEb2N1bWVudCgpLm1f
d2hlbkZvY3VzSGFuZGxlcnMsIHsgfSk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxi
YWNrcykKKyAgICAgICAgY2FsbGJhY2soKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMmM4
ZGYzMTY4MDZkNjUzNmY5ZTBjYzUyYjc0YTg1MTdlMDk3YmU3Ni4uYzA0YzRiMDgxMTI5MTczYWUy
MzIzYmFhYjY2ZTMxNGE1YjdlMjUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTQyOSw2ICs0
MjksOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBFbGVtZW50KiBhY3RpdmVFbGVt
ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNGb2N1cygpIGNvbnN0OworICAgIHZv
aWQgd2hlblRvcExldmVsRG9jdW1lbnRIYXNGb2N1cyhGdW5jdGlvbjx2b2lkKCk+JiYpOworICAg
IHZvaWQgY2hhbmdlZFRvQWN0aXZlQW5kRm9jdXNlZCgpOwogCiAgICAgYm9vbCBoYXNNYW5pZmVz
dCgpIGNvbnN0OwogICAgIApAQCAtMjI2MCw2ICsyMjYyLDggQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI+IG1fbW9kYWxDb250
YWluZXJPYnNlcnZlcjsKKworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3doZW5Gb2N1
c0hhbmRsZXJzOwogfTsKIAogRWxlbWVudCogZXZlbnRUYXJnZXRFbGVtZW50Rm9yRG9jdW1lbnQo
RG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5k
ZXggZGIxNjJhNGM1ODk4ZmUyZTk0Mjg5ZjBjOTY4NTAwMDM3NmEzZmIwYy4uN2NmOGVmZmM5NTUz
ODA0MDg2ZDhhMmMxODg1MmY5MDFlNWNhZDNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKQEAgLTIwODksNiArMjA4OSw5IEBAIHZvaWQgRnJhbWVTZWxlY3Rp
b246OmZvY3VzZWRPckFjdGl2ZVN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgYm9vbCBhY3RpdmVBbmRG
b2N1c2VkID0gaXNGb2N1c2VkQW5kQWN0aXZlKCk7CiAKKyAgICBpZiAoYWN0aXZlQW5kRm9jdXNl
ZCkKKyAgICAgICAgbV9kb2N1bWVudC0+Y2hhbmdlZFRvQWN0aXZlQW5kRm9jdXNlZCgpOworCiAg
ICAgbV9kb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAjaWYgVVNFKFVJS0lUX0VE
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCmluZGV4IGVhN2Q3NjExZWI0ZDZhOTA4OWQyZDJhOTI1OWJiZDkwYTlhMDY3ODUuLjcxZjJj
MmYyZmEyMjBkZTlhOGRkMGQyYTYxMzdhOTVjZTI0NTE1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTI2LDYgKzE1MjYsMTYg
QEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNl
c1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNl
c0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+Z2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVG
aWx0ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5h
YmxlZCkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggYjY2NGU5ZWExMTFjZWQ5
ODAyMjU3ZjIxMmVmNzRlNDY0ZGY4MjhlYy4uZjQyODUwYjA5Yzc2MzJmZGVlZDk5NzI3Njk5OGI5
MDExMGY1YWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC0zOTgsNiArMzk4LDEwIEBAIFdLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUoV0tQcmVm
ZXJlbmNlc1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdL
UHJlZmVyZW5jZXNHZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYp
OwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CitXS19F
WFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhXS1By
ZWZlcmVuY2VzUmVmKTsKKwogLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldElDRUNhbmRpZGF0ZUZp
bHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDljNWY4ZGFjNThmZjll
NTc2ZTU5NTBlNmQ3OTVhMDNkZmY1M2M3NDAuLjFlM2IxOTYxM2NiNjdkNzhkOGM4YTU3MWRkOGM5
MjcwOTMxMDdiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCkBAIC02NTAsNiArNjUwLDE2IEBAIHN0YXRpYyBfV0tTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGlj
eSkKICAgICBfcHJlZmVyZW5jZXMtPnNldE1lZGlhRGV2aWNlc0VuYWJsZWQoZW5hYmxlZCk7CiB9
CiAKKy0gKEJPT0wpX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMKK3sKKyAgICByZXR1cm4gX3By
ZWZlcmVuY2VzLT5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKCk7Cit9CisKKy0gKHZvaWQpX3Nl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXM6KEJPT0wpZW5hYmxlZAoreworICAgIF9wcmVmZXJl
bmNlcy0+c2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhlbmFibGVkKTsKK30KKwogLSAoQk9P
TClfc2NyZWVuQ2FwdHVyZUVuYWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5zY3Jl
ZW5DYXB0dXJlRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBjMWM3MjNhMWZmNDdlYWMx
OTZiZDA2MmIzZTI3NzMwMjRmMzFmYTA1Li5kMTU1YmExZjBiNzlmOTRiOWI2Y2MzOWFiN2EwMDMx
NjA4Y2RiZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTE3LDYgKzExNyw3IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQ6KSBCT09M
IF9wZWVyQ29ubmVjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGV2aWNl
c0VuYWJsZWQ6KSBCT09MIF9tZWRpYURldmljZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1czopIEJPT0wgX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOikg
Qk9PTCBfc2NyZWVuQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQ6KSBCT09MIF9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TW9ja0NhcHR1cmVEZXZpY2VzUHJvbXB0RW5hYmxlZDopIEJPT0wgX21v
Y2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA3Njg3OTRmNzM0ZjFjMTE5NzUwNmYwYmNlNzA1MTRhYWRmNmQwMjYzLi5h
YjM1YWMyMDJmZGJmYzgxMzY5Y2RlOGFmYWExNWMzYTE5MTAyYTI2IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjIt
MDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9y
Y2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRGlzYWJsZSBmb2N1cyBmbGFnIGZvciB0ZXN0aW5nIHRv
IG5vdCByZXF1aXJlIHRvIGZvY3VzIHRoZSB3aW5kb3cuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojppbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpkb0NhcHR1cmVNdXRlVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZp
Z2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlv
bik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9Vc2VyTWVkaWEuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkdldERpc3BsYXlNZWRpYVRlc3Q6OlNldFVwKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNo
UmVjb2duaXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgor
ICAgICAgICAoTWVkaWFDYXB0dXJlRGlzYWJsZWRUZXN0OjpTZXRVcCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRi
b3gubW06CisgICAgICAgIChNZWRpYUNhcHR1cmVTaW11bGF0ZUZhaWxlZFNhbmRib3g6OlNldFVw
KToKKwogMjAyMi0wMS0wOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHN1cHBvcnQgZm9yIERpcmVjdDJECmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KaW5kZXggOTM2MmVmMzU3ZTliMDg2MTAzNGZi
ZWMzMzhjYjE5OGExOTFiNmJmYS4uNjViZmJkZWYwODIyNDYwODIzY2ZkNjFhYTM3Mjg3NDk1YjJi
MWRhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNl
ck1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJN
ZWRpYS5tbQpAQCAtMTUyLDE0ICsxNTIsMjEgQEAgYm9vbCB3YWl0VW50aWxDYXB0dXJlU3RhdGUo
V0tXZWJWaWV3ICp3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgZXgKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgZG9DYXB0dXJlTXV0ZVRlc3QoY29uc3QgRnVuY3Rp
b248dm9pZChUZXN0V0tXZWJWaWV3KiwgX1dLTWVkaWFNdXRlZFN0YXRlKT4mIHNldFBhZ2VNdXRl
ZCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24qIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAg
ICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc107CisKKyAgICBjb25maWd1cmF0aW9uLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNv
bm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87Cit9
CisKK3ZvaWQgZG9DYXB0dXJlTXV0ZVRlc3QoY29uc3QgRnVuY3Rpb248dm9pZChUZXN0V0tXZWJW
aWV3KiwgX1dLTWVkaWFNdXRlZFN0YXRlKT4mIHNldFBhZ2VNdXRlZCkKK3sKKyAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTIzNSwx
MCArMjQyLDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlTXV0ZUFQSSkKIHsKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5f
bWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJh
dGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMzQwLDEwICszNDQsNyBA
QCBURVNUKFdlYktpdDIsIENhcHR1cmVTdG9wKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0
byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVF
bmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1N
ZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQoKSB1
c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5k
bGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTM3OCwxMCArMzc5LDcgQEAgVEVTVChXZWJLaXQy
LCBDYXB0dXJlSW5kaWNhdG9yRGVsYXkpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3Nh
Z2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIu
Z2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDE0LDEwICs0MTIsNyBAQCBURVNUKFdlYktpdDIsIENh
cHR1cmVJbmRpY2F0b3JEZWxheVdoZW5DbG9zZWQpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVy
ZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmln
dXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dV
TU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgp
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDQyLDEwICs0MzcsNyBAQCBURVNUKFdlYktp
dDIsIEdldENhcGFiaWxpdGllcykKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdl
dCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQo
KSBuYW1lOkAiZ3VtIl07CkBAIC00NzMsMTAgKzQ2NSw3IEBAIFRFU1QoV2ViS2l0LCBJbnRlcnJ1
cHRpb25CZXR3ZWVuU2FtZVByb2Nlc3NQYWdlcykKICAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxv
d3NJbmxpbmVNZWRpYVBsYXliYWNrOllFU107CiAjZW5kaWYKIAotICAgIGF1dG8gcHJlZmVyZW5j
ZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5k
bGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tj
b25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRs
ZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNTMyLDEwICs1MjEsNyBA
QCBURVNUKFdlYktpdCwgUGVybWlzc2lvbkRlbGVnYXRlUGFyYW1ldGVycykKICAgICBbY29uZmln
dXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOllFU107CiAjZW5kaWYKIAotICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJl
ZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAg
IGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJl
ZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6
ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBk
b25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwpAQCAtNTU1LDEwICs1
NDEsNyBAQCBURVNUKFdlYktpdCwgV2ViQXVkaW9BbmRHZXRVc2VyTWVkaWEpCiAgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQo
KTsKICAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sLl9jb25maWd1cmF0aW9uLnNo
b3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gTk87CiAKLSAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNh
cHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdl
dCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25m
aWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxl
ciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29u
ZmlndXJhdGlvbi5nZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTU5MSw5ICs1NzQs
NyBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc1doaWxlQ2FwdHVyaW5nKQogICAgICAg
ICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JJbnRlcm5hbERlYnVnRmVhdHVy
ZTpmZWF0dXJlXTsKICAgICB9CiAKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihj
b25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFu
ZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC02NjYsOSArNjQ3LDcgQEAgVEVTVChXZWJLaXQy
LCBDcmFzaEdQVVByb2Nlc3NBZnRlckFwcGx5aW5nQ29uc3RyYWludHMpCiAgICAgICAgIGlmIChb
ZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCJdKQogICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JJbnRl
cm5hbERlYnVnRmVhdHVyZTpmZWF0dXJlXTsKICAgICB9Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIFtjb25maWd1cmF0aW9uIHNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2s6WUVT
XTsKQEAgLTc0Niw5ICs3MjUsNyBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc1doaWxl
Q2FwdHVyaW5nQW5kQ2FsbGluZykKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxl
ZDpZRVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsKICAgICB9CiAKLSAgICBwcmVmZXJlbmNlcy5fbWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlv
bi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJl
Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBb
W2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFu
ZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC04NjcsMTAgKzg0NCw3
IEBAIFRFU1QoV2ViS2l0LCBBdXRvcGxheU9uVmlzaWJpbGl0eUNoYW5nZSkKICAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwogCi0gICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJl
bmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGRvbmUg
PSBmYWxzZTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CkBAIC04OTgsNiArODcyLDcw
IEBAIFRFU1QoV2ViS2l0LCBBdXRvcGxheU9uVmlzaWJpbGl0eUNoYW5nZSkKICAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9UZXN0KCkiXTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQorCitzdGF0aWMgY29uc3QgY2hhciogZ2V0VXNl
ck1lZGlhRm9jdXNUZXh0ID0gUiJET0NET0NET0MoCis8aHRtbD48Ym9keT4KKzxzY3JpcHQ+Citv
bmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQub252aXNpYmlsaXR5Y2hhbmdlID0gKCkgPT4g
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7Cisg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7
Cit9CisKK2Z1bmN0aW9uIGNhcHR1cmUoKQoreworICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHt2aWRlbyA6IHRydWV9KS50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZShkb2N1bWVudC5oYXNG
b2N1cygpID8gIlBBU1MiIDogIkZBSUwiKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9ib2R5
PjwvaHRtbD4KKylET0NET0NET0MiOworCitURVNUKFdlYktpdCwgR2V0VXNlck1lZGlhRm9jdXMp
Cit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIv
IiwgeyBnZXRVc2VyTWVkaWFGb2N1c1RleHQgfSB9CisgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlcjo6UHJvdG9jb2w6Okh0dHAsIG51bGxwdHIsIG51bGxwdHIsIDkwOTApOworCisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0
ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAo
V0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVy
ID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOworCisgICAgaW5pdGlhbGl6ZU1lZGlh
Q2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CisgICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5f
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IFlFUzsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgd2ViVmll
dy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAgICAvLyBMb2FkIHBhZ2Uu
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIE1pbmltaXplCisgICAgZG9uZSA9
IGZhbHNlOworICAgIGF1dG8gKmhvc3RXaW5kb3cgPSBbd2ViVmlldyBob3N0V2luZG93XTsKKyAg
ICBbaG9zdFdpbmRvdyBtaW5pYXR1cml6ZTpob3N0V2luZG93XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gV2UgY2FsbCBjYXB0dXJlIHdoaWxlIG1pbmlt
aXppbmcuCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJjYXB0dXJlKCkiXTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGdldFVz
ZXJNZWRpYSBkb2VzIG5vdCByZXNvbHZlIHRvbyBzb29uLgorICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnNwaW5SdW5Mb29wKDEwMCk7CisgICAgRVhQRUNUX0ZBTFNFKGRvbmUpOworCisgICAgW2hv
c3RXaW5kb3cgZGVtaW5pYXR1cml6ZTpob3N0V2luZG93XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogVEVTVChXZWJL
aXQsIEludmFsaWREZXZpY2VJZEhhc2hTYWx0cykKQEAgLTkyNCwxMCArOTYyLDcgQEAgVEVTVChX
ZWJLaXQsIEludmFsaWREZXZpY2VJZEhhc2hTYWx0cykKIAogICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
W2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0
dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24o
Y29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0KaW5kZXggMTJjYTc0NjJkNWFiY2RiY2RkMTE4ZWU2M2JlNWYzNTgxMTk1YzY5OS4uYTc2MDlk
MzQ1MmUzY2QwODhlMzI2NzBjYWQ2MmE3MDMxZTQ4OTIxNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1t
CkBAIC02Nyw2ICs2NywxNiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZWxlYXNlSW5FbnVtZXJhdGUg
PSBmYWxzZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCitzdGF0aWMgdm9pZCBpbml0
aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBj
b25maWd1cmF0aW9uKQoreworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc107CisKKyAgICBjb25maWd1cmF0aW9uLl9tZWRpYUNhcHR1cmVFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKKyAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlF
UzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POworfQor
CiBURVNUKFdlYktpdCwgTmF2aWdhdGVEdXJpbmdHZXRVc2VyTWVkaWFQcm9tcHQpCiB7CiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKQEAgLTg4LDEwICs5OCw3IEBAIFRFU1QoV2ViS2l0LCBOYXZpZ2F0ZUR1cmlu
Z0RldmljZUVudW1lcmF0aW9uKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNz
UG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0g
WUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwor
ICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0
KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25m
aWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW05hdmlnYXRpb25XaGls
ZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTExNywxMCArMTI0
LDcgQEAgVEVTVChXZWJLaXQsIERlZmF1bHREZXZpY2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRv
cHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9v
bENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlv
bldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTQ3LDEw
ICsxNTEsNyBAQCBURVNUKFdlYktpdCwgRGV2aWNlSWRIYXNoU2FsdHNEaXJlY3RvcnkpCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0
TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byBwcm9j
ZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVk
ID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVT
OworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24u
Z2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW05hdmlnYXRpb25X
aGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQu
bW0KaW5kZXggMDdmNTdkMDEyNWUwNDk5MjAxNWIzMGYxNjg2ZGRhM2ZlMjA1MGZhZS4uN2FjZDM2
ODY3NTQ3YzViZjBlMTQxNzY1NTAzMDNjNTYwYzFlNzk3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KQEAg
LTYwLDE0ICs2MCwyMiBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRpYyB2
b2lkIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24qIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXTsKKworICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVu
YWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0g
Tk87Cit9CisKIFRFU1QoV2ViS2l0MiwgR2V0VXNlck1lZGlhUmVwcm9tcHQpCiB7CiAgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJlZmVyZW5jZXMg
PSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0
KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZp
Z3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW0dldFVzZXJNZWRpYVJlcHJvbXB0VGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
QEAgLTEwMCwxMCArMTA4LDcgQEAgVEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXByb21wdEFm
dGVyQXVkaW9WaWRlb0JlaW5nRGVuaWVkKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNv
bm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRp
b24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXBy
b21wdFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW2Rl
bGVnYXRlIHNldEF1ZGlvRGVjaXNpb246V0tQZXJtaXNzaW9uRGVjaXNpb25HcmFudF07CkBAIC0x
MjMsMTAgKzEyOCw3IEBAIFRFU1QoV2ViS2l0MiwgTXVsdGlwbGVHZXRVc2VyTWVkaWFTeW5jaHJv
bm91c2x5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9
IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAg
ICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHBy
ZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAg
ICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXByb21wdFRlc3RWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNh
cHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KaW5kZXggODczNmVhNDY0
OWQyYjRhYTdhMTJjNmNlMDVlNzJhMWRjN2QzNGU5OC4uOTcyYmE2YWQxYmI3N2JkMTQ3YTdhYWU0
OTlkZWJjZWE2MzdiY2ZhOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQpAQCAtNjEsNiArNjEs
NyBAQCBURVNUKFdlYktpdCwgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkKQogICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICBjb25m
aWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVu
Y2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9n
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwogICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKaW5kZXggNTc1
MTk3M2E1ODg3ODllNGZlOWY4NmU5NTUzNWViNTVlMmZkN2UxMy4uNzM5M2Q3MmE3MDI0MjY2MDVi
YzZkY2Y4MGE2NmIwZWQ3YTRmNzg2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Vc2VyTWVkaWEuY3BwCkBAIC03Nyw2ICs3Nyw3IEBAIFRFU1QoV2ViS2l0LCBVc2Vy
TWVkaWFCYXNpYykKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0Fs
bG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1
cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0
KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCmluZGV4IDUz
M2RlMWVjNGQ2ZGE0MDA1ZDk4YTc5OGNlOTc2YTVkOWUwMjM0MzkuLjlkZDYyOWNhOGI2NGNhNjBk
Y2U5NGVlOGMwZmM4YWQ2N2JhZjMxMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCkBAIC03Miw2ICs3Miw3
IEBAIFRFU1QoV2ViS2l0LCBBdWRpb0J1ZmZlclNpemUpCiAgICAgYXV0byBwcmVmZXJlbmNlcyA9
IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRp
YVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0dQVVByb2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0dQVVByb2Nlc3MubW0KaW5kZXggMmYxMDY5NDQ0YTdlMTg3MGNkMmRhOTJiYWQ3OWNiMjg5
YzdkMGI0Ni4uOTIzYzM4MzM4YzI3ZDFkZDYwODgwYjNhODhjMmI0MDY5NTlhYTQ5MyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5t
bQpAQCAtNjk2LDYgKzY5Niw3IEBAIFRFU1QoR1BVUHJvY2VzcywgRXhpdHNVbmRlck1lbW9yeVBy
ZXNzdXJlV2ViUlRDQ2FzZSkKICAgICAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAgICAgICBjb25maWd1cmF0aW9uLl9tZWRpYUNh
cHR1cmVFbmFibGVkID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZCA9IFlFUzsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVp
cmVzRm9jdXMgPSBOTzsKICAgICB9KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXRE
aXNwbGF5TWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dl
dERpc3BsYXlNZWRpYS5tbQppbmRleCBkZTA1MDMwMzdmNmM5YWEyZGFiYzUyOTAzMTVjOGMxYjJj
MjRjNTU5Li5lN2M3ZDYyY2QwY2IyZGExYmRmNzFlNzZjZjkwYzg1NTNiM2JhZDZhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRp
YS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3Bs
YXlNZWRpYS5tbQpAQCAtMTA0LDEwICsxMDQsMTEgQEAgcHVibGljOgogICAgICAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5j
ZXMuX3NjcmVlbkNhcHR1cmVFbmFibGVkID0gWUVTOwogCi0gICAgICAgIG1fd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246bV9jb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
ICAgIG1fd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246bV9jb25maWd1cmF0
aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgICAgIG1fdWlEZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tHZXREaXNwbGF5TWVkaWFVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgICAg
IG1fd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gbV91aURlbGVnYXRlLmdldCgpOworICAgICAg
ICBbbV93ZWJWaWV3IGZvY3VzXTsKIAogICAgICAgICBbbV93ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkVGVzdFBhZ2VOYW1lZDpAImdldERpc3BsYXlNZWRpYSJdOwogICAgIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGM1MzM4MGNiMTI5ZjNiNDMzYjM5MGEzZmRlOGQ3N2Fk
ZGY2MmQyOTcuLmM5MjJiNjNhMjcxNmRhZWY0NjEyMWVkMzc3M2M3ZmQ0Njk1MTUzMTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNjgyOCw2ICs2ODI4LDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgR2V0VXNlck1lZGlhQ2FwdHVyZVN0YXRlKQogICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICB3ZWJWaWV3Q29u
ZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5f
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogCiAgICAgW3dlYlZpZXdDb25maWd1cmF0
aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKICAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0K
aW5kZXggNDBjMDhlMzVhNmE1ZDZlYzQ3M2Q3ZmEzNjMwMGUwMGFlMmNkY2NjMC4uMmMxNjQ0ZDFi
NjhhZjZkMDI2MjMyZDYzZjQ2MjUyMzlmYjBiNzBlMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCkBA
IC0xNjIsNiArMTYyLDcgQEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yV2hl
blN0YXJ0aW5nQXVkaW9DYXB0dXJlT25EaWZmZXJlbnRQYWdlKQogICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9zcGVlY2hS
ZWNvZ25pdGlvbkVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVl
Y2hSZWNvZ25pdGlvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGZpcnN0V2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0p
OwogICAgIFtmaXJzdFdlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURp
c2FibGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVk
aWFEaXNhYmxlZC5tbQppbmRleCA1NzYwMWM3MTllYjgwMDZmNzM1MWJkYTIwMDhlNmUwNmU4YjAy
NTgxLi4xNzc5ZmFhZDM2OTA4NzQyYjRhZDdjMTk3MDcwYzNjNTdjZjI2OWU0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVk
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlh
RGlzYWJsZWQubW0KQEAgLTgyLDYgKzgyLDcgQEAgcHVibGljOgogICAgICAgICBhdXRvIHByZWZl
cmVuY2VzID0gW21fd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlczsKICAgICAgICAg
cHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgICAgIHBy
ZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAg
ICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAg
ICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgICAgICBbbV93ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91aURlbGVnYXRlLmdl
dCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KaW5kZXgg
MjRkYzM1MTJmODQwYzVlYzJlMWE4OTBlYjNlODIxOWJmM2MzMTVkMi4uZDczYTFhZWY4MWUzMTM2
MTU4YTcyMGEyZGYyYmUyMzNhYThmMjc5NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0
ZUZhaWxlZFNhbmRib3gubW0KQEAgLTgzLDYgKzgzLDcgQEAgcHVibGljOgogICAgICAgICBhdXRv
IHByZWZlcmVuY2VzID0gW21fd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlczsKICAg
ICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAg
ICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBO
TzsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsK
IAogICAgICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbU2ltdWxhdGVGYWlsZWRTYW5kYm94
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgICAgICBbbV93ZWJWaWV3IHNldFVJRGVsZWdh
dGU6bV91aURlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOWRiNGIyYWZjY2NhYmYyZTRmOGI1OTVk
OTczMzE5Njc4MGQ5ZTM2Li43MzkwNWNhY2FhNDVmMmI1YWY1YTliYTdiMTRlZDIxYmIyOGJmNWFj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0Ogor
CiAyMDIyLTAxLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGluc3RlYWQgb2YgYSBzdHJpbmcg
ZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRp
YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CmluZGV4IDIyNjU3OGY2ZjBjZjYwZWNiMTRkMzBj
ZjNmODVlMmVjMDYzZDUwNDYuLjQ2OTYyNzFkOWVjMDY3NDU0Yzg2OTAxNjY4ZjU5ODUwMGI1NTky
MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dApAQCAtNiw4ICs2LDgg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgdHlwZW9mIG5hdmlnYXRvci5tZWRpYURl
dmljZXMud2Via2l0R2V0VXNlck1lZGlhIGlzICd1bmRlZmluZWQnCiAKIFBBU1MgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdFN0cmVhbTEp
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IK
LVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe30pIHJlamVjdGVkIHdp
dGggZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSgpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogTm8gY29u
c3RyYWludHMgcHJvdmlkZWQKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoe30pIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogTm8gY29uc3RyYWludHMgcHJv
dmlkZWQKIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEuYXBwbHkodW5k
ZWZpbmVkKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgTWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSBvbiBpbnN0YW5jZXMgb2YgTWVkaWFEZXZpY2VzCiBQQVNT
IFN0cmVhbSAxIGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
IGlzIDEK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448915</attachid>
            <date>2022-01-12 01:33:45 -0800</date>
            <delta_ts>2022-01-12 04:00:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220112103343.patch</filename>
            <type>text/plain</type>
            <size>58852</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg5YTczYTM5MTkxYjEwY2M4MjlmYmRm
M2ViNWQ4ODY2MTI3OGI5NTEuLjQ1M2NkZTFhYTk4OGU3YWRiYjEwMDYxMTFjNTVjNDg0NTFiNWNh
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjItMDEt
MTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbXBpbGUg
b3V0IEVOQUJMRV9NRURJQV9DQVBUVVJFIG9uIFdBVENIT1MgYW5kIEFQUExFVFYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBmZDA4NDI5YjJkZWExNjkxZWNjZmIxZWVjMDMxMDVhZDg0MDI2NjI4Li4zZjdmZTQ0ZDEx
N2EyNWRiNThmOWY0MDk1YjkyZDUyMzY2NmQ2ZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIHJl
Z2lzdGVyIGEgY2FsbGJhY2sgc28gdGhhdCBhIHRhc2sgaXMgZXhlY3V0ZWQgd2hlbiB0aGUgdG9w
IGxldmVsIGRvY3VtZW50IGhhcyBmb2N1cy4KKyAgICAgICAgVXNlIHRoaXMgdG8gZGVsYXkgZ2V0
VXNlck1lZGlhIHJlcXVlc3RzIHVudGlsIHRvcCBsZXZlbCBkb2N1bWVudCBoYXMgZm9jdXMuCisg
ICAgICAgIFRoZSBzcGVjIGN1cnJlbnRseSBkZWZpbmVzIHRoYXQgd2Ugc2hvdWxkIHdhaXQgZm9y
IHRoZSBjdXJyZW50IGRvY3VtZW50IHRvIGhhdmUgZm9jdXMgYnV0IHRoaXMgaXMgYWJvdXQgdG8g
YmUgY2hhbmdlZCBhbmQgaXMgbm90IGFsaWduZWQgd2l0aCBvdGhlciBicm93c2VyIGltcGxlbWVu
dGF0aW9ucy4KKworICAgICAgICBUaGUgcGF0Y2ggYWxzbyBtb3ZlcyBzb21lIGdldFVzZXJNZWRp
YSBjaGVja3MgZWFybGllciBzbyBhcyB0byByZXNwZWN0IG9yZGVyIHByb3ZpZGVkIGJ5IHRoZSBz
cGVjcy4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cDoKKwogMjAyMi0wMS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSBTZXJ2aWNlV29ya2VyQ2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3Ry
aW5nIGRlcml2ZWQgZnJvbSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDNjOGNlYmYzNzNlMTgwNGI0YTc5NGFjNjUzMzhlM2RmNjliMTRiNWUuLjIzYzIxNWNh
MmIyMDk4M2ViMDljOTY2MzUzNzc3YzllYmNjMGU3MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBzZXR0ZXJzL2dldHRlcnMgZm9yIHRo
ZSBnZXRVc2VyTWVkaWEgZm9jdXMgc2V0dGluZ3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1l
ZGlhUmVxdWlyZXNGb2N1cyk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHA6Cisg
ICAgICAgICh3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5nc1ByaXZhdGUuaDoKKwogMjAy
Mi0wMS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBTZXJ2aWNlV29ya2VyQ2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2
ZWQgZnJvbSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
IGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbAppbmRleCAxYzA3MDUxM2RlN2EzZDYzNGEwMmY1YmY2NzdlYzk5ZmUyNzk0ZmZiLi42Njcx
MGY4NDlmOWQxYWE2ZmZjMmZhODlkZmViNGY1MjQzYzkyNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBi
L1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlh
bWwKQEAgLTI5Myw2ICsyOTMsMTkgQEAgRnVsbFNjcmVlbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToK
ICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK0dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXM6CisgIHR5
cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJSZXF1aXJlIGZvY3VzIHRvIHN0YXJ0IGdl
dFVzZXJNZWRpYSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUmVxdWlyZSBmb2N1cyB0
byBzdGFydCBnZXRVc2VyTWVkaWEiCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUK
KyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAgIGRl
ZmF1bHQ6IHRydWUKKwogSUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDoKICAgdHlwZTogYm9v
bAogICB3ZWJjb3JlT25DaGFuZ2U6IGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWRDaGFuZ2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKaW5kZXggNzE1ZWY2YjRmNGQxYmEwNjBhZWY3NmEzMTA0YTk2ZTE1NjVmNThlNS4uMTVl
OTJjYjQ5ZTNmYzg5N2Y0NzNlOWEwYTM3NmQxNzRhOWIxOWMzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMTE4LDE1
ICsxMTgsMjAgQEAgYm9vbCBNZWRpYURldmljZXM6OmNvbXB1dGVVc2VyR2VzdHVyZVByaXZpbGVk
Z2UoR2VzdHVyZUFsbG93ZWRSZXF1ZXN0IHJlcXVlc3RUeXAKIAogdm9pZCBNZWRpYURldmljZXM6
OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21p
c2UmJiBwcm9taXNlKQogeworICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlh
Q29uc3RyYWludHMoY29uc3RyYWludHMuYXVkaW8pOworICAgIGF1dG8gdmlkZW9Db25zdHJhaW50
cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOworCisgICAgaWYg
KCFhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgIXZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkg
eworICAgICAgICBwcm9taXNlLnJlamVjdChUeXBlRXJyb3IsICJObyBjb25zdHJhaW50cyBwcm92
aWRlZCJfcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRvKiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmlzRnVs
bHlBY3RpdmUoKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUiX3MgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRp
YUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKLSAgICBhdXRvIHZpZGVvQ29uc3RyYWlu
dHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKTsKLQogICAgIGJv
b2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkID0gZmFsc2U7CiAKICAgICBpZiAoYXVkaW9Db25z
dHJhaW50cy5pc1ZhbGlkKQpAQCAtMTM4LDcgKzE0Myw4NSBAQCB2b2lkIE1lZGlhRGV2aWNlczo6
Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlz
ZSYmCiAgICAgfQogCiAgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRl
KCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RGTW92
ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2Vz
dHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwotICAgIHJlcXVlc3QtPnN0YXJ0
KCk7CisKKyAgICBpZiAoIWRvY3VtZW50LT5zZXR0aW5ncygpLmdldFVzZXJNZWRpYVJlcXVpcmVz
Rm9jdXMoKSkgeworICAgICAgICByZXF1ZXN0LT5zdGFydCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZG9jdW1lbnQtPndoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoW3JlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgICAgIGlmIChyZXF1ZXN0LT5pc0NvbnRleHRT
dG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7
CisgICAgfSk7Cit9CisKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25z
dHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNoYXJlLyNuYXZpZ2F0b3It
YWRkaXRpb25zCisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJz
dCBhcmd1bWVudC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJlc2VudCBpbiBjb25zdHJh
aW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwgcnVuIHRoZSBmb2xsb3dp
bmcgc3RlcHM6CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIG5hbWVk
IGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVk
IFR5cGVFcnJvci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFpbnMgYSBtZW1iZXIgd2hp
Y2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1lbWJlciBuYW1lZCBlaXRo
ZXIgbWluIG9yCisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVk
IHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAoIWNvbnN0cmFpbnRzLmlz
VmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghY29uc3RyYWludHMuYWR2
YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Ym9vbCBpbnZhbGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkg
bXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6CisgICAgICAgIGNhc2Ug
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAgICBhdXRvJiBpbnRDb25z
dHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAg
ICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29uc3RyYWludC5nZXRFeGFj
dCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVj
dFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZTogewor
ICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25jYXN0PERvdWJsZUNvbnN0
cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZhbHVlOworICAgICAgICAg
ICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGRvdWJsZUNv
bnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisK
KyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKKyAgICAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZTogeworICAgICAgICAg
ICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFuQ29uc3RyYWludD4oY29u
c3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9
IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgor
ICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOgorICAgICAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAgICAgIGF1dG8mIHN0cmlu
Z0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25zdHJhaW50KTsKKyAg
ICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAgICAgIGludmFsaWQgPSBz
dHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZToK
KyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplOgorICAgICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0
cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAgLy8gSWdub3JlZC4KKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5r
bm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsKKyAgICB9KTsKKworICAg
IHJldHVybiBpbnZhbGlkOwogfQogCiB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlh
KGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlz
ZSYmIHByb21pc2UpCkBAIC0xNTMsNyArMjM2LDE4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRE
aXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFS
ZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlz
cGxheU1lZGlhLCB7IH0sIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8p
LCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgYXV0
byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52
aWRlbyk7CisgICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KHZpZGVv
Q29uc3RyYWludHMpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgImdldERpc3BsYXlNZWRpYSBtdXN0IGJlIGNhbGxlZCB3aXRoIHZhbGlkIGNvbnN0cmFp
bnRzLiJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghZG9jdW1lbnQt
PmlzRnVsbHlBY3RpdmUoKSB8fCAhZG9jdW1lbnQtPnRvcERvY3VtZW50KCkuaGFzRm9jdXMoKSkg
eworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUgb3IgZG9lcyBub3QgaGF2ZSBmb2N1cyJfcyB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpE
aXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVy
ZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGUwNmNkZTA4OWJhZTM3MjcwZWIyYmQxMjVmYzA2ODFk
NWJjNjdkZjUuLmMzOWI4ZjBhNzdlM2JlM2I2ZTdhNWRlNGIwNWM1ZDBlNjQxMWYyMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcApAQCAtODUsNzQgKzg1LDYgQEAgU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJl
cXVlc3Q6OnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdAogICAgIHJldHVybiBjb250ZXh0
ID8gJmNvbnRleHQtPnRvcE9yaWdpbigpIDogbnVsbHB0cjsKIH0KIAotc3RhdGljIGJvb2wgaGFz
SW52YWxpZEdldERpc3BsYXlNZWRpYUNvbnN0cmFpbnQoY29uc3QgTWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMpCi17Ci0gICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVy
ZS1zY3JlZW4tc2hhcmUvI25hdmlnYXRvci1hZGRpdGlvbnMKLSAgICAvLyAxLiBMZXQgY29uc3Ry
YWludHMgYmUgdGhlIG1ldGhvZCdzIGZpcnN0IGFyZ3VtZW50LgotICAgIC8vIDIuIEZvciBlYWNo
IG1lbWJlciBwcmVzZW50IGluIGNvbnN0cmFpbnRzIHdob3NlIHZhbHVlLCB2YWx1ZSwgaXMgYSBk
aWN0aW9uYXJ5LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAvLyAgICAgMS4gSWYgdmFs
dWUgY29udGFpbnMgYSBtZW1iZXIgbmFtZWQgYWR2YW5jZWQsIHJldHVybiBhIHByb21pc2UgcmVq
ZWN0ZWQgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgotICAgIC8vICAgICAyLiBJZiB2
YWx1ZSBjb250YWlucyBhIG1lbWJlciB3aGljaCBpbiB0dXJuIGlzIGEgZGljdGlvbmFyeSBjb250
YWluaW5nIGEgbWVtYmVyIG5hbWVkIGVpdGhlciBtaW4gb3IKLSAgICAvLyAgICAgICAgZXhhY3Qs
IHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9y
LgotICAgIGlmICghY29uc3RyYWludHMuaXNWYWxpZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKCFjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBib29sIGludmFsaWQgPSBmYWxzZTsKLSAgICBjb25z
dHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5maWx0ZXIoWyZpbnZhbGlkXSAoY29uc3QgTWVk
aWFDb25zdHJhaW50JiBjb25zdHJhaW50KSBtdXRhYmxlIHsKLSAgICAgICAgc3dpdGNoIChjb25z
dHJhaW50LmNvbnN0cmFpbnRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpXaWR0aDoKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQ6IHsK
LSAgICAgICAgICAgIGF1dG8mIGludENvbnN0cmFpbnQgPSBkb3duY2FzdDxJbnRDb25zdHJhaW50
Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIGludCB2YWx1ZTsKLSAgICAgICAgICAgIGludmFs
aWQgPSBpbnRDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKSB8fCBpbnRDb25zdHJhaW50LmdldE1p
bih2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2Ug
TWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW86Ci0gICAgICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6RnJhbWVSYXRlOiB7Ci0gICAgICAgICAgICBhdXRvJiBkb3VibGVDb25zdHJh
aW50ID0gZG93bmNhc3Q8RG91YmxlQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAg
ICBkb3VibGUgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0gZG91YmxlQ29uc3RyYWludC5n
ZXRFeGFjdCh2YWx1ZSkgfHwgZG91YmxlQ29uc3RyYWludC5nZXRNaW4odmFsdWUpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6OkRpc3BsYXlTdXJmYWNlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okxv
Z2ljYWxTdXJmYWNlOiB7Ci0gICAgICAgICAgICBhdXRvJiBib29sQ29uc3RyYWludCA9IGRvd25j
YXN0PEJvb2xlYW5Db25zdHJhaW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIGJvb2wgdmFs
dWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0gYm9vbENvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkZhY2luZ01vZGU6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6RGV2aWNlSWQ6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZDog
ewotICAgICAgICAgICAgYXV0byYgc3RyaW5nQ29uc3RyYWludCA9IGRvd25jYXN0PFN0cmluZ0Nv
bnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmFsdWVz
OwotICAgICAgICAgICAgaW52YWxpZCA9IHN0cmluZ0NvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWVz
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6OlNhbXBsZVNpemU6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1l
OgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb246Ci0g
ICAgICAgICAgICAvLyBJZ25vcmVkLgotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2Fz
ZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpVbmtub3duOgotICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVy
biBpbnZhbGlkOwotICAgIH0pOwotCi0gICAgcmV0dXJuIGludmFsaWQ7Ci19Ci0KIHZvaWQgVXNl
ck1lZGlhUmVxdWVzdDo6c3RhcnQoKQogewogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CkBAIC0xNjIsMjUgKzk0LDYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0
OjpzdGFydCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9yZXF1ZXN0LnR5
cGUgPT0gTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEpIHsKLSAgICAgICAg
aWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KG1fcmVxdWVzdC52aWRlb0Nv
bnN0cmFpbnRzKSkgewotICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6
SWxsZWdhbENvbnN0cmFpbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluL2dldHVz
ZXJtZWRpYS5odG1sI2RvbS1tZWRpYWRldmljZXMtZ2V0dXNlcm1lZGlhKCkKLSAgICAvLyAxLiBM
ZXQgY29uc3RyYWludHMgYmUgdGhlIG1ldGhvZCdzIGZpcnN0IGFyZ3VtZW50LgotICAgIC8vIDIu
IExldCByZXF1ZXN0ZWRNZWRpYVR5cGVzIGJlIHRoZSBzZXQgb2YgbWVkaWEgdHlwZXMgaW4gY29u
c3RyYWludHMgd2l0aCBlaXRoZXIgYSBkaWN0aW9uYXJ5Ci0gICAgLy8gICAgdmFsdWUgb3IgYSB2
YWx1ZSBvZiAidHJ1ZSIuCi0gICAgLy8gMy4gSWYgcmVxdWVzdGVkTWVkaWFUeXBlcyBpcyB0aGUg
ZW1wdHkgc2V0LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBUeXBlRXJyb3IuIFRo
ZSB3b3JkCi0gICAgLy8gICAgIm9wdGlvbmFsIiBvY2N1cnMgaW4gdGhlIFdlYklETCBkdWUgdG8g
V2ViSURMIHJ1bGVzLCBidXQgdGhlIGFyZ3VtZW50IG11c3QgYmUgc3VwcGxpZWQgaW4gb3JkZXIK
LSAgICAvLyAgICBmb3IgdGhlIGNhbGwgdG8gc3VjY2VlZC4KLSAgICBpZiAoIW1fcmVxdWVzdC5h
dWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgIW1fcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQpIHsKLSAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJh
aW50cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyA0LiBJZiB0aGUgY3VycmVu
dCBzZXR0aW5ncyBvYmplY3QncyByZXNwb25zaWJsZSBkb2N1bWVudCBpcyBOT1QgYWxsb3dlZCB0
byB1c2UgdGhlIGZlYXR1cmUgaW5kaWNhdGVkIGJ5CiAgICAgLy8gICAgYXR0cmlidXRlIG5hbWUg
YWxsb3d1c2VybWVkaWEsIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhIERPTUV4Y2Vw
dGlvbiBvYmplY3Qgd2hvc2UgbmFtZQogICAgIC8vICAgIGF0dHJpYnV0ZSBoYXMgdGhlIHZhbHVl
IFNlY3VyaXR5RXJyb3IuCkBAIC0yODksMTAgKzIwMiw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVz
dDo6ZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiByZWFzb24sIGNvbnN0IFN0cmluZyYgbWVz
c2FnCiAKICAgICBFeGNlcHRpb25Db2RlIGNvZGU7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKLSAg
ICBjYXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpJbGxlZ2FsQ29uc3RyYWludDoKLSAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gaW52
YWxpZCBjb25zdHJhaW50cyIpOwotICAgICAgICBjb2RlID0gVHlwZUVycm9yOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzOgog
ICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkg
LSBubyBjb25zdHJhaW50cyIpOwogICAgICAgICBjb2RlID0gVHlwZUVycm9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApp
bmRleCAzOWFiZjYwY2QwNmI4OTcyNWEwYjY3NDM1ZTg4ZTNhMjViNDZmMmYwLi45Y2M3YTJiZDY4
MmI1NTk2MGI5ZjQxMGJhNjA5YmM2Y2VkNGM4OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNjMsNyArNjMs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFEZXZp
Y2VVSURzKGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9E
ZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3coQ2FwdHVyZURldmljZSYm
IGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAotICAg
IGVudW0gTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFE
aXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJy
b3IsIFBlcm1pc3Npb25EZW5pZWQsIEludmFsaWRBY2Nlc3MsIElsbGVnYWxDb25zdHJhaW50LCBP
dGhlckZhaWx1cmUgfTsKKyAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25z
dHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25z
dHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBP
dGhlckZhaWx1cmUgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbnkoTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJpbmcoKSk7
CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURzKCkgY29uc3QgeyBy
ZXR1cm4gbV9hdWRpb0RldmljZVVJRHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDJj
N2UyZDFhMzg2NDM2ZWVhOTU4NGI1NzBmYTY2NWJhOTZmYTMzNjIuLjZmYzc3NWIwYjQ2YTUzYTNj
ZjlmZjBhZTU1ZWU4MTI1MzA3NzQ1YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTA5
OSw2ICs5MDk5LDI2IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gdHM7CiB9CiAKK3ZvaWQgRG9jdW1l
bnQ6OndoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxi
YWNrKQoreworICAgIGF1dG8mIHRvcERvY3VtZW50ID0gdGhpcy0+dG9wRG9jdW1lbnQoKTsKKwor
ICAgIGlmICh0b3BEb2N1bWVudC5oYXNGb2N1cygpKSB7CisgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0b3BEb2N1bWVudC5tX3doZW5Gb2N1c0hhbmRs
ZXJzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmNoYW5n
ZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKQoreworICAgIEFTU0VSVChoYXNGb2N1cygpKTsKKyAgICBh
dXRvIGNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UodG9wRG9jdW1lbnQoKS5tX3doZW5Gb2N1c0hh
bmRsZXJzLCB7IH0pOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAg
ICAgIGNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIERP
Q1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDJjOGRmMzE2ODA2ZDY1
MzZmOWUwY2M1MmI3NGE4NTE3ZTA5N2JlNzYuLmMwNGM0YjA4MTEyOTE3M2FlMjMyM2JhYWI2NmUz
MTRhNWI3ZTI1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00MjksNiArNDI5LDggQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgRWxlbWVudCogYWN0aXZlRWxlbWVudCgpOwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRm9jdXMoKSBjb25zdDsKKyAgICB2b2lkIHdoZW5Ub3BM
ZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNoYW5n
ZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsKIAogICAgIGJvb2wgaGFzTWFuaWZlc3QoKSBjb25zdDsK
ICAgICAKQEAgLTIyNjAsNiArMjI2Miw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxNb2RhbENvbnRhaW5lck9ic2VydmVyPiBtX21vZGFsQ29udGFpbmVyT2JzZXJ2
ZXI7CisKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV93aGVuRm9jdXNIYW5kbGVyczsK
IH07CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGRiMTYyYTRj
NTg5OGZlMmU5NDI4OWYwYzk2ODUwMDAzNzZhM2ZiMGMuLjdjZjhlZmZjOTU1MzgwNDA4NmQ4YTJj
MTg4NTJmOTAxZTVjYWQzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCkBAIC0yMDg5LDYgKzIwODksOSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpmb2N1c2Vk
T3JBY3RpdmVTdGF0ZUNoYW5nZWQoKQogewogICAgIGJvb2wgYWN0aXZlQW5kRm9jdXNlZCA9IGlz
Rm9jdXNlZEFuZEFjdGl2ZSgpOwogCisgICAgaWYgKGFjdGl2ZUFuZEZvY3VzZWQpCisgICAgICAg
IG1fZG9jdW1lbnQtPmNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsKKwogICAgIG1fZG9jdW1l
bnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIAogI2lmIFVTRShVSUtJVF9FRElUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBl
YTdkNzYxMWViNGQ2YTkwODlkMmQyYTkyNTliYmQ5MGE5YTA2Nzg1Li43MWYyYzJmMmZhMjIwZGU5
YThkZDBkMmE2MTM3YTk1Y2UyNDUxNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTUyNiw2ICsxNTI2LDE2IEBAIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCgpOwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRHZXRVc2VyTWVkaWFS
ZXF1aXJlc0ZvY3VzKGVuYWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7Cisg
ICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmdldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMoKTsKK30KKwogdm9pZCBXS1ByZWZlcmVuY2VzU2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCiB7CiAg
ICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxl
ZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IGI2NjRlOWVhMTExY2VkOTgwMjI1N2YyMTJl
Zjc0ZTQ2NGRmODI4ZWMuLmY0Mjg1MGIwOWM3NjMyZmRlZWQ5OTcyNzY5OThiOTAxMTBmNWFjMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaApAQCAtMzk4LDYgKzM5OCwxMCBAQCBXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlKFdLUHJlZmVyZW5jZXNSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVm
YXVsdHMgdG8gdHJ1ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOworV0tfRVhQT1JUIGJvb2wg
V0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1Jl
Zik7CisKIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsK
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA5YzVmOGRhYzU4ZmY5ZTU3NmU1OTUwZTZk
Nzk1YTAzZGZmNTNjNzQwLi4xZTNiMTk2MTNjYjY3ZDc4ZDhjOGE1NzFkZDhjOTI3MDkzMTA3Yjcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlcy5tbQpAQCAtNjUwLDYgKzY1MCwxNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9s
aWN5IHRvQVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiAgICAgX3By
ZWZlcmVuY2VzLT5zZXRNZWRpYURldmljZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCistIChCT09M
KV9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpOworfQorCistICh2b2lkKV9zZXRHZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoZW5hYmxlZCk7Cit9CisKIC0gKEJPT0wpX3NjcmVlbkNh
cHR1cmVFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+c2NyZWVuQ2FwdHVyZUVu
YWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggYzFjNzIzYTFmZjQ3ZWFjMTk2YmQwNjJiM2Uy
NzczMDI0ZjMxZmEwNS4uZDE1NWJhMWYwYjc5Zjk0YjliNmNjMzlhYjdhMDAzMTYwOGNkYmRhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTExNyw2ICsxMTcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UGVlckNvbm5lY3Rpb25FbmFibGVkOikgQk9PTCBfcGVlckNvbm5l
Y3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURldmljZXNFbmFibGVkOikg
Qk9PTCBfbWVkaWFEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEdldFVzZXJNZWRp
YVJlcXVpcmVzRm9jdXM6KSBCT09MIF9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZDopIEJPT0wgX3NjcmVl
bkNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE1vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQ6KSBCT09MIF9tb2NrQ2FwdHVyZURl
dmljZXNQcm9tcHRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHAKaW5kZXggZDkyNjI4MDBlNDcxYzJiYmJlMjliMzgwZTc5ZjNlYmJjNmUyZTFk
Yy4uODhiMjMzNTRiN2Q3ZTc0ZjA3ZDM2NzgwNjJmZDA4YWE4MmZhMGJlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAt
MzgyNyw2ICszODI3LDEyIEBAIHZvaWQgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0dGluZ3MqIHNldHRpCiAgICAgcHJpdi0+cHJl
ZmVyZW5jZXMtPnNldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihyZXF1aXJl
ZCk7CiB9CiAKK3ZvaWQgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
KFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgYm9vbCByZXF1aXJlZCkKK3sKKyAgICBXZWJLaXRT
ZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBwcml2LT5wcmVmZXJl
bmNlcy0+c2V0R2V0VXNlck1lZGlhZFJlcXVpcmVzRm9jdXMocmVxdWlyZWQpOworfQorCiAvKioK
ICAqIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFy
ZHdhcmVfc3VwcG9ydDoKICAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2
YXRlLmgKaW5kZXggMDQ2OWY3ZWMyODM2ODJlMTUyZWRlOTY5YWIzYWFlMGJhY2RhNTQ4Yi4uNDAx
ODlkZGFjN2IzNWQ0MWRlZTJhYjg0N2I5YzJlMjFjNDM0NjM1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgK
QEAgLTMzLDUgKzMzLDYgQEAKIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHdlYmtpdFNldHRpbmdz
R2V0UHJlZmVyZW5jZXMoV2ViS2l0U2V0dGluZ3MqKTsKIAogV0tfRVhQT1JUIHZvaWQgd2Via2l0
U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0
dGluZ3MqLCBib29sIHJlcXVpcmVkKTsKK1dLX0VYUE9SVCB2b2lkIHdlYmtpdFNldHRpbmdzU2V0
R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhXZWJLaXRTZXR0aW5ncyosIGJvb2wgcmVxdWlyZWQp
OwogCiAjZW5kaWYgLy8gV2ViS2l0U2V0dGluZ3NQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Njg3OTRmNzM0ZjFjMTE5NzUwNmYw
YmNlNzA1MTRhYWRmNmQwMjYzLi40NmQ0OWZhNmZiMTM2MWNjMTQ0ZDc5NDMxOWVjMzQ1MmRmNTM5
YTYxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMjItMDEtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlzYWJsZSBmb2N1
cyBmbGFnIGZvciB0ZXN0aW5nIHRvIG5vdCByZXF1aXJlIHRvIGZvY3VzIHRoZSB3aW5kb3cuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlv
bik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkb0NhcHR1cmVNdXRlVGVzdCk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNl
ck1lZGlhUmVwcm9tcHQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0
YWNoZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9B
dWRpb0J1ZmZlclNpemUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dl
dERpc3BsYXlNZWRpYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdldERpc3BsYXlNZWRp
YVRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlRGlzYWJsZWRUZXN0OjpT
ZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVk
aWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06CisgICAgICAgIChNZWRpYUNhcHR1cmVTaW11bGF0
ZUZhaWxlZFNhbmRib3g6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3VXNlck1lZGlh
RW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayk6CisgICAgICAgICh0ZXN0V2ViVmlld1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgICh0ZXN0V2ViVmlld0F1ZGlvT25s
eVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisKIDIwMjItMDEtMDkgIFNhbSBXZWluaWcg
IDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBEaXJlY3Qy
RApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1l
ZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1t
CmluZGV4IDkzNjJlZjM1N2U5YjA4NjEwMzRmYmVjMzM4Y2IxOThhMTkxYjZiZmEuLjY1YmZiZGVm
MDgyMjQ2MDgyM2NmZDYxYWEzNzI4NzQ5NWIyYjFkYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KQEAgLTE1MiwxNCArMTUyLDIxIEBA
IGJvb2wgd2FpdFVudGlsQ2FwdHVyZVN0YXRlKFdLV2ViVmlldyAqd2ViVmlldywgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkIGV4CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIGRv
Q2FwdHVyZU11dGVUZXN0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoVGVzdFdLV2ViVmlldyosIF9XS01l
ZGlhTXV0ZWRTdGF0ZSk+JiBzZXRQYWdlTXV0ZWQpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbihXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0
aW9uKQogewotICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFk
b3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBh
dXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgY29u
ZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5f
bWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJh
dGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5f
bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POworfQorCit2b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNv
bnN0IEZ1bmN0aW9uPHZvaWQoVGVzdFdLV2ViVmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBz
ZXRQYWdlTXV0ZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24u
Z2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNh
cHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0yMzUsMTAgKzI0Miw3IEBAIFRFU1QoV2ViS2l0MiwgQ2Fw
dHVyZU11dGVBUEkpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0g
ICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5P
OwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0g
ICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5p
dGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQo
KV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKQEAgLTM0MCwxMCArMzQ0LDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlU3RvcCkK
IHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5T
KFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBw
cmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNl
cy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmln
dXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNl
cy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFD
YXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVz
c2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
ICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC0z
NzgsMTAgKzM3OSw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5KQogewog
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZl
cmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0
aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1
cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdl
SGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAg
IFtbY29uZmlndXJhdGlvbi5nZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1l
c3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQxNCwx
MCArNDEyLDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlSW5kaWNhdG9yRGVsYXlXaGVuQ2xvc2Vk
KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0
TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRv
IHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25m
aWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVu
Y2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRp
YUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBt
ZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNj
cmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAg
LTQ0MiwxMCArNDM3LDcgQEAgVEVTVChXZWJLaXQyLCBHZXRDYXBhYmlsaXRpZXMpCiB7CiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5j
ZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5k
bGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tj
b25maWd1cmF0aW9uLmdldCgpIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDczLDEwICs0
NjUsNyBAQCBURVNUKFdlYktpdCwgSW50ZXJydXB0aW9uQmV0d2VlblNhbWVQcm9jZXNzUGFnZXMp
CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwog
I2VuZGlmCiAKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0g
WUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwor
ICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0
KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFu
ZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRy
b2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6
QCJndW0iXTsKQEAgLTUzMiwxMCArNTIxLDcgQEAgVEVTVChXZWJLaXQsIFBlcm1pc3Npb25EZWxl
Z2F0ZVBhcmFtZXRlcnMpCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0QWxsb3dzSW5saW5lTWVkaWFQ
bGF5YmFjazpZRVNdOwogI2VuZGlmCiAKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNh
cHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRU
b1dpbmRvdzpZRVNdKTsKQEAgLTU1NSwxMCArNTQxLDcgQEAgVEVTVChXZWJLaXQsIFdlYkF1ZGlv
QW5kR2V0VXNlck1lZGlhKQogICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAo
V0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5w
cm9jZXNzUG9vbC5fY29uZmlndXJhdGlvbi5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9
IE5POwogCi0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9u
ID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlF
UzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAg
ICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgp
KTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRD
b250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBu
YW1lOkAiZ3VtIl07CkBAIC01OTEsOSArNTc0LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVBy
b2Nlc3NXaGlsZUNhcHR1cmluZykKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxl
ZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJl
ZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAg
IGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJl
ZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6
ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBh
dXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAt
NjY2LDkgKzY0Nyw3IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzQWZ0ZXJBcHBseWlu
Z0NvbnN0cmFpbnRzKQogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpA
IkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQiXSkKICAgICAgICAgICAgIFtwcmVmZXJl
bmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAg
ICAgfQotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0g
WUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwor
ICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0
KCkpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBbY29uZmlndXJhdGlvbiBzZXRB
bGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOllFU107CkBAIC03NDYsOSArNzI1LDcgQEAgVEVTVChX
ZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NXaGlsZUNhcHR1cmluZ0FuZENhbGxpbmcpCiAgICAgICAg
ICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CiAg
ICAgfQogCi0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5n
ZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFt
ZTpAImd1bSJdOwpAQCAtODY3LDEwICs4NDQsNyBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZp
c2liaWxpdHlDaGFuZ2UpCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1N
ZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdl
dCgpIG5hbWU6QCJndW0iXTsKIAotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVy
ZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmln
dXJhdGlvbi5nZXQoKSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2lu
ZG93OllFU10pOwpAQCAtODk4LDYgKzg3Miw3MCBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZp
c2liaWxpdHlDaGFuZ2UpCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvVGVzdCgpIl07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0K
Kworc3RhdGljIGNvbnN0IGNoYXIqIGdldFVzZXJNZWRpYUZvY3VzVGV4dCA9IFIiRE9DRE9DRE9D
KAorPGh0bWw+PGJvZHk+Cis8c2NyaXB0Pgorb25sb2FkID0gKCkgPT4geworICAgIGRvY3VtZW50
Lm9udmlzaWJpbGl0eWNoYW5nZSA9ICgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
Lmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOworfQorCitmdW5jdGlvbiBjYXB0dXJlKCkKK3sK
KyAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW8gOiB0cnVlfSku
dGhlbihzdHJlYW0gPT4geworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5n
dW0ucG9zdE1lc3NhZ2UoZG9jdW1lbnQuaGFzRm9jdXMoKSA/ICJQQVNTIiA6ICJGQUlMIik7Cisg
ICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CispRE9DRE9DRE9DIjsKKworVEVT
VChXZWJLaXQsIEdldFVzZXJNZWRpYUZvY3VzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBT
ZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgZ2V0VXNlck1lZGlhRm9jdXNUZXh0IH0g
fQorICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwLCBudWxs
cHRyLCBudWxscHRyLCA5MDkwKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1
cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgp
OworCisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xs
ZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJn
dW0iXTsKKworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBZ
RVM7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwor
CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOworICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRl
LmdldCgpOworCisgICAgLy8gTG9hZCBwYWdlLgorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNl
cnZlci5yZXF1ZXN0KCldOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisK
KyAgICAvLyBNaW5pbWl6ZQorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvICpob3N0V2luZG93
ID0gW3dlYlZpZXcgaG9zdFdpbmRvd107CisgICAgW2hvc3RXaW5kb3cgbWluaWF0dXJpemU6aG9z
dFdpbmRvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8v
IFdlIGNhbGwgY2FwdHVyZSB3aGlsZSBtaW5pbWl6aW5nLgorICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZSgpIl07CisK
KyAgICAvLyBNYWtlIHN1cmUgdGhhdCBnZXRVc2VyTWVkaWEgZG9lcyBub3QgcmVzb2x2ZSB0b28g
c29vbi4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgxMDApOworICAgIEVY
UEVDVF9GQUxTRShkb25lKTsKKworICAgIFtob3N0V2luZG93IGRlbWluaWF0dXJpemU6aG9zdFdp
bmRvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKIFRFU1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMp
CkBAIC05MjQsMTAgKzk2Miw3IEBAIFRFU1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2Fs
dHMpCiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRh
U3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKLSAg
ICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIGNv
bmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVy
ZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCmluZGV4IDEyY2E3NDYyZDVhYmNkYmNkZDEx
OGVlNjNiZTVmMzU4MTE5NWM2OTkuLmE3NjA5ZDM0NTJlM2NkMDg4ZTMyNjcwY2FkNjJhNzAzMWU0
ODkyMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYU5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQpAQCAtNjcsNiArNjcsMTYgQEAgc3RhdGljIGJv
b2wgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0gZmFsc2U7CiAKIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIAorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRp
b24oV0tXZWJWaWV3Q29uZmlndXJhdGlvbiogY29uZmlndXJhdGlvbikKK3sKKyAgICBhdXRvIHBy
ZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJh
dGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX21v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJN
ZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKK30KKwogVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVyaW5n
R2V0VXNlck1lZGlhUHJvbXB0KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC04OCwxMCArOTgsNyBA
QCBURVNUKFdlYktpdCwgTmF2aWdhdGVEdXJpbmdEZXZpY2VFbnVtZXJhdGlvbikKIHsKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNl
cyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5n
ZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29u
ZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CkBAIC0xMTcsMTAgKzEyNCw3IEBAIFRFU1QoV2ViS2l0LCBEZWZhdWx0RGV2
aWNlSWRIYXNoU2FsdHNEaXJlY3RvcnkpCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJh
dGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKS5nZXQoKV07CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZl
cmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0
aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1
cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW05hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3Bs
YXllZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKQEAgLTE0NywxMCArMTUxLDcgQEAgVEVTVChXZWJLaXQsIERldmlj
ZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRp
b24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuZ2V0KCldOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJl
bmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlv
bi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJl
Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5
ZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCmluZGV4IDA3ZjU3ZDAxMjVlMDQ5OTIwMTVi
MzBmMTY4NmRkYTNmZTIwNTBmYWUuLjdhY2QzNjg2NzU0N2M1YmYwZTE0MTc2NTUwMzAzYzU2MGMx
ZTc5N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYVJlcHJvbXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCkBAIC02MCwxNCArNjAsMjIgQEAKIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCitzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29u
ZmlndXJhdGlvbihXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKQoreworICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisKKyAgICBj
b25maWd1cmF0aW9uLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2Vz
Ll9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5f
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POworfQorCiBURVNUKFdlYktpdDIsIEdldFVz
ZXJNZWRpYVJlcHJvbXB0KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
OwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24g
PSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVT
OwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAg
IGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkp
OwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXByb21wdFRlc3RW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJv
Y2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Vz
ZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0
VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xMDAsMTAgKzEwOCw3IEBAIFRFU1QoV2Vi
S2l0MiwgR2V0VXNlck1lZGlhUmVwcm9tcHRBZnRlckF1ZGlvVmlkZW9CZWluZ0RlbmllZCkKIHsK
ICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtb
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5f
bWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJh
dGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5f
bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0
dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbR2V0VXNlck1lZGlhUmVwcm9tcHRUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgp
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFtkZWxlZ2F0ZSBzZXRBdWRpb0RlY2lzaW9uOldLUGVy
bWlzc2lvbkRlY2lzaW9uR3JhbnRdOwpAQCAtMTIzLDEwICsxMjgsNyBAQCBURVNUKFdlYktpdDIs
IE11bHRpcGxlR2V0VXNlck1lZGlhU3luY2hyb25vdXNseSkKIHsKICAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwog
ICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihj
b25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbR2V0VXNl
ck1lZGlhUmVwcm9tcHRUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFj
aGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFj
a0RldGFjaGVkLm1tCmluZGV4IDg3MzZlYTQ2NDlkMmI0YWE3YTEyYzZjZTA1ZTcyYTFkYzdkMzRl
OTguLjk3MmJhNmFkMWJiNzdiZDE0N2E3YWFlNDk5ZGViY2VhNjM3YmNmYTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hl
ZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWQubW0KQEAgLTYxLDYgKzYxLDcgQEAgVEVTVChXZWJLaXQsIE1lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZCkKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1
cmVDb25uZWN0aW9uID0gTk87CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5P
OwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcu
Z2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW01lZGlhU3RyZWFtVHJhY2tE
ZXRhY2hlZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICB3ZWJWaWV3LmdldCgpLlVJRGVs
ZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Vc2VyTWVkaWEuY3BwCmluZGV4IDU3NTE5NzNhNTg4Nzg5ZTRmZTlmODZlOTU1MzVlYjU1
ZTJmZDdlMTMuLmIyMzRjMjhiOGQxNmJhMzA2ODEzMTBkN2E1NjQxOGQ5OWY4Mjg4ZjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcApAQCAtNzcs
NiArNzcsNyBAQCBURVNUKFdlYktpdCwgVXNlck1lZGlhQmFzaWMpCiAgICAgV0tQcmVmZXJlbmNl
c1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKICAgICBXS1BhZ2VVSUNs
aWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVu
dCkpOwpAQCAtMTEzLDYgKzExNCw3IEBAIFRFU1QoV2ViS2l0LCBPbkRldmljZUNoYW5nZUNyYXNo
KQogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1By
ZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywgZmFsc2Up
OwogCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50
LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTE3Myw2ICsxNzUsNyBAQCBURVNUKFdlYktpdCwg
RW51bWVyYXRlRGV2aWNlc0NyYXNoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJv
bUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1Nl
dE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2Up
OwogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1
cyhwcmVmZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsK
ICAgICAvLyBXZSB3YW50IHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
biB0byBiZSBudWxsLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQppbmRleCA1MzNkZTFlYzRkNmRhNDAwNWQ5OGE3
OThjZTk3NmE1ZDllMDIzNDM5Li45ZGQ2MjljYThiNjRjYTYwZGNlOTRlZThjMGZjOGFkNjdiYWYz
MTJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1
ZGlvQnVmZmVyU2l6ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQpAQCAtNzIsNiArNzIsNyBAQCBURVNUKFdlYktpdCwgQXVk
aW9CdWZmZXJTaXplKQogICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107CiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwogICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmlu
ZGV4IDJmMTA2OTQ0NGE3ZTE4NzBjZDJkYTkyYmFkNzljYjI4OWM3ZDBiNDYuLjkyM2MzODMzOGMy
N2QxZGQ2MDg4MGIzYTg4YzJiNDA2OTU5YWE0OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTY5Niw2ICs2OTYsNyBA
QCBURVNUKEdQVVByb2Nlc3MsIEV4aXRzVW5kZXJNZW1vcnlQcmVzc3VyZVdlYlJUQ0Nhc2UpCiAg
ICAgICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24g
PSBOTzsKICAgICAgICAgY29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsK
ICAgICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7Cisg
ICAgICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAg
fSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KaW5k
ZXggZGUwNTAzMDM3ZjZjOWFhMmRhYmM1MjkwMzE1YzhjMWIyYzI0YzU1OS4uZTdjN2Q2MmNkMGNi
MmRhMWJkZjcxZTc2Y2Y5MGM4NTUzYjNiYWQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KQEAgLTEwNCwx
MCArMTA0LDExIEBAIHB1YmxpYzoKICAgICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9zY3JlZW5DYXB0dXJlRW5h
YmxlZCA9IFlFUzsKIAotICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgICAgICBtX3dlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRv
dzpZRVNdKTsKIAogICAgICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbR2V0RGlzcGxheU1l
ZGlhVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgICAgICBtX3dlYlZpZXcuZ2V0KCkuVUlE
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5nZXQoKTsKKyAgICAgICAgW21fd2ViVmlldyBmb2N1c107
CiAKICAgICAgICAgW21fd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJn
ZXREaXNwbGF5TWVkaWEiXTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpp
bmRleCBjNTMzODBjYjEyOWYzYjQzM2IzOTBhM2ZkZThkNzdhZGRmNjJkMjk3Li5jOTIyYjYzYTI3
MTZkYWVmNDYxMjFlZDM3NzNjN2ZkNDY5NTE1MzE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KQEAgLTY4MjgsNiArNjgyOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdldFVzZXJN
ZWRpYUNhcHR1cmVTdGF0ZSkKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuX21l
ZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVz
Rm9jdXMgPSBOTzsKIAogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbC5nZXQoKV07CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCmluZGV4IDQwYzA4ZTM1YTZhNWQ2
ZWM0NzNkN2ZhMzYzMDBlMDBhZTJjZGNjYzAuLjJjMTY0NGQxYjY4YWY2ZDAyNjIzMmQ2M2Y0NjI1
MjM5ZmIwYjcwZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQpAQCAtMTYyLDYgKzE2Miw3IEBAIFRF
U1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25FcnJvcldoZW5TdGFydGluZ0F1ZGlvQ2FwdHVy
ZU9uRGlmZmVyZW50UGFnZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0g
WUVTOwogICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5P
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBmaXJzdFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbZmlyc3RXZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXgg
NTc2MDFjNzE5ZWI4MDA2ZjczNTFiZGEyMDA4ZTZlMDZlOGIwMjU4MS4uMTc3OWZhYWQzNjkwODc0
MmI0YWQ3YzE5NzA3MGMzYzU3Y2YyNjllNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCkBAIC04Miw2
ICs4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFttX3dlYlZpZXcg
Y29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgICAgIHByZWZlcmVuY2VzLl9n
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAKICAgICAgICAgbV91aURlbGVnYXRlID0g
YWRvcHROUyhbW1VzZXJNZWRpYVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21f
d2ViVmlldyBzZXRVSURlbGVnYXRlOm1fdWlEZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFp
bGVkU2FuZGJveC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCmluZGV4IDI0ZGMzNTEyZjg0MGM1ZWMyZTFh
ODkwZWIzZTgyMTliZjNjMzE1ZDIuLmQ3M2ExYWVmODFlMzEzNjE1OGE3MjBhMmRmMmJlMjMzYWE4
ZjI3OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCkBA
IC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFttX3dl
YlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgICAgIHByZWZlcmVu
Y2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAKICAgICAgICAgbV91aURlbGVn
YXRlID0gYWRvcHROUyhbW1NpbXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICAgICAgW21fd2ViVmlldyBzZXRVSURlbGVnYXRlOm1fdWlEZWxlZ2F0ZS5nZXQo
KV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFVJQ2xpZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
VUlDbGllbnQuY3BwCmluZGV4IDI5OGU3NWFkNTAzYzkxZTY0YTQwMmM2ZGEzYjg3MGRmMzM1Yjcy
MWUuLjI4NGY4MDRiNjQxMDViODRiNjc2MjgzNzhjZThjZjBjMTk3MmFjZjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3Bw
CkBAIC0xMDAyLDYgKzEwMDIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVu
dW1lcmF0ZURldmljZXNQZXJtaXNzaW9uQ2hlY2soVUlDbGllbnRUZXN0KiB0ZQogICAgIGdib29s
ZWFuIGVuYWJsZWQgPSB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0
dGluZ3MpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0
aW5ncywgVFJVRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIEZBTFNFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIEZBTFNFKTsKICAgICB3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAK
ICAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKQEAgLTEwMzcsNiArMTAzOCw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhV
SUNsaWVudFRlc3QqIHRlCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3Ry
ZWFtKHNldHRpbmdzLCBlbmFibGVkKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9t
b2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdFNldHRpbmdz
U2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsK
KyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3Ms
IFRSVUUpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC0xMDQ2LDYgKzEw
NDgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfbW9ja19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIFRSVUUpOwogICAgIHdl
YmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRp
bmdzLCBGQUxTRSk7CisgICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0Zv
Y3VzKHNldHRpbmdzLCBGQUxTRSk7CiAKICAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKICAgICBz
dGF0aWMgY29uc3QgY2hhciogdXNlck1lZGlhUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgpAQCAtMTEw
NSw2ICsxMTA4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2kKICAgICB3ZWJraXRfc2V0dGlu
Z3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJsZWQpOwogICAgIHdlYmtp
dF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBGQUxT
RSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24oc2V0dGluZ3MsIFRSVUUpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJW
aWV3QXVkaW9Pbmx5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKQEAgLTExMTQsNiArMTExOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJWaWV3QXVkaW9Pbmx5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCog
dGVzdCwKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGlu
Z3MsIFRSVUUpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9k
ZXZpY2VzKHNldHRpbmdzLCBUUlVFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihzZXR0aW5ncywgRkFMU0UpOworICAgIHdlYmtpdFNl
dHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgRkFMU0UpOwogCiAg
ICAgdGVzdC0+c2hvd0luV2luZG93KCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJNZWRp
YVJlcXVlc3RIVE1MID0gIjxodG1sPiIKQEAgLTExNDQsNiArMTE0OSw3IEBAIHN0YXRpYyB2b2lk
IHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50
VGVzdCogdGVzdCwKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0o
c2V0dGluZ3MsIGVuYWJsZWQpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tf
Y2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRSVUUpOworICAg
IHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgVFJV
RSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RGlzcGxheVVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDlk
YjRiMmFmY2NjYWJmMmU0ZjhiNTk1ZDk3MzMxOTY3ODBkOWUzNi4uNzM5MDVjYWNhYTQ1ZjJiNWFm
NWE5YmE3YjE0ZWQyMWJiMjhiZjVhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAxLTEx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZv
Y3VzIGNoZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNl
ck1lZGlhLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2VyQ2xpZW50LmlkIGEgVVVJ
RCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2ZWQgZnJvbSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dAppbmRleCAy
MjY1NzhmNmYwY2Y2MGVjYjE0ZDMwY2YzZjg1ZTJlYzA2M2Q1MDQ2Li40Njk2MjcxZDllYzA2NzQ1
NGM4NjkwMTY2OGY1OTg1MDBiNTU5MjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBl
Y3RlZC50eHQKQEAgLTYsOCArNiw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHR5
cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLndlYmtpdEdldFVzZXJNZWRpYSBpcyAndW5kZWZp
bmVkJwogCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0
cnVlfSkudGhlbihnb3RTdHJlYW0xKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjog
VHlwZUVycm9yOiBUeXBlIGVycm9yCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHt9KSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BB
U1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVy
cm9yOiBUeXBlRXJyb3I6IE5vIGNvbnN0cmFpbnRzIHByb3ZpZGVkCitQQVNTIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJy
b3I6IE5vIGNvbnN0cmFpbnRzIHByb3ZpZGVkCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhLmFwcGx5KHVuZGVmaW5lZCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVy
cm9yOiBDYW4gb25seSBjYWxsIE1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgb24gaW5zdGFuY2Vz
IG9mIE1lZGlhRGV2aWNlcwogUEFTUyBTdHJlYW0gMSBnZW5lcmF0ZWQuCiBQQVNTIHN0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448929</attachid>
            <date>2022-01-12 04:00:49 -0800</date>
            <delta_ts>2022-01-12 06:40:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220112130045.patch</filename>
            <type>text/plain</type>
            <size>58822</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAwNzkxMWQ1NjQ4ZDYwYWU3MmU0ZGRh
ZWFjNDQ0ZjAxMDNlMjZjNjUuLmE5YWVhOTEzOTM5OGNhN2EzN2M5ZmQzMzY3YTEwZWM5OWMyYTVm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjEtMTEt
MjkgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJp
YWxpemUgQ1NTIDxudW1iZXI+IHZhbHVlcyB3aXRoIHJvdW5kaW5nLCBsaW1pdGVkIGRlY2ltYWwg
cHJlY2lzaW9uLCBhbmQgbm8gZXhwb25lbnRzIHBlci1zcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmYzE3
MGVhNjZmNzQyYmZjZjhiMjFiY2E1MTkwZTRkMDJmMzE1Mi4uZmI3MWFhMTQxOTBhOTUxOTBiMDg4
MDgyZGE1OWJkZWRlZTQ3MTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAx
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNl
IGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgYSBjYWxs
YmFjayBzbyB0aGF0IGEgdGFzayBpcyBleGVjdXRlZCB3aGVuIHRoZSB0b3AgbGV2ZWwgZG9jdW1l
bnQgaGFzIGZvY3VzLgorICAgICAgICBVc2UgdGhpcyB0byBkZWxheSBnZXRVc2VyTWVkaWEgcmVx
dWVzdHMgdW50aWwgdG9wIGxldmVsIGRvY3VtZW50IGhhcyBmb2N1cy4KKyAgICAgICAgVGhlIHNw
ZWMgY3VycmVudGx5IGRlZmluZXMgdGhhdCB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGN1cnJlbnQg
ZG9jdW1lbnQgdG8gaGF2ZSBmb2N1cyBidXQgdGhpcyBpcyBhYm91dCB0byBiZSBjaGFuZ2VkIGFu
ZCBpcyBub3QgYWxpZ25lZCB3aXRoIG90aGVyIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zLgorCisg
ICAgICAgIFRoZSBwYXRjaCBhbHNvIG1vdmVzIHNvbWUgZ2V0VXNlck1lZGlhIGNoZWNrcyBlYXJs
aWVyIHNvIGFzIHRvIHJlc3BlY3Qgb3JkZXIgcHJvdmlkZWQgYnkgdGhlIHNwZWNzLgorCisgICAg
ICAgIENvdmVyZWQgYnkgQVBJIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorCiAyMDIyLTAx
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
RmV0Y2hFdmVudC50YXJnZXRDbGllbnRJZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMjgwM2ViNGM2OTJmMWU0Yzc5
N2EzZDM2ZDYwODk2MDkyNmExZTZlLi4yMTNmNjIzZjUxZWQzZTdlNTllMjRjMzQ3MTg3MDdmOGVm
Y2NjMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTEyICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZv
ciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBBZGQgc2V0dGVycy9nZXR0ZXJzIGZvciB0aGUgZ2V0VXNlck1lZGlhIGZvY3VzIHNldHRp
bmdzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJl
bmNlcyBfZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1c10pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIF9zZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0U2V0dGluZ3NTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0U2V0dGluZ3NQcml2YXRlLmg6CisKIDIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgY29tcHV0YXRpb24gb2Ygc2Vydmlj
ZSB3b3JrZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
aW5kZXggMWMwNzA1MTNkZTdhM2Q2MzRhMDJmNWJmNjc3ZWM5OWZlMjc5NGZmYi4uNjY3MTBmODQ5
ZjlkMWFhNmZmYzJmYTg5ZGZlYjRmNTI0M2M5MjY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBA
IC0yOTMsNiArMjkzLDE5IEBAIEZ1bGxTY3JlZW5FbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAg
ICBkZWZhdWx0OiBmYWxzZQogCitHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUmVxdWlyZSBmb2N1cyB0byBzdGFydCBnZXRVc2Vy
TWVkaWEiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlJlcXVpcmUgZm9jdXMgdG8gc3Rh
cnQgZ2V0VXNlck1lZGlhIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0
OiB0cnVlCisKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
d2ViY29yZU9uQ2hhbmdlOiBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkQ2hhbmdlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5NmUxNTY1ZjU4ZTUuLjE1ZTkyY2I0
OWUzZmM4OTdmNDczZTlhMGEzNzZkMTc0YTliMTljM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTExOCwxNSArMTE4
LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNlckdlc3R1cmVQcml2aWxlZGdlKEdl
c3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRV
c2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYg
cHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBj
cmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKTsKKworICAgIGlmICghYXVk
aW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8gY29uc3RyYWludHMgcHJvdmlkZWQi
X3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5pc0Z1bGx5QWN0
aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIl9zIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25z
dHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0g
Y3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7Ci0KICAgICBib29sIGlz
VXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAgICAgaWYgKGF1ZGlvQ29uc3RyYWlu
dHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODUgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVz
ZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgog
ICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9j
dW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVk
aW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQ
cml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICByZXF1ZXN0LT5zdGFydCgpOwor
CisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGluZ3MoKS5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
KCkpIHsKKyAgICAgICAgcmVxdWVzdC0+c3RhcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGRvY3VtZW50LT53aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKFtyZXF1ZXN0ID0g
V1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICBpZiAocmVxdWVzdC0+aXNDb250ZXh0U3RvcHBl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0LT5zdGFydCgpOworICAg
IH0pOworfQorCitzdGF0aWMgYm9vbCBoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWlu
dChjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICAvLyBodHRwczov
L3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXNjcmVlbi1zaGFyZS8jbmF2aWdhdG9yLWFkZGl0
aW9ucworICAgIC8vIDEuIExldCBjb25zdHJhaW50cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJn
dW1lbnQuCisgICAgLy8gMi4gRm9yIGVhY2ggbWVtYmVyIHByZXNlbnQgaW4gY29uc3RyYWludHMg
d2hvc2UgdmFsdWUsIHZhbHVlLCBpcyBhIGRpY3Rpb25hcnksIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgorICAgIC8vICAgICAxLiBJZiB2YWx1ZSBjb250YWlucyBhIG1lbWJlciBuYW1lZCBhZHZh
bmNlZCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBl
RXJyb3IuCisgICAgLy8gICAgIDIuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIHdoaWNoIGlu
IHR1cm4gaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYSBtZW1iZXIgbmFtZWQgZWl0aGVyIG1p
biBvcgorICAgIC8vICAgICAgICBleGFjdCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisgICAgaWYgKCFjb25zdHJhaW50cy5pc1ZhbGlk
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWNvbnN0cmFpbnRzLmFkdmFuY2Vk
Q29uc3RyYWludHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGJvb2wg
aW52YWxpZCA9IGZhbHNlOworICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmZp
bHRlcihbJmludmFsaWRdIChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIG11dGFi
bGUgeworICAgICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3RyYWludFR5cGUoKSkgeworICAg
ICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgorICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkhlaWdodDogeworICAgICAgICAgICAgYXV0byYgaW50Q29uc3RyYWlu
dCA9IGRvd25jYXN0PEludENvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgaW50
IHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGludENvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGludENvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRp
bzoKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6IHsKKyAgICAg
ICAgICAgIGF1dG8mIGRvdWJsZUNvbnN0cmFpbnQgPSBkb3duY2FzdDxEb3VibGVDb25zdHJhaW50
Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgICAgIGlu
dmFsaWQgPSBkb3VibGVDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKSB8fCBkb3VibGVDb25zdHJh
aW50LmdldE1pbih2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6IHsKKyAgICAgICAgICAgIGF1
dG8mIGJvb2xDb25zdHJhaW50ID0gZG93bmNhc3Q8Qm9vbGVhbkNvbnN0cmFpbnQ+KGNvbnN0cmFp
bnQpOworICAgICAgICAgICAgYm9vbCB2YWx1ZTsKKyAgICAgICAgICAgIGludmFsaWQgPSBib29s
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZToKKyAgICAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKKyAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOiB7CisgICAgICAgICAgICBhdXRvJiBzdHJpbmdDb25z
dHJhaW50ID0gZG93bmNhc3Q8U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAg
ICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXM7CisgICAgICAgICAgICBpbnZhbGlkID0gc3RyaW5n
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGU6CisgICAg
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZToKKyAgICAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWU6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6RWNob0NhbmNlbGxhdGlvbjoKKyAgICAgICAgICAgIC8vIElnbm9yZWQuCisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGludmFsaWQ7CisgICAgfSk7CisKKyAgICByZXR1
cm4gaW52YWxpZDsKIH0KIAogdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25z
dCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJiBw
cm9taXNlKQpAQCAtMTUzLDcgKzIzNiwxOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxh
eU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVz
dDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlN
ZWRpYSwgeyB9LCBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKSwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8p
OworICAgIGlmIChoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludCh2aWRlb0NvbnN0
cmFpbnRzKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJnZXREaXNwbGF5TWVkaWEgbXVzdCBiZSBjYWxsZWQgd2l0aCB2YWxpZCBjb25zdHJhaW50cy4i
X3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWRvY3VtZW50LT5pc0Z1
bGx5QWN0aXZlKCkgfHwgIWRvY3VtZW50LT50b3BEb2N1bWVudCgpLmhhc0ZvY3VzKCkpIHsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1
bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3MgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1
ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2
aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcAppbmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgxZDViYzY3
ZGY1Li5jMzliOGYwYTc3ZTNiZTNiNmU3YTVkZTRiMDVjNWQwZTY0MTFmMjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKQEAgLTg1LDc0ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0
Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4dCA/ICZj
b250ZXh0LT50b3BPcmlnaW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhhc0ludmFs
aWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzKQotewotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2Ny
ZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRz
IGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFjaCBtZW1i
ZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlv
bmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZhbHVlIGNv
bnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVk
IHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYgdmFsdWUg
Y29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmlu
ZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0LCByZXR1
cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAg
ICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29u
c3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29uc3RyYWlu
dC5jb25zdHJhaW50VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
V2lkdGg6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7Ci0gICAg
ICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29u
c3RyYWludCk7Ci0gICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0g
aW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFs
dWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkZyYW1lUmF0ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9
IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgZG91
YmxlIHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhh
Y3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
aXNwbGF5U3VyZmFjZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2Fs
U3VyZmFjZTogewotICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxC
b29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZhbHVlOwot
ICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRl
dmljZUlkOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKLSAg
ICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJh
aW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKLSAg
ICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6U2FtcGxlUmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpT
YW1wbGVTaXplOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKLSAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgotICAgICAg
ICAgICAgLy8gSWdub3JlZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaW52
YWxpZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVzZXJNZWRp
YVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwpAQCAtMTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3Rh
cnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50eXBlID09
IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAgIGlmICho
YXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9Db25zdHJh
aW50cykpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OklsbGVn
YWxDb25zdHJhaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1c2VybWVk
aWEuaHRtbCNkb20tbWVkaWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4gTGV0IGNv
bnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBMZXQg
cmVxdWVzdGVkTWVkaWFUeXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNvbnN0cmFp
bnRzIHdpdGggZWl0aGVyIGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEgdmFsdWUg
b2YgInRydWUiLgotICAgIC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhlIGVtcHR5
IHNldCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBUaGUgd29y
ZAotICAgIC8vICAgICJvcHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRvIFdlYklE
TCBydWxlcywgYnV0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVyCi0gICAg
Ly8gICAgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3QuYXVkaW9D
b25zdHJhaW50cy5pc1ZhbGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlk
KSB7Ci0gICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJlbnQgc2V0
dGluZ3Mgb2JqZWN0J3MgcmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQgdG8gdXNl
IHRoZSBmZWF0dXJlIGluZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1lIGFsbG93
dXNlcm1lZGlhLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNlcHRpb24g
b2JqZWN0IHdob3NlIG5hbWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1ZSBTZWN1
cml0eUVycm9yLgpAQCAtMjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1lc3NhZwog
CiAgICAgRXhjZXB0aW9uQ29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2Fz
ZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGludmFsaWQg
Y29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoKICAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gbm8g
Y29uc3RyYWludHMiKTsKICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXgg
MzlhYmY2MGNkMDZiODk3MjVhMGI2NzQzNWU4OGUzYTI1YjQ2ZjJmMC4uOWNjN2EyYmQ2ODJiNTU5
NjBiOWY0MTBiYTYwOWJjNmNlZDRjODk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2aWNlVUlE
cyhjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
VUlEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRp
b0RldmljZSwgQ2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICBlbnVt
IE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJs
ZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQ
ZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBJbGxlZ2FsQ29uc3RyYWludCwgT3RoZXJG
YWlsdXJlIH07CisgICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWlu
dHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWlu
dCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgT3RoZXJG
YWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOwogCiAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MDM5YzE0
NjhjOTkwNmU5OWNhYmUwMDMxMjNmMzhhMmNhOGRjMjliLi40YzZlNTRjNmZhZmU3MTBlMDM2MDkx
ODk0ODJkZjY2YWY4NTQxODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTkwOTksNiAr
OTA5OSwyNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIHRzOwogfQogCit2b2lkIERvY3VtZW50Ojp3
aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IHRoaXMtPnRvcERvY3VtZW50KCk7CisKKyAgICBp
ZiAodG9wRG9jdW1lbnQuaGFzRm9jdXMoKSkgeworICAgICAgICBjYWxsYmFjaygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgdG9wRG9jdW1lbnQubV93aGVuRm9jdXNIYW5kbGVycy5h
cHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2b2lkIERvY3VtZW50OjpjaGFuZ2VkVG9B
Y3RpdmVBbmRGb2N1c2VkKCkKK3sKKyAgICBBU1NFUlQoaGFzRm9jdXMoKSk7CisgICAgYXV0byBj
YWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKHRvcERvY3VtZW50KCkubV93aGVuRm9jdXNIYW5kbGVy
cywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKQorICAgICAgICBj
YWxsYmFjaygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NVTUVO
VF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiY2JjZGY5ZjViZGI1ZDA4YTAx
YzFiMjMyZTc3NzgzMGE5YmEyYzA1Li5mN2JiNDdjMmRkMWMzNDE3ZDViYTVjZGY5NTc5NTZjMzQz
NzYzZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDI5LDYgKzQyOSw4IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGhhc0ZvY3VzKCkgY29uc3Q7CisgICAgdm9pZCB3aGVuVG9wTGV2ZWxE
b2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBjaGFuZ2VkVG9B
Y3RpdmVBbmRGb2N1c2VkKCk7CiAKICAgICBib29sIGhhc01hbmlmZXN0KCkgY29uc3Q7CiAgICAg
CkBAIC0yMjYwLDYgKzIyNjIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TW9kYWxDb250YWluZXJPYnNlcnZlcj4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyOwor
CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fd2hlbkZvY3VzSGFuZGxlcnM7CiB9Owog
CiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBkYjE2MmE0YzU4OThm
ZTJlOTQyODlmMGM5Njg1MDAwMzc2YTNmYjBjLi43Y2Y4ZWZmYzk1NTM4MDQwODZkOGEyYzE4ODUy
ZjkwMWU1Y2FkM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cApAQCAtMjA4OSw2ICsyMDg5LDkgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6Zm9jdXNlZE9yQWN0
aXZlU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBib29sIGFjdGl2ZUFuZEZvY3VzZWQgPSBpc0ZvY3Vz
ZWRBbmRBY3RpdmUoKTsKIAorICAgIGlmIChhY3RpdmVBbmRGb2N1c2VkKQorICAgICAgICBtX2Rv
Y3VtZW50LT5jaGFuZ2VkVG9BY3RpdmVBbmRGb2N1c2VkKCk7CisKICAgICBtX2RvY3VtZW50LT51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICNpZiBVU0UoVUlLSVRfRURJVElORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggZWE3ZDc2
MTFlYjRkNmE5MDg5ZDJkMmE5MjU5YmJkOTBhOWEwNjc4NS4uNzFmMmMyZjJmYTIyMGRlOWE4ZGQw
ZDJhNjEzN2E5NWNlMjQ1MTUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTE1MjYsNiArMTUyNiwxNiBAQCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPm1vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJs
ZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0R2V0VXNlck1lZGlhUmVxdWly
ZXNGb2N1cyhlbmFibGVkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKCk7
Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewogICAgIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPnNldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoZW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCBiNjY0ZTllYTExMWNlZDk4MDIyNTdmMjEyZWY3NGU0
NjRkZjgyOGVjLi5mNDI4NTBiMDljNzYzMmZkZWVkOTk3Mjc2OTk4YjkwMTEwZjVhYzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmgKQEAgLTM5OCw2ICszOTgsMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZShXS1ByZWZlcmVuY2VzUmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRz
IHRvIHRydWUuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1cyhXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYpOwor
CiAvLyBEZWZhdWx0cyB0byB0cnVlLgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldElD
RUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CiBXS19F
WFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggOWM1ZjhkYWM1OGZmOWU1NzZlNTk1MGU2ZDc5NWEw
M2RmZjUzYzc0MC4uMWUzYjE5NjEzY2I2N2Q3OGQ4YzhhNTcxZGQ4YzkyNzA5MzEwN2I3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KQEAgLTY1MCw2ICs2NTAsMTYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0
b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogICAgIF9wcmVmZXJl
bmNlcy0+c2V0TWVkaWFEZXZpY2VzRW5hYmxlZChlbmFibGVkKTsKIH0KIAorLSAoQk9PTClfZ2V0
VXNlck1lZGlhUmVxdWlyZXNGb2N1cworeworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmdldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMoKTsKK30KKworLSAodm9pZClfc2V0R2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1czooQk9PTCllbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKGVuYWJsZWQpOworfQorCiAtIChCT09MKV9zY3JlZW5DYXB0dXJl
RW5hYmxlZAogewogICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnNjcmVlbkNhcHR1cmVFbmFibGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGMxYzcyM2ExZmY0N2VhYzE5NmJkMDYyYjNlMjc3MzAy
NGYzMWZhMDUuLmQxNTViYTFmMGI3OWY5NGI5YjZjYzM5YWI3YTAwMzE2MDhjZGJkYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCkBAIC0xMTcsNiArMTE3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFBlZXJDb25uZWN0aW9uRW5hYmxlZDopIEJPT0wgX3BlZXJDb25uZWN0aW9u
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEZXZpY2VzRW5hYmxlZDopIEJPT0wg
X21lZGlhRGV2aWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRHZXRVc2VyTWVkaWFSZXF1
aXJlc0ZvY3VzOikgQk9PTCBfZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQ6KSBCT09MIF9zY3JlZW5DYXB0
dXJlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZDopIEJPT0wgX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRN
b2NrQ2FwdHVyZURldmljZXNQcm9tcHRFbmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2Vz
UHJvbXB0RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3MuY3BwCmluZGV4IGQ5MjYyODAwZTQ3MWMyYmJiZTI5YjM4MGU3OWYzZWJiYzZlMmUxZGMuLjI3
NDI0N2UxODRiMDc1ZmM2MDRmN2ZhY2IzNDQ2ODNlYzE1NDIxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTM4Mjcs
NiArMzgyNywxMiBAQCB2b2lkIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKFdlYktpdFNldHRpbmdzKiBzZXR0aQogICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocmVxdWlyZWQpOwog
fQogCit2b2lkIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhXZWJL
aXRTZXR0aW5ncyogc2V0dGluZ3MsIGJvb2wgcmVxdWlyZWQpCit7CisgICAgV2ViS2l0U2V0dGlu
Z3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMt
PnNldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocmVxdWlyZWQpOworfQorCiAvKioKICAqIHdl
YmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVf
c3VwcG9ydDoKICAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgK
aW5kZXggMDQ2OWY3ZWMyODM2ODJlMTUyZWRlOTY5YWIzYWFlMGJhY2RhNTQ4Yi4uNDAxODlkZGFj
N2IzNWQ0MWRlZTJhYjg0N2I5YzJlMjFjNDM0NjM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgKQEAgLTMz
LDUgKzMzLDYgQEAKIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHdlYmtpdFNldHRpbmdzR2V0UHJl
ZmVyZW5jZXMoV2ViS2l0U2V0dGluZ3MqKTsKIAogV0tfRVhQT1JUIHZvaWQgd2Via2l0U2V0dGlu
Z3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0dGluZ3Mq
LCBib29sIHJlcXVpcmVkKTsKK1dLX0VYUE9SVCB2b2lkIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhXZWJLaXRTZXR0aW5ncyosIGJvb2wgcmVxdWlyZWQpOwogCiAj
ZW5kaWYgLy8gV2ViS2l0U2V0dGluZ3NQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZDEzNmUxZTdkMzlmZGY2OThjZjQ2ZjU3ZmRm
NmRiZGY0YWIzMWNhLi5kNGE5ZmY0NWJjYmUxZjBlZDVkZjBkZWE4YmE0M2Y0MDc2NTNkMmRmIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDQgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIERpc2FibGUgZm9jdXMgZmxhZyBm
b3IgdGVzdGluZyB0byBub3QgcmVxdWlyZSB0byBmb2N1cyB0aGUgd2luZG93LgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6ZG9DYXB0dXJlTXV0ZVRlc3QpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJl
cHJvbXB0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZm
ZXJTaXplLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5
TWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZXREaXNwbGF5TWVkaWFUZXN0OjpT
ZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFE
aXNhYmxlZC5tbToKKyAgICAgICAgKE1lZGlhQ2FwdHVyZURpc2FibGVkVGVzdDo6U2V0VXApOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxh
dGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlU2ltdWxhdGVGYWlsZWRT
YW5kYm94OjpTZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RVSUNsaWVudC5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0
ZURldmljZXNQZXJtaXNzaW9uQ2hlY2spOgorICAgICAgICAodGVzdFdlYlZpZXdVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAgICAodGVzdFdlYlZpZXdBdWRpb09ubHlVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdHMpOgorCiAyMDIyLTAxLTExICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUGFnZVByb3h5IGRlc3RydWN0aW9uIHNob3Vs
ZCBub3QgbGF1bmNoIGEgbmV0d29yayBwcm9jZXNzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KaW5kZXggOTM2MmVmMzU3ZTliMDg2MTAzNGZi
ZWMzMzhjYjE5OGExOTFiNmJmYS4uNjViZmJkZWYwODIyNDYwODIzY2ZkNjFhYTM3Mjg3NDk1YjJi
MWRhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNl
ck1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJN
ZWRpYS5tbQpAQCAtMTUyLDE0ICsxNTIsMjEgQEAgYm9vbCB3YWl0VW50aWxDYXB0dXJlU3RhdGUo
V0tXZWJWaWV3ICp3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgZXgKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgZG9DYXB0dXJlTXV0ZVRlc3QoY29uc3QgRnVuY3Rp
b248dm9pZChUZXN0V0tXZWJWaWV3KiwgX1dLTWVkaWFNdXRlZFN0YXRlKT4mIHNldFBhZ2VNdXRl
ZCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24qIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAg
ICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc107CisKKyAgICBjb25maWd1cmF0aW9uLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNv
bm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87Cit9
CisKK3ZvaWQgZG9DYXB0dXJlTXV0ZVRlc3QoY29uc3QgRnVuY3Rpb248dm9pZChUZXN0V0tXZWJW
aWV3KiwgX1dLTWVkaWFNdXRlZFN0YXRlKT4mIHNldFBhZ2VNdXRlZCkKK3sKKyAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTIzNSwx
MCArMjQyLDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlTXV0ZUFQSSkKIHsKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5f
bWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJh
dGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMzQwLDEwICszNDQsNyBA
QCBURVNUKFdlYktpdDIsIENhcHR1cmVTdG9wKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0
byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVF
bmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1N
ZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQoKSB1
c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5k
bGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTM3OCwxMCArMzc5LDcgQEAgVEVTVChXZWJLaXQy
LCBDYXB0dXJlSW5kaWNhdG9yRGVsYXkpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3Nh
Z2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIu
Z2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDE0LDEwICs0MTIsNyBAQCBURVNUKFdlYktpdDIsIENh
cHR1cmVJbmRpY2F0b3JEZWxheVdoZW5DbG9zZWQpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVy
ZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmln
dXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dV
TU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgp
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDQyLDEwICs0MzcsNyBAQCBURVNUKFdlYktp
dDIsIEdldENhcGFiaWxpdGllcykKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdl
dCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQo
KSBuYW1lOkAiZ3VtIl07CkBAIC00NzMsMTAgKzQ2NSw3IEBAIFRFU1QoV2ViS2l0LCBJbnRlcnJ1
cHRpb25CZXR3ZWVuU2FtZVByb2Nlc3NQYWdlcykKICAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxv
d3NJbmxpbmVNZWRpYVBsYXliYWNrOllFU107CiAjZW5kaWYKIAotICAgIGF1dG8gcHJlZmVyZW5j
ZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5k
bGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tj
b25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRs
ZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNTMyLDEwICs1MjEsNyBA
QCBURVNUKFdlYktpdCwgUGVybWlzc2lvbkRlbGVnYXRlUGFyYW1ldGVycykKICAgICBbY29uZmln
dXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOllFU107CiAjZW5kaWYKIAotICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJl
ZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAg
IGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJl
ZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6
ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBk
b25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwpAQCAtNTU1LDEwICs1
NDEsNyBAQCBURVNUKFdlYktpdCwgV2ViQXVkaW9BbmRHZXRVc2VyTWVkaWEpCiAgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQo
KTsKICAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sLl9jb25maWd1cmF0aW9uLnNo
b3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gTk87CiAKLSAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNh
cHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdl
dCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25m
aWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxl
ciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29u
ZmlndXJhdGlvbi5nZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTU5MSw5ICs1NzQs
NyBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc1doaWxlQ2FwdHVyaW5nKQogICAgICAg
ICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JJbnRlcm5hbERlYnVnRmVhdHVy
ZTpmZWF0dXJlXTsKICAgICB9CiAKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihj
b25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFu
ZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC02NjYsOSArNjQ3LDcgQEAgVEVTVChXZWJLaXQy
LCBDcmFzaEdQVVByb2Nlc3NBZnRlckFwcGx5aW5nQ29uc3RyYWludHMpCiAgICAgICAgIGlmIChb
ZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCJdKQogICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JJbnRl
cm5hbERlYnVnRmVhdHVyZTpmZWF0dXJlXTsKICAgICB9Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIFtjb25maWd1cmF0aW9uIHNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2s6WUVT
XTsKQEAgLTc0Niw5ICs3MjUsNyBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc1doaWxl
Q2FwdHVyaW5nQW5kQ2FsbGluZykKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxl
ZDpZRVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsKICAgICB9CiAKLSAgICBwcmVmZXJlbmNlcy5fbWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlv
bi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJl
Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBb
W2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFu
ZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC04NjcsMTAgKzg0NCw3
IEBAIFRFU1QoV2ViS2l0LCBBdXRvcGxheU9uVmlzaWJpbGl0eUNoYW5nZSkKICAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwogCi0gICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJl
bmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGRvbmUg
PSBmYWxzZTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CkBAIC04OTgsNiArODcyLDcw
IEBAIFRFU1QoV2ViS2l0LCBBdXRvcGxheU9uVmlzaWJpbGl0eUNoYW5nZSkKICAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9UZXN0KCkiXTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQorCitzdGF0aWMgY29uc3QgY2hhciogZ2V0VXNl
ck1lZGlhRm9jdXNUZXh0ID0gUiJET0NET0NET0MoCis8aHRtbD48Ym9keT4KKzxzY3JpcHQ+Citv
bmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQub252aXNpYmlsaXR5Y2hhbmdlID0gKCkgPT4g
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7Cisg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7
Cit9CisKK2Z1bmN0aW9uIGNhcHR1cmUoKQoreworICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHt2aWRlbyA6IHRydWV9KS50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZShkb2N1bWVudC5oYXNG
b2N1cygpID8gIlBBU1MiIDogIkZBSUwiKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9ib2R5
PjwvaHRtbD4KKylET0NET0NET0MiOworCitURVNUKFdlYktpdCwgR2V0VXNlck1lZGlhRm9jdXMp
Cit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIv
IiwgeyBnZXRVc2VyTWVkaWFGb2N1c1RleHQgfSB9CisgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlcjo6UHJvdG9jb2w6Okh0dHAsIG51bGxwdHIsIG51bGxwdHIsIDkwOTApOworCisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0
ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAo
V0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVy
ID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOworCisgICAgaW5pdGlhbGl6ZU1lZGlh
Q2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CisgICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5f
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IFlFUzsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgd2ViVmll
dy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAgICAvLyBMb2FkIHBhZ2Uu
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIE1pbmltaXplCisgICAgZG9uZSA9
IGZhbHNlOworICAgIGF1dG8gKmhvc3RXaW5kb3cgPSBbd2ViVmlldyBob3N0V2luZG93XTsKKyAg
ICBbaG9zdFdpbmRvdyBtaW5pYXR1cml6ZTpob3N0V2luZG93XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gV2UgY2FsbCBjYXB0dXJlIHdoaWxlIG1pbmlt
aXppbmcuCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJjYXB0dXJlKCkiXTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGdldFVz
ZXJNZWRpYSBkb2VzIG5vdCByZXNvbHZlIHRvbyBzb29uLgorICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnNwaW5SdW5Mb29wKDEwMCk7CisgICAgRVhQRUNUX0ZBTFNFKGRvbmUpOworCisgICAgW2hv
c3RXaW5kb3cgZGVtaW5pYXR1cml6ZTpob3N0V2luZG93XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogVEVTVChXZWJL
aXQsIEludmFsaWREZXZpY2VJZEhhc2hTYWx0cykKQEAgLTkyNCwxMCArOTYyLDcgQEAgVEVTVChX
ZWJLaXQsIEludmFsaWREZXZpY2VJZEhhc2hTYWx0cykKIAogICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
W2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0
dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24o
Y29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0KaW5kZXggMTJjYTc0NjJkNWFiY2RiY2RkMTE4ZWU2M2JlNWYzNTgxMTk1YzY5OS4uYTc2MDlk
MzQ1MmUzY2QwODhlMzI2NzBjYWQ2MmE3MDMxZTQ4OTIxNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1t
CkBAIC02Nyw2ICs2NywxNiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZWxlYXNlSW5FbnVtZXJhdGUg
PSBmYWxzZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCitzdGF0aWMgdm9pZCBpbml0
aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBj
b25maWd1cmF0aW9uKQoreworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc107CisKKyAgICBjb25maWd1cmF0aW9uLl9tZWRpYUNhcHR1cmVFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKKyAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlF
UzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POworfQor
CiBURVNUKFdlYktpdCwgTmF2aWdhdGVEdXJpbmdHZXRVc2VyTWVkaWFQcm9tcHQpCiB7CiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKQEAgLTg4LDEwICs5OCw3IEBAIFRFU1QoV2ViS2l0LCBOYXZpZ2F0ZUR1cmlu
Z0RldmljZUVudW1lcmF0aW9uKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNz
UG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0g
WUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwor
ICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0
KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25m
aWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW05hdmlnYXRpb25XaGls
ZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTExNywxMCArMTI0
LDcgQEAgVEVTVChXZWJLaXQsIERlZmF1bHREZXZpY2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRv
cHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9v
bENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlv
bldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTQ3LDEw
ICsxNTEsNyBAQCBURVNUKFdlYktpdCwgRGV2aWNlSWRIYXNoU2FsdHNEaXJlY3RvcnkpCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0
TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byBwcm9j
ZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVk
ID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVT
OworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24u
Z2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW05hdmlnYXRpb25X
aGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQu
bW0KaW5kZXggMDdmNTdkMDEyNWUwNDk5MjAxNWIzMGYxNjg2ZGRhM2ZlMjA1MGZhZS4uN2FjZDM2
ODY3NTQ3YzViZjBlMTQxNzY1NTAzMDNjNTYwYzFlNzk3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KQEAg
LTYwLDE0ICs2MCwyMiBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRpYyB2
b2lkIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24qIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXTsKKworICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVu
YWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0g
Tk87Cit9CisKIFRFU1QoV2ViS2l0MiwgR2V0VXNlck1lZGlhUmVwcm9tcHQpCiB7CiAgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJlZmVyZW5jZXMg
PSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0
KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZp
Z3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW0dldFVzZXJNZWRpYVJlcHJvbXB0VGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
QEAgLTEwMCwxMCArMTA4LDcgQEAgVEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXByb21wdEFm
dGVyQXVkaW9WaWRlb0JlaW5nRGVuaWVkKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNv
bm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRp
b24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXBy
b21wdFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW2Rl
bGVnYXRlIHNldEF1ZGlvRGVjaXNpb246V0tQZXJtaXNzaW9uRGVjaXNpb25HcmFudF07CkBAIC0x
MjMsMTAgKzEyOCw3IEBAIFRFU1QoV2ViS2l0MiwgTXVsdGlwbGVHZXRVc2VyTWVkaWFTeW5jaHJv
bm91c2x5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9
IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAg
ICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHBy
ZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAg
ICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXByb21wdFRlc3RWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNh
cHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KaW5kZXggODczNmVhNDY0
OWQyYjRhYTdhMTJjNmNlMDVlNzJhMWRjN2QzNGU5OC4uOTcyYmE2YWQxYmI3N2JkMTQ3YTdhYWU0
OTlkZWJjZWE2MzdiY2ZhOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQpAQCAtNjEsNiArNjEs
NyBAQCBURVNUKFdlYktpdCwgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkKQogICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICBjb25m
aWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVu
Y2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9n
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwogICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKaW5kZXggNTc1
MTk3M2E1ODg3ODllNGZlOWY4NmU5NTUzNWViNTVlMmZkN2UxMy4uYjIzNGMyOGI4ZDE2YmEzMDY4
MTMxMGQ3YTU2NDE4ZDk5ZjgyODhmOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Vc2VyTWVkaWEuY3BwCkBAIC03Nyw2ICs3Nyw3IEBAIFRFU1QoV2ViS2l0LCBVc2Vy
TWVkaWFCYXNpYykKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0Fs
bG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1
cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0
KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CkBAIC0xMTMsNiArMTE0LDcgQEAgVEVT
VChXZWJLaXQsIE9uRGV2aWNlQ2hhbmdlQ3Jhc2gpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2Vz
LCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVkaWFSZXF1
aXJlc0ZvY3VzKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFY2IHVp
Q2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpAQCAt
MTczLDYgKzE3NSw3IEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzQ3Jhc2gpCiAgICAg
V0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKICAg
ICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIC8vIFdlIHdhbnQgdWlDbGllbnQuY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luIHRvIGJlIG51bGwuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1t
CmluZGV4IDUzM2RlMWVjNGQ2ZGE0MDA1ZDk4YTc5OGNlOTc2YTVkOWUwMjM0MzkuLjlkZDYyOWNh
OGI2NGNhNjBkY2U5NGVlOGMwZmM4YWQ2N2JhZjMxMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCkBAIC03
Miw2ICs3Miw3IEBAIFRFU1QoV2ViS2l0LCBBdWRpb0J1ZmZlclNpemUpCiAgICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKICAgICBwcmVmZXJlbmNlcy5f
bWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAgcHJlZmVyZW5j
ZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
MzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZ
RVNdKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KaW5kZXggMmYxMDY5NDQ0YTdlMTg3MGNkMmRhOTJi
YWQ3OWNiMjg5YzdkMGI0Ni4uOTIzYzM4MzM4YzI3ZDFkZDYwODgwYjNhODhjMmI0MDY5NTlhYTQ5
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQ
cm9jZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BV
UHJvY2Vzcy5tbQpAQCAtNjk2LDYgKzY5Niw3IEBAIFRFU1QoR1BVUHJvY2VzcywgRXhpdHNVbmRl
ck1lbW9yeVByZXNzdXJlV2ViUlRDQ2FzZSkKICAgICAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAgICAgICBjb25maWd1cmF0aW9u
Ll9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJN
ZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKICAgICB9KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9HZXREaXNwbGF5TWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0dldERpc3BsYXlNZWRpYS5tbQppbmRleCBkZTA1MDMwMzdmNmM5YWEyZGFiYzUyOTAz
MTVjOGMxYjJjMjRjNTU5Li5lN2M3ZDYyY2QwY2IyZGExYmRmNzFlNzZjZjkwYzg1NTNiM2JhZDZh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERp
c3BsYXlNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0dldERpc3BsYXlNZWRpYS5tbQpAQCAtMTA0LDEwICsxMDQsMTEgQEAgcHVibGljOgogICAgICAg
ICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICAgICAg
cHJlZmVyZW5jZXMuX3NjcmVlbkNhcHR1cmVFbmFibGVkID0gWUVTOwogCi0gICAgICAgIG1fd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246bV9jb25maWd1cmF0aW9uLmdldCgp
XSk7CisgICAgICAgIG1fd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246bV9j
b25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgICAgIG1fdWlEZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tHZXREaXNwbGF5TWVkaWFVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgICAgIG1fd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gbV91aURlbGVnYXRlLmdldCgp
OworICAgICAgICBbbV93ZWJWaWV3IGZvY3VzXTsKIAogICAgICAgICBbbV93ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImdldERpc3BsYXlNZWRpYSJdOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGM1MzM4MGNiMTI5ZjNiNDMzYjM5MGEz
ZmRlOGQ3N2FkZGY2MmQyOTcuLmM5MjJiNjNhMjcxNmRhZWY0NjEyMWVkMzc3M2M3ZmQ0Njk1MTUz
MTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNjgyOCw2ICs2ODI4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgR2V0VXNlck1lZGlhQ2FwdHVyZVN0YXRlKQogICAgIHByZWZl
cmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICB3
ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAg
ICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVm
ZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogCiAgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKICAgICBhdXRv
IGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2du
aXRpb24ubW0KaW5kZXggNDBjMDhlMzVhNmE1ZDZlYzQ3M2Q3ZmEzNjMwMGUwMGFlMmNkY2NjMC4u
MmMxNjQ0ZDFiNjhhZjZkMDI2MjMyZDYzZjQ2MjUyMzlmYjBiNzBlMiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0
aW9uLm1tCkBAIC0xNjIsNiArMTYyLDcgQEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yV2hlblN0YXJ0aW5nQXVkaW9DYXB0dXJlT25EaWZmZXJlbnRQYWdlKQogICAgIHByZWZl
cmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2Vz
Ll9zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9n
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBhdXRv
IGZpcnN0V2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOwogICAgIFtmaXJzdFdlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQppbmRleCA1NzYwMWM3MTllYjgwMDZmNzM1MWJkYTIwMDhl
NmUwNmU4YjAyNTgxLi4xNzc5ZmFhZDM2OTA4NzQyYjRhZDdjMTk3MDcwYzNjNTdjZjI2OWU0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRp
YURpc2FibGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhRGlzYWJsZWQubW0KQEAgLTgyLDYgKzgyLDcgQEAgcHVibGljOgogICAgICAgICBh
dXRvIHByZWZlcmVuY2VzID0gW21fd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlczsK
ICAgICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAg
ICAgICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24g
PSBOTzsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBO
TzsKIAogICAgICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwogICAgICAgICBbbV93ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91aURl
bGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gu
bW0KaW5kZXggMjRkYzM1MTJmODQwYzVlYzJlMWE4OTBlYjNlODIxOWJmM2MzMTVkMi4uZDczYTFh
ZWY4MWUzMTM2MTU4YTcyMGEyZGYyYmUyMzNhYThmMjc5NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRi
b3gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVk
aWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KQEAgLTgzLDYgKzgzLDcgQEAgcHVibGljOgogICAg
ICAgICBhdXRvIHByZWZlcmVuY2VzID0gW21fd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJl
bmNlczsKICAgICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24gPSBOTzsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMgPSBOTzsKIAogICAgICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbU2ltdWxhdGVGYWls
ZWRTYW5kYm94VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgICAgICBbbV93ZWJWaWV3IHNl
dFVJRGVsZWdhdGU6bV91aURlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggMjk4ZTc1YWQ1
MDNjOTFlNjRhNDAyYzZkYTNiODcwZGYzMzViNzIxZS4uMjg0ZjgwNGI2NDEwNWI4NGI2NzYyODM3
OGNlOGNmMGMxOTcyYWNmOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKQEAgLTEwMDIsNiArMTAwMiw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RXZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVj
ayhVSUNsaWVudFRlc3QqIHRlCiAgICAgZ2Jvb2xlYW4gZW5hYmxlZCA9IHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncyk7CiAgICAgd2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBUUlVFKTsKICAgICB3ZWJraXRTZXR0
aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihzZXR0aW5ncywgRkFM
U0UpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0
aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVy
ZV9kZXZpY2VzKHNldHRpbmdzLCBUUlVFKTsKIAogICAgIHRlc3QtPnNob3dJbldpbmRvdygpOwpA
QCAtMTAzNyw2ICsxMDM4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFFbnVt
ZXJhdGVEZXZpY2VzUGVybWlzc2lvbkNoZWNrKFVJQ2xpZW50VGVzdCogdGUKICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJsZWQpOwogICAg
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdz
LCBGQUxTRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRSVUUpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKQEAgLTEwNDYsNiArMTA0OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJW
aWV3VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0
cG9pCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdz
LCBUUlVFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2
aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVS
ZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIEZBTFNFKTsKKyAgICB3ZWJraXRTZXR0
aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIEZBTFNFKTsKIAogICAg
IHRlc3QtPnNob3dJbldpbmRvdygpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1c2VyTWVkaWFS
ZXF1ZXN0SFRNTCA9ICI8aHRtbD4iCkBAIC0xMTA1LDYgKzExMDgsNyBAQCBzdGF0aWMgdm9pZCB0
ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3Qs
IGdjb25zdHBvaQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShz
ZXR0aW5ncywgZW5hYmxlZCk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9ja19j
YXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIEZBTFNFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihzZXR0aW5ncywgVFJVRSk7CisgICAg
d2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBUUlVF
KTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdBdWRpb09ubHlVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQpAQCAtMTExNCw2
ICsxMTE4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdBdWRpb09ubHlVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LAogICAgIHdlYmtpdF9zZXR0aW5nc19z
ZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfbW9ja19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIFRSVUUpOwogICAg
IHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNl
dHRpbmdzLCBGQUxTRSk7CisgICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJl
c0ZvY3VzKHNldHRpbmdzLCBGQUxTRSk7CiAKICAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogdXNlck1lZGlhUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgpAQCAt
MTE0NCw2ICsxMTQ5LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdBdWRpb09ubHlVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LAogICAgIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgZW5hYmxlZCk7CiAgICAgd2Vi
a2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9ja19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIEZB
TFNFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbihzZXR0aW5ncywgVFJVRSk7CisgICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBUUlVFKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdEaXNwbGF5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNThmMjg5Y2ZhZmMxMWIwMjk3YmYyNTg4Mjg5Njcy
ZmI2NWU3MTJjLi45NWMwZDY3OWIyYmIxMWI2NTk0OGVlNWRiNzkyZWEwNDkwMzdhYmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0w
MS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBT
ZXJ2aWNlV29ya2VyQ2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2ZWQg
ZnJvbSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNl
ck1lZGlhLWV4cGVjdGVkLnR4dAppbmRleCAyMjY1NzhmNmYwY2Y2MGVjYjE0ZDMwY2YzZjg1ZTJl
YzA2M2Q1MDQ2Li40Njk2MjcxZDllYzA2NzQ1NGM4NjkwMTY2OGY1OTg1MDBiNTU5MjM5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2Vy
TWVkaWEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQKQEAgLTYsOCArNiw4IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLndl
YmtpdEdldFVzZXJNZWRpYSBpcyAndW5kZWZpbmVkJwogCiBQQVNTIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbihnb3RTdHJlYW0xKTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBUeXBlIGVycm9yCi1QQVNTIG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSByZWplY3RlZCB3aXRoIGVycm9y
OiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IE5vIGNvbnN0cmFpbnRz
IHByb3ZpZGVkCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSBy
ZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IE5vIGNvbnN0cmFpbnRzIHByb3ZpZGVkCiBQ
QVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhLmFwcGx5KHVuZGVmaW5lZCkg
cmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIE1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEgb24gaW5zdGFuY2VzIG9mIE1lZGlhRGV2aWNlcwogUEFTUyBTdHJlYW0g
MSBnZW5lcmF0ZWQuCiBQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448940</attachid>
            <date>2022-01-12 06:40:56 -0800</date>
            <delta_ts>2022-01-13 00:14:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220112154054.patch</filename>
            <type>text/plain</type>
            <size>59608</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAwNzkxMWQ1NjQ4ZDYwYWU3MmU0ZGRh
ZWFjNDQ0ZjAxMDNlMjZjNjUuLmE5YWVhOTEzOTM5OGNhN2EzN2M5ZmQzMzY3YTEwZWM5OWMyYTVm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjEtMTEt
MjkgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJp
YWxpemUgQ1NTIDxudW1iZXI+IHZhbHVlcyB3aXRoIHJvdW5kaW5nLCBsaW1pdGVkIGRlY2ltYWwg
cHJlY2lzaW9uLCBhbmQgbm8gZXhwb25lbnRzIHBlci1zcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmYzE3
MGVhNjZmNzQyYmZjZjhiMjFiY2E1MTkwZTRkMDJmMzE1Mi4uZmI3MWFhMTQxOTBhOTUxOTBiMDg4
MDgyZGE1OWJkZWRlZTQ3MTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAx
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNl
IGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgYSBjYWxs
YmFjayBzbyB0aGF0IGEgdGFzayBpcyBleGVjdXRlZCB3aGVuIHRoZSB0b3AgbGV2ZWwgZG9jdW1l
bnQgaGFzIGZvY3VzLgorICAgICAgICBVc2UgdGhpcyB0byBkZWxheSBnZXRVc2VyTWVkaWEgcmVx
dWVzdHMgdW50aWwgdG9wIGxldmVsIGRvY3VtZW50IGhhcyBmb2N1cy4KKyAgICAgICAgVGhlIHNw
ZWMgY3VycmVudGx5IGRlZmluZXMgdGhhdCB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGN1cnJlbnQg
ZG9jdW1lbnQgdG8gaGF2ZSBmb2N1cyBidXQgdGhpcyBpcyBhYm91dCB0byBiZSBjaGFuZ2VkIGFu
ZCBpcyBub3QgYWxpZ25lZCB3aXRoIG90aGVyIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zLgorCisg
ICAgICAgIFRoZSBwYXRjaCBhbHNvIG1vdmVzIHNvbWUgZ2V0VXNlck1lZGlhIGNoZWNrcyBlYXJs
aWVyIHNvIGFzIHRvIHJlc3BlY3Qgb3JkZXIgcHJvdmlkZWQgYnkgdGhlIHNwZWNzLgorCisgICAg
ICAgIENvdmVyZWQgYnkgQVBJIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorCiAyMDIyLTAx
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
RmV0Y2hFdmVudC50YXJnZXRDbGllbnRJZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMjgwM2ViNGM2OTJmMWU0Yzc5
N2EzZDM2ZDYwODk2MDkyNmExZTZlLi4yMTNmNjIzZjUxZWQzZTdlNTllMjRjMzQ3MTg3MDdmOGVm
Y2NjMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTEyICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZv
ciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBBZGQgc2V0dGVycy9nZXR0ZXJzIGZvciB0aGUgZ2V0VXNlck1lZGlhIGZvY3VzIHNldHRp
bmdzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJl
bmNlcyBfZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1c10pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIF9zZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0U2V0dGluZ3NTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0U2V0dGluZ3NQcml2YXRlLmg6CisKIDIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgY29tcHV0YXRpb24gb2Ygc2Vydmlj
ZSB3b3JrZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
aW5kZXggMWMwNzA1MTNkZTdhM2Q2MzRhMDJmNWJmNjc3ZWM5OWZlMjc5NGZmYi4uNjY3MTBmODQ5
ZjlkMWFhNmZmYzJmYTg5ZGZlYjRmNTI0M2M5MjY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBA
IC0yOTMsNiArMjkzLDE5IEBAIEZ1bGxTY3JlZW5FbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAg
ICBkZWZhdWx0OiBmYWxzZQogCitHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUmVxdWlyZSBmb2N1cyB0byBzdGFydCBnZXRVc2Vy
TWVkaWEiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlJlcXVpcmUgZm9jdXMgdG8gc3Rh
cnQgZ2V0VXNlck1lZGlhIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0
OiB0cnVlCisKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
d2ViY29yZU9uQ2hhbmdlOiBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkQ2hhbmdlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5NmUxNTY1ZjU4ZTUuLjE1ZTkyY2I0
OWUzZmM4OTdmNDczZTlhMGEzNzZkMTc0YTliMTljM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTExOCwxNSArMTE4
LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNlckdlc3R1cmVQcml2aWxlZGdlKEdl
c3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRV
c2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYg
cHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBj
cmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKTsKKworICAgIGlmICghYXVk
aW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8gY29uc3RyYWludHMgcHJvdmlkZWQi
X3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5pc0Z1bGx5QWN0
aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIl9zIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25z
dHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0g
Y3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7Ci0KICAgICBib29sIGlz
VXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAgICAgaWYgKGF1ZGlvQ29uc3RyYWlu
dHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODUgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVz
ZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgog
ICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9j
dW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVk
aW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQ
cml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICByZXF1ZXN0LT5zdGFydCgpOwor
CisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGluZ3MoKS5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
KCkpIHsKKyAgICAgICAgcmVxdWVzdC0+c3RhcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGRvY3VtZW50LT53aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKFtyZXF1ZXN0ID0g
V1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICBpZiAocmVxdWVzdC0+aXNDb250ZXh0U3RvcHBl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0LT5zdGFydCgpOworICAg
IH0pOworfQorCitzdGF0aWMgYm9vbCBoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWlu
dChjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICAvLyBodHRwczov
L3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXNjcmVlbi1zaGFyZS8jbmF2aWdhdG9yLWFkZGl0
aW9ucworICAgIC8vIDEuIExldCBjb25zdHJhaW50cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJn
dW1lbnQuCisgICAgLy8gMi4gRm9yIGVhY2ggbWVtYmVyIHByZXNlbnQgaW4gY29uc3RyYWludHMg
d2hvc2UgdmFsdWUsIHZhbHVlLCBpcyBhIGRpY3Rpb25hcnksIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgorICAgIC8vICAgICAxLiBJZiB2YWx1ZSBjb250YWlucyBhIG1lbWJlciBuYW1lZCBhZHZh
bmNlZCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBl
RXJyb3IuCisgICAgLy8gICAgIDIuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIHdoaWNoIGlu
IHR1cm4gaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYSBtZW1iZXIgbmFtZWQgZWl0aGVyIG1p
biBvcgorICAgIC8vICAgICAgICBleGFjdCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisgICAgaWYgKCFjb25zdHJhaW50cy5pc1ZhbGlk
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWNvbnN0cmFpbnRzLmFkdmFuY2Vk
Q29uc3RyYWludHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGJvb2wg
aW52YWxpZCA9IGZhbHNlOworICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmZp
bHRlcihbJmludmFsaWRdIChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIG11dGFi
bGUgeworICAgICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3RyYWludFR5cGUoKSkgeworICAg
ICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgorICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkhlaWdodDogeworICAgICAgICAgICAgYXV0byYgaW50Q29uc3RyYWlu
dCA9IGRvd25jYXN0PEludENvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgaW50
IHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGludENvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGludENvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRp
bzoKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6IHsKKyAgICAg
ICAgICAgIGF1dG8mIGRvdWJsZUNvbnN0cmFpbnQgPSBkb3duY2FzdDxEb3VibGVDb25zdHJhaW50
Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgICAgIGlu
dmFsaWQgPSBkb3VibGVDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKSB8fCBkb3VibGVDb25zdHJh
aW50LmdldE1pbih2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6IHsKKyAgICAgICAgICAgIGF1
dG8mIGJvb2xDb25zdHJhaW50ID0gZG93bmNhc3Q8Qm9vbGVhbkNvbnN0cmFpbnQ+KGNvbnN0cmFp
bnQpOworICAgICAgICAgICAgYm9vbCB2YWx1ZTsKKyAgICAgICAgICAgIGludmFsaWQgPSBib29s
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZToKKyAgICAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKKyAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOiB7CisgICAgICAgICAgICBhdXRvJiBzdHJpbmdDb25z
dHJhaW50ID0gZG93bmNhc3Q8U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAg
ICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXM7CisgICAgICAgICAgICBpbnZhbGlkID0gc3RyaW5n
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGU6CisgICAg
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZToKKyAgICAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWU6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6RWNob0NhbmNlbGxhdGlvbjoKKyAgICAgICAgICAgIC8vIElnbm9yZWQuCisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGludmFsaWQ7CisgICAgfSk7CisKKyAgICByZXR1
cm4gaW52YWxpZDsKIH0KIAogdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25z
dCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJiBw
cm9taXNlKQpAQCAtMTUzLDcgKzIzNiwxOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxh
eU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVz
dDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlN
ZWRpYSwgeyB9LCBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKSwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8p
OworICAgIGlmIChoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludCh2aWRlb0NvbnN0
cmFpbnRzKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJnZXREaXNwbGF5TWVkaWEgbXVzdCBiZSBjYWxsZWQgd2l0aCB2YWxpZCBjb25zdHJhaW50cy4i
X3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWRvY3VtZW50LT5pc0Z1
bGx5QWN0aXZlKCkgfHwgIWRvY3VtZW50LT50b3BEb2N1bWVudCgpLmhhc0ZvY3VzKCkpIHsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1
bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3MgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1
ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2
aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcAppbmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgxZDViYzY3
ZGY1Li5jMzliOGYwYTc3ZTNiZTNiNmU3YTVkZTRiMDVjNWQwZTY0MTFmMjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKQEAgLTg1LDc0ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0
Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4dCA/ICZj
b250ZXh0LT50b3BPcmlnaW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhhc0ludmFs
aWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzKQotewotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2Ny
ZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRz
IGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFjaCBtZW1i
ZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlv
bmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZhbHVlIGNv
bnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVk
IHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYgdmFsdWUg
Y29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmlu
ZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0LCByZXR1
cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAg
ICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29u
c3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29uc3RyYWlu
dC5jb25zdHJhaW50VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
V2lkdGg6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7Ci0gICAg
ICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29u
c3RyYWludCk7Ci0gICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0g
aW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFs
dWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkZyYW1lUmF0ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9
IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgZG91
YmxlIHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhh
Y3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
aXNwbGF5U3VyZmFjZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2Fs
U3VyZmFjZTogewotICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxC
b29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZhbHVlOwot
ICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRl
dmljZUlkOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKLSAg
ICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJh
aW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKLSAg
ICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6U2FtcGxlUmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpT
YW1wbGVTaXplOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKLSAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgotICAgICAg
ICAgICAgLy8gSWdub3JlZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaW52
YWxpZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVzZXJNZWRp
YVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwpAQCAtMTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3Rh
cnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50eXBlID09
IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAgIGlmICho
YXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9Db25zdHJh
aW50cykpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OklsbGVn
YWxDb25zdHJhaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1c2VybWVk
aWEuaHRtbCNkb20tbWVkaWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4gTGV0IGNv
bnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBMZXQg
cmVxdWVzdGVkTWVkaWFUeXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNvbnN0cmFp
bnRzIHdpdGggZWl0aGVyIGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEgdmFsdWUg
b2YgInRydWUiLgotICAgIC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhlIGVtcHR5
IHNldCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBUaGUgd29y
ZAotICAgIC8vICAgICJvcHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRvIFdlYklE
TCBydWxlcywgYnV0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVyCi0gICAg
Ly8gICAgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3QuYXVkaW9D
b25zdHJhaW50cy5pc1ZhbGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlk
KSB7Ci0gICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJlbnQgc2V0
dGluZ3Mgb2JqZWN0J3MgcmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQgdG8gdXNl
IHRoZSBmZWF0dXJlIGluZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1lIGFsbG93
dXNlcm1lZGlhLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNlcHRpb24g
b2JqZWN0IHdob3NlIG5hbWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1ZSBTZWN1
cml0eUVycm9yLgpAQCAtMjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1lc3NhZwog
CiAgICAgRXhjZXB0aW9uQ29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2Fz
ZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGludmFsaWQg
Y29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoKICAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gbm8g
Y29uc3RyYWludHMiKTsKICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXgg
MzlhYmY2MGNkMDZiODk3MjVhMGI2NzQzNWU4OGUzYTI1YjQ2ZjJmMC4uOWNjN2EyYmQ2ODJiNTU5
NjBiOWY0MTBiYTYwOWJjNmNlZDRjODk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2aWNlVUlE
cyhjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
VUlEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRp
b0RldmljZSwgQ2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICBlbnVt
IE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJs
ZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQ
ZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBJbGxlZ2FsQ29uc3RyYWludCwgT3RoZXJG
YWlsdXJlIH07CisgICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWlu
dHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWlu
dCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgT3RoZXJG
YWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOwogCiAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MDM5YzE0
NjhjOTkwNmU5OWNhYmUwMDMxMjNmMzhhMmNhOGRjMjliLi40YzZlNTRjNmZhZmU3MTBlMDM2MDkx
ODk0ODJkZjY2YWY4NTQxODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTkwOTksNiAr
OTA5OSwyNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIHRzOwogfQogCit2b2lkIERvY3VtZW50Ojp3
aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IHRoaXMtPnRvcERvY3VtZW50KCk7CisKKyAgICBp
ZiAodG9wRG9jdW1lbnQuaGFzRm9jdXMoKSkgeworICAgICAgICBjYWxsYmFjaygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgdG9wRG9jdW1lbnQubV93aGVuRm9jdXNIYW5kbGVycy5h
cHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2b2lkIERvY3VtZW50OjpjaGFuZ2VkVG9B
Y3RpdmVBbmRGb2N1c2VkKCkKK3sKKyAgICBBU1NFUlQoaGFzRm9jdXMoKSk7CisgICAgYXV0byBj
YWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKHRvcERvY3VtZW50KCkubV93aGVuRm9jdXNIYW5kbGVy
cywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKQorICAgICAgICBj
YWxsYmFjaygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NVTUVO
VF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiY2JjZGY5ZjViZGI1ZDA4YTAx
YzFiMjMyZTc3NzgzMGE5YmEyYzA1Li5mN2JiNDdjMmRkMWMzNDE3ZDViYTVjZGY5NTc5NTZjMzQz
NzYzZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDI5LDYgKzQyOSw4IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGhhc0ZvY3VzKCkgY29uc3Q7CisgICAgdm9pZCB3aGVuVG9wTGV2ZWxE
b2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBjaGFuZ2VkVG9B
Y3RpdmVBbmRGb2N1c2VkKCk7CiAKICAgICBib29sIGhhc01hbmlmZXN0KCkgY29uc3Q7CiAgICAg
CkBAIC0yMjYwLDYgKzIyNjIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TW9kYWxDb250YWluZXJPYnNlcnZlcj4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyOwor
CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fd2hlbkZvY3VzSGFuZGxlcnM7CiB9Owog
CiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBkYjE2MmE0YzU4OThm
ZTJlOTQyODlmMGM5Njg1MDAwMzc2YTNmYjBjLi43Y2Y4ZWZmYzk1NTM4MDQwODZkOGEyYzE4ODUy
ZjkwMWU1Y2FkM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cApAQCAtMjA4OSw2ICsyMDg5LDkgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6Zm9jdXNlZE9yQWN0
aXZlU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBib29sIGFjdGl2ZUFuZEZvY3VzZWQgPSBpc0ZvY3Vz
ZWRBbmRBY3RpdmUoKTsKIAorICAgIGlmIChhY3RpdmVBbmRGb2N1c2VkKQorICAgICAgICBtX2Rv
Y3VtZW50LT5jaGFuZ2VkVG9BY3RpdmVBbmRGb2N1c2VkKCk7CisKICAgICBtX2RvY3VtZW50LT51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICNpZiBVU0UoVUlLSVRfRURJVElORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggZWE3ZDc2
MTFlYjRkNmE5MDg5ZDJkMmE5MjU5YmJkOTBhOWEwNjc4NS4uNzFmMmMyZjJmYTIyMGRlOWE4ZGQw
ZDJhNjEzN2E5NWNlMjQ1MTUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTE1MjYsNiArMTUyNiwxNiBAQCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPm1vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJs
ZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0R2V0VXNlck1lZGlhUmVxdWly
ZXNGb2N1cyhlbmFibGVkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKCk7
Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewogICAgIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPnNldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoZW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCBiNjY0ZTllYTExMWNlZDk4MDIyNTdmMjEyZWY3NGU0
NjRkZjgyOGVjLi5mNDI4NTBiMDljNzYzMmZkZWVkOTk3Mjc2OTk4YjkwMTEwZjVhYzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmgKQEAgLTM5OCw2ICszOTgsMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZShXS1ByZWZlcmVuY2VzUmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRz
IHRvIHRydWUuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1cyhXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYpOwor
CiAvLyBEZWZhdWx0cyB0byB0cnVlLgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldElD
RUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CiBXS19F
WFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggOWM1ZjhkYWM1OGZmOWU1NzZlNTk1MGU2ZDc5NWEw
M2RmZjUzYzc0MC4uMWUzYjE5NjEzY2I2N2Q3OGQ4YzhhNTcxZGQ4YzkyNzA5MzEwN2I3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KQEAgLTY1MCw2ICs2NTAsMTYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0
b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogICAgIF9wcmVmZXJl
bmNlcy0+c2V0TWVkaWFEZXZpY2VzRW5hYmxlZChlbmFibGVkKTsKIH0KIAorLSAoQk9PTClfZ2V0
VXNlck1lZGlhUmVxdWlyZXNGb2N1cworeworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmdldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMoKTsKK30KKworLSAodm9pZClfc2V0R2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1czooQk9PTCllbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKGVuYWJsZWQpOworfQorCiAtIChCT09MKV9zY3JlZW5DYXB0dXJl
RW5hYmxlZAogewogICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnNjcmVlbkNhcHR1cmVFbmFibGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGMxYzcyM2ExZmY0N2VhYzE5NmJkMDYyYjNlMjc3MzAy
NGYzMWZhMDUuLmQxNTViYTFmMGI3OWY5NGI5YjZjYzM5YWI3YTAwMzE2MDhjZGJkYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCkBAIC0xMTcsNiArMTE3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFBlZXJDb25uZWN0aW9uRW5hYmxlZDopIEJPT0wgX3BlZXJDb25uZWN0aW9u
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEZXZpY2VzRW5hYmxlZDopIEJPT0wg
X21lZGlhRGV2aWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRHZXRVc2VyTWVkaWFSZXF1
aXJlc0ZvY3VzOikgQk9PTCBfZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQ6KSBCT09MIF9zY3JlZW5DYXB0
dXJlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZDopIEJPT0wgX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRN
b2NrQ2FwdHVyZURldmljZXNQcm9tcHRFbmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2Vz
UHJvbXB0RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3MuY3BwCmluZGV4IGQ5MjYyODAwZTQ3MWMyYmJiZTI5YjM4MGU3OWYzZWJiYzZlMmUxZGMuLjI3
NDI0N2UxODRiMDc1ZmM2MDRmN2ZhY2IzNDQ2ODNlYzE1NDIxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTM4Mjcs
NiArMzgyNywxMiBAQCB2b2lkIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKFdlYktpdFNldHRpbmdzKiBzZXR0aQogICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocmVxdWlyZWQpOwog
fQogCit2b2lkIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhXZWJL
aXRTZXR0aW5ncyogc2V0dGluZ3MsIGJvb2wgcmVxdWlyZWQpCit7CisgICAgV2ViS2l0U2V0dGlu
Z3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMt
PnNldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocmVxdWlyZWQpOworfQorCiAvKioKICAqIHdl
YmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVf
c3VwcG9ydDoKICAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgK
aW5kZXggMDQ2OWY3ZWMyODM2ODJlMTUyZWRlOTY5YWIzYWFlMGJhY2RhNTQ4Yi4uNDAxODlkZGFj
N2IzNWQ0MWRlZTJhYjg0N2I5YzJlMjFjNDM0NjM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgKQEAgLTMz
LDUgKzMzLDYgQEAKIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHdlYmtpdFNldHRpbmdzR2V0UHJl
ZmVyZW5jZXMoV2ViS2l0U2V0dGluZ3MqKTsKIAogV0tfRVhQT1JUIHZvaWQgd2Via2l0U2V0dGlu
Z3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0dGluZ3Mq
LCBib29sIHJlcXVpcmVkKTsKK1dLX0VYUE9SVCB2b2lkIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhXZWJLaXRTZXR0aW5ncyosIGJvb2wgcmVxdWlyZWQpOwogCiAj
ZW5kaWYgLy8gV2ViS2l0U2V0dGluZ3NQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZDEzNmUxZTdkMzlmZGY2OThjZjQ2ZjU3ZmRm
NmRiZGY0YWIzMWNhLi5iMzQwMzcxYTU4NmIzNGNkNWY3YjI2NGY3NGM2NGYwNDY5MjQ0ZTRkIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDUgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIERpc2FibGUgZm9jdXMgZmxhZyBm
b3IgdGVzdGluZyB0byBub3QgcmVxdWlyZSB0byBmb2N1cyB0aGUgd2luZG93LgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6ZG9DYXB0dXJlTXV0ZVRlc3QpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJl
cHJvbXB0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZm
ZXJTaXplLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5
TWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZXREaXNwbGF5TWVkaWFUZXN0OjpT
ZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFE
aXNhYmxlZC5tbToKKyAgICAgICAgKE1lZGlhQ2FwdHVyZURpc2FibGVkVGVzdDo6U2V0VXApOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxh
dGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlU2ltdWxhdGVGYWlsZWRT
YW5kYm94OjpTZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RVSUNsaWVudC5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0
ZURldmljZXNQZXJtaXNzaW9uQ2hlY2spOgorICAgICAgICAodGVzdFdlYlZpZXdVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAgICAodGVzdFdlYlZpZXdBdWRpb09ubHlVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9UZXN0
RXhwZWN0YXRpb25zLmpzb246CisKIDIwMjItMDEtMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVu
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQYWdlUHJveHkgZGVzdHJ1Y3Rpb24gc2hvdWxkIG5v
dCBsYXVuY2ggYSBuZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQppbmRleCA5MzYyZWYzNTdlOWIwODYxMDM0ZmJlYzMz
OGNiMTk4YTE5MWI2YmZhLi42NWJmYmRlZjA4MjI0NjA4MjNjZmQ2MWFhMzcyODc0OTViMmIxZGE0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVk
aWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlh
Lm1tCkBAIC0xNTIsMTQgKzE1MiwyMSBAQCBib29sIHdhaXRVbnRpbENhcHR1cmVTdGF0ZShXS1dl
YlZpZXcgKndlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBleAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBkb0NhcHR1cmVNdXRlVGVzdChjb25zdCBGdW5jdGlvbjx2
b2lkKFRlc3RXS1dlYlZpZXcqLCBfV0tNZWRpYU11dGVkU3RhdGUpPiYgc2V0UGFnZU11dGVkKQor
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiogY29uZmlndXJhdGlvbikKIHsKLSAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1
dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKKworICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKK30KKwor
dm9pZCBkb0NhcHR1cmVNdXRlVGVzdChjb25zdCBGdW5jdGlvbjx2b2lkKFRlc3RXS1dlYlZpZXcq
LCBfV0tNZWRpYU11dGVkU3RhdGUpPiYgc2V0UGFnZU11dGVkKQoreworICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29u
ZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwog
ICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMjM1LDEwICsy
NDIsNyBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVNdXRlQVBJKQogewogICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRp
YUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmlj
ZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9u
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0zNDAsMTAgKzM0NCw3IEBAIFRF
U1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3ApCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3Nh
Z2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIu
Z2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtMzc4LDEwICszNzksNyBAQCBURVNUKFdlYktpdDIsIENh
cHR1cmVJbmRpY2F0b3JEZWxheSkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdl
dCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQo
KSBuYW1lOkAiZ3VtIl07CkBAIC00MTQsMTAgKzQxMiw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVy
ZUluZGljYXRvckRlbGF5V2hlbkNsb3NlZCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8g
cHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5h
YmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9
IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0
aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVz
c2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNl
ckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxl
ci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC00NDIsMTAgKzQzNyw3IEBAIFRFU1QoV2ViS2l0Miwg
R2V0Q2FwYWJpbGl0aWVzKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
OwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24g
PSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVT
OwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAg
IGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkp
OwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxl
ciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQoKSB1c2VyQ29udGVudENv
bnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5h
bWU6QCJndW0iXTsKQEAgLTQ3MywxMCArNDY1LDcgQEAgVEVTVChXZWJLaXQsIEludGVycnVwdGlv
bkJldHdlZW5TYW1lUHJvY2Vzc1BhZ2VzKQogICAgIFtjb25maWd1cmF0aW9uIHNldEFsbG93c0lu
bGluZU1lZGlhUGxheWJhY2s6WUVTXTsKICNlbmRpZgogCi0gICAgYXV0byBwcmVmZXJlbmNlcyA9
IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQo
KS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIg
PSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpt
ZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC01MzIsMTAgKzUyMSw3IEBAIFRF
U1QoV2ViS2l0LCBQZXJtaXNzaW9uRGVsZWdhdGVQYXJhbWV0ZXJzKQogICAgIFtjb25maWd1cmF0
aW9uIHNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2s6WUVTXTsKICNlbmRpZgogCi0gICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJl
bmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGRvbmUg
PSBmYWxzZTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CkBAIC01NTUsMTAgKzU0MSw3
IEBAIFRFU1QoV2ViS2l0LCBXZWJBdWRpb0FuZEdldFVzZXJNZWRpYSkKICAgICBjb25maWd1cmF0
aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOwog
ICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wuX2NvbmZpZ3VyYXRpb24uc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBOTzsKIAotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
X21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3Vy
YXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0g
YWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1
cmF0aW9uLmdldCgpIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRs
ZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNTkxLDkgKzU3NCw3IEBA
IFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmcpCiAgICAgICAgICAg
ICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZl
YXR1cmVdOwogICAgIH0KIAotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1
cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZp
Z3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tH
VU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVy
LmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTY2Niw5ICs2NDcsNyBAQCBURVNUKFdlYktpdDIsIENy
YXNoR1BVUHJvY2Vzc0FmdGVyQXBwbHlpbmdDb25zdHJhaW50cykKICAgICAgICAgaWYgKFtmZWF0
dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVk
Il0pCiAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFs
RGVidWdGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQo
KS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwpA
QCAtNzQ2LDkgKzcyNSw3IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0
dXJpbmdBbmRDYWxsaW5nKQogICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllF
UyBmb3JGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KIAotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNh
cHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdl
dCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25m
aWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxl
ciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29u
ZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
Om1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTg2NywxMCArODQ0LDcgQEAg
VEVTVChXZWJLaXQsIEF1dG9wbGF5T25WaXNpYmlsaXR5Q2hhbmdlKQogICAgIGF1dG8gbWVzc2Fn
ZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAg
ICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CiAKLSAgICBhdXRvIHBy
ZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2Vz
Ll9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1
cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2Vz
Ll9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNh
cHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgZG9uZSA9IGZh
bHNlOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKQEAgLTg5OCw2ICs4NzIsNzAgQEAg
VEVTVChXZWJLaXQsIEF1dG9wbGF5T25WaXNpYmlsaXR5Q2hhbmdlKQogICAgIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb1Rlc3QoKSJdOwogICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBnZXRVc2VyTWVk
aWFGb2N1c1RleHQgPSBSIkRPQ0RPQ0RPQygKKzxodG1sPjxib2R5PgorPHNjcmlwdD4KK29ubG9h
ZCA9ICgpID0+IHsKKyAgICBkb2N1bWVudC5vbnZpc2liaWxpdHljaGFuZ2UgPSAoKSA9PiB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoIlBBU1MiKTsKKyAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoIlBBU1MiKTsKK30K
KworZnVuY3Rpb24gY2FwdHVyZSgpCit7CisgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0pLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKGRvY3VtZW50Lmhhc0ZvY3Vz
KCkgPyAiUEFTUyIgOiAiRkFJTCIpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+PC9o
dG1sPgorKURPQ0RPQ0RPQyI7CisKK1RFU1QoV2ViS2l0LCBHZXRVc2VyTWVkaWFGb2N1cykKK3sK
KyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7
IGdldFVzZXJNZWRpYUZvY3VzVGV4dCB9IH0KKyAgICB9LCBUZXN0V2ViS2l0QVBJOjpIVFRQU2Vy
dmVyOjpQcm90b2NvbDo6SHR0cCwgbnVsbHB0ciwgbnVsbHB0ciwgOTA5MCk7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworCisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1
bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1By
b2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNz
YWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CisKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0
dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKKyAgICBhdXRvIHByZWZlcmVu
Y2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9nZXRV
c2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gWUVTOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJWaWV3Lmdl
dCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKworICAgIC8vIExvYWQgcGFnZS4KKyAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gTWluaW1pemUKKyAgICBkb25lID0gZmFs
c2U7CisgICAgYXV0byAqaG9zdFdpbmRvdyA9IFt3ZWJWaWV3IGhvc3RXaW5kb3ddOworICAgIFto
b3N0V2luZG93IG1pbmlhdHVyaXplOmhvc3RXaW5kb3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisKKyAgICAvLyBXZSBjYWxsIGNhcHR1cmUgd2hpbGUgbWluaW1pemlu
Zy4KKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImNhcHR1cmUoKSJdOworCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgZ2V0VXNlck1l
ZGlhIGRvZXMgbm90IHJlc29sdmUgdG9vIHNvb24uCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c3BpblJ1bkxvb3AoMTAwKTsKKyAgICBFWFBFQ1RfRkFMU0UoZG9uZSk7CisKKyAgICBbaG9zdFdp
bmRvdyBkZW1pbmlhdHVyaXplOmhvc3RXaW5kb3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7Cit9CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiBURVNUKFdlYktpdCwg
SW52YWxpZERldmljZUlkSGFzaFNhbHRzKQpAQCAtOTI0LDEwICs5NjIsNyBAQCBURVNUKFdlYktp
dCwgSW52YWxpZERldmljZUlkSGFzaFNhbHRzKQogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29u
ZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uZ2V0KCldKS5nZXQoKV07Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVF
bmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25m
aWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQpp
bmRleCAxMmNhNzQ2MmQ1YWJjZGJjZGQxMThlZTYzYmU1ZjM1ODExOTVjNjk5Li5hNzYwOWQzNDUy
ZTNjZDA4OGUzMjY3MGNhZDYyYTcwMzFlNDg5MjE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAg
LTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBib29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZh
bHNlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRpYyB2b2lkIGluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24qIGNvbmZp
Z3VyYXRpb24pCit7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXTsKKworICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7
CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9
IE5POworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwor
ICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87Cit9CisKIFRF
U1QoV2ViS2l0LCBOYXZpZ2F0ZUR1cmluZ0dldFVzZXJNZWRpYVByb21wdCkKIHsKICAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwpAQCAtODgsMTAgKzk4LDcgQEAgVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVyaW5nRGV2
aWNlRW51bWVyYXRpb24pCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107
Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9
IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7
Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAg
aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5n
ZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlvbldoaWxlR2V0
VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTE3LDEwICsxMjQsNyBA
QCBURVNUKFdlYktpdCwgRGVmYXVsdERldmljZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQogICAgIGF1
dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5T
KFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdl
dCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29u
ZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0aW9uV2hp
bGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAg
ICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xNDcsMTAgKzE1
MSw3IEBAIFRFU1QoV2ViS2l0LCBEZXZpY2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHByb2Nlc3NQ
b29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
biA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZ
RVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7Cisg
ICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQo
KSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZp
Zy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlvbldoaWxl
R2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpp
bmRleCAwN2Y1N2QwMTI1ZTA0OTkyMDE1YjMwZjE2ODZkZGEzZmUyMDUwZmFlLi43YWNkMzY4Njc1
NDdjNWJmMGUxNDE3NjU1MDMwM2M1NjBjMWU3OTdlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNjAs
MTQgKzYwLDIyIEBACiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oV0tXZWJWaWV3Q29uZmlndXJhdGlv
biogY29uZmlndXJhdGlvbikKK3sKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxl
ZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQg
PSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsK
K30KKwogVEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXByb21wdCkKIHsKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5f
bWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJh
dGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
R2V0VXNlck1lZGlhUmVwcm9tcHRUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAt
MTAwLDEwICsxMDgsNyBAQCBURVNUKFdlYktpdDIsIEdldFVzZXJNZWRpYVJlcHJvbXB0QWZ0ZXJB
dWRpb1ZpZGVvQmVpbmdEZW5pZWQpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nl
c3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5n
ZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVJlcHJvbXB0
VGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbZGVsZWdh
dGUgc2V0QXVkaW9EZWNpc2lvbjpXS1Blcm1pc3Npb25EZWNpc2lvbkdyYW50XTsKQEAgLTEyMywx
MCArMTI4LDcgQEAgVEVTVChXZWJLaXQyLCBNdWx0aXBsZUdldFVzZXJNZWRpYVN5bmNocm9ub3Vz
bHkpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRv
cHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1
dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVy
ZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNv
bmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVy
ZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1l
ZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVJlcHJvbXB0VGVzdFZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZp
Zy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVy
ZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQppbmRleCA4NzM2ZWE0NjQ5ZDJi
NGFhN2ExMmM2Y2UwNWU3MmExZGM3ZDM0ZTk4Li45NzJiYTZhZDFiYjc3YmQxNDdhN2FhZTQ5OWRl
YmNlYTYzN2JjZmE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC02MSw2ICs2MSw3IEBA
IFRFU1QoV2ViS2l0LCBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQpCiAgICAgcHJlZmVyZW5jZXMu
X21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMu
X21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcAppbmRleCA1NzUxOTcz
YTU4ODc4OWU0ZmU5Zjg2ZTk1NTM1ZWI1NWUyZmQ3ZTEzLi5iMjM0YzI4YjhkMTZiYTMwNjgxMzEw
ZDdhNTY0MThkOTlmODI4OGY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1VzZXJNZWRpYS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgVEVTVChXZWJLaXQsIFVzZXJNZWRp
YUJhc2ljKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywg
ZmFsc2UpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVp
Q2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTExMyw2ICsxMTQsNyBAQCBURVNUKFdl
YktpdCwgT25EZXZpY2VDaGFuZ2VDcmFzaCkKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZh
bHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVz
Rm9jdXMocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGll
bnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CkBAIC0xNzMs
NiArMTc1LDcgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFzaCkKICAgICBXS1By
ZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAgIFdL
UGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgLy8gV2Ugd2FudCB1aUNsaWVudC5jaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gdG8gYmUgbnVsbC4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KaW5k
ZXggNTMzZGUxZWM0ZDZkYTQwMDVkOThhNzk4Y2U5NzZhNWQ5ZTAyMzQzOS4uOWRkNjI5Y2E4YjY0
Y2E2MGRjZTk0ZWU4YzBmYzhhZDY3YmFmMzEyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KQEAgLTcyLDYg
KzcyLDcgQEAgVEVTVChXZWJLaXQsIEF1ZGlvQnVmZmVyU2l6ZSkKICAgICBhdXRvIHByZWZlcmVu
Y2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwogICAgIHByZWZlcmVuY2VzLl9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICBwcmVmZXJlbmNlcy5f
bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAs
IDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQppbmRleCAyZjEwNjk0NDRhN2UxODcwY2QyZGE5MmJhZDc5
Y2IyODljN2QwYjQ2Li45MjNjMzgzMzhjMjdkMWRkNjA4ODBiM2E4OGMyYjQwNjk1OWFhNDkzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nl
c3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9j
ZXNzLm1tCkBAIC02OTYsNiArNjk2LDcgQEAgVEVTVChHUFVQcm9jZXNzLCBFeGl0c1VuZGVyTWVt
b3J5UHJlc3N1cmVXZWJSVENDYXNlKQogICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAgICAgIGNvbmZpZ3VyYXRpb24uX21l
ZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVy
ZURldmljZXNFbmFibGVkID0gWUVTOworICAgICAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyA9IE5POwogICAgIH0pOwogfQogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0dldERpc3BsYXlNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvR2V0RGlzcGxheU1lZGlhLm1tCmluZGV4IGRlMDUwMzAzN2Y2YzlhYTJkYWJjNTI5MDMxNWM4
YzFiMmMyNGM1NTkuLmU3YzdkNjJjZDBjYjJkYTFiZGY3MWU3NmNmOTBjODU1M2IzYmFkNmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxh
eU1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0
RGlzcGxheU1lZGlhLm1tCkBAIC0xMDQsMTAgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwogICAgICAgICBwcmVm
ZXJlbmNlcy5fc2NyZWVuQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAKLSAgICAgICAgbV93ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KyAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICAgICAgbV91aURlbGVnYXRl
ID0gYWRvcHROUyhbW0dldERpc3BsYXlNZWRpYVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICAgICAgbV93ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUuZ2V0KCk7Cisg
ICAgICAgIFttX3dlYlZpZXcgZm9jdXNdOwogCiAgICAgICAgIFttX3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0RGlzcGxheU1lZGlhIl07CiAgICAgfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggYzUzMzgwY2IxMjlmM2I0MzNiMzkwYTNmZGU4
ZDc3YWRkZjYyZDI5Ny4uYzkyMmI2M2EyNzE2ZGFlZjQ2MTIxZWQzNzczYzdmZDQ2OTUxNTMxOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC02ODI4LDYgKzY4MjgsNyBAQCBU
RVNUKFByb2Nlc3NTd2FwLCBHZXRVc2VyTWVkaWFDYXB0dXJlU3RhdGUpCiAgICAgcHJlZmVyZW5j
ZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAgIHdlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwogICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVu
Y2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAKICAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwogICAgIGF1dG8gaGFu
ZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlv
bi5tbQppbmRleCA0MGMwOGUzNWE2YTVkNmVjNDczZDdmYTM2MzAwZTAwYWUyY2RjY2MwLi4yYzE2
NDRkMWI2OGFmNmQwMjYyMzJkNjNmNDYyNTIzOWZiMGI3MGUyIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24u
bW0KQEAgLTE2Miw2ICsxNjIsNyBAQCBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JXaGVuU3RhcnRpbmdBdWRpb0NhcHR1cmVPbkRpZmZlcmVudFBhZ2UpCiAgICAgcHJlZmVyZW5j
ZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX3Nw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX2dldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gZmly
c3RXZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7CiAgICAgW2ZpcnN0V2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1l
ZGlhRGlzYWJsZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYURpc2FibGVkLm1tCmluZGV4IDU3NjAxYzcxOWViODAwNmY3MzUxYmRhMjAwOGU2ZTA2
ZThiMDI1ODEuLjE3NzlmYWFkMzY5MDg3NDJiNGFkN2MxOTcwNzBjM2M1N2NmMjY5ZTQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlz
YWJsZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2Vy
TWVkaWFEaXNhYmxlZC5tbQpAQCAtODIsNiArODIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8g
cHJlZmVyZW5jZXMgPSBbbV93ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzOwogICAg
ICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICAg
ICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5P
OworICAgICAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwog
CiAgICAgICAgIG1fdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgICAgIFttX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTptX3VpRGVsZWdh
dGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpp
bmRleCAyNGRjMzUxMmY4NDBjNWVjMmUxYTg5MGViM2U4MjE5YmYzYzMxNWQyLi5kNzNhMWFlZjgx
ZTMxMzYxNThhNzIwYTJkZjJiZTIzM2FhOGYyNzk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNp
bXVsYXRlRmFpbGVkU2FuZGJveC5tbQpAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbbV93ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2Vz
OwogICAgICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
ICAgICAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
biA9IE5POworICAgICAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9
IE5POwogCiAgICAgICAgIG1fdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTaW11bGF0ZUZhaWxlZFNh
bmRib3hVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFttX3dlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTptX3VpRGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAppbmRleCAyOThlNzVhZDUwM2M5
MWU2NGE0MDJjNmRhM2I4NzBkZjMzNWI3MjFlLi4yODRmODA0YjY0MTA1Yjg0YjY3NjI4Mzc4Y2U4
Y2YwYzE5NzJhY2Y4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtMTAwMiw2ICsxMDAyLDcgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFFbnVtZXJhdGVEZXZpY2VzUGVybWlzc2lvbkNoZWNrKFVJ
Q2xpZW50VGVzdCogdGUKICAgICBnYm9vbGVhbiBlbmFibGVkID0gd2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdFNldHRpbmdz
U2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBGQUxTRSk7
CisgICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdz
LCBGQUxTRSk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9ja19jYXB0dXJlX2Rl
dmljZXMoc2V0dGluZ3MsIFRSVUUpOwogCiAgICAgdGVzdC0+c2hvd0luV2luZG93KCk7CkBAIC0x
MDM3LDYgKzEwMzgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0
ZURldmljZXNQZXJtaXNzaW9uQ2hlY2soVUlDbGllbnRUZXN0KiB0ZQogICAgIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgZW5hYmxlZCk7CiAgICAgd2Vi
a2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9ja19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIEZB
TFNFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbihzZXR0aW5ncywgVFJVRSk7CisgICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBUUlVFKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQpAQCAtMTA0Niw2ICsxMDQ4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2kK
ICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIFRS
VUUpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2Vz
KHNldHRpbmdzLCBUUlVFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbihzZXR0aW5ncywgRkFMU0UpOworICAgIHdlYmtpdFNldHRpbmdz
U2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgRkFMU0UpOwogCiAgICAgdGVz
dC0+c2hvd0luV2luZG93KCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJNZWRpYVJlcXVl
c3RIVE1MID0gIjxodG1sPiIKQEAgLTExMDUsNiArMTEwOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJWaWV3VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2Nv
bnN0cG9pCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRp
bmdzLCBlbmFibGVkKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1
cmVfZGV2aWNlcyhzZXR0aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJr
aXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRSVUUpOwog
fQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC0xMTE0LDYgKzEx
MTgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9l
bmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBUUlVFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nf
c2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Vi
a2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGlu
Z3MsIEZBTFNFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMoc2V0dGluZ3MsIEZBTFNFKTsKIAogICAgIHRlc3QtPnNob3dJbldpbmRvdygpOwogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiB1c2VyTWVkaWFSZXF1ZXN0SFRNTCA9ICI8aHRtbD4iCkBAIC0xMTQ0
LDYgKzExNDksNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0F1ZGlvT25seVVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsCiAgICAgd2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBlbmFibGVkKTsKICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgRkFMU0Up
OwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJl
cXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRSVUUpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmll
d0Rpc3BsYXlVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1Rlc3RF
eHBlY3RhdGlvbnMuanNvbiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9UZXN0RXhwZWN0YXRp
b25zLmpzb24KaW5kZXggNDcyMTk0MTQ4NmQ3YjkzOWQ4MzAzMjEzZjU5N2NkNDAyYWU2NGRlNS4u
NDM4MjdkNjdmN2Q0MjExOGVkZDkwMzlkMzk5MzQyZWUzZDgwZjc5ZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2dsaWIvVGVzdEV4cGVjdGF0aW9ucy5qc29uCkBAIC01MSw2ICs1MSw5IEBA
CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIi93ZWJraXQvV2ViS2l0V2ViVmlldy9nZW9s
b2NhdGlvbi1wZXJtaXNzaW9uLXJlcXVlc3RzIjogewogICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsiZ3RrIjogeyJzdGF0dXMiOiBbIlRJTUVPVVQiLCAiUEFTUyJdLCAiYnVnIjogIndlYmtp
dC5vcmcvYi8yMTM3ODYifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiL3dlYmtpdC9X
ZWJLaXRXZWJWaWV3L2Rpc3BsYXktdXNlcm1lZGlhLXBlcm1pc3Npb24tcmVxdWVzdCI6IHsKKyAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7Imd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIzNTAyNiJ9fQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlNThmMjg5Y2ZhZmMxMWIwMjk3YmYyNTg4Mjg5NjcyZmI2NWU3MTJjLi45
NWMwZDY3OWIyYmIxMWI2NTk0OGVlNWRiNzkyZWEwNDkwMzdhYmY2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJNZWRpYQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMS0xMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2Vy
Q2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2ZWQgZnJvbSBhIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVj
dGVkLnR4dAppbmRleCAyMjY1NzhmNmYwY2Y2MGVjYjE0ZDMwY2YzZjg1ZTJlYzA2M2Q1MDQ2Li40
Njk2MjcxZDllYzA2NzQ1NGM4NjkwMTY2OGY1OTg1MDBiNTU5MjM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdl
dFVzZXJNZWRpYS1leHBlY3RlZC50eHQKQEAgLTYsOCArNiw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiBQQVNTIHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLndlYmtpdEdldFVzZXJN
ZWRpYSBpcyAndW5kZWZpbmVkJwogCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbihnb3RTdHJlYW0xKTsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKCkgcmVqZWN0
ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBUeXBlIGVycm9yCi1QQVNTIG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoKSBy
ZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IE5vIGNvbnN0cmFpbnRzIHByb3ZpZGVkCitQ
QVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSByZWplY3RlZCB3aXRo
IGVycm9yOiBUeXBlRXJyb3I6IE5vIGNvbnN0cmFpbnRzIHByb3ZpZGVkCiBQQVNTIG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhLmFwcGx5KHVuZGVmaW5lZCkgcmVqZWN0ZWQgd2l0
aCBlcnJvcjogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIE1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEgb24gaW5zdGFuY2VzIG9mIE1lZGlhRGV2aWNlcwogUEFTUyBTdHJlYW0gMSBnZW5lcmF0ZWQu
CiBQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449028</attachid>
            <date>2022-01-13 00:14:56 -0800</date>
            <delta_ts>2022-01-13 06:23:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220113091454.patch</filename>
            <type>text/plain</type>
            <size>59625</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAwNzkxMWQ1NjQ4ZDYwYWU3MmU0ZGRh
ZWFjNDQ0ZjAxMDNlMjZjNjUuLmE5YWVhOTEzOTM5OGNhN2EzN2M5ZmQzMzY3YTEwZWM5OWMyYTVm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjEtMTEt
MjkgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJp
YWxpemUgQ1NTIDxudW1iZXI+IHZhbHVlcyB3aXRoIHJvdW5kaW5nLCBsaW1pdGVkIGRlY2ltYWwg
cHJlY2lzaW9uLCBhbmQgbm8gZXhwb25lbnRzIHBlci1zcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmYzE3
MGVhNjZmNzQyYmZjZjhiMjFiY2E1MTkwZTRkMDJmMzE1Mi4uZmI3MWFhMTQxOTBhOTUxOTBiMDg4
MDgyZGE1OWJkZWRlZTQ3MTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAx
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNl
IGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgYSBjYWxs
YmFjayBzbyB0aGF0IGEgdGFzayBpcyBleGVjdXRlZCB3aGVuIHRoZSB0b3AgbGV2ZWwgZG9jdW1l
bnQgaGFzIGZvY3VzLgorICAgICAgICBVc2UgdGhpcyB0byBkZWxheSBnZXRVc2VyTWVkaWEgcmVx
dWVzdHMgdW50aWwgdG9wIGxldmVsIGRvY3VtZW50IGhhcyBmb2N1cy4KKyAgICAgICAgVGhlIHNw
ZWMgY3VycmVudGx5IGRlZmluZXMgdGhhdCB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGN1cnJlbnQg
ZG9jdW1lbnQgdG8gaGF2ZSBmb2N1cyBidXQgdGhpcyBpcyBhYm91dCB0byBiZSBjaGFuZ2VkIGFu
ZCBpcyBub3QgYWxpZ25lZCB3aXRoIG90aGVyIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zLgorCisg
ICAgICAgIFRoZSBwYXRjaCBhbHNvIG1vdmVzIHNvbWUgZ2V0VXNlck1lZGlhIGNoZWNrcyBlYXJs
aWVyIHNvIGFzIHRvIHJlc3BlY3Qgb3JkZXIgcHJvdmlkZWQgYnkgdGhlIHNwZWNzLgorCisgICAg
ICAgIENvdmVyZWQgYnkgQVBJIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorCiAyMDIyLTAx
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
RmV0Y2hFdmVudC50YXJnZXRDbGllbnRJZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMjgwM2ViNGM2OTJmMWU0Yzc5
N2EzZDM2ZDYwODk2MDkyNmExZTZlLi4yMTNmNjIzZjUxZWQzZTdlNTllMjRjMzQ3MTg3MDdmOGVm
Y2NjMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTEyICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZv
ciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBBZGQgc2V0dGVycy9nZXR0ZXJzIGZvciB0aGUgZ2V0VXNlck1lZGlhIGZvY3VzIHNldHRp
bmdzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJl
bmNlcyBfZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1c10pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIF9zZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0U2V0dGluZ3NTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0U2V0dGluZ3NQcml2YXRlLmg6CisKIDIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgY29tcHV0YXRpb24gb2Ygc2Vydmlj
ZSB3b3JrZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
aW5kZXggMWMwNzA1MTNkZTdhM2Q2MzRhMDJmNWJmNjc3ZWM5OWZlMjc5NGZmYi4uNjY3MTBmODQ5
ZjlkMWFhNmZmYzJmYTg5ZGZlYjRmNTI0M2M5MjY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBA
IC0yOTMsNiArMjkzLDE5IEBAIEZ1bGxTY3JlZW5FbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAg
ICBkZWZhdWx0OiBmYWxzZQogCitHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUmVxdWlyZSBmb2N1cyB0byBzdGFydCBnZXRVc2Vy
TWVkaWEiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlJlcXVpcmUgZm9jdXMgdG8gc3Rh
cnQgZ2V0VXNlck1lZGlhIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0
OiB0cnVlCisKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
d2ViY29yZU9uQ2hhbmdlOiBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkQ2hhbmdlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5NmUxNTY1ZjU4ZTUuLjE1ZTkyY2I0
OWUzZmM4OTdmNDczZTlhMGEzNzZkMTc0YTliMTljM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTExOCwxNSArMTE4
LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNlckdlc3R1cmVQcml2aWxlZGdlKEdl
c3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRV
c2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYg
cHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBj
cmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKTsKKworICAgIGlmICghYXVk
aW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8gY29uc3RyYWludHMgcHJvdmlkZWQi
X3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5pc0Z1bGx5QWN0
aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIl9zIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25z
dHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0g
Y3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7Ci0KICAgICBib29sIGlz
VXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAgICAgaWYgKGF1ZGlvQ29uc3RyYWlu
dHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODUgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVz
ZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgog
ICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9j
dW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVk
aW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQ
cml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICByZXF1ZXN0LT5zdGFydCgpOwor
CisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGluZ3MoKS5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
KCkpIHsKKyAgICAgICAgcmVxdWVzdC0+c3RhcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGRvY3VtZW50LT53aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKFtyZXF1ZXN0ID0g
V1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICBpZiAocmVxdWVzdC0+aXNDb250ZXh0U3RvcHBl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByZXF1ZXN0LT5zdGFydCgpOworICAg
IH0pOworfQorCitzdGF0aWMgYm9vbCBoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWlu
dChjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICAvLyBodHRwczov
L3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXNjcmVlbi1zaGFyZS8jbmF2aWdhdG9yLWFkZGl0
aW9ucworICAgIC8vIDEuIExldCBjb25zdHJhaW50cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJn
dW1lbnQuCisgICAgLy8gMi4gRm9yIGVhY2ggbWVtYmVyIHByZXNlbnQgaW4gY29uc3RyYWludHMg
d2hvc2UgdmFsdWUsIHZhbHVlLCBpcyBhIGRpY3Rpb25hcnksIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgorICAgIC8vICAgICAxLiBJZiB2YWx1ZSBjb250YWlucyBhIG1lbWJlciBuYW1lZCBhZHZh
bmNlZCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBl
RXJyb3IuCisgICAgLy8gICAgIDIuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIHdoaWNoIGlu
IHR1cm4gaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYSBtZW1iZXIgbmFtZWQgZWl0aGVyIG1p
biBvcgorICAgIC8vICAgICAgICBleGFjdCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisgICAgaWYgKCFjb25zdHJhaW50cy5pc1ZhbGlk
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWNvbnN0cmFpbnRzLmFkdmFuY2Vk
Q29uc3RyYWludHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGJvb2wg
aW52YWxpZCA9IGZhbHNlOworICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmZp
bHRlcihbJmludmFsaWRdIChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIG11dGFi
bGUgeworICAgICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3RyYWludFR5cGUoKSkgeworICAg
ICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgorICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkhlaWdodDogeworICAgICAgICAgICAgYXV0byYgaW50Q29uc3RyYWlu
dCA9IGRvd25jYXN0PEludENvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgaW50
IHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGludENvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGludENvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRp
bzoKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6IHsKKyAgICAg
ICAgICAgIGF1dG8mIGRvdWJsZUNvbnN0cmFpbnQgPSBkb3duY2FzdDxEb3VibGVDb25zdHJhaW50
Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgICAgIGlu
dmFsaWQgPSBkb3VibGVDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKSB8fCBkb3VibGVDb25zdHJh
aW50LmdldE1pbih2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6IHsKKyAgICAgICAgICAgIGF1
dG8mIGJvb2xDb25zdHJhaW50ID0gZG93bmNhc3Q8Qm9vbGVhbkNvbnN0cmFpbnQ+KGNvbnN0cmFp
bnQpOworICAgICAgICAgICAgYm9vbCB2YWx1ZTsKKyAgICAgICAgICAgIGludmFsaWQgPSBib29s
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZToKKyAgICAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKKyAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOiB7CisgICAgICAgICAgICBhdXRvJiBzdHJpbmdDb25z
dHJhaW50ID0gZG93bmNhc3Q8U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAg
ICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXM7CisgICAgICAgICAgICBpbnZhbGlkID0gc3RyaW5n
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGU6CisgICAg
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZToKKyAgICAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWU6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6RWNob0NhbmNlbGxhdGlvbjoKKyAgICAgICAgICAgIC8vIElnbm9yZWQuCisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGludmFsaWQ7CisgICAgfSk7CisKKyAgICByZXR1
cm4gaW52YWxpZDsKIH0KIAogdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25z
dCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJiBw
cm9taXNlKQpAQCAtMTUzLDcgKzIzNiwxOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxh
eU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVz
dDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlN
ZWRpYSwgeyB9LCBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKSwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8p
OworICAgIGlmIChoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludCh2aWRlb0NvbnN0
cmFpbnRzKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJnZXREaXNwbGF5TWVkaWEgbXVzdCBiZSBjYWxsZWQgd2l0aCB2YWxpZCBjb25zdHJhaW50cy4i
X3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWRvY3VtZW50LT5pc0Z1
bGx5QWN0aXZlKCkgfHwgIWRvY3VtZW50LT50b3BEb2N1bWVudCgpLmhhc0ZvY3VzKCkpIHsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1
bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3MgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1
ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2
aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcAppbmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgxZDViYzY3
ZGY1Li5jMzliOGYwYTc3ZTNiZTNiNmU3YTVkZTRiMDVjNWQwZTY0MTFmMjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKQEAgLTg1LDc0ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0
Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4dCA/ICZj
b250ZXh0LT50b3BPcmlnaW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhhc0ludmFs
aWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzKQotewotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2Ny
ZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRz
IGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFjaCBtZW1i
ZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlv
bmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZhbHVlIGNv
bnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVk
IHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYgdmFsdWUg
Y29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmlu
ZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0LCByZXR1
cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAg
ICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29u
c3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29uc3RyYWlu
dC5jb25zdHJhaW50VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
V2lkdGg6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7Ci0gICAg
ICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29u
c3RyYWludCk7Ci0gICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0g
aW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFs
dWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkZyYW1lUmF0ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9
IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgZG91
YmxlIHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhh
Y3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
aXNwbGF5U3VyZmFjZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2Fs
U3VyZmFjZTogewotICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxC
b29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZhbHVlOwot
ICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRl
dmljZUlkOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKLSAg
ICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJh
aW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKLSAg
ICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6U2FtcGxlUmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpT
YW1wbGVTaXplOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKLSAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgotICAgICAg
ICAgICAgLy8gSWdub3JlZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaW52
YWxpZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVzZXJNZWRp
YVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwpAQCAtMTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3Rh
cnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50eXBlID09
IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAgIGlmICho
YXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9Db25zdHJh
aW50cykpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OklsbGVn
YWxDb25zdHJhaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1c2VybWVk
aWEuaHRtbCNkb20tbWVkaWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4gTGV0IGNv
bnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBMZXQg
cmVxdWVzdGVkTWVkaWFUeXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNvbnN0cmFp
bnRzIHdpdGggZWl0aGVyIGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEgdmFsdWUg
b2YgInRydWUiLgotICAgIC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhlIGVtcHR5
IHNldCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBUaGUgd29y
ZAotICAgIC8vICAgICJvcHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRvIFdlYklE
TCBydWxlcywgYnV0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVyCi0gICAg
Ly8gICAgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3QuYXVkaW9D
b25zdHJhaW50cy5pc1ZhbGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlk
KSB7Ci0gICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJlbnQgc2V0
dGluZ3Mgb2JqZWN0J3MgcmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQgdG8gdXNl
IHRoZSBmZWF0dXJlIGluZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1lIGFsbG93
dXNlcm1lZGlhLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNlcHRpb24g
b2JqZWN0IHdob3NlIG5hbWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1ZSBTZWN1
cml0eUVycm9yLgpAQCAtMjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1lc3NhZwog
CiAgICAgRXhjZXB0aW9uQ29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2Fz
ZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGludmFsaWQg
Y29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoKICAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gbm8g
Y29uc3RyYWludHMiKTsKICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXgg
MzlhYmY2MGNkMDZiODk3MjVhMGI2NzQzNWU4OGUzYTI1YjQ2ZjJmMC4uOWNjN2EyYmQ2ODJiNTU5
NjBiOWY0MTBiYTYwOWJjNmNlZDRjODk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2aWNlVUlE
cyhjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
VUlEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRp
b0RldmljZSwgQ2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICBlbnVt
IE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJs
ZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQ
ZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBJbGxlZ2FsQ29uc3RyYWludCwgT3RoZXJG
YWlsdXJlIH07CisgICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWlu
dHMsIFVzZXJNZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWlu
dCwgSGFyZHdhcmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgT3RoZXJG
YWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOwogCiAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MDM5YzE0
NjhjOTkwNmU5OWNhYmUwMDMxMjNmMzhhMmNhOGRjMjliLi5mMzhjNjhkMDE4YTNjNzhkM2ZmOTlj
Yzk0MWRkYjRiZDMyZDZhYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTkwOTksNiAr
OTA5OSwyNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIHRzOwogfQogCit2b2lkIERvY3VtZW50Ojp3
aGVuVG9wTGV2ZWxEb2N1bWVudEhhc0ZvY3VzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IHRoaXMtPnRvcERvY3VtZW50KCk7CisKKyAgICBp
ZiAodG9wRG9jdW1lbnQuaGFzRm9jdXMoKSkgeworICAgICAgICBjYWxsYmFjaygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgdG9wRG9jdW1lbnQubV93aGVuRm9jdXNIYW5kbGVycy5h
cHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2b2lkIERvY3VtZW50OjpjaGFuZ2VkVG9B
Y3RpdmVBbmRGb2N1c2VkKCkKK3sKKyAgICBBU1NFUlQodG9wRG9jdW1lbnQoKS5oYXNGb2N1cygp
KTsKKyAgICBhdXRvIGNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UodG9wRG9jdW1lbnQoKS5tX3do
ZW5Gb2N1c0hhbmRsZXJzLCB7IH0pOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFj
a3MpCisgICAgICAgIGNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I3VuZGVmIERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGJjYmNk
ZjlmNWJkYjVkMDhhMDFjMWIyMzJlNzc3ODMwYTliYTJjMDUuLmY3YmI0N2MyZGQxYzM0MTdkNWJh
NWNkZjk1Nzk1NmMzNDM3NjNkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00MjksNiArNDI5
LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgRWxlbWVudCogYWN0aXZlRWxlbWVu
dCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRm9jdXMoKSBjb25zdDsKKyAgICB2b2lk
IHdoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2
b2lkIGNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsKIAogICAgIGJvb2wgaGFzTWFuaWZlc3Qo
KSBjb25zdDsKICAgICAKQEAgLTIyNjAsNiArMjI2Miw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2RhbENvbnRhaW5lck9ic2VydmVyPiBtX21vZGFsQ29udGFp
bmVyT2JzZXJ2ZXI7CisKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV93aGVuRm9jdXNI
YW5kbGVyczsKIH07CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERv
Y3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4
IGRiMTYyYTRjNTg5OGZlMmU5NDI4OWYwYzk2ODUwMDAzNzZhM2ZiMGMuLjdjZjhlZmZjOTU1Mzgw
NDA4NmQ4YTJjMTg4NTJmOTAxZTVjYWQzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCkBAIC0yMDg5LDYgKzIwODksOSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpmb2N1c2VkT3JBY3RpdmVTdGF0ZUNoYW5nZWQoKQogewogICAgIGJvb2wgYWN0aXZlQW5kRm9j
dXNlZCA9IGlzRm9jdXNlZEFuZEFjdGl2ZSgpOwogCisgICAgaWYgKGFjdGl2ZUFuZEZvY3VzZWQp
CisgICAgICAgIG1fZG9jdW1lbnQtPmNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsKKwogICAg
IG1fZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIAogI2lmIFVTRShVSUtJVF9FRElU
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAppbmRleCBlYTdkNzYxMWViNGQ2YTkwODlkMmQyYTkyNTliYmQ5MGE5YTA2Nzg1Li43MWYyYzJm
MmZhMjIwZGU5YThkZDBkMmE2MTM3YTk1Y2UyNDUxNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTUyNiw2ICsxNTI2LDE2IEBA
IGJvb2wgV0tQcmVmZXJlbmNlc0dldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRHZXRV
c2VyTWVkaWFSZXF1aXJlc0ZvY3VzKGVuYWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNH
ZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmdldFVzZXJNZWRpYVJl
cXVpcmVzRm9jdXMoKTsKK30KKwogdm9pZCBXS1ByZWZlcmVuY2VzU2V0SUNFQ2FuZGlkYXRlRmls
dGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJs
ZWQpCiB7CiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0SUNFQ2FuZGlkYXRlRmlsdGVy
aW5nRW5hYmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IGI2NjRlOWVhMTExY2VkOTgw
MjI1N2YyMTJlZjc0ZTQ2NGRmODI4ZWMuLmY0Mjg1MGIwOWM3NjMyZmRlZWQ5OTcyNzY5OThiOTAx
MTBmNWFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtMzk4LDYgKzM5OCwxMCBAQCBXS19FWFBPUlQg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlKFdLUHJlZmVy
ZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
IAorLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOworV0tfRVhQ
T1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVm
ZXJlbmNlc1JlZik7CisKIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1By
ZWZlcmVuY2VzU2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
LCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA5YzVmOGRhYzU4ZmY5ZTU3
NmU1OTUwZTZkNzk1YTAzZGZmNTNjNzQwLi4xZTNiMTk2MTNjYjY3ZDc4ZDhjOGE1NzFkZDhjOTI3
MDkzMTA3YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQpAQCAtNjUwLDYgKzY1MCwxNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kp
CiAgICAgX3ByZWZlcmVuY2VzLT5zZXRNZWRpYURldmljZXNFbmFibGVkKGVuYWJsZWQpOwogfQog
CistIChCT09MKV9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzCit7CisgICAgcmV0dXJuIF9wcmVm
ZXJlbmNlcy0+Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpOworfQorCistICh2b2lkKV9zZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5j
ZXMtPnNldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoZW5hYmxlZCk7Cit9CisKIC0gKEJPT0wp
X3NjcmVlbkNhcHR1cmVFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+c2NyZWVu
Q2FwdHVyZUVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggYzFjNzIzYTFmZjQ3ZWFjMTk2
YmQwNjJiM2UyNzczMDI0ZjMxZmEwNS4uZDE1NWJhMWYwYjc5Zjk0YjliNmNjMzlhYjdhMDAzMTYw
OGNkYmRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTExNyw2ICsxMTcsNyBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGVlckNvbm5lY3Rpb25FbmFibGVkOikgQk9PTCBf
cGVlckNvbm5lY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURldmljZXNF
bmFibGVkOikgQk9PTCBfbWVkaWFEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXM6KSBCT09MIF9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZDopIEJP
T0wgX3NjcmVlbkNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb2NrQ2FwdHVy
ZURldmljZXNFbmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQ6KSBCT09MIF9tb2Nr
Q2FwdHVyZURldmljZXNQcm9tcHRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggZDkyNjI4MDBlNDcxYzJiYmJlMjliMzgwZTc5ZjNl
YmJjNmUyZTFkYy4uMjc0MjQ3ZTE4NGIwNzVmYzYwNGY3ZmFjYjM0NDY4M2VjMTU0MjE5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdz
LmNwcApAQCAtMzgyNyw2ICszODI3LDEyIEBAIHZvaWQgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNh
cHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0dGluZ3MqIHNldHRpCiAgICAg
cHJpdi0+cHJlZmVyZW5jZXMtPnNldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
bihyZXF1aXJlZCk7CiB9CiAKK3ZvaWQgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1
aXJlc0ZvY3VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgYm9vbCByZXF1aXJlZCkKK3sKKyAg
ICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBwcml2
LT5wcmVmZXJlbmNlcy0+c2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhyZXF1aXJlZCk7Cit9
CisKIC8qKgogICogd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVp
cmluZ19oYXJkd2FyZV9zdXBwb3J0OgogICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3NQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0
aW5nc1ByaXZhdGUuaAppbmRleCAwNDY5ZjdlYzI4MzY4MmUxNTJlZGU5NjlhYjNhYWUwYmFjZGE1
NDhiLi40MDE4OWRkYWM3YjM1ZDQxZGVlMmFiODQ3YjljMmUyMWM0MzQ2MzU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5nc1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5nc1By
aXZhdGUuaApAQCAtMzMsNSArMzMsNiBAQAogV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogd2Via2l0
U2V0dGluZ3NHZXRQcmVmZXJlbmNlcyhXZWJLaXRTZXR0aW5ncyopOwogCiBXS19FWFBPUlQgdm9p
ZCB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihX
ZWJLaXRTZXR0aW5ncyosIGJvb2wgcmVxdWlyZWQpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0U2V0
dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdlYktpdFNldHRpbmdzKiwgYm9vbCBy
ZXF1aXJlZCk7CiAKICNlbmRpZiAvLyBXZWJLaXRTZXR0aW5nc1ByaXZhdGVfaApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNkMTM2ZTFlN2QzOWZk
ZjY5OGNmNDZmNTdmZGY2ZGJkZjRhYjMxY2EuLmIzNDAzNzFhNTg2YjM0Y2Q1ZjdiMjY0Zjc0YzY0
ZjA0NjkyNDRlNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMi0wMS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVjayBmb3IgZ2V0VXNlck1l
ZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUw
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgRGlzYWJs
ZSBmb2N1cyBmbGFnIGZvciB0ZXN0aW5nIHRvIG5vdCByZXF1aXJlIHRvIGZvY3VzIHRoZSB3aW5k
b3cuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmln
dXJhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkb0NhcHR1cmVNdXRlVGVzdCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhUmVwcm9tcHQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFs
aXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9BdWRpb0J1ZmZlclNpemUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0dldERpc3BsYXlNZWRpYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkdldERpc3Bs
YXlNZWRpYVRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlRGlzYWJsZWRU
ZXN0OjpTZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
c2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06CisgICAgICAgIChNZWRpYUNhcHR1cmVT
aW11bGF0ZUZhaWxlZFNhbmRib3g6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3VXNl
ck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayk6CisgICAgICAgICh0ZXN0V2Vi
Vmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgICh0ZXN0V2ViVmlld0F1
ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMuanNvbjoKKwogMjAyMi0wMS0xMSAgR2VvZmZyZXkg
R2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlBhZ2VQcm94eSBkZXN0cnVj
dGlvbiBzaG91bGQgbm90IGxhdW5jaCBhIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCmluZGV4IDkzNjJlZjM1N2U5
YjA4NjEwMzRmYmVjMzM4Y2IxOThhMTkxYjZiZmEuLjY1YmZiZGVmMDgyMjQ2MDgyM2NmZDYxYWEz
NzI4NzQ5NWIyYjFkYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0dldFVzZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWEubW0KQEAgLTE1MiwxNCArMTUyLDIxIEBAIGJvb2wgd2FpdFVudGlsQ2Fw
dHVyZVN0YXRlKFdLV2ViVmlldyAqd2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkIGV4CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNv
bnN0IEZ1bmN0aW9uPHZvaWQoVGVzdFdLV2ViVmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBz
ZXRQYWdlTXV0ZWQpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJh
dGlvbihXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKQogewotICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7Ci0gICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0g
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJhdGlvbi5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1
cyA9IE5POworfQorCit2b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNvbnN0IEZ1bmN0aW9uPHZvaWQo
VGVzdFdLV2ViVmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBzZXRQYWdlTXV0ZWQpCit7Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGluaXRpYWxpemVN
ZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07
CkBAIC0yMzUsMTAgKzI0Miw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZU11dGVBUEkpCiB7CiAg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVy
ZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTM0MCwx
MCArMzQ0LDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlU3RvcCkKIHsKICAgICBhdXRvIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVk
aWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlv
bihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9w
dE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRp
b24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpt
ZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC0zNzgsMTAgKzM3OSw3IEBAIFRF
U1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5KQogewogICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNh
cHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMo
W1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5n
ZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3Nh
Z2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQxNCwxMCArNDEyLDcgQEAgVEVTVChX
ZWJLaXQyLCBDYXB0dXJlSW5kaWNhdG9yRGVsYXlXaGVuQ2xvc2VkKQogewogICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVS
ZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9t
ZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURl
dmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0
aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFk
b3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJh
dGlvbi5nZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
Om1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQ0MiwxMCArNDM3LDcgQEAg
VEVTVChXZWJLaXQyLCBHZXRDYXBhYmlsaXRpZXMpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVy
ZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmln
dXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dV
TU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgp
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDczLDEwICs0NjUsNyBAQCBURVNUKFdlYktp
dCwgSW50ZXJydXB0aW9uQmV0d2VlblNhbWVQcm9jZXNzUGFnZXMpCiAgICAgW2NvbmZpZ3VyYXRp
b24gc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwogI2VuZGlmCiAKLSAgICBhdXRv
IHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25m
aWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVu
Y2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRp
YUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBt
ZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1l
c3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTUzMiwx
MCArNTIxLDcgQEAgVEVTVChXZWJLaXQsIFBlcm1pc3Npb25EZWxlZ2F0ZVBhcmFtZXRlcnMpCiAg
ICAgW2NvbmZpZ3VyYXRpb24gc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwogI2Vu
ZGlmCiAKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
OwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24g
PSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVT
OwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAg
IGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkp
OwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKQEAg
LTU1NSwxMCArNTQxLDcgQEAgVEVTVChXZWJLaXQsIFdlYkF1ZGlvQW5kR2V0VXNlck1lZGlhKQog
ICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNv
bnRleHQuZ2V0KCk7CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbC5fY29uZmln
dXJhdGlvbi5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IE5POwogCi0gICAgYXV0byBw
cmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNl
cy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmln
dXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNl
cy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFD
YXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVz
c2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
ICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC01
OTEsOSArNTc0LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NXaGlsZUNhcHR1cmlu
ZykKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0
KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZp
Z3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVy
ID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNjY2LDkgKzY0Nyw3IEBAIFRF
U1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzQWZ0ZXJBcHBseWluZ0NvbnN0cmFpbnRzKQogICAg
ICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1cmVWaWRlb0luR1BV
UHJvY2Vzc0VuYWJsZWQiXSkKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZ
RVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQotICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25m
aWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVu
Y2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRp
YUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrOllFU107CkBAIC03NDYsOSArNzI1LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVBy
b2Nlc3NXaGlsZUNhcHR1cmluZ0FuZENhbGxpbmcpCiAgICAgICAgICAgICBbcHJlZmVyZW5jZXMg
X3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJlZmVy
ZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNv
bmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVy
ZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1l
ZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRv
IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0
XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0
TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtODY3
LDEwICs4NDQsNyBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZpc2liaWxpdHlDaGFuZ2UpCiAg
ICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxv
Y10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFk
ZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsK
IAotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0g
ICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5P
OwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0g
ICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5p
dGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAK
ICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwpAQCAtODk4
LDYgKzg3Miw3MCBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZpc2liaWxpdHlDaGFuZ2UpCiAg
ICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvVGVzdCgpIl07CiAg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KKworc3RhdGljIGNvbnN0IGNo
YXIqIGdldFVzZXJNZWRpYUZvY3VzVGV4dCA9IFIiRE9DRE9DRE9DKAorPGh0bWw+PGJvZHk+Cis8
c2NyaXB0Pgorb25sb2FkID0gKCkgPT4geworICAgIGRvY3VtZW50Lm9udmlzaWJpbGl0eWNoYW5n
ZSA9ICgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgi
UEFTUyIpOworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2Fn
ZSgiUEFTUyIpOworfQorCitmdW5jdGlvbiBjYXB0dXJlKCkKK3sKKyAgICBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW8gOiB0cnVlfSkudGhlbihzdHJlYW0gPT4gewor
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoZG9j
dW1lbnQuaGFzRm9jdXMoKSA/ICJQQVNTIiA6ICJGQUlMIik7CisgICAgfSk7Cit9Cis8L3Njcmlw
dD4KKzwvYm9keT48L2h0bWw+CispRE9DRE9DRE9DIjsKKworVEVTVChXZWJLaXQsIEdldFVzZXJN
ZWRpYUZvY3VzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAg
ICAgICAgeyAiLyIsIHsgZ2V0VXNlck1lZGlhRm9jdXNUZXh0IH0gfQorICAgIH0sIFRlc3RXZWJL
aXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwLCBudWxscHRyLCBudWxscHRyLCA5MDkw
KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVy
bmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nl
c3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworCisgICAgYXV0byBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwor
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKKworICAgIGluaXRp
YWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJl
ZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBZRVM7CisKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOworCisgICAgLy8g
TG9hZCBwYWdlLgorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAvLyBNaW5pbWl6ZQor
ICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvICpob3N0V2luZG93ID0gW3dlYlZpZXcgaG9zdFdp
bmRvd107CisgICAgW2hvc3RXaW5kb3cgbWluaWF0dXJpemU6aG9zdFdpbmRvd107CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIFdlIGNhbGwgY2FwdHVyZSB3
aGlsZSBtaW5pbWl6aW5nLgorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZSgpIl07CisKKyAgICAvLyBNYWtlIHN1cmUg
dGhhdCBnZXRVc2VyTWVkaWEgZG9lcyBub3QgcmVzb2x2ZSB0b28gc29vbi4KKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgxMDApOworICAgIEVYUEVDVF9GQUxTRShkb25lKTsK
KworICAgIFtob3N0V2luZG93IGRlbWluaWF0dXJpemU6aG9zdFdpbmRvd107CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
IFRFU1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCkBAIC05MjQsMTAgKzk2Miw3
IEBAIFRFU1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCiAKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKLSAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
X21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25m
aWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmln
YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tCmluZGV4IDEyY2E3NDYyZDVhYmNkYmNkZDExOGVlNjNiZTVmMzU4MTE5NWM2
OTkuLmE3NjA5ZDM0NTJlM2NkMDg4ZTMyNjcwY2FkNjJhNzAzMWU0ODkyMTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2
aWdhdGlvbi5tbQpAQCAtNjcsNiArNjcsMTYgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVsZWFzZUlu
RW51bWVyYXRlID0gZmFsc2U7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiogY29uZmlndXJhdGlvbikKK3sKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1
cmVDb25uZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0Vu
YWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMg
PSBOTzsKK30KKwogVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVyaW5nR2V0VXNlck1lZGlhUHJvbXB0
KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC04OCwxMCArOTgsNyBAQCBURVNUKFdlYktpdCwgTmF2
aWdhdGVEdXJpbmdEZXZpY2VFbnVtZXJhdGlvbikKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1
dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1
cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1
cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nl
c3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZp
Z2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0x
MTcsMTAgKzEyNCw3IEBAIFRFU1QoV2ViS2l0LCBEZWZhdWx0RGV2aWNlSWRIYXNoU2FsdHNEaXJl
Y3RvcnkpCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNh
cHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W05hdmlnYXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
QEAgLTE0NywxMCArMTUxLDcgQEAgVEVTVChXZWJLaXQsIERldmljZUlkSGFzaFNhbHRzRGlyZWN0
b3J5KQogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFT
dG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0
dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25m
aWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnBy
b2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tO
YXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFS
ZXByb21wdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YVJlcHJvbXB0Lm1tCmluZGV4IDA3ZjU3ZDAxMjVlMDQ5OTIwMTViMzBmMTY4NmRkYTNmZTIwNTBm
YWUuLjdhY2QzNjg2NzU0N2M1YmYwZTE0MTc2NTUwMzAzYzU2MGMxZTc5N2UgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJv
bXB0Lm1tCkBAIC02MCwxNCArNjAsMjIgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
CitzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihXS1dlYlZp
ZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKQoreworICAgIGF1dG8gcHJlZmVyZW5jZXMg
PSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisKKyAgICBjb25maWd1cmF0aW9uLl9tZWRp
YUNhcHR1cmVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWly
ZXNGb2N1cyA9IE5POworfQorCiBURVNUKFdlYktpdDIsIEdldFVzZXJNZWRpYVJlcHJvbXB0KQog
ewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMo
W1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHBy
ZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2Vz
Ll9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1
cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2Vz
Ll9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNh
cHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXByb21wdFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0
KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CkBAIC0xMDAsMTAgKzEwOCw3IEBAIFRFU1QoV2ViS2l0MiwgR2V0VXNlck1lZGlh
UmVwcm9tcHRBZnRlckF1ZGlvVmlkZW9CZWluZ0RlbmllZCkKIHsKICAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwog
ICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihj
b25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbR2V0VXNl
ck1lZGlhUmVwcm9tcHRUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwogICAgIFtkZWxlZ2F0ZSBzZXRBdWRpb0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3Jh
bnRdOwpAQCAtMTIzLDEwICsxMjgsNyBAQCBURVNUKFdlYktpdDIsIE11bHRpcGxlR2V0VXNlck1l
ZGlhU3luY2hyb25vdXNseSkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9u
ID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlF
UzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAg
ICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgp
KTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbR2V0VXNlck1lZGlhUmVwcm9tcHRUZXN0
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnBy
b2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tV
c2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNl
dFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4
IDg3MzZlYTQ2NDlkMmI0YWE3YTEyYzZjZTA1ZTcyYTFkYzdkMzRlOTguLjk3MmJhNmFkMWJiNzdi
ZDE0N2E3YWFlNDk5ZGViY2VhNjM3YmNmYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAg
LTYxLDYgKzYxLDcgQEAgVEVTVChXZWJLaXQsIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZCkKICAg
ICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87
CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAg
ICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVm
ZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKICAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5n
ZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJN
ZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3Bw
CmluZGV4IDU3NTE5NzNhNTg4Nzg5ZTRmZTlmODZlOTU1MzVlYjU1ZTJmZDdlMTMuLmIyMzRjMjhi
OGQxNmJhMzA2ODEzMTBkN2E1NjQxOGQ5OWY4Mjg4ZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcApAQCAtNzcsNiArNzcsNyBAQCBURVNUKFdl
YktpdCwgVXNlck1lZGlhQmFzaWMpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
KHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50Owog
ICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpAQCAtMTEzLDYgKzEx
NCw3IEBAIFRFU1QoV2ViS2l0LCBPbkRldmljZUNoYW5nZUNyYXNoKQogICAgIFdLUHJlZmVyZW5j
ZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmlj
ZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQYWdlVUlD
bGllbnRWNiB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGll
bnQpKTsKQEAgLTE3Myw2ICsxNzUsNyBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0Ny
YXNoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywgZmFs
c2UpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICAvLyBXZSB3YW50IHVp
Q2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiB0byBiZSBudWxsLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZl
clNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVm
ZmVyU2l6ZS5tbQppbmRleCA1MzNkZTFlYzRkNmRhNDAwNWQ5OGE3OThjZTk3NmE1ZDllMDIzNDM5
Li45ZGQ2MjljYThiNjRjYTYwZGNlOTRlZThjMGZjOGFkNjdiYWYzMTJiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6
ZS5tbQpAQCAtNzIsNiArNzIsNyBAQCBURVNUKFdlYktpdCwgQXVkaW9CdWZmZXJTaXplKQogICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CiAgICAgcHJl
ZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAg
IHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZl
cmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRk
VG9XaW5kb3c6WUVTXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFD
YXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmluZGV4IDJmMTA2OTQ0NGE3ZTE4
NzBjZDJkYTkyYmFkNzljYjI4OWM3ZDBiNDYuLjkyM2MzODMzOGMyN2QxZGQ2MDg4MGIzYTg4YzJi
NDA2OTU5YWE0OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTY5Niw2ICs2OTYsNyBAQCBURVNUKEdQVVByb2Nlc3Ms
IEV4aXRzVW5kZXJNZW1vcnlQcmVzc3VyZVdlYlJUQ0Nhc2UpCiAgICAgICAgIHByZWZlcmVuY2Vz
Ll9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICAgICAgY29u
ZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5j
ZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgICAgIHByZWZlcmVuY2Vz
Ll9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgfSk7CiB9CiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KaW5kZXggZGUwNTAzMDM3ZjZjOWFh
MmRhYmM1MjkwMzE1YzhjMWIyYzI0YzU1OS4uZTdjN2Q2MmNkMGNiMmRhMWJkZjcxZTc2Y2Y5MGM4
NTUzYjNiYWQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9HZXREaXNwbGF5TWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KQEAgLTEwNCwxMCArMTA0LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CiAgICAgICAgIHByZWZlcmVuY2VzLl9zY3JlZW5DYXB0dXJlRW5hYmxlZCA9IFlFUzsKIAotICAg
ICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgICAg
ICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbR2V0RGlzcGxheU1lZGlhVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwogICAgICAgICBtX3dlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IG1fdWlEZWxl
Z2F0ZS5nZXQoKTsKKyAgICAgICAgW21fd2ViVmlldyBmb2N1c107CiAKICAgICAgICAgW21fd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXREaXNwbGF5TWVkaWEiXTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBjNTMzODBjYjEyOWYz
YjQzM2IzOTBhM2ZkZThkNzdhZGRmNjJkMjk3Li5jOTIyYjYzYTI3MTZkYWVmNDYxMjFlZDM3NzNj
N2ZkNDY5NTE1MzE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTY4Mjgs
NiArNjgyOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdldFVzZXJNZWRpYUNhcHR1cmVTdGF0ZSkK
ICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0g
Tk87CiAgICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07
CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNo
UmVjb2duaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nw
ZWVjaFJlY29nbml0aW9uLm1tCmluZGV4IDQwYzA4ZTM1YTZhNWQ2ZWM0NzNkN2ZhMzYzMDBlMDBh
ZTJjZGNjYzAuLjJjMTY0NGQxYjY4YWY2ZDAyNjIzMmQ2M2Y0NjI1MjM5ZmIwYjcwZTIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2du
aXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVl
Y2hSZWNvZ25pdGlvbi5tbQpAQCAtMTYyLDYgKzE2Miw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNo
UmVjb2duaXRpb25FcnJvcldoZW5TdGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZSkK
ICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBw
cmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVm
ZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgYXV0byBmaXJzdFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbZmlyc3RXZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXggNTc2MDFjNzE5ZWI4MDA2Zjcz
NTFiZGEyMDA4ZTZlMDZlOGIwMjU4MS4uMTc3OWZhYWQzNjkwODc0MmI0YWQ3YzE5NzA3MGMzYzU3
Y2YyNjllNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCkBAIC04Miw2ICs4Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFttX3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJl
ZmVyZW5jZXM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87CisgICAgICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJl
c0ZvY3VzID0gTk87CiAKICAgICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRp
YVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21fd2ViVmlldyBzZXRVSURlbGVn
YXRlOm1fdWlEZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWls
ZWRTYW5kYm94Lm1tCmluZGV4IDI0ZGMzNTEyZjg0MGM1ZWMyZTFhODkwZWIzZTgyMTliZjNjMzE1
ZDIuLmQ3M2ExYWVmODFlMzEzNjE1OGE3MjBhMmRmMmJlMjMzYWE4ZjI3OTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVG
YWlsZWRTYW5kYm94Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCkBAIC04Myw2ICs4Myw3IEBAIHB1
YmxpYzoKICAgICAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFttX3dlYlZpZXcgY29uZmlndXJhdGlv
bl0ucHJlZmVyZW5jZXM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFS
ZXF1aXJlc0ZvY3VzID0gTk87CiAKICAgICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW1Np
bXVsYXRlRmFpbGVkU2FuZGJveFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21f
d2ViVmlldyBzZXRVSURlbGVnYXRlOm1fdWlEZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmluZGV4
IDI5OGU3NWFkNTAzYzkxZTY0YTQwMmM2ZGEzYjg3MGRmMzM1YjcyMWUuLjI4NGY4MDRiNjQxMDVi
ODRiNjc2MjgzNzhjZThjZjBjMTk3MmFjZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC0xMDAyLDYgKzEwMDIs
NyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0ZURldmljZXNQZXJt
aXNzaW9uQ2hlY2soVUlDbGllbnRUZXN0KiB0ZQogICAgIGdib29sZWFuIGVuYWJsZWQgPSB3ZWJr
aXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MpOwogICAgIHdlYmtp
dF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgVFJVRSk7CiAgICAg
d2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0
dGluZ3MsIEZBTFNFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVz
Rm9jdXMoc2V0dGluZ3MsIEZBTFNFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9t
b2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAKICAgICB0ZXN0LT5zaG93SW5X
aW5kb3coKTsKQEAgLTEwMzcsNiArMTAzOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3VXNl
ck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhVSUNsaWVudFRlc3QqIHRlCiAg
ICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBlbmFi
bGVkKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNl
cyhzZXR0aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJraXRTZXR0aW5n
c1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRSVUUpOwogfQogCiBzdGF0
aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC0xMDQ2LDYgKzEwNDgsNyBAQCBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRl
c3QsIGdjb25zdHBvaQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVh
bShzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9ja19j
YXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBGQUxTRSk7CisgICAg
d2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBGQUxT
RSk7CiAKICAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciog
dXNlck1lZGlhUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgpAQCAtMTEwNSw2ICsxMTA4LDcgQEAgc3Rh
dGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2kKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRp
YV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJsZWQpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0U2V0
dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRS
VUUpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0
aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
QEAgLTExMTQsNiArMTExOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwKICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIFRSVUUpOwogICAgIHdl
YmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBU
UlVFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbihzZXR0aW5ncywgRkFMU0UpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1l
ZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgRkFMU0UpOwogCiAgICAgdGVzdC0+c2hvd0luV2lu
ZG93KCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJNZWRpYVJlcXVlc3RIVE1MID0gIjxo
dG1sPiIKQEAgLTExNDQsNiArMTE0OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9P
bmx5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwKICAgICB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJsZWQp
OwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNl
dHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRSVUUpOworICAgIHdlYmtpdFNldHRpbmdzU2V0
R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3RGlzcGxheVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVu
dFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2dsaWIvVGVzdEV4cGVjdGF0aW9ucy5qc29uIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGli
L1Rlc3RFeHBlY3RhdGlvbnMuanNvbgppbmRleCA0NzIxOTQxNDg2ZDdiOTM5ZDgzMDMyMTNmNTk3
Y2Q0MDJhZTY0ZGU1Li5hZDVkMjJhOWRkZjk0NWNjMzc4ZDEwNzk5MmU1Y2YxY2RiMTA4YWE0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvVGVzdEV4cGVjdGF0aW9ucy5qc29u
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9UZXN0RXhwZWN0YXRpb25zLmpzb24KQEAg
LTUxLDYgKzUxLDkgQEAKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAiL3dlYmtpdC9XZWJL
aXRXZWJWaWV3L2dlb2xvY2F0aW9uLXBlcm1pc3Npb24tcmVxdWVzdHMiOiB7CiAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogeyJndGsiOiB7InN0YXR1cyI6IFsiVElNRU9VVCIsICJQQVNTIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIxMzc4NiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICIvd2Via2l0L1dlYktpdFdlYlZpZXcvZGlzcGxheS11c2VybWVkaWEtcGVybWlzc2lvbi1y
ZXF1ZXN0IjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiZ3RrIjogeyJzdGF0dXMi
OiBbIlRJTUVPVVQiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjM1MDI2In19CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU1OGYyODljZmFmYzExYjAyOTdiZjI1ODgy
ODk2NzJmYjY1ZTcxMmMuLjk1YzBkNjc5YjJiYjExYjY1OTQ4ZWU1ZGI3OTJlYTA0OTAzN2FiZjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVjayBmb3IgZ2V0VXNlck1l
ZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUw
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0OgorCiAy
MDIyLTAxLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBN
YWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGluc3RlYWQgb2YgYSBzdHJpbmcgZGVy
aXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1n
ZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CmluZGV4IDIyNjU3OGY2ZjBjZjYwZWNiMTRkMzBjZjNm
ODVlMmVjMDYzZDUwNDYuLjQ2OTYyNzFkOWVjMDY3NDU0Yzg2OTAxNjY4ZjU5ODUwMGI1NTkyMzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdl
dFVzZXJNZWRpYS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dApAQCAtNiw4ICs2LDggQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgdHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmlj
ZXMud2Via2l0R2V0VXNlck1lZGlhIGlzICd1bmRlZmluZWQnCiAKIFBBU1MgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdFN0cmVhbTEpOyBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKLVBB
U1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe30pIHJlamVjdGVkIHdpdGgg
ZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSgpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogTm8gY29uc3Ry
YWludHMgcHJvdmlkZWQKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e30pIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogTm8gY29uc3RyYWludHMgcHJvdmlk
ZWQKIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEuYXBwbHkodW5kZWZp
bmVkKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgTWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSBvbiBpbnN0YW5jZXMgb2YgTWVkaWFEZXZpY2VzCiBQQVNTIFN0
cmVhbSAxIGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlz
IDEK
</data>
<flag name="commit-queue"
          id="475037"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449055</attachid>
            <date>2022-01-13 06:23:25 -0800</date>
            <delta_ts>2022-01-14 03:41:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk-user-media-focus.diff</filename>
            <type>text/plain</type>
            <size>59140</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNmM2ZTRmY2JhNTIuLmMxYTYxZTYxZjFmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAxLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQ6CisKIDIwMjItMDEtMTMgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLWxvY2tzL2NsaWVudGlkcy50ZW50YXRpdmUuaHR0cHMuaHRtbCBpcyBjb25z
aXN0ZW50bHkgcGFzc2luZyBvbiBib3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVk
LnR4dAppbmRleCAyMjY1NzhmNmYwY2YuLjQ2OTYyNzFkOWVjMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRV
c2VyTWVkaWEtZXhwZWN0ZWQudHh0CkBAIC02LDggKzYsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURQogUEFTUyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy53ZWJraXRHZXRVc2VyTWVk
aWEgaXMgJ3VuZGVmaW5lZCcKIAogUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgotUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHJlamVjdGVk
IHdpdGggZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgotUEFTUyBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7fSkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBU
eXBlIGVycm9yCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKCkgcmVq
ZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBObyBjb25zdHJhaW50cyBwcm92aWRlZAorUEFT
UyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7fSkgcmVqZWN0ZWQgd2l0aCBl
cnJvcjogVHlwZUVycm9yOiBObyBjb25zdHJhaW50cyBwcm92aWRlZAogUEFTUyBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYS5hcHBseSh1bmRlZmluZWQpIHJlamVjdGVkIHdpdGgg
ZXJyb3I6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBNZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
IG9uIGluc3RhbmNlcyBvZiBNZWRpYURldmljZXMKIFBBU1MgU3RyZWFtIDEgZ2VuZXJhdGVkLgog
UEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiN2VhMjJhYTRk
YTUuLmUyNDllYTY2ZWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMS0xMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVj
ayBmb3IgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFt
bDoKKwogMjAyMi0wMS0xMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlLWxhbmRpbmddIFVwZGF0ZSBoYXNoVGhyZWFkU3RhdGUoKSB0byBleGNsdWRlIF9fb3Bh
cXVlX2ZsYWdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5kZXggMWMwNzA1MTNkZTdhLi42NjcxMGY4
NDlmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtMjkzLDYgKzI5MywxOSBAQCBGdWxsU2Ny
ZWVuRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorR2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1czoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTog
IlJlcXVpcmUgZm9jdXMgdG8gc3RhcnQgZ2V0VXNlck1lZGlhIgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJSZXF1aXJlIGZvY3VzIHRvIHN0YXJ0IGdldFVzZXJNZWRpYSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVn
YWN5OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IHRy
dWUKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIHdlYmNvcmVPbkNoYW5nZTogaWNlQ2FuZGlk
YXRlRmlsdGVyaW5nRW5hYmxlZENoYW5nZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MTJiYTdkYTUwZDYuLjI0
ZTEzMDA2NDQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNo
ZWNrIGZvciBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4K
KworICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgYSBjYWxsYmFjayBzbyB0
aGF0IGEgdGFzayBpcyBleGVjdXRlZCB3aGVuIHRoZSB0b3AgbGV2ZWwgZG9jdW1lbnQgaGFzIGZv
Y3VzLgorICAgICAgICBVc2UgdGhpcyB0byBkZWxheSBnZXRVc2VyTWVkaWEgcmVxdWVzdHMgdW50
aWwgdG9wIGxldmVsIGRvY3VtZW50IGhhcyBmb2N1cy4KKyAgICAgICAgVGhlIHNwZWMgY3VycmVu
dGx5IGRlZmluZXMgdGhhdCB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGN1cnJlbnQgZG9jdW1lbnQg
dG8gaGF2ZSBmb2N1cyBidXQgdGhpcyBpcyBhYm91dCB0byBiZSBjaGFuZ2VkIGFuZCBpcyBub3Qg
YWxpZ25lZCB3aXRoIG90aGVyIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgIFRo
ZSBwYXRjaCBhbHNvIG1vdmVzIHNvbWUgZ2V0VXNlck1lZGlhIGNoZWNrcyBlYXJsaWVyIHNvIGFz
IHRvIHJlc3BlY3Qgb3JkZXIgcHJvdmlkZWQgYnkgdGhlIHNwZWNzLgorCisgICAgICAgIENvdmVy
ZWQgYnkgQVBJIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorCiAyMDIyLTAxLTEyICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gQ29sbGVjdCBpbnZhbGlkYXRpb24gc2VsZWN0b3JzIGZvciBjaGlsZCBpbnZhbGlkYXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmNwcAppbmRleCA3MTVlZjZiNGY0ZDEuLjE1ZTkyY2I0OWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMTE4
LDE1ICsxMTgsMjAgQEAgYm9vbCBNZWRpYURldmljZXM6OmNvbXB1dGVVc2VyR2VzdHVyZVByaXZp
bGVkZ2UoR2VzdHVyZUFsbG93ZWRSZXF1ZXN0IHJlcXVlc3RUeXAKIAogdm9pZCBNZWRpYURldmlj
ZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFBy
b21pc2UmJiBwcm9taXNlKQogeworICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9IGNyZWF0ZU1l
ZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMuYXVkaW8pOworICAgIGF1dG8gdmlkZW9Db25zdHJh
aW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOworCisgICAg
aWYgKCFhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgIXZpZGVvQ29uc3RyYWludHMuaXNWYWxp
ZCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChUeXBlRXJyb3IsICJObyBjb25zdHJhaW50cyBw
cm92aWRlZCJfcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRvKiBkb2N1bWVu
dCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmlz
RnVsbHlBY3RpdmUoKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUiX3MgfSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVN
ZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKLSAgICBhdXRvIHZpZGVvQ29uc3Ry
YWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKTsKLQogICAg
IGJvb2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkID0gZmFsc2U7CiAKICAgICBpZiAoYXVkaW9D
b25zdHJhaW50cy5pc1ZhbGlkKQpAQCAtMTM4LDcgKzE0Myw4NSBAQCB2b2lkIE1lZGlhRGV2aWNl
czo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJv
bWlzZSYmCiAgICAgfQogCiAgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3Jl
YXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RG
TW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwotICAgIHJlcXVlc3QtPnN0
YXJ0KCk7CisKKyAgICBpZiAoIWRvY3VtZW50LT5zZXR0aW5ncygpLmdldFVzZXJNZWRpYVJlcXVp
cmVzRm9jdXMoKSkgeworICAgICAgICByZXF1ZXN0LT5zdGFydCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZG9jdW1lbnQtPndoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoW3Jl
cXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgICAgIGlmIChyZXF1ZXN0LT5pc0NvbnRl
eHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJlcXVlc3QtPnN0YXJ0
KCk7CisgICAgfSk7Cit9CisKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFD
b25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIC8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNoYXJlLyNuYXZpZ2F0
b3ItYWRkaXRpb25zCisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBm
aXJzdCBhcmd1bWVudC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJlc2VudCBpbiBjb25z
dHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwgcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHM6CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIG5h
bWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVh
dGVkIFR5cGVFcnJvci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFpbnMgYSBtZW1iZXIg
d2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1lbWJlciBuYW1lZCBl
aXRoZXIgbWluIG9yCisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBwcm9taXNlIHJlamVj
dGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAoIWNvbnN0cmFpbnRz
LmlzVmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghY29uc3RyYWludHMu
YWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3Ry
YWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3RyYWlu
dCkgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgp
KSB7CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6CisgICAgICAgIGNh
c2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAgICBhdXRvJiBpbnRD
b25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAg
ICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29uc3RyYWludC5nZXRF
eGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkFz
cGVjdFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZTog
eworICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25jYXN0PERvdWJsZUNv
bnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZhbHVlOworICAgICAg
ICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGRvdWJs
ZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKKyAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZTogeworICAgICAg
ICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFuQ29uc3RyYWludD4o
Y29uc3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAgICAgICAgaW52YWxp
ZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2Rl
OgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOgorICAgICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAgICAgIGF1dG8mIHN0
cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25zdHJhaW50KTsK
KyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAgICAgIGludmFsaWQg
PSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0
ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplOgorICAgICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAgLy8gSWdub3JlZC4K
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsKKyAgICB9KTsKKwor
ICAgIHJldHVybiBpbnZhbGlkOwogfQogCiB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1l
ZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJv
bWlzZSYmIHByb21pc2UpCkBAIC0xNTMsNyArMjM2LDE4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpn
ZXREaXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0
cmFpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVk
aWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6
RGlzcGxheU1lZGlhLCB7IH0sIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlk
ZW8pLCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAg
YXV0byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50
cy52aWRlbyk7CisgICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KHZp
ZGVvQ29uc3RyYWludHMpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgImdldERpc3BsYXlNZWRpYSBtdXN0IGJlIGNhbGxlZCB3aXRoIHZhbGlkIGNvbnN0
cmFpbnRzLiJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghZG9jdW1l
bnQtPmlzRnVsbHlBY3RpdmUoKSB8fCAhZG9jdW1lbnQtPnRvcERvY3VtZW50KCkuaGFzRm9jdXMo
KSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUgb3IgZG9lcyBub3QgaGF2ZSBmb2N1cyJf
cyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJN
ZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBl
OjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2Vz
dHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGUwNmNkZTA4OWJhZS4uYzM5YjhmMGE3N2UzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAKQEAgLTg1LDc0ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVk
aWFSZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29u
dGV4dCA/ICZjb250ZXh0LT50b3BPcmlnaW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29s
IGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKQotewotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNh
cHR1cmUtc2NyZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNv
bnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3Ig
ZWFjaCBtZW1iZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlz
IGEgZGljdGlvbmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElm
IHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNl
IHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4g
SWYgdmFsdWUgY29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkg
Y29udGFpbmluZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4
YWN0LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVF
cnJvci4KLSAgICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAg
Y29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0
IE1lZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAo
Y29uc3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6V2lkdGg6Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0
OiB7Ci0gICAgICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3Ry
YWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBp
bnZhbGlkID0gaW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5n
ZXRNaW4odmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29u
c3RyYWludCA9IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAg
ICAgICAgZG91YmxlIHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFp
bnQuZ2V0RXhhY3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpMb2dpY2FsU3VyZmFjZTogewotICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBk
b3duY2FzdDxCb29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29s
IHZhbHVlOwotICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZh
bHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkRldmljZUlkOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3Vw
SWQ6IHsKLSAgICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJp
bmdDb25zdHJhaW50Pihjb25zdHJhaW50KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZh
bHVlczsKLSAgICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZh
bHVlcyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpTYW1wbGVTaXplOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZv
bHVtZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9u
OgotICAgICAgICAgICAgLy8gSWdub3JlZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBy
ZXR1cm4gaW52YWxpZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVx
dWVzdDo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVz
dC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAg
ICAgIGlmIChoYXNJbnZhbGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3Qudmlk
ZW9Db25zdHJhaW50cykpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OklsbGVnYWxDb25zdHJhaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9n
ZXR1c2VybWVkaWEuaHRtbCNkb20tbWVkaWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8g
MS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAv
LyAyLiBMZXQgcmVxdWVzdGVkTWVkaWFUeXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGlu
IGNvbnN0cmFpbnRzIHdpdGggZWl0aGVyIGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9y
IGEgdmFsdWUgb2YgInRydWUiLgotICAgIC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMg
dGhlIGVtcHR5IHNldCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9y
LiBUaGUgd29yZAotICAgIC8vICAgICJvcHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVl
IHRvIFdlYklETCBydWxlcywgYnV0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9y
ZGVyCi0gICAgLy8gICAgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVl
c3QuYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50
cy5pc1ZhbGlkKSB7Ci0gICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29u
c3RyYWludHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1
cnJlbnQgc2V0dGluZ3Mgb2JqZWN0J3MgcmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93
ZWQgdG8gdXNlIHRoZSBmZWF0dXJlIGluZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBu
YW1lIGFsbG93dXNlcm1lZGlhLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01F
eGNlcHRpb24gb2JqZWN0IHdob3NlIG5hbWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2
YWx1ZSBTZWN1cml0eUVycm9yLgpAQCAtMjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJl
cXVlc3Q6OmRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcm
IG1lc3NhZwogCiAgICAgRXhjZXB0aW9uQ29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7
Ci0gICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0g
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAt
IGludmFsaWQgY29uc3RyYWludHMiKTsKLSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50
czoKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0Ojpk
ZW55IC0gbm8gY29uc3RyYWludHMiKTsKICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKaW5kZXggMzlhYmY2MGNkMDZiLi45Y2M3YTJiZDY4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRp
YURldmljZVVJRHMoY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvdyhDYXB0dXJlRGV2
aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgU3RyaW5nJiYg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
Ci0gICAgZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJN
ZWRpYURpc2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdh
cmVFcnJvciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgSWxsZWdhbENvbnN0cmFp
bnQsIE90aGVyRmFpbHVyZSB9OworICAgIGVudW0gTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24geyBO
b0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywgSW52YWxp
ZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIEludmFsaWRBY2Nl
c3MsIE90aGVyRmFpbHVyZSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVueShNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBlbXB0eVN0cmlu
ZygpKTsKIAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMoKSBjb25z
dCB7IHJldHVybiBtX2F1ZGlvRGV2aWNlVUlEczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggMmM3ZTJkMWEzODY0Li4zNGQ4NmM3ZDUzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtOTA5OSw2ICs5MDk5LDI2IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gdHM7CiB9CiAKK3ZvaWQg
RG9jdW1lbnQ6OndoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248dm9pZCgpPiYm
IGNhbGxiYWNrKQoreworICAgIGF1dG8mIHRvcERvY3VtZW50ID0gdGhpcy0+dG9wRG9jdW1lbnQo
KTsKKworICAgIGlmICh0b3BEb2N1bWVudC5oYXNGb2N1cygpKSB7CisgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0b3BEb2N1bWVudC5tX3doZW5Gb2N1
c0hhbmRsZXJzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6
OmNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKQoreworICAgIEFTU0VSVCh0b3BEb2N1bWVudCgp
Lmhhc0ZvY3VzKCkpOworICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZSh0b3BEb2N1
bWVudCgpLm1fd2hlbkZvY3VzSGFuZGxlcnMsIHsgfSk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFj
ayA6IGNhbGxiYWNrcykKKyAgICAgICAgY2FsbGJhY2soKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggMmM4ZGYzMTY4MDZkLi5jMDRjNGIwODExMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC00MjksNiArNDI5LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgRWxlbWVudCog
YWN0aXZlRWxlbWVudCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRm9jdXMoKSBjb25z
dDsKKyAgICB2b2lkIHdoZW5Ub3BMZXZlbERvY3VtZW50SGFzRm9jdXMoRnVuY3Rpb248dm9pZCgp
PiYmKTsKKyAgICB2b2lkIGNoYW5nZWRUb0FjdGl2ZUFuZEZvY3VzZWQoKTsKIAogICAgIGJvb2wg
aGFzTWFuaWZlc3QoKSBjb25zdDsKICAgICAKQEAgLTIyNjAsNiArMjI2Miw4IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2RhbENvbnRhaW5lck9ic2VydmVyPiBt
X21vZGFsQ29udGFpbmVyT2JzZXJ2ZXI7CisKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4g
bV93aGVuRm9jdXNIYW5kbGVyczsKIH07CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZv
ckRvY3VtZW50KERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IGRiMTYyYTRjNTg5OC4uN2NmOGVmZmM5NTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMjA4OSw2ICsyMDg5LDkgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6Zm9jdXNlZE9yQWN0aXZlU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBib29s
IGFjdGl2ZUFuZEZvY3VzZWQgPSBpc0ZvY3VzZWRBbmRBY3RpdmUoKTsKIAorICAgIGlmIChhY3Rp
dmVBbmRGb2N1c2VkKQorICAgICAgICBtX2RvY3VtZW50LT5jaGFuZ2VkVG9BY3RpdmVBbmRGb2N1
c2VkKCk7CisKICAgICBtX2RvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICNpZiBV
U0UoVUlLSVRfRURJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzA1NzRhZmE2NDhlLi5iNjU0NzUxOGJjYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjItMDEtMTMgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVz
ZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM1MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFk
ZCBzZXR0ZXJzL2dldHRlcnMgZm9yIHRoZSBnZXRVc2VyTWVkaWEgZm9jdXMgc2V0dGluZ3MuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyk6CisgICAgICAgIChXS1By
ZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9n
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3Nl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJN
ZWRpYVJlcXVpcmVzRm9jdXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5nc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZU1hcCk6IEFsd2F5cyBhZGQg
dGhlIFdpbmRvd0lzQWN0aXZlIGZsYWcgdW5kZXIgeHZmYi4KKyAgICAgICAgKHdlYmtpdFdlYlZp
ZXdCYXNlSXNGb2N1c2VkKTogQWx3YXlzIGNvbnNpZGVyIHRoZSB2aWV3IGZvY3VzZWQgd2hlbiBX
aW5kb3dJc0FjdGl2ZSBmbGFnIGlzIHByZXNlbnQgdW5kZXIgeHZmYi4KKwogMjAyMi0wMS0xMiAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IFNhbWUt
c2l0ZSB0cmlnZ2VyaW5nIGV2ZW50cyBzaG91bGQgc3VwcG9ydCBlcGhlbWVyYWwgbWVhc3VyZW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
aW5kZXggZWE3ZDc2MTFlYjRkLi43MWYyYzJmMmZhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTI2LDYgKzE1MjYsMTYgQEAg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEdldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+Z2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1cygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxl
ZCkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmdFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggYjY2NGU5ZWExMTFjLi5mNDI4
NTBiMDljNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtMzk4LDYgKzM5OCwxMCBAQCBXS19FWFBPUlQg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlKFdLUHJlZmVy
ZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
IAorLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOworV0tfRVhQ
T1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVm
ZXJlbmNlc1JlZik7CisKIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1By
ZWZlcmVuY2VzU2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
LCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA5YzVmOGRhYzU4ZmYuLjFl
M2IxOTYxM2NiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0KQEAgLTY1MCw2ICs2NTAsMTYgQEAgc3RhdGljIF9XS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5
KQogICAgIF9wcmVmZXJlbmNlcy0+c2V0TWVkaWFEZXZpY2VzRW5hYmxlZChlbmFibGVkKTsKIH0K
IAorLSAoQk9PTClfZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cworeworICAgIHJldHVybiBfcHJl
ZmVyZW5jZXMtPmdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoKTsKK30KKworLSAodm9pZClfc2V0
R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1czooQk9PTCllbmFibGVkCit7CisgICAgX3ByZWZlcmVu
Y2VzLT5zZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKGVuYWJsZWQpOworfQorCiAtIChCT09M
KV9zY3JlZW5DYXB0dXJlRW5hYmxlZAogewogICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnNjcmVl
bkNhcHR1cmVFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGMxYzcyM2ExZmY0Ny4uZDE1
NWJhMWYwYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTE3LDYgKzExNyw3IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQ6KSBCT09M
IF9wZWVyQ29ubmVjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGV2aWNl
c0VuYWJsZWQ6KSBCT09MIF9tZWRpYURldmljZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1czopIEJPT0wgX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOikg
Qk9PTCBfc2NyZWVuQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQ6KSBCT09MIF9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TW9ja0NhcHR1cmVEZXZpY2VzUHJvbXB0RW5hYmxlZDopIEJPT0wgX21v
Y2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcAppbmRleCBkOTI2MjgwMGU0NzEuLjI3NDI0N2UxODRiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRp
bmdzLmNwcApAQCAtMzgyNyw2ICszODI3LDEyIEBAIHZvaWQgd2Via2l0U2V0dGluZ3NTZXRNZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0dGluZ3MqIHNldHRpCiAg
ICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbihyZXF1aXJlZCk7CiB9CiAKK3ZvaWQgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFS
ZXF1aXJlc0ZvY3VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgYm9vbCByZXF1aXJlZCkKK3sK
KyAgICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBw
cml2LT5wcmVmZXJlbmNlcy0+c2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhyZXF1aXJlZCk7
Cit9CisKIC8qKgogICogd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3Jl
cXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0OgogICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5n
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0
dGluZ3NQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5nc1ByaXZhdGUuaAppbmRleCAwNDY5ZjdlYzI4MzYuLjQwMTg5ZGRhYzdiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3NQcml2YXRlLmgKQEAgLTMzLDUgKzMzLDYgQEAKIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHdl
YmtpdFNldHRpbmdzR2V0UHJlZmVyZW5jZXMoV2ViS2l0U2V0dGluZ3MqKTsKIAogV0tfRVhQT1JU
IHZvaWQgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24oV2ViS2l0U2V0dGluZ3MqLCBib29sIHJlcXVpcmVkKTsKK1dLX0VYUE9SVCB2b2lkIHdlYmtp
dFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhXZWJLaXRTZXR0aW5ncyosIGJv
b2wgcmVxdWlyZWQpOwogCiAjZW5kaWYgLy8gV2ViS2l0U2V0dGluZ3NQcml2YXRlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5j
cHAKaW5kZXggZWFiZmQxODA1YWRlLi41NTlhODliZmMwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC05MTEs
NiArOTExLDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlTWFwKEd0a1dpZGdldCog
d2lkZ2V0KQogICAgIGlmIChwcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93KSB7CiAgICAgICAg
IGlmICghKHByaXYtPmFjdGl2aXR5U3RhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KSkK
ICAgICAgICAgICAgIGZsYWdzVG9VcGRhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cp
OworCisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQorICAgICAgICAvLyBYdmZiIGRvZXNuJ3Qg
c3VwcG9ydCB0b3BsZXZlbCBmb2N1cywgc28gZ3RrX3dpbmRvd19pc19hY3RpdmUoKSBhbHdheXMg
cmV0dXJucyBmYWxzZS4gV2UgY29uc2lkZXIKKyAgICAgICAgLy8gdG9wbGV2ZWwgd2luZG93IHRv
IGJlIGFsd2F5cyBhY3RpdmUgc2luY2UgaXQncyB0aGUgb25seSBvbmUuCisgICAgICAgIGlmIChX
ZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gV2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKKyAgICAgICAgICAgIGlmICghZ19zdHJj
bXAwKGdfZ2V0ZW52KCJVTkRFUl9YVkZCIiksICJ5ZXMiKSkKKyAgICAgICAgICAgICAgICBmbGFn
c1RvVXBkYXRlLmFkZChBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CisgICAgICAgIH0K
KyNlbmRpZgorCiAgICAgICAgIGlmIChndGtfd2luZG93X2lzX2FjdGl2ZShHVEtfV0lORE9XKHBy
aXYtPnRvcGxldmVsT25TY3JlZW5XaW5kb3cpKSAmJiAhKHByaXYtPmFjdGl2aXR5U3RhdGUgJiBB
Y3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSkpCiAgICAgICAgICAgICBmbGFnc1RvVXBkYXRl
LmFkZChBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAgICAgfQpAQCAtMjQyOSw2ICsy
NDM5LDE0IEBAIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VJc0luV2luZG93QWN0aXZlKFdlYktpdFdl
YlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIAogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUlzRm9jdXNl
ZChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CisjaWYgRU5BQkxFKERFVkVMT1BF
Ul9NT0RFKQorICAgIC8vIFh2ZmIgZG9lc24ndCBzdXBwb3J0IHRvcGxldmVsIGZvY3VzLCBzbyB0
aGUgdmlldyBpcyBuZXZlciBmb2N1c2VkLiBXZSBjb25zaWRlciBpdCB0byB0YmUgZm9jdXNlZCB3
aGVuCisgICAgLy8gaXRzIHdpbmRvdyBpcyBtYXJrZWQgYXMgYWN0aXZlLgorICAgIGlmIChXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKKyAgICAgICAgaWYgKCFnX3N0cmNtcDAoZ19n
ZXRlbnYoIlVOREVSX1hWRkIiKSwgInllcyIpICYmIHdlYlZpZXdCYXNlLT5wcml2LT5hY3Rpdml0
eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiB3ZWJWaWV3QmFzZS0+
cHJpdi0+YWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YzU2ZGY0NzkyNTcyLi5iODVmNmY5NzU5YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMi0wMS0xMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVj
ayBmb3IgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgRGlzYWJsZSBmb2N1cyBmbGFnIGZvciB0ZXN0aW5nIHRvIG5vdCByZXF1aXJlIHRv
IGZvY3VzIHRoZSB3aW5kb3cuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkb0NhcHR1
cmVNdXRlVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjppbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0dQVVByb2Nlc3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OkdldERpc3BsYXlNZWRpYVRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoTWVkaWFD
YXB0dXJlRGlzYWJsZWRUZXN0OjpTZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06CisgICAgICAg
IChNZWRpYUNhcHR1cmVTaW11bGF0ZUZhaWxlZFNhbmRib3g6OlNldFVwKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KHRlc3RXZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayk6Cisg
ICAgICAgICh0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAg
ICh0ZXN0V2ViVmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisKIDIw
MjItMDEtMTIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODc5NDQuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KaW5kZXggOTM2MmVmMzU3ZTliLi42NWJmYmRl
ZjA4MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2Vy
TWVkaWEubW0KQEAgLTE1MiwxNCArMTUyLDIxIEBAIGJvb2wgd2FpdFVudGlsQ2FwdHVyZVN0YXRl
KFdLV2ViVmlldyAqd2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIGV4CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNvbnN0IEZ1bmN0
aW9uPHZvaWQoVGVzdFdLV2ViVmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBzZXRQYWdlTXV0
ZWQpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihXS1dl
YlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKQogewotICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0g
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5h
YmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5h
YmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9
IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwor
fQorCit2b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoVGVzdFdLV2Vi
VmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBzZXRQYWdlTXV0ZWQpCit7CisgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1
cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0yMzUs
MTAgKzI0Miw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZU11dGVBUEkpCiB7CiAgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
X21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3Vy
YXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBb
d2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTM0MCwxMCArMzQ0LDcg
QEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlU3RvcCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1
dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1
cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1
cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VN
TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkg
dXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFu
ZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC0zNzgsMTAgKzM3OSw3IEBAIFRFU1QoV2ViS2l0
MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNv
bm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFi
bGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRp
b24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNz
YWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQoKSB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVy
LmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQxNCwxMCArNDEyLDcgQEAgVEVTVChXZWJLaXQyLCBD
YXB0dXJlSW5kaWNhdG9yRGVsYXlXaGVuQ2xvc2VkKQogewogICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
YXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1
cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZp
Z3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tH
VU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQo
KSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VI
YW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQ0MiwxMCArNDM3LDcgQEAgVEVTVChXZWJL
aXQyLCBHZXRDYXBhYmlsaXRpZXMpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nl
c3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5n
ZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJDb250
ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0
KCkgbmFtZTpAImd1bSJdOwpAQCAtNDczLDEwICs0NjUsNyBAQCBURVNUKFdlYktpdCwgSW50ZXJy
dXB0aW9uQmV0d2VlblNhbWVQcm9jZXNzUGFnZXMpCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0QWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwogI2VuZGlmCiAKLSAgICBhdXRvIHByZWZlcmVu
Y2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9u
LmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVD
b25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFu
ZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTUzMiwxMCArNTIxLDcg
QEAgVEVTVChXZWJLaXQsIFBlcm1pc3Npb25EZWxlZ2F0ZVBhcmFtZXRlcnMpCiAgICAgW2NvbmZp
Z3VyYXRpb24gc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwogI2VuZGlmCiAKLSAg
ICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHBy
ZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAg
ICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAg
ZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKQEAgLTU1NSwxMCAr
NTQxLDcgQEAgVEVTVChXZWJLaXQsIFdlYkF1ZGlvQW5kR2V0VXNlck1lZGlhKQogICAgIGNvbmZp
Z3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0
KCk7CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbC5fY29uZmlndXJhdGlvbi5z
aG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IE5POwogCi0gICAgYXV0byBwcmVmZXJlbmNl
cyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5n
ZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29u
ZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRs
ZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2Nv
bmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC01OTEsOSArNTc0
LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NXaGlsZUNhcHR1cmluZykKICAgICAg
ICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1
cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlh
Q2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24o
Y29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHRO
UyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNjY2LDkgKzY0Nyw3IEBAIFRFU1QoV2ViS2l0
MiwgQ3Jhc2hHUFVQcm9jZXNzQWZ0ZXJBcHBseWluZ0NvbnN0cmFpbnRzKQogICAgICAgICBpZiAo
W2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0Vu
YWJsZWQiXSkKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50
ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQotICAgIHByZWZlcmVuY2VzLl9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9u
LmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVD
b25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOllF
U107CkBAIC03NDYsOSArNzI1LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NXaGls
ZUNhcHR1cmluZ0FuZENhbGxpbmcpCiAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJs
ZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJlZmVyZW5jZXMuX21l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VI
YW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtODY3LDEwICs4NDQs
NyBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZpc2liaWxpdHlDaGFuZ2UpCiAgICAgYXV0byBt
ZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1l
c3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKIAotICAgIGF1
dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVy
ZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNv
bmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVy
ZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1l
ZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBkb25l
ID0gZmFsc2U7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwpAQCAtODk4LDYgKzg3Miw3
MCBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZpc2liaWxpdHlDaGFuZ2UpCiAgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvVGVzdCgpIl07CiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIGdldFVz
ZXJNZWRpYUZvY3VzVGV4dCA9IFIiRE9DRE9DRE9DKAorPGh0bWw+PGJvZHk+Cis8c2NyaXB0Pgor
b25sb2FkID0gKCkgPT4geworICAgIGRvY3VtZW50Lm9udmlzaWJpbGl0eWNoYW5nZSA9ICgpID0+
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOwor
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIp
OworfQorCitmdW5jdGlvbiBjYXB0dXJlKCkKK3sKKyAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7dmlkZW8gOiB0cnVlfSkudGhlbihzdHJlYW0gPT4geworICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoZG9jdW1lbnQuaGFz
Rm9jdXMoKSA/ICJQQVNTIiA6ICJGQUlMIik7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9k
eT48L2h0bWw+CispRE9DRE9DRE9DIjsKKworVEVTVChXZWJLaXQsIEdldFVzZXJNZWRpYUZvY3Vz
KQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAi
LyIsIHsgZ2V0VXNlck1lZGlhRm9jdXNUZXh0IH0gfQorICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhU
VFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwLCBudWxscHRyLCBudWxscHRyLCA5MDkwKTsKKworICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6
OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVj
dGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0g
KFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworCisgICAgYXV0byBtZXNzYWdlSGFuZGxl
ciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29u
ZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
Om1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKKworICAgIGluaXRpYWxpemVNZWRp
YUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAgIGF1dG8gcHJl
ZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMu
X2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBZRVM7CisKKyAgICBkb25lID0gZmFsc2U7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHdlYlZp
ZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOworCisgICAgLy8gTG9hZCBwYWdl
LgorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAvLyBNaW5pbWl6ZQorICAgIGRvbmUg
PSBmYWxzZTsKKyAgICBhdXRvICpob3N0V2luZG93ID0gW3dlYlZpZXcgaG9zdFdpbmRvd107Cisg
ICAgW2hvc3RXaW5kb3cgbWluaWF0dXJpemU6aG9zdFdpbmRvd107CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIFdlIGNhbGwgY2FwdHVyZSB3aGlsZSBtaW5p
bWl6aW5nLgorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiY2FwdHVyZSgpIl07CisKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCBnZXRV
c2VyTWVkaWEgZG9lcyBub3QgcmVzb2x2ZSB0b28gc29vbi4KKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpzcGluUnVuTG9vcCgxMDApOworICAgIEVYUEVDVF9GQUxTRShkb25lKTsKKworICAgIFto
b3N0V2luZG93IGRlbWluaWF0dXJpemU6aG9zdFdpbmRvd107CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKK30KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFRFU1QoV2Vi
S2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCkBAIC05MjQsMTAgKzk2Miw3IEBAIFRFU1Qo
V2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCiAKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURh
dGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2Fw
dHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmlj
ZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9u
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9u
Lm1tCmluZGV4IDEyY2E3NDYyZDVhYi4uYTc2MDlkMzQ1MmUzIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0KQEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBib29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0
ZSA9IGZhbHNlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRpYyB2b2lkIGlu
aXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24q
IGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKKworICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87Cit9
CisKIFRFU1QoV2ViS2l0LCBOYXZpZ2F0ZUR1cmluZ0dldFVzZXJNZWRpYVByb21wdCkKIHsKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwpAQCAtODgsMTAgKzk4LDcgQEAgVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVy
aW5nRGV2aWNlRW51bWVyYXRpb24pCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nl
c3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5n
ZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlvbldo
aWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwog
ICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTE3LDEwICsx
MjQsNyBAQCBURVNUKFdlYktpdCwgRGVmYXVsdERldmljZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQog
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTph
ZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8g
cHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5h
YmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9
IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0
aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQ
b29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0
aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xNDcs
MTAgKzE1MSw3IEBAIFRFU1QoV2ViS2l0LCBEZXZpY2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRv
cHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9v
bENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlv
bldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21w
dC5tbQppbmRleCAwN2Y1N2QwMTI1ZTAuLjdhY2QzNjg2NzU0NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0K
QEAgLTYwLDE0ICs2MCwyMiBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRp
YyB2b2lkIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24qIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKworICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVy
ZUVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
ID0gTk87Cit9CisKIFRFU1QoV2ViS2l0MiwgR2V0VXNlck1lZGlhUmVwcm9tcHQpCiB7CiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJlZmVyZW5j
ZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW0dldFVzZXJNZWRpYVJlcHJvbXB0VGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKQEAgLTEwMCwxMCArMTA4LDcgQEAgVEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXByb21w
dEFmdGVyQXVkaW9WaWRlb0JlaW5nRGVuaWVkKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0
byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVF
bmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFS
ZXByb21wdFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
W2RlbGVnYXRlIHNldEF1ZGlvRGVjaXNpb246V0tQZXJtaXNzaW9uRGVjaXNpb25HcmFudF07CkBA
IC0xMjMsMTAgKzEyOCw3IEBAIFRFU1QoV2ViS2l0MiwgTXVsdGlwbGVHZXRVc2VyTWVkaWFTeW5j
aHJvbm91c2x5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZp
ZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
LSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAg
IHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsK
LSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAg
IHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRp
YWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tHZXRVc2VyTWVkaWFSZXByb21wdFRlc3RWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bv
b2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRp
YUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KaW5kZXggODczNmVh
NDY0OWQyLi45NzJiYTZhZDFiYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTYxLDYg
KzYxLDcgQEAgVEVTVChXZWJLaXQsIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZCkKICAgICBwcmVm
ZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVm
ZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNl
cy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKICAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCmluZGV4
IDU3NTE5NzNhNTg4Ny4uYjIzNGMyOGI4ZDE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgVEVTVChXZWJLaXQs
IFVzZXJNZWRpYUJhc2ljKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwogICAg
IFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVm
ZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICBt
ZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTExMyw2ICsxMTQsNyBA
QCBURVNUKFdlYktpdCwgT25EZXZpY2VDaGFuZ2VDcmFzaCkKICAgICBXS1ByZWZlcmVuY2VzU2V0
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVy
ZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRp
YVJlcXVpcmVzRm9jdXMocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50
VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7
CkBAIC0xNzMsNiArMTc1LDcgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFzaCkK
ICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVy
ZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocHJlZmVyZW5jZXMsIGZhbHNlKTsK
IAogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgLy8gV2Ugd2FudCB1aUNsaWVu
dC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gdG8gYmUgbnVsbC4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXpl
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNp
emUubW0KaW5kZXggNTMzZGUxZWM0ZDZkLi45ZGQ2MjljYThiNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1t
CkBAIC03Miw2ICs3Miw3IEBAIFRFU1QoV2ViS2l0LCBBdWRpb0J1ZmZlclNpemUpCiAgICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKICAgICBwcmVmZXJl
bmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAgcHJl
ZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5j
ZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dp
bmRvdzpZRVNdKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1
cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KaW5kZXggMmYxMDY5NDQ0YTdlLi45MjNj
MzgzMzhjMjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0dQVVByb2Nlc3MubW0KQEAgLTY5Niw2ICs2OTYsNyBAQCBURVNUKEdQVVByb2Nlc3MsIEV4
aXRzVW5kZXJNZW1vcnlQcmVzc3VyZVdlYlJUQ0Nhc2UpCiAgICAgICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICAgICAgY29uZmln
dXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5jZXMu
X21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgICAgIHByZWZlcmVuY2VzLl9n
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgfSk7CiB9CiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KaW5kZXggZGUwNTAzMDM3ZjZjLi5lN2M3
ZDYyY2QwY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvR2V0RGlzcGxheU1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCkBAIC0xMDQsMTAgKzEwNCwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwog
ICAgICAgICBwcmVmZXJlbmNlcy5fc2NyZWVuQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAKLSAgICAg
ICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICAgICAg
bV91aURlbGVnYXRlID0gYWRvcHROUyhbW0dldERpc3BsYXlNZWRpYVVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKICAgICAgICAgbV93ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBtX3VpRGVsZWdh
dGUuZ2V0KCk7CisgICAgICAgIFttX3dlYlZpZXcgZm9jdXNdOwogCiAgICAgICAgIFttX3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0RGlzcGxheU1lZGlhIl07CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggYzUzMzgwY2IxMjlmLi5j
OTIyYjYzYTI3MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNjgyOCw2
ICs2ODI4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR2V0VXNlck1lZGlhQ2FwdHVyZVN0YXRlKQog
ICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBO
TzsKICAgICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogCiAgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsK
ICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hS
ZWNvZ25pdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3Bl
ZWNoUmVjb2duaXRpb24ubW0KaW5kZXggNDBjMDhlMzVhNmE1Li4yYzE2NDRkMWI2OGEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2du
aXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVl
Y2hSZWNvZ25pdGlvbi5tbQpAQCAtMTYyLDYgKzE2Miw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNo
UmVjb2duaXRpb25FcnJvcldoZW5TdGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZSkK
ICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBw
cmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVm
ZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgYXV0byBmaXJzdFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbZmlyc3RXZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXggNTc2MDFjNzE5ZWI4Li4xNzc5
ZmFhZDM2OTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVXNlck1lZGlhRGlzYWJsZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQpAQCAtODIsNiArODIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbbV93ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnBy
ZWZlcmVuY2VzOwogICAgICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbiA9IE5POworICAgICAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWly
ZXNGb2N1cyA9IE5POwogCiAgICAgICAgIG1fdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVk
aWFVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFttX3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTptX3VpRGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFp
bGVkU2FuZGJveC5tbQppbmRleCAyNGRjMzUxMmY4NDAuLmQ3M2ExYWVmODFlMyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0
ZUZhaWxlZFNhbmRib3gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0KQEAgLTgzLDYgKzgzLDcgQEAg
cHVibGljOgogICAgICAgICBhdXRvIHByZWZlcmVuY2VzID0gW21fd2ViVmlldyBjb25maWd1cmF0
aW9uXS5wcmVmZXJlbmNlczsKICAgICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgPSBZRVM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRp
YVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAgICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtb
U2ltdWxhdGVGYWlsZWRTYW5kYm94VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgICAgICBb
bV93ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91aURlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5k
ZXggMjk4ZTc1YWQ1MDNjLi4yODRmODA0YjY0MTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC0xMDAyLDYgKzEw
MDIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0ZURldmljZXNQ
ZXJtaXNzaW9uQ2hlY2soVUlDbGllbnRUZXN0KiB0ZQogICAgIGdib29sZWFuIGVuYWJsZWQgPSB3
ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MpOwogICAgIHdl
YmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgVFJVRSk7CiAg
ICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24o
c2V0dGluZ3MsIEZBTFNFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVp
cmVzRm9jdXMoc2V0dGluZ3MsIEZBTFNFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJs
ZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAKICAgICB0ZXN0LT5zaG93
SW5XaW5kb3coKTsKQEAgLTEwMzcsNiArMTAzOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3
VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhVSUNsaWVudFRlc3QqIHRl
CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBl
bmFibGVkKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2
aWNlcyhzZXR0aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJraXRTZXR0
aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRSVUUpOwogfQogCiBz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVu
dFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC0xMDQ2LDYgKzEwNDgsNyBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3Qq
IHRlc3QsIGdjb25zdHBvaQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0
cmVhbShzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9j
a19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0
TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBGQUxTRSk7Cisg
ICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBG
QUxTRSk7CiAKICAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogdXNlck1lZGlhUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgpAQCAtMTEwNSw2ICsxMTA4LDcgQEAg
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGll
bnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2kKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9t
ZWRpYV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJsZWQpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0
U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3Ms
IFRSVUUpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhz
ZXR0aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRl
cikKQEAgLTExMTQsNiArMTExOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwKICAgICB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIFRSVUUpOwogICAg
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdz
LCBUUlVFKTsKICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbihzZXR0aW5ncywgRkFMU0UpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgRkFMU0UpOwogCiAgICAgdGVzdC0+c2hvd0lu
V2luZG93KCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJNZWRpYVJlcXVlc3RIVE1MID0g
IjxodG1sPiIKQEAgLTExNDQsNiArMTE0OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVk
aW9Pbmx5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwKICAg
ICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJs
ZWQpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2Vz
KHNldHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRSVUUpOworICAgIHdlYmtpdFNldHRpbmdz
U2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRp
YyB2b2lkIHRlc3RXZWJWaWV3RGlzcGxheVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNs
aWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449157</attachid>
            <date>2022-01-14 03:41:54 -0800</date>
            <delta_ts>2022-01-14 05:05:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220114124149.patch</filename>
            <type>text/plain</type>
            <size>68786</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVjMGZiYmJjNDY2NWRkZTRhNjIzYzg5
ZTY2M2FlNGNhNmY5YzRjNTUuLjcyYjY4NmE5OWE2OWU3OTJlZTJkMzZhMWU1NDI5YzVhNTUwMjhh
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjItMDEt
MTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU2Vy
dmljZVdvcmtlckNsaWVudC5pZCBhIFVVSUQgaW5zdGVhZCBvZiBhIHN0cmluZyBkZXJpdmVkIGZy
b20gYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEwMDEz
MWY2MzdjZWVjM2ZlYzA1OGQ2OTE4NmQ3NDIyZGQ2YWVkNTkuLmM5ZGFiMjE5MTFjZTk5MTkwMjNh
NDFmZDY3YzkxNjdkMzUxMGViYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMi0w
MS0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3Jj
ZSBmb2N1cyBjaGVjayBmb3IgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIHJlZ2lzdGVyIGEgY2Fs
bGJhY2sgc28gdGhhdCBhIHRhc2sgaXMgZXhlY3V0ZWQgd2hlbiB0aGUgZG9jdW1lbnQgaXMgdmlz
aWJsZS4KKyAgICAgICAgVXNlIHRoaXMgdG8gZGVsYXkgZ2V0VXNlck1lZGlhIHJlcXVlc3RzIHVu
dGlsIGRvY3VtZW50IGlzIHZpc2libGUuCisgICAgICAgIFRoZSBzcGVjIGN1cnJlbnRseSBkZWZp
bmVzIHRoYXQgd2Ugc2hvdWxkIHdhaXQgZm9yIHRoZSBjdXJyZW50IGRvY3VtZW50IHRvIGhhdmUg
Zm9jdXMgYnV0IHRoaXMgaXMgYWJvdXQgdG8gYmUgY2hhbmdlZCBhbmQgaXMgbm90IGFsaWduZWQg
d2l0aCBvdGhlciBicm93c2VyIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBUaGUgcGF0Y2gg
YWxzbyBtb3ZlcyBzb21lIGdldFVzZXJNZWRpYSBjaGVja3MgZWFybGllciBzbyBhcyB0byByZXNw
ZWN0IG9yZGVyIHByb3ZpZGVkIGJ5IHRoZSBzcGVjcy4KKyAgICAgICAgQWRkIGEgY2hlY2sgdG8g
dmFsaWRhdGUgZ2V0RGlzcGxheU1lZGlhIGlzIGNhbGxlZCBvbiBhIHZpc2libGUgZG9jdW1lbnQg
YXMgdGhlIHVzZXIgZ2VzdHVyZSBpcyBub3cgdGltZSBiYXNlZC4KKworICAgICAgICBDb3ZlcmVk
IGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKwogMjAyMi0wMS0xMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2Vy
Q2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2ZWQgZnJvbSBhIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRmNzExNTNlODQxNWQwZWRk
M2I0M2RlMDE1ZDUwMTk0ZGI3M2IxYTMuLmEyYmQxMjNkY2ZjODNmNDEwYmY4MzdjODc2ZDQwNWEy
ZTdmMmI4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjItMDEtMTQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPiBhbmQgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVjayBmb3IgZ2V0VXNl
ck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRk
IHNldHRlcnMvZ2V0dGVycyBmb3IgdGhlIGdldFVzZXJNZWRpYSBmb2N1cyBzZXR0aW5ncy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKFdLUHJl
ZmVyZW5jZXNHZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2dl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXNdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0
R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1l
ZGlhUmVxdWlyZXNGb2N1cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNl
dHRpbmdzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlTWFwKTogQWx3YXlzIGFkZCB0
aGUgV2luZG93SXNBY3RpdmUgZmxhZyB1bmRlciB4dmZiLgorICAgICAgICAod2Via2l0V2ViVmll
d0Jhc2VJc0ZvY3VzZWQpOiBBbHdheXMgY29uc2lkZXIgdGhlIHZpZXcgZm9jdXNlZCB3aGVuIFdp
bmRvd0lzQWN0aXZlIGZsYWcgaXMgcHJlc2VudCB1bmRlciB4dmZiLgorCiAyMDIyLTAxLTEzICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFNlcnZpY2VX
b3JrZXJDbGllbnQuaWQgYSBVVUlEIGluc3RlYWQgb2YgYSBzdHJpbmcgZGVyaXZlZCBmcm9tIGEg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4
IDFjMDcwNTEzZGU3YTNkNjM0YTAyZjViZjY3N2VjOTlmZTI3OTRmZmIuLjY2NzEwZjg0OWY5ZDFh
YTZmZmMyZmE4OWRmZWI0ZjUyNDNjOTI2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtMjkz
LDYgKzI5MywxOSBAQCBGdWxsU2NyZWVuRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVm
YXVsdDogZmFsc2UKIAorR2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1czoKKyAgdHlwZTogYm9vbAor
ICBodW1hblJlYWRhYmxlTmFtZTogIlJlcXVpcmUgZm9jdXMgdG8gc3RhcnQgZ2V0VXNlck1lZGlh
IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJSZXF1aXJlIGZvY3VzIHRvIHN0YXJ0IGdl
dFVzZXJNZWRpYSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYktp
dDoKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1
ZQorCiBJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIHdlYmNv
cmVPbkNoYW5nZTogaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZENoYW5nZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRl
eCA3MTVlZjZiNGY0ZDFiYTA2MGFlZjc2YTMxMDRhOTZlMTU2NWY1OGU1Li5kNjQ0NTYyMjk4Yzk4
MDljYjkwZTE0N2ViOWVhZDU3MGU1NDliYzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xMTgsMTUgKzExOCwyMCBA
QCBib29sIE1lZGlhRGV2aWNlczo6Y29tcHV0ZVVzZXJHZXN0dXJlUHJpdmlsZWRnZShHZXN0dXJl
QWxsb3dlZFJlcXVlc3QgcmVxdWVzdFR5cAogCiB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0VXNlck1l
ZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21p
c2UpCiB7CisgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50
cyhjb25zdHJhaW50cy5hdWRpbyk7CisgICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRl
TWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7CisKKyAgICBpZiAoIWF1ZGlvQ29u
c3RyYWludHMuaXNWYWxpZCAmJiAhdmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CisgICAgICAg
IHByb21pc2UucmVqZWN0KFR5cGVFcnJvciwgIk5vIGNvbnN0cmFpbnRzIHByb3ZpZGVkIl9zKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+aXNGdWxseUFjdGl2ZSgp
KSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSJfcyB9KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWlu
dHMoY29uc3RyYWludHMuYXVkaW8pOwotICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IGNyZWF0
ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOwotCiAgICAgYm9vbCBpc1VzZXJH
ZXN0dXJlUHJpdmlsZWRnZWQgPSBmYWxzZTsKIAogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzLmlz
VmFsaWQpCkBAIC0xMzgsNyArMTQzLDg2IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVk
aWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYKICAgICB9
CiAKICAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50
LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhLCBXVEZNb3ZlKGF1ZGlvQ29u
c3RyYWludHMpLCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpLCBpc1VzZXJHZXN0dXJlUHJpdmls
ZWRnZWQgfSwgV1RGTW92ZShwcm9taXNlKSk7Ci0gICAgcmVxdWVzdC0+c3RhcnQoKTsKKworICAg
IGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7
CisgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRTogV2UgdXNlIGhpZGRlbiB3aGlsZSB0aGUgc3BlYyBpcyB1c2luZyBmb2N1cywg
bGV0J3MgcmV2aXNpdCB3aGVuIHdoZW4gc3BlYyBpcyBtYWRlIGNsZWFyZXIuCisgICAgZG9jdW1l
bnQtPndoZW5WaXNpYmxlKFtyZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICBp
ZiAocmVxdWVzdC0+aXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXF1ZXN0LT5zdGFydCgpOworICAgIH0pOworfQorCitzdGF0aWMgYm9vbCBoYXNJbnZh
bGlkR2V0RGlzcGxheU1lZGlhQ29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKK3sKKyAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXNj
cmVlbi1zaGFyZS8jbmF2aWdhdG9yLWFkZGl0aW9ucworICAgIC8vIDEuIExldCBjb25zdHJhaW50
cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJndW1lbnQuCisgICAgLy8gMi4gRm9yIGVhY2ggbWVt
YmVyIHByZXNlbnQgaW4gY29uc3RyYWludHMgd2hvc2UgdmFsdWUsIHZhbHVlLCBpcyBhIGRpY3Rp
b25hcnksIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIC8vICAgICAxLiBJZiB2YWx1ZSBj
b250YWlucyBhIG1lbWJlciBuYW1lZCBhZHZhbmNlZCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3Rl
ZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisgICAgLy8gICAgIDIuIElmIHZhbHVl
IGNvbnRhaW5zIGEgbWVtYmVyIHdoaWNoIGluIHR1cm4gaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5p
bmcgYSBtZW1iZXIgbmFtZWQgZWl0aGVyIG1pbiBvcgorICAgIC8vICAgICAgICBleGFjdCwgcmV0
dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisg
ICAgaWYgKCFjb25zdHJhaW50cy5pc1ZhbGlkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIWNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGJvb2wgaW52YWxpZCA9IGZhbHNlOworICAgIGNvbnN0cmFp
bnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmZpbHRlcihbJmludmFsaWRdIChjb25zdCBNZWRpYUNv
bnN0cmFpbnQmIGNvbnN0cmFpbnQpIG11dGFibGUgeworICAgICAgICBzd2l0Y2ggKGNvbnN0cmFp
bnQuY29uc3RyYWludFR5cGUoKSkgeworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OldpZHRoOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodDogeworICAg
ICAgICAgICAgYXV0byYgaW50Q29uc3RyYWludCA9IGRvd25jYXN0PEludENvbnN0cmFpbnQ+KGNv
bnN0cmFpbnQpOworICAgICAgICAgICAgaW50IHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9
IGludENvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGludENvbnN0cmFpbnQuZ2V0TWluKHZh
bHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbzoKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGcmFtZVJhdGU6IHsKKyAgICAgICAgICAgIGF1dG8mIGRvdWJsZUNvbnN0cmFpbnQg
PSBkb3duY2FzdDxEb3VibGVDb25zdHJhaW50Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAgIGRv
dWJsZSB2YWx1ZTsKKyAgICAgICAgICAgIGludmFsaWQgPSBkb3VibGVDb25zdHJhaW50LmdldEV4
YWN0KHZhbHVlKSB8fCBkb3VibGVDb25zdHJhaW50LmdldE1pbih2YWx1ZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
RGlzcGxheVN1cmZhY2U6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNh
bFN1cmZhY2U6IHsKKyAgICAgICAgICAgIGF1dG8mIGJvb2xDb25zdHJhaW50ID0gZG93bmNhc3Q8
Qm9vbGVhbkNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgYm9vbCB2YWx1ZTsK
KyAgICAgICAgICAgIGludmFsaWQgPSBib29sQ29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6RmFjaW5nTW9kZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
ZXZpY2VJZDoKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOiB7Cisg
ICAgICAgICAgICBhdXRvJiBzdHJpbmdDb25zdHJhaW50ID0gZG93bmNhc3Q8U3RyaW5nQ29uc3Ry
YWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXM7Cisg
ICAgICAgICAgICBpbnZhbGlkID0gc3RyaW5nQ29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZXMpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OlNhbXBsZVJhdGU6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
U2FtcGxlU2l6ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWU6Cisg
ICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNob0NhbmNlbGxhdGlvbjoKKyAgICAg
ICAgICAgIC8vIElnbm9yZWQuCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGlu
dmFsaWQ7CisgICAgfSk7CisKKyAgICByZXR1cm4gaW52YWxpZDsKIH0KIAogdm9pZCBNZWRpYURl
dmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50
cyYgY29uc3RyYWludHMsIFByb21pc2UmJiBwcm9taXNlKQpAQCAtMTUzLDcgKzIzNywyMCBAQCB2
b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlhKGNvbnN0IERpc3BsYXlNZWRpYVN0cmVh
bUNvbnN0cmFpbnRzJiBjb25zdHJhaQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0
byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0
cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSwgeyB9LCBjcmVhdGVNZWRpYUNvbnN0cmFp
bnRzKGNvbnN0cmFpbnRzLnZpZGVvKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1v
dmUocHJvbWlzZSkpOworICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29u
c3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOworICAgIGlmIChoYXNJbnZhbGlkR2V0RGlzcGxh
eU1lZGlhQ29uc3RyYWludCh2aWRlb0NvbnN0cmFpbnRzKSkgeworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJnZXREaXNwbGF5TWVkaWEgbXVzdCBiZSBjYWxs
ZWQgd2l0aCB2YWxpZCBjb25zdHJhaW50cy4iX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvLyBGSVhNRTogV2UgdXNlIGhpZGRlbiB3aGlsZSB0aGUgc3BlYyBpcyB1c2luZyBm
b2N1cywgbGV0J3MgcmV2aXNpdCB3aGVuIHdoZW4gc3BlYyBpcyBtYWRlIGNsZWFyZXIuCisgICAg
aWYgKCFkb2N1bWVudC0+aXNGdWxseUFjdGl2ZSgpIHx8IGRvY3VtZW50LT50b3BEb2N1bWVudCgp
LmhpZGRlbigpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRG9jdW1lbnQgaXMgbm90IGZ1
bGx5IGFjdGl2ZSBvciBkb2VzIG5vdCBoYXZlIGZvY3VzXG4iKTsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVs
bHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3MgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRv
Y3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIFdU
Rk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZN
b3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApp
bmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgxZDViYzY3ZGY1Li5jMzliOGYwYTc3
ZTNiZTNiNmU3YTVkZTRiMDVjNWQwZTY0MTFmMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTg1LDc0
ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0Ojp0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4dCA/ICZjb250ZXh0LT50b3BPcmln
aW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhhc0ludmFsaWRHZXREaXNwbGF5TWVk
aWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQotewotICAg
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNoYXJlLyNuYXZp
Z2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2Qn
cyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJlc2VudCBpbiBj
b25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwgcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVy
IG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBj
cmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFpbnMgYSBtZW1i
ZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1lbWJlciBuYW1l
ZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICBpZiAoIWNvbnN0cmFp
bnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghY29uc3RyYWlu
dHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29u
c3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3Ry
YWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlw
ZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6Ci0gICAgICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7Ci0gICAgICAgICAgICBhdXRvJiBp
bnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAg
ICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0gaW50Q29uc3RyYWludC5n
ZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0
ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25jYXN0PERvdWJs
ZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgZG91YmxlIHZhbHVlOwotICAg
ICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGRv
dWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToK
LSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZTogewotICAg
ICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFuQ29uc3RyYWlu
dD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZhbHVlOwotICAgICAgICAgICAgaW52
YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdN
b2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOgotICAgICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKLSAgICAgICAgICAgIGF1dG8m
IHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25zdHJhaW50
KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKLSAgICAgICAgICAgIGludmFs
aWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxl
UmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplOgotICAg
ICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKLSAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgotICAgICAgICAgICAgLy8gSWdub3Jl
ZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaW52YWxpZDsKLSAgICB9KTsK
LQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0
KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAt
MTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVx
dWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAgIGlmIChoYXNJbnZhbGlkR2V0RGlz
cGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cykpIHsKLSAgICAg
ICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OklsbGVnYWxDb25zdHJhaW50KTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1c2VybWVkaWEuaHRtbCNkb20tbWVk
aWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRo
ZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBMZXQgcmVxdWVzdGVkTWVkaWFU
eXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNvbnN0cmFpbnRzIHdpdGggZWl0aGVy
IGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEgdmFsdWUgb2YgInRydWUiLgotICAg
IC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhlIGVtcHR5IHNldCwgcmV0dXJuIGEg
cHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBUaGUgd29yZAotICAgIC8vICAgICJv
cHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRvIFdlYklETCBydWxlcywgYnV0IHRo
ZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVyCi0gICAgLy8gICAgZm9yIHRoZSBj
YWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5pc1Zh
bGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7Ci0gICAgICAgIGRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJlbnQgc2V0dGluZ3Mgb2JqZWN0J3Mg
cmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQgdG8gdXNlIHRoZSBmZWF0dXJlIGlu
ZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1lIGFsbG93dXNlcm1lZGlhLCByZXR1
cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNlcHRpb24gb2JqZWN0IHdob3NlIG5h
bWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1ZSBTZWN1cml0eUVycm9yLgpAQCAt
Mjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkoTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogCiAgICAgRXhjZXB0aW9u
Q29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2FzZSBNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
U3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGludmFsaWQgY29uc3RyYWludHMiKTsK
LSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoKICAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gbm8gY29uc3RyYWludHMiKTsK
ICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMzlhYmY2MGNkMDZiODk3
MjVhMGI2NzQzNWU4OGUzYTI1YjQ2ZjJmMC4uOWNjN2EyYmQ2ODJiNTU5NjBiOWY0MTBiYTYwOWJj
NmNlZDRjODk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2aWNlVUlEcyhjb25zdCBTdHJpbmcm
IGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlEKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICBlbnVtIE1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURl
dmljZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVk
LCBJbnZhbGlkQWNjZXNzLCBJbGxlZ2FsQ29uc3RyYWludCwgT3RoZXJGYWlsdXJlIH07CisgICAg
ZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRpYURp
c2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVFcnJv
ciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgT3RoZXJGYWlsdXJlIH07CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOwogCiAgICAgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9EZXZpY2VV
SURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyYzdlMmQxYTM4NjQzNmVlYTk1ODRi
NTcwZmE2NjViYTk2ZmEzMzYyLi5hMWU5M2VkODIwMjA3NGZhMzM2MzU0NjY1Y2MwM2Y4YjlkMTIx
MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU2NSwxNCArNTY1LDE4IEBAIHZvaWQg
RG9jdW1lbnQ6OmNvbmZpZ3VyZVNoYXJlZExvZ2dlcigpCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFRv
RG9jdW1lbnRzTWFwKCkKIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkRvY3VtZW50OjphZGRUb0Rv
Y3VtZW50c01hcCAlcCAlcCAlc1xuIiwgdGhpcywgJmFsbERvY3VtZW50c01hcCgpLCBpZGVudGlm
aWVyKCkudG9EZWJ1Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8gYWRkUmVzdWx0
ID0gYWxsRG9jdW1lbnRzTWFwKCkuYWRkKGlkZW50aWZpZXIoKSwgdGhpcyk7CiAgICAgQVNTRVJU
X1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAorICAgIEFTU0VSVChh
bGxEb2N1bWVudHNNYXAoKS5jb250YWlucyhpZGVudGlmaWVyKCkpKTsKKwogICAgIGNvbmZpZ3Vy
ZVNoYXJlZExvZ2dlcigpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVGcm9tRG9jdW1lbnRz
TWFwKCkKIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkRvY3VtZW50OjpyZW1vdmVGcm9tRG9jdW1l
bnRzTWFwICVzICVkXG4iLCBpZGVudGlmaWVyKCkudG9EZWJ1Z1N0cmluZygpLnV0ZjgoKS5kYXRh
KCksIChpbnQpY29tcHV0ZUhhc2goaWRlbnRpZmllcigpKSk7CiAgICAgQVNTRVJUKGFsbERvY3Vt
ZW50c01hcCgpLmNvbnRhaW5zKGlkZW50aWZpZXIoKSkpOwogICAgIGFsbERvY3VtZW50c01hcCgp
LnJlbW92ZShpZGVudGlmaWVyKCkpOwogICAgIGNvbmZpZ3VyZVNoYXJlZExvZ2dlcigpOwpAQCAt
MTg3Niw2ICsxODgwLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQo
KQogICAgICAgICAgICAgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1Rv
TXV0ZWRTdGF0ZSgqdGhpcyk7CiAgICAgfQogI2VuZGlmCisKKyAgICBpZiAoIWhpZGRlbigpKSB7
CisgICAgICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX3doZW5Jc1Zpc2libGVI
YW5kbGVycywgeyB9KTsKKyAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykK
KyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfQogfQogCiBWaXNpYmlsaXR5U3RhdGUgRG9j
dW1lbnQ6OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0CkBAIC05MDk5LDYgKzkxMDksMTUgQEAgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIHJldHVybiB0czsKIH0KIAordm9pZCBEb2N1bWVudDo6d2hlblZpc2libGUoRnVu
Y3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGlmIChoaWRkZW4oKSkgeworICAgICAg
ICBtX3doZW5Jc1Zpc2libGVIYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI3VuZGVmIERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDJjOGRmMzE2ODA2ZDY1MzZmOWUwY2M1MmI3NGE4NTE3ZTA5N2JlNzYuLmYzMmYxMWU4
YTk0NGJhMTEzNTdhOWJhZGViMzUwYTUzN2Q0MDIxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC00MjksNiArNDI5LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgRWxlbWVudCog
YWN0aXZlRWxlbWVudCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRm9jdXMoKSBjb25z
dDsKKyAgICB2b2lkIHdoZW5WaXNpYmxlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBib29s
IGhhc01hbmlmZXN0KCkgY29uc3Q7CiAgICAgCkBAIC0yMjYwLDYgKzIyNjEsOCBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kYWxDb250YWluZXJPYnNlcnZlcj4g
bV9tb2RhbENvbnRhaW5lck9ic2VydmVyOworCisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+
IG1fd2hlbklzVmlzaWJsZUhhbmRsZXJzOwogfTsKIAogRWxlbWVudCogZXZlbnRUYXJnZXRFbGVt
ZW50Rm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAxMzk4ZjVkZGFkZWQxMzcwZGFjZmQwZmM3YWRhOGU5MzM1NWRhN2Y5Li42Nzk4YTcy
YTlkN2JiMjMyZDMwN2FlMjNmMDliNGE2ZjdmNzA5NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0yNzY0LDEzICsyNzY0LDI1IEBAIHVuc2lnbmVkIEludGVybmFsczo6
bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAog
CiBTdHJpbmcgSW50ZXJuYWxzOjpkb2N1bWVudElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmIGRv
Y3VtZW50KSBjb25zdAogeworICAgIGZwcmludGYoc3RkZXJyLCAiSW50ZXJuYWxzOjpkb2N1bWVu
dElkZW50aWZpZXIgJXMgJWRcbiIsIGRvY3VtZW50LmlkZW50aWZpZXIoKS50b0RlYnVnU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgaXNEb2N1bWVudEFsaXZlKGRvY3VtZW50LmlkZW50aWZpZXIoKS5v
YmplY3QoKS50b1N0cmluZygpKSk7CiAgICAgcmV0dXJuIGRvY3VtZW50LmlkZW50aWZpZXIoKS5v
YmplY3QoKS50b1N0cmluZygpOwogfQogCiBib29sIEludGVybmFsczo6aXNEb2N1bWVudEFsaXZl
KGNvbnN0IFN0cmluZyYgZG9jdW1lbnRJZGVudGlmaWVyKSBjb25zdAogeworICAgIGZwcmludGYo
c3RkZXJyLCAiSW50ZXJuYWxzOjppc0RvY3VtZW50QWxpdmUgJXMgJXBcbiIsIGRvY3VtZW50SWRl
bnRpZmllci51dGY4KCkuZGF0YSgpLCAmRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpKTsKICAg
ICBhdXRvIHV1aWQgPSBVVUlEOjpwYXJzZShkb2N1bWVudElkZW50aWZpZXIpOwogICAgIEFTU0VS
VCh1dWlkKTsKKyAgICBhdXRvIGlkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIo
eyAqdXVpZCwgUHJvY2Vzczo6aWRlbnRpZmllcigpIH0pOworICAgIGZwcmludGYoc3RkZXJyLCAi
SW50ZXJuYWxzOjppc0RvY3VtZW50QWxpdmUyICVzICVkIGhhc2g9JWRcbiIsIGlkLnRvRGVidWdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCAhIXV1aWQsIChpbnQpY29tcHV0ZUhhc2goaWQpKTsKKyAg
ICAKKyAgICBmb3IgKGF1dG8mIGtleSA6IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5rZXlz
KCkpIHsKKyAgICAgICAgYXV0byBkMSA9IGtleS5vYmplY3QoKS50b1NwYW4oKTsKKyAgICAgICAg
YXV0byBkMiA9IGlkLm9iamVjdCgpLnRvU3BhbigpOworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IDE2IDsgKytpKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJJbnRlcm5hbHM6
OmlzRG9jdW1lbnRBbGl2ZSBkb2Mga2V5IHRlc3QxICVkICVkXG4iLCAoaW50KWQxW2ldLCAoaW50
KWQyW2ldKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJJbnRlcm5hbHM6OmlzRG9jdW1lbnRB
bGl2ZSBkb2Mga2V5ICVzIGlzIGVxdWFsOiAlZCAlZCAlZCAlZFxuIiwga2V5LnRvRGVidWdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBrZXkgPT0gaWQsIGtleS5vYmplY3QoKSA9PSBpZC5vYmplY3Qo
KSwga2V5Lm9iamVjdCgpLnRvU3RyaW5nKCkgPT0gaWQub2JqZWN0KCkudG9TdHJpbmcoKSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBXVEY6OlVJbnQxMjhJbXBsJj4oa2V5Lm9iamVjdCgpKSA9PSBy
ZWludGVycHJldF9jYXN0PGNvbnN0IFdURjo6VUludDEyOEltcGwmPihpZC5vYmplY3QoKSkpOwor
ICAgIH0KICAgICByZXR1cm4gdXVpZCA/IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5jb250
YWlucyh7ICp1dWlkLCBQcm9jZXNzOjppZGVudGlmaWVyKCkgfSkgOiBmYWxzZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBl
YTdkNzYxMWViNGQ2YTkwODlkMmQyYTkyNTliYmQ5MGE5YTA2Nzg1Li43MWYyYzJmMmZhMjIwZGU5
YThkZDBkMmE2MTM3YTk1Y2UyNDUxNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTUyNiw2ICsxNTI2LDE2IEBAIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCgpOwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRHZXRVc2VyTWVkaWFS
ZXF1aXJlc0ZvY3VzKGVuYWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRHZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7Cisg
ICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmdldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMoKTsKK30KKwogdm9pZCBXS1ByZWZlcmVuY2VzU2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCiB7CiAg
ICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxl
ZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IGI2NjRlOWVhMTExY2VkOTgwMjI1N2YyMTJl
Zjc0ZTQ2NGRmODI4ZWMuLmY0Mjg1MGIwOWM3NjMyZmRlZWQ5OTcyNzY5OThiOTAxMTBmNWFjMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaApAQCAtMzk4LDYgKzM5OCwxMCBAQCBXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlKFdLUHJlZmVyZW5jZXNSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVm
YXVsdHMgdG8gdHJ1ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOworV0tfRVhQT1JUIGJvb2wg
V0tQcmVmZXJlbmNlc0dldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1Jl
Zik7CisKIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsK
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA5YzVmOGRhYzU4ZmY5ZTU3NmU1OTUwZTZk
Nzk1YTAzZGZmNTNjNzQwLi4xZTNiMTk2MTNjYjY3ZDc4ZDhjOGE1NzFkZDhjOTI3MDkzMTA3Yjcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlcy5tbQpAQCAtNjUwLDYgKzY1MCwxNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9s
aWN5IHRvQVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiAgICAgX3By
ZWZlcmVuY2VzLT5zZXRNZWRpYURldmljZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCistIChCT09M
KV9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpOworfQorCistICh2b2lkKV9zZXRHZXRVc2VyTWVk
aWFSZXF1aXJlc0ZvY3VzOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoZW5hYmxlZCk7Cit9CisKIC0gKEJPT0wpX3NjcmVlbkNh
cHR1cmVFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+c2NyZWVuQ2FwdHVyZUVu
YWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggYzFjNzIzYTFmZjQ3ZWFjMTk2YmQwNjJiM2Uy
NzczMDI0ZjMxZmEwNS4uZDE1NWJhMWYwYjc5Zjk0YjliNmNjMzlhYjdhMDAzMTYwOGNkYmRhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTExNyw2ICsxMTcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UGVlckNvbm5lY3Rpb25FbmFibGVkOikgQk9PTCBfcGVlckNvbm5l
Y3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURldmljZXNFbmFibGVkOikg
Qk9PTCBfbWVkaWFEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEdldFVzZXJNZWRp
YVJlcXVpcmVzRm9jdXM6KSBCT09MIF9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZDopIEJPT0wgX3NjcmVl
bkNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE1vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQ6KSBCT09MIF9tb2NrQ2FwdHVyZURl
dmljZXNQcm9tcHRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHAKaW5kZXggZDkyNjI4MDBlNDcxYzJiYmJlMjliMzgwZTc5ZjNlYmJjNmUyZTFk
Yy4uMjc0MjQ3ZTE4NGIwNzVmYzYwNGY3ZmFjYjM0NDY4M2VjMTU0MjE5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAt
MzgyNyw2ICszODI3LDEyIEBAIHZvaWQgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24oV2ViS2l0U2V0dGluZ3MqIHNldHRpCiAgICAgcHJpdi0+cHJl
ZmVyZW5jZXMtPnNldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihyZXF1aXJl
ZCk7CiB9CiAKK3ZvaWQgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
KFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgYm9vbCByZXF1aXJlZCkKK3sKKyAgICBXZWJLaXRT
ZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBwcml2LT5wcmVmZXJl
bmNlcy0+c2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhyZXF1aXJlZCk7Cit9CisKIC8qKgog
ICogd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJk
d2FyZV9zdXBwb3J0OgogICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3NQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5nc1ByaXZh
dGUuaAppbmRleCAwNDY5ZjdlYzI4MzY4MmUxNTJlZGU5NjlhYjNhYWUwYmFjZGE1NDhiLi40MDE4
OWRkYWM3YjM1ZDQxZGVlMmFiODQ3YjljMmUyMWM0MzQ2MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5nc1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5nc1ByaXZhdGUuaApA
QCAtMzMsNSArMzMsNiBAQAogV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogd2Via2l0U2V0dGluZ3NH
ZXRQcmVmZXJlbmNlcyhXZWJLaXRTZXR0aW5ncyopOwogCiBXS19FWFBPUlQgdm9pZCB3ZWJraXRT
ZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihXZWJLaXRTZXR0
aW5ncyosIGJvb2wgcmVxdWlyZWQpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0U2V0dGluZ3NTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKFdlYktpdFNldHRpbmdzKiwgYm9vbCByZXF1aXJlZCk7
CiAKICNlbmRpZiAvLyBXZWJLaXRTZXR0aW5nc1ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBlYWJm
ZDE4MDVhZGU4YjY1NTc5OTZhZjA1MDJmNjVhYmYyMGFlNGE1Li41NTlhODliZmMwMjc5ZTE2YTdh
N2IyMzIxZDBiODkzMWYyMjRkMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtOTExLDYgKzkxMSwxNiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZU1hcChHdGtXaWRnZXQqIHdpZGdldCkKICAgICBp
ZiAocHJpdi0+dG9wbGV2ZWxPblNjcmVlbldpbmRvdykgewogICAgICAgICBpZiAoIShwcml2LT5h
Y3Rpdml0eVN0YXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdykpCiAgICAgICAgICAgICBm
bGFnc1RvVXBkYXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KTsKKworI2lmIEVOQUJM
RShERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgLy8gWHZmYiBkb2Vzbid0IHN1cHBvcnQgdG9wbGV2
ZWwgZm9jdXMsIHNvIGd0a193aW5kb3dfaXNfYWN0aXZlKCkgYWx3YXlzIHJldHVybnMgZmFsc2Uu
IFdlIGNvbnNpZGVyCisgICAgICAgIC8vIHRvcGxldmVsIHdpbmRvdyB0byBiZSBhbHdheXMgYWN0
aXZlIHNpbmNlIGl0J3MgdGhlIG9ubHkgb25lLgorICAgICAgICBpZiAoV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheTo6VHlwZTo6WDExKSB7CisgICAgICAgICAgICBpZiAoIWdfc3RyY21wMChnX2dldGVudigi
VU5ERVJfWFZGQiIpLCAieWVzIikpCisgICAgICAgICAgICAgICAgZmxhZ3NUb1VwZGF0ZS5hZGQo
QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworICAgICAgICB9CisjZW5kaWYKKwogICAg
ICAgICBpZiAoZ3RrX3dpbmRvd19pc19hY3RpdmUoR1RLX1dJTkRPVyhwcml2LT50b3BsZXZlbE9u
U2NyZWVuV2luZG93KSkgJiYgIShwcml2LT5hY3Rpdml0eVN0YXRlICYgQWN0aXZpdHlTdGF0ZTo6
V2luZG93SXNBY3RpdmUpKQogICAgICAgICAgICAgZmxhZ3NUb1VwZGF0ZS5hZGQoQWN0aXZpdHlT
dGF0ZTo6V2luZG93SXNBY3RpdmUpOwogICAgIH0KQEAgLTI0MjksNiArMjQzOSwxNCBAQCBib29s
IHdlYmtpdFdlYlZpZXdCYXNlSXNJbldpbmRvd0FjdGl2ZShXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
Vmlld0Jhc2UpCiAKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VJc0ZvY3VzZWQoV2ViS2l0V2ViVmll
d0Jhc2UqIHdlYlZpZXdCYXNlKQogeworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKKyAgICAv
LyBYdmZiIGRvZXNuJ3Qgc3VwcG9ydCB0b3BsZXZlbCBmb2N1cywgc28gdGhlIHZpZXcgaXMgbmV2
ZXIgZm9jdXNlZC4gV2UgY29uc2lkZXIgaXQgdG8gdGJlIGZvY3VzZWQgd2hlbgorICAgIC8vIGl0
cyB3aW5kb3cgaXMgbWFya2VkIGFzIGFjdGl2ZS4KKyAgICBpZiAoV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxh
eTo6VHlwZTo6WDExKSB7CisgICAgICAgIGlmICghZ19zdHJjbXAwKGdfZ2V0ZW52KCJVTkRFUl9Y
VkZCIiksICJ5ZXMiKSAmJiB3ZWJWaWV3QmFzZS0+cHJpdi0+YWN0aXZpdHlTdGF0ZS5jb250YWlu
cyhBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPmFjdGl2aXR5
U3RhdGUuY29udGFpbnMoQWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1t
CmluZGV4IDk1YjgyOTIyMjI0YWVhMTRiMWUxNDM5ZjBhOGY1ZTA4MzA0M2I5NDYuLjIyYWIwMjZi
MDA2NjU2YmRkN2EzYWUwODY1NGRmZDAxZTJhZGI2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTQ1MCw2
ICs0NTAsOCBAQCBzdGF0aWMgdm9pZCBkdW1wVUlWaWV3KFRleHRTdHJlYW0mIHRzLCBVSVZpZXcg
KnZpZXcpCiAKIC0gKHZvaWQpX3RyaWdnZXJTeXN0ZW1QcmV2aWV3QWN0aW9uT25FbGVtZW50Oih1
aW50NjRfdCllbGVtZW50SUQgZG9jdW1lbnQ6KE5TU3RyaW5nKilkb2N1bWVudElEIHBhZ2U6KHVp
bnQ2NF90KXBhZ2VJRAogeworICAgIGZwcmludGYoc3RkZXJyLCAiVUlQcm9jZXNzIF90cmlnZ2Vy
U3lzdGVtUHJldmlld0FjdGlvbk9uRWxlbWVudCAlc1xuIiwgU3RyaW5nKGRvY3VtZW50SUQpLnV0
ZjgoKS5kYXRhKCkpOworCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogICAgIGlmIChfcGFnZSkg
ewogICAgICAgICBpZiAoYXV0byogcHJldmlld0NvbnRyb2xsZXIgPSBfcGFnZS0+c3lzdGVtUHJl
dmlld0NvbnRyb2xsZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDJmOGJhMDJk
YTI4MDcwYzY4ODJkN2E1MzNhMThmNjIxNTE5N2I2YWYuLjcyNjk4ZTE5MjNjM2VlOThjYTFlMmFl
OTEwODg1OGUzMzdkMDU1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMzAzLDEx
ICszMDMsMTUgQEAgdm9pZCBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlcjo6dHJpZ2dlclN5c3RlbVBy
ZXZpZXdBY3Rpb24oKQogCiB2b2lkIFN5c3RlbVByZXZpZXdDb250cm9sbGVyOjp0cmlnZ2VyU3lz
dGVtUHJldmlld0FjdGlvbldpdGhUYXJnZXRGb3JUZXN0aW5nKHVpbnQ2NF90IGVsZW1lbnRJRCwg
TlNTdHJpbmcqIGRvY3VtZW50SUQsIHVpbnQ2NF90IHBhZ2VJRCkKIHsKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIlN5c3RlbVByZXZpZXdDb250cm9sbGVyOjp0cmlnZ2VyU3lzdGVtUHJldmlld0FjdGlv
bldpdGhUYXJnZXRGb3JUZXN0aW5nICVzXG4iLCBTdHJpbmcoZG9jdW1lbnRJRCkudXRmOCgpLmRh
dGEoKSk7CisKICAgICBhdXRvIHV1aWQgPSBVVUlEOjpwYXJzZShTdHJpbmcoZG9jdW1lbnRJRCkp
OwogICAgIEFTU0VSVCh1dWlkKTsKICAgICBpZiAoIXV1aWQpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGZwcmludGYoc3RkZXJyLCAiU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6OnRyaWdnZXJTeXN0
ZW1QcmV2aWV3QWN0aW9uV2l0aFRhcmdldEZvclRlc3RpbmcyICVzXG4iLCBTdHJpbmcoZG9jdW1l
bnRJRCkudXRmOCgpLmRhdGEoKSk7CisKICAgICBtX3N5c3RlbVByZXZpZXdJbmZvLmlzUHJldmll
dyA9IHRydWU7CiAgICAgbV9zeXN0ZW1QcmV2aWV3SW5mby5lbGVtZW50LmVsZW1lbnRJZGVudGlm
aWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6RWxlbWVudElkZW50aWZpZXJUeXBl
PihlbGVtZW50SUQpOwogICAgIG1fc3lzdGVtUHJldmlld0luZm8uZWxlbWVudC5kb2N1bWVudElk
ZW50aWZpZXIgPSB7ICp1dWlkLCBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuY29yZVByb2Nlc3NJ
ZGVudGlmaWVyKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGI2ODgxZjk4MmFhZWY3YjUyY2VjMTQ0Mjc4YzhiNzUzYWJlOTNhMGYuLjc0YTQyMjA0N2I3
MDRmN2RiYmViMGViOWQyMmI2ZmNjYjVmZTY2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMTA0NjYsNiArMTA0NjYsOCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVtb3ZlRGF0YURldGVjdGVkTGlua3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBE
YXRhRGV0ZQogI2lmIFVTRShTWVNURU1fUFJFVklFVykKIHZvaWQgV2ViUGFnZVByb3h5OjpzeXN0
ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkKGNvbnN0IFdlYkNvcmU6OlN5c3RlbVByZXZpZXdJbmZv
JiBwcmV2aWV3SW5mbywgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogeworICAgIGZwcmludGYoc3Rk
ZXJyLCAiV2ViUGFnZVByb3h5OjpzeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkXG4iKTsKKwog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN5c3RlbVByZXZpZXdBY3Rpb25UcmlnZ2VyZWQo
cHJldmlld0luZm8sIG1lc3NhZ2UpKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2MTg4ZWM2ZDQ4NmYyYTk4ZDI0MWNhNWQ3
NTVjYjViMGI1Y2VhOWU3Li42NmM1ZWI2NDVkZjA2MWExYjFhNWQ3MDdlZDU3YjY1MTUyMTQ4Njc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NzIwMywxNCArNzIwMywxOSBAQCB2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlRGV2aWNlT3JpZW50YXRp
b25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlCiAjaWYgVVNFKFNZU1RF
TV9QUkVWSUVXKQogdm9pZCBXZWJQYWdlOjpzeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkKFdl
YkNvcmU6OlN5c3RlbVByZXZpZXdJbmZvIHByZXZpZXdJbmZvLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiB7CisgICAgZnByaW50ZihzdGRlcnIsICJXZWJQYWdlUHJveHk6OnN5c3RlbVByZXZpZXdB
Y3Rpb25UcmlnZ2VyZWQgJXNcbiIsIHByZXZpZXdJbmZvLmVsZW1lbnQuZG9jdW1lbnRJZGVudGlm
aWVyLnRvRGVidWdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKwogICAgIGF1dG8qIGRvY3VtZW50
ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmdldChwcmV2aWV3SW5mby5lbGVtZW50LmRv
Y3VtZW50SWRlbnRpZmllcik7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwog
CisgICAgZnByaW50ZihzdGRlcnIsICJXZWJQYWdlUHJveHk6OnN5c3RlbVByZXZpZXdBY3Rpb25U
cmlnZ2VyZWQxICAlc1xuIiwgcHJldmlld0luZm8uZWxlbWVudC5kb2N1bWVudElkZW50aWZpZXIu
dG9EZWJ1Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8gcGFnZUlEID0gZG9jdW1l
bnQtPnBhZ2VJRCgpOwogICAgIGlmICghcGFnZUlEIHx8IHByZXZpZXdJbmZvLmVsZW1lbnQud2Vi
UGFnZUlkZW50aWZpZXIgIT0gcGFnZUlELnZhbHVlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGZwcmludGYoc3RkZXJyLCAiV2ViUGFnZVByb3h5OjpzeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dl
cmVkMiAlc1xuIiwgcHJldmlld0luZm8uZWxlbWVudC5kb2N1bWVudElkZW50aWZpZXIudG9EZWJ1
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCiAgICAgZG9jdW1lbnQtPmRpc3BhdGNoU3lzdGVt
UHJldmlld0FjdGlvbkV2ZW50KHByZXZpZXdJbmZvLCBtZXNzYWdlKTsKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE0NjFmNjYw
MjI1NTAxMjM1ODQyODY5MGYwY2Y3OTA2ZTYzZDhmNGQuLjhmN2M4ZTZiZWZiNTU4ZDUzOTE2NGQ0
N2RjZjdjMDBmMzM3YzcyNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMi0wMS0xNCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVjayBmb3IgZ2V0
VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
RGlzYWJsZSBmb2N1cyBmbGFnIGZvciB0ZXN0aW5nIHRvIG5vdCByZXF1aXJlIHRvIGZvY3VzIHRo
ZSB3aW5kb3cuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2Vy
TWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVkaWFDYXB0dXJl
Q29uZmlndXJhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkb0NhcHR1cmVNdXRlVGVz
dCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24pOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpp
bml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nl
c3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdl
dERpc3BsYXlNZWRpYVRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlRGlz
YWJsZWRUZXN0OjpTZXRVcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW06CisgICAgICAgIChNZWRpYUNh
cHR1cmVTaW11bGF0ZUZhaWxlZFNhbmRib3g6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKHRlc3RXZWJW
aWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayk6CisgICAgICAgICh0
ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgICh0ZXN0V2Vi
Vmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk6CisKIDIwMjItMDEtMTMg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU2Vydmlj
ZVdvcmtlckNsaWVudC5pZCBhIFVVSUQgaW5zdGVhZCBvZiBhIHN0cmluZyBkZXJpdmVkIGZyb20g
YSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCmluZGV4IDkzNjJlZjM1N2U5YjA4NjEw
MzRmYmVjMzM4Y2IxOThhMTkxYjZiZmEuLjY1YmZiZGVmMDgyMjQ2MDgyM2NmZDYxYWEzNzI4NzQ5
NWIyYjFkYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dl
dFVzZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWEubW0KQEAgLTE1MiwxNCArMTUyLDIxIEBAIGJvb2wgd2FpdFVudGlsQ2FwdHVyZVN0
YXRlKFdLV2ViVmlldyAqd2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIGV4
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNvbnN0IEZ1
bmN0aW9uPHZvaWQoVGVzdFdLV2ViVmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBzZXRQYWdl
TXV0ZWQpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihX
S1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKQogewotICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
Ci0gICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1
cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5P
OworfQorCit2b2lkIGRvQ2FwdHVyZU11dGVUZXN0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoVGVzdFdL
V2ViVmlldyosIF9XS01lZGlhTXV0ZWRTdGF0ZSk+JiBzZXRQYWdlTXV0ZWQpCit7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGluaXRpYWxpemVNZWRpYUNh
cHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0y
MzUsMTAgKzI0Miw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZU11dGVBUEkpCiB7CiAgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMg
PSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0
KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZp
Z3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTM0MCwxMCArMzQ0
LDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlU3RvcCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0
dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25m
aWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtb
R1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0
KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdl
SGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC0zNzgsMTAgKzM3OSw3IEBAIFRFU1QoV2Vi
S2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0
byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVF
bmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1N
ZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5nZXQoKSB1
c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5k
bGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQxNCwxMCArNDEyLDcgQEAgVEVTVChXZWJLaXQy
LCBDYXB0dXJlSW5kaWNhdG9yRGVsYXlXaGVuQ2xvc2VkKQogewogICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNh
cHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMo
W1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbi5n
ZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3Nh
Z2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQ0MiwxMCArNDM3LDcgQEAgVEVTVChX
ZWJLaXQyLCBHZXRDYXBhYmlsaXRpZXMpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJs
ZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3Nh
Z2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIu
Z2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNDczLDEwICs0NjUsNyBAQCBURVNUKFdlYktpdCwgSW50
ZXJydXB0aW9uQmV0d2VlblNhbWVQcm9jZXNzUGFnZXMpCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwogI2VuZGlmCiAKLSAgICBhdXRvIHByZWZl
cmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0
aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1
cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdl
SGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTUzMiwxMCArNTIx
LDcgQEAgVEVTVChXZWJLaXQsIFBlcm1pc3Npb25EZWxlZ2F0ZVBhcmFtZXRlcnMpCiAgICAgW2Nv
bmZpZ3VyYXRpb24gc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwogI2VuZGlmCiAK
LSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAg
IHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsK
LSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAg
IHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRp
YWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAg
ICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKQEAgLTU1NSwx
MCArNTQxLDcgQEAgVEVTVChXZWJLaXQsIFdlYkF1ZGlvQW5kR2V0VXNlck1lZGlhKQogICAgIGNv
bmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQu
Z2V0KCk7CiAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbC5fY29uZmlndXJhdGlv
bi5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IE5POwogCi0gICAgYXV0byBwcmVmZXJl
bmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlv
bi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJl
Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBb
W2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC01OTEsOSAr
NTc0LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NXaGlsZUNhcHR1cmluZykKICAg
ICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0Zl
YXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21l
ZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRp
b24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRv
cHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0
aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2Fn
ZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtNjY2LDkgKzY0Nyw3IEBAIFRFU1QoV2Vi
S2l0MiwgQ3Jhc2hHUFVQcm9jZXNzQWZ0ZXJBcHBseWluZ0NvbnN0cmFpbnRzKQogICAgICAgICBp
ZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQiXSkKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9y
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQotICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0
aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1
cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
OllFU107CkBAIC03NDYsOSArNzI1LDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NX
aGlsZUNhcHR1cmluZ0FuZENhbGxpbmcpCiAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVu
YWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCi0gICAgcHJlZmVyZW5jZXMu
X21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMu
X21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2Fw
dHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1lc3Nh
Z2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAg
ICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAtODY3LDEwICs4
NDQsNyBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZpc2liaWxpdHlDaGFuZ2UpCiAgICAgYXV0
byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlw
dE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKIAotICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJl
ZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAg
IGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJl
ZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6
ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBk
b25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwpAQCAtODk4LDYgKzg3
Miw3MCBAQCBURVNUKFdlYktpdCwgQXV0b3BsYXlPblZpc2liaWxpdHlDaGFuZ2UpCiAgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvVGVzdCgpIl07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIGdl
dFVzZXJNZWRpYUZvY3VzVGV4dCA9IFIiRE9DRE9DRE9DKAorPGh0bWw+PGJvZHk+Cis8c2NyaXB0
Pgorb25sb2FkID0gKCkgPT4geworICAgIGRvY3VtZW50Lm9udmlzaWJpbGl0eWNoYW5nZSA9ICgp
ID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIp
OworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFT
UyIpOworfQorCitmdW5jdGlvbiBjYXB0dXJlKCkKK3sKKyAgICBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7dmlkZW8gOiB0cnVlfSkudGhlbihzdHJlYW0gPT4geworICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoZG9jdW1lbnQu
aGFzRm9jdXMoKSA/ICJQQVNTIiA6ICJGQUlMIik7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwv
Ym9keT48L2h0bWw+CispRE9DRE9DRE9DIjsKKworVEVTVChXZWJLaXQsIEdldFVzZXJNZWRpYUZv
Y3VzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAg
eyAiLyIsIHsgZ2V0VXNlck1lZGlhRm9jdXNUZXh0IH0gfQorICAgIH0sIFRlc3RXZWJLaXRBUEk6
OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwLCBudWxscHRyLCBudWxscHRyLCA5MDkwKTsKKwor
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRB
UEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0lu
amVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29s
ID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworCisgICAgYXV0byBtZXNzYWdlSGFu
ZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKKworICAgIGluaXRpYWxpemVN
ZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAgIGF1dG8g
cHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5j
ZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBZRVM7CisKKyAgICBkb25lID0gZmFsc2U7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHdl
YlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOworCisgICAgLy8gTG9hZCBw
YWdlLgorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAvLyBNaW5pbWl6ZQorICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBhdXRvICpob3N0V2luZG93ID0gW3dlYlZpZXcgaG9zdFdpbmRvd107
CisgICAgW2hvc3RXaW5kb3cgbWluaWF0dXJpemU6aG9zdFdpbmRvd107CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIC8vIFdlIGNhbGwgY2FwdHVyZSB3aGlsZSBt
aW5pbWl6aW5nLgorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZSgpIl07CisKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCBn
ZXRVc2VyTWVkaWEgZG9lcyBub3QgcmVzb2x2ZSB0b28gc29vbi4KKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpzcGluUnVuTG9vcCgxMDApOworICAgIEVYUEVDVF9GQUxTRShkb25lKTsKKworICAg
IFtob3N0V2luZG93IGRlbWluaWF0dXJpemU6aG9zdFdpbmRvd107CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKK30KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFRFU1Qo
V2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCkBAIC05MjQsMTAgKzk2Miw3IEBAIFRF
U1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCiAKICAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwog
ICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlh
Q2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURl
dmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0
aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24u
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0
aW9uLm1tCmluZGV4IDEyY2E3NDYyZDVhYmNkYmNkZDExOGVlNjNiZTVmMzU4MTE5NWM2OTkuLmE3
NjA5ZDM0NTJlM2NkMDg4ZTMyNjcwY2FkNjJhNzAzMWU0ODkyMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlv
bi5tbQpAQCAtNjcsNiArNjcsMTYgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVsZWFzZUluRW51bWVy
YXRlID0gZmFsc2U7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oV0tXZWJWaWV3Q29uZmlndXJhdGlv
biogY29uZmlndXJhdGlvbikKK3sKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdOworCisgICAgY29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxl
ZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQg
PSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsK
K30KKwogVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVyaW5nR2V0VXNlck1lZGlhUHJvbXB0KQogewog
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CkBAIC04OCwxMCArOTgsNyBAQCBURVNUKFdlYktpdCwgTmF2aWdhdGVE
dXJpbmdEZXZpY2VFbnVtZXJhdGlvbikKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJv
Y2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxl
ZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlF
UzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9u
LmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29s
Q29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0aW9u
V2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xMTcsMTAg
KzEyNCw3IEBAIFRFU1QoV2ViS2l0LCBEZWZhdWx0RGV2aWNlSWRIYXNoU2FsdHNEaXJlY3Rvcnkp
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3Jl
OmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRp
b246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0
byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVF
bmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vz
c1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW05hdmln
YXRpb25XaGlsZUdldFVzZXJNZWRpYVByb21wdERpc3BsYXllZFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTE0
NywxMCArMTUxLDcgQEAgVEVTVChXZWJLaXQsIERldmljZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQog
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTph
ZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8g
cHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5h
YmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9
IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0
aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQ
b29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0
aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNwbGF5ZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21w
dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJv
bXB0Lm1tCmluZGV4IDA3ZjU3ZDAxMjVlMDQ5OTIwMTViMzBmMTY4NmRkYTNmZTIwNTBmYWUuLjdh
Y2QzNjg2NzU0N2M1YmYwZTE0MTc2NTUwMzAzYzU2MGMxZTc5N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1t
CkBAIC02MCwxNCArNjAsMjIgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCitzdGF0
aWMgdm9pZCBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihXS1dlYlZpZXdDb25m
aWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKQoreworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisKKyAgICBjb25maWd1cmF0aW9uLl9tZWRpYUNhcHR1
cmVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1
cyA9IE5POworfQorCiBURVNUKFdlYktpdDIsIEdldFVzZXJNZWRpYVJlcHJvbXB0KQogewogICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByZWZlcmVu
Y2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9u
LmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVD
b25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tHZXRVc2VyTWVkaWFSZXByb21wdFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CkBAIC0xMDAsMTAgKzEwOCw3IEBAIFRFU1QoV2ViS2l0MiwgR2V0VXNlck1lZGlhUmVwcm9t
cHRBZnRlckF1ZGlvVmlkZW9CZWluZ0RlbmllZCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1
dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1
cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJl
RW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1
cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbR2V0VXNlck1lZGlh
UmVwcm9tcHRUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IFtkZWxlZ2F0ZSBzZXRBdWRpb0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3JhbnRdOwpA
QCAtMTIzLDEwICsxMjgsNyBAQCBURVNUKFdlYktpdDIsIE11bHRpcGxlR2V0VXNlck1lZGlhU3lu
Y2hyb25vdXNseSkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25m
aWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
Ci0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAg
ICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87
Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAg
ICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0
aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbR2V0VXNlck1lZGlhUmVwcm9tcHRUZXN0VmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQ
b29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVk
aWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IDg3MzZl
YTQ2NDlkMmI0YWE3YTEyYzZjZTA1ZTcyYTFkYzdkMzRlOTguLjk3MmJhNmFkMWJiNzdiZDE0N2E3
YWFlNDk5ZGViY2VhNjM3YmNmYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTYxLDYg
KzYxLDcgQEAgVEVTVChXZWJLaXQsIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZCkKICAgICBwcmVm
ZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICBwcmVm
ZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNl
cy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKICAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCmluZGV4
IDU3NTE5NzNhNTg4Nzg5ZTRmZTlmODZlOTU1MzVlYjU1ZTJmZDdlMTMuLmIyMzRjMjhiOGQxNmJh
MzA2ODEzMTBkN2E1NjQxOGQ5OWY4Mjg4ZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcApAQCAtNzcsNiArNzcsNyBAQCBURVNUKFdlYktpdCwg
VXNlck1lZGlhQmFzaWMpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVS
THNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHByZWZl
cmVuY2VzLCBmYWxzZSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1l
bXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpAQCAtMTEzLDYgKzExNCw3IEBA
IFRFU1QoV2ViS2l0LCBPbkRldmljZUNoYW5nZUNyYXNoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJl
bmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0R2V0VXNlck1lZGlh
UmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQYWdlVUlDbGllbnRW
NiB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsK
QEAgLTE3Myw2ICsxNzUsNyBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNoKQog
ICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRN
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywgZmFsc2UpOwog
CiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICAvLyBXZSB3YW50IHVpQ2xpZW50
LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiB0byBiZSBudWxsLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6
ZS5tbQppbmRleCA1MzNkZTFlYzRkNmRhNDAwNWQ5OGE3OThjZTk3NmE1ZDllMDIzNDM5Li45ZGQ2
MjljYThiNjRjYTYwZGNlOTRlZThjMGZjOGFkNjdiYWYzMTJiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQpA
QCAtNzIsNiArNzIsNyBAQCBURVNUKFdlYktpdCwgQXVkaW9CdWZmZXJTaXplKQogICAgIGF1dG8g
cHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CiAgICAgcHJlZmVyZW5j
ZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAgIHByZWZl
cmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2Vz
Ll9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5k
b3c6WUVTXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJl
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmluZGV4IDJmMTA2OTQ0NGE3ZTE4NzBjZDJk
YTkyYmFkNzljYjI4OWM3ZDBiNDYuLjkyM2MzODMzOGMyN2QxZGQ2MDg4MGIzYTg4YzJiNDA2OTU5
YWE0OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
R1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0dQVVByb2Nlc3MubW0KQEAgLTY5Niw2ICs2OTYsNyBAQCBURVNUKEdQVVByb2Nlc3MsIEV4aXRz
VW5kZXJNZW1vcnlQcmVzc3VyZVdlYlJUQ0Nhc2UpCiAgICAgICAgIHByZWZlcmVuY2VzLl9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKICAgICAgICAgY29uZmlndXJh
dGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5jZXMuX21v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgICAgIHByZWZlcmVuY2VzLl9nZXRV
c2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87CiAgICAgfSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KaW5kZXggZGUwNTAzMDM3ZjZjOWFhMmRhYmM1
MjkwMzE1YzhjMWIyYzI0YzU1OS4uZTdjN2Q2MmNkMGNiMmRhMWJkZjcxZTc2Y2Y5MGM4NTUzYjNi
YWQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9H
ZXREaXNwbGF5TWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9HZXREaXNwbGF5TWVkaWEubW0KQEAgLTEwNCwxMCArMTA0LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAg
ICAgIHByZWZlcmVuY2VzLl9zY3JlZW5DYXB0dXJlRW5hYmxlZCA9IFlFUzsKIAotICAgICAgICBt
X3dlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5n
ZXQoKV0pOworICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
Om1fY29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgICAgICBtX3Vp
RGVsZWdhdGUgPSBhZG9wdE5TKFtbR2V0RGlzcGxheU1lZGlhVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwogICAgICAgICBtX3dlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5n
ZXQoKTsKKyAgICAgICAgW21fd2ViVmlldyBmb2N1c107CiAKICAgICAgICAgW21fd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXREaXNwbGF5TWVkaWEiXTsKICAgICB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBjNTMzODBjYjEyOWYzYjQzM2Iz
OTBhM2ZkZThkNzdhZGRmNjJkMjk3Li5jOTIyYjYzYTI3MTZkYWVmNDYxMjFlZDM3NzNjN2ZkNDY5
NTE1MzE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTY4MjgsNiArNjgy
OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdldFVzZXJNZWRpYUNhcHR1cmVTdGF0ZSkKICAgICBw
cmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CiAg
ICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7
CiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAg
cHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKIAogICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CiAgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2du
aXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJl
Y29nbml0aW9uLm1tCmluZGV4IDQwYzA4ZTM1YTZhNWQ2ZWM0NzNkN2ZhMzYzMDBlMDBhZTJjZGNj
YzAuLjJjMTY0NGQxYjY4YWY2ZDAyNjIzMmQ2M2Y0NjI1MjM5ZmIwYjcwZTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNv
Z25pdGlvbi5tbQpAQCAtMTYyLDYgKzE2Miw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2du
aXRpb25FcnJvcldoZW5TdGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZSkKICAgICBw
cmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJl
bmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVmZXJlbmNl
cy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
YXV0byBmaXJzdFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKICAgICBbZmlyc3RXZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyTWVkaWFEaXNhYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KaW5kZXggNTc2MDFjNzE5ZWI4MDA2ZjczNTFiZGEy
MDA4ZTZlMDZlOGIwMjU4MS4uMTc3OWZhYWQzNjkwODc0MmI0YWQ3YzE5NzA3MGMzYzU3Y2YyNjll
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2Vy
TWVkaWFEaXNhYmxlZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJNZWRpYURpc2FibGVkLm1tCkBAIC04Miw2ICs4Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgYXV0byBwcmVmZXJlbmNlcyA9IFttX3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5j
ZXM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVT
OwogICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87CisgICAgICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3Vz
ID0gTk87CiAKICAgICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYVVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21fd2ViVmlldyBzZXRVSURlbGVnYXRlOm1f
dWlEZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5k
Ym94Lm1tCmluZGV4IDI0ZGMzNTEyZjg0MGM1ZWMyZTFhODkwZWIzZTgyMTliZjNjMzE1ZDIuLmQ3
M2ExYWVmODFlMzEzNjE1OGE3MjBhMmRmMmJlMjMzYWE4ZjI3OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRT
YW5kYm94Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoK
ICAgICAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFttX3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJl
ZmVyZW5jZXM7CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
ID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87CisgICAgICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJl
c0ZvY3VzID0gTk87CiAKICAgICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW1NpbXVsYXRl
RmFpbGVkU2FuZGJveFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21fd2ViVmll
dyBzZXRVSURlbGVnYXRlOm1fdWlEZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmluZGV4IDI5OGU3
NWFkNTAzYzkxZTY0YTQwMmM2ZGEzYjg3MGRmMzM1YjcyMWUuLjI4NGY4MDRiNjQxMDViODRiNjc2
MjgzNzhjZThjZjBjMTk3MmFjZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC0xMDAyLDYgKzEwMDIsNyBAQCBz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0ZURldmljZXNQZXJtaXNzaW9u
Q2hlY2soVUlDbGllbnRUZXN0KiB0ZQogICAgIGdib29sZWFuIGVuYWJsZWQgPSB3ZWJraXRfc2V0
dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MpOwogICAgIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0
U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3Ms
IEZBTFNFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMo
c2V0dGluZ3MsIEZBTFNFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2Nh
cHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAKICAgICB0ZXN0LT5zaG93SW5XaW5kb3co
KTsKQEAgLTEwMzcsNiArMTAzOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3VXNlck1lZGlh
RW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhVSUNsaWVudFRlc3QqIHRlCiAgICAgd2Vi
a2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBlbmFibGVkKTsK
ICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0
aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRSVUUpOwogfQogCiBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZXIpCkBAIC0xMDQ2LDYgKzEwNDgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdj
b25zdHBvaQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbShzZXR0
aW5ncywgVFJVRSk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbW9ja19jYXB0dXJl
X2RldmljZXMoc2V0dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBGQUxTRSk7CisgICAgd2Via2l0
U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBGQUxTRSk7CiAK
ICAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdXNlck1l
ZGlhUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgpAQCAtMTEwNSw2ICsxMTA4LDcgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0
ZXN0LCBnY29uc3Rwb2kKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJl
YW0oc2V0dGluZ3MsIGVuYWJsZWQpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21v
Y2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0U2V0dGluZ3NT
ZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRSVUUpOwor
ICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywg
VFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKQEAgLTEx
MTQsNiArMTExOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwKICAgICB3ZWJraXRfc2V0dGlu
Z3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBUUlVFKTsK
ICAgICB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
bihzZXR0aW5ncywgRkFMU0UpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1cyhzZXR0aW5ncywgRkFMU0UpOwogCiAgICAgdGVzdC0+c2hvd0luV2luZG93KCk7
CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJNZWRpYVJlcXVlc3RIVE1MID0gIjxodG1sPiIK
QEAgLTExNDQsNiArMTE0OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXVkaW9Pbmx5VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwKICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIGVuYWJsZWQpOwogICAg
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdz
LCBGQUxTRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24oc2V0dGluZ3MsIFRSVUUpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhzZXR0aW5ncywgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3RGlzcGxheVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTQxNjQ3OWU2OTUwYjQ5NTk0NjkzNWJlNmQx
OTEwMzg1MGZjNjE1Ny4uMWM5NTVjZDZjNzBjZTgyYTU5MzI1YTY1NjllNjUxYTEzNTA1YWIxZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAxLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVk
aWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAy
NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQ6CisKIDIw
MjItMDEtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgU2VydmljZVdvcmtlckNsaWVudC5pZCBhIFVVSUQgaW5zdGVhZCBvZiBhIHN0cmluZyBkZXJp
dmVkIGZyb20gYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdl
dFVzZXJNZWRpYS1leHBlY3RlZC50eHQKaW5kZXggMjI2NTc4ZjZmMGNmNjBlY2IxNGQzMGNmM2Y4
NWUyZWMwNjNkNTA0Ni4uNDY5NjI3MWQ5ZWMwNjc0NTRjODY5MDE2NjhmNTk4NTAwYjU1OTIzOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0
VXNlck1lZGlhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CkBAIC02LDggKzYsOCBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy53ZWJraXRHZXRVc2VyTWVkaWEgaXMgJ3VuZGVmaW5lZCcKIAogUEFTUyBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtMSk7IGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSgpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgotUEFT
UyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7fSkgcmVqZWN0ZWQgd2l0aCBl
cnJvcjogVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBObyBjb25zdHJh
aW50cyBwcm92aWRlZAorUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
fSkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBObyBjb25zdHJhaW50cyBwcm92aWRl
ZAogUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYS5hcHBseSh1bmRlZmlu
ZWQpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBNZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhIG9uIGluc3RhbmNlcyBvZiBNZWRpYURldmljZXMKIFBBU1MgU3Ry
ZWFtIDEgZ2VuZXJhdGVkLgogUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMg
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBz
Lmh0bWwKaW5kZXggNjliNWYyODkwMTZmZTQ4MDFiZTFhYTkwMTJiNWRiOWU2ZGI0NmZhMC4uOTAx
NWE3MDEzMDE3NTBmMDBiMWVlZTk4OGJlOWVhOTdjZTA5NTE0OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0
Y2hBbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5odG1sCkBAIC0yOCw2ICsy
OCw5IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogCiBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciA9
IGludGVybmFscy5zZXJ2aWNlV29ya2VyQ2xpZW50SW50ZXJuYWxJZGVudGlmaWVyKGRvY3VtZW50
KTsKKyAgICBpbnRlcm5hbHMuZG9jdW1lbnRJZGVudGlmaWVyKGRvY3VtZW50KTsKK2NvbnNvbGUu
bG9nKHNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLnN1YnN0cmluZygzKSk7CisgICAgYXNz
ZXJ0X3RydWUoaW50ZXJuYWxzLmlzRG9jdW1lbnRBbGl2ZShzZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllci5zdWJzdHJpbmcoMykpKTsKICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3Quc3RlcF9mdW5jKChldmVudCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5kYXRhLCAiUEFTUyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449165</attachid>
            <date>2022-01-14 05:06:10 -0800</date>
            <delta_ts>2022-01-16 22:45:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235026-20220114140604.patch</filename>
            <type>text/plain</type>
            <size>60828</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk3NjkwMTI1ZjkxOTcyMTFmNDcyNjhl
ODZmOTJlZmQ5N2Y5OTY0NGUuLmIwZjY1ZmIxOWY2OWZkMjIyYjk4NjE5OGM0ZGU3NmZlMTRmMTdk
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuZm9yY2UgZm9jdXMgY2hlY2sgZm9yIGdldFVzZXJN
ZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjItMDEt
MTMgIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxk
XSBBZGQgInByb2R1Y3QgZGVwZW5kZW5jaWVzIiB3aGljaCBpbmZsdWVuY2Ugd29ya3NwYWNlIGJ1
aWxkIG9yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QyNjYzMGZlZDkxZjUwMzBmZDEyYjRmMWYzMGZhNTNl
ZjBkZjJkYy4uMzE1ZGIyODAwNDAyNGZjM2I0NDhkYmIwOWM3Y2E0NGYyZDQyOTcxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZvciBnZXRVc2VyTWVk
aWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTAy
NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgYSBjYWxsYmFjayBzbyB0aGF0IGEgdGFzayBpcyBleGVj
dXRlZCB3aGVuIHRoZSBkb2N1bWVudCBpcyB2aXNpYmxlLgorICAgICAgICBVc2UgdGhpcyB0byBk
ZWxheSBnZXRVc2VyTWVkaWEgcmVxdWVzdHMgdW50aWwgZG9jdW1lbnQgaXMgdmlzaWJsZS4KKyAg
ICAgICAgVGhlIHNwZWMgY3VycmVudGx5IGRlZmluZXMgdGhhdCB3ZSBzaG91bGQgd2FpdCBmb3Ig
dGhlIGN1cnJlbnQgZG9jdW1lbnQgdG8gaGF2ZSBmb2N1cyBidXQgdGhpcyBpcyBhYm91dCB0byBi
ZSBjaGFuZ2VkIGFuZCBpcyBub3QgYWxpZ25lZCB3aXRoIG90aGVyIGJyb3dzZXIgaW1wbGVtZW50
YXRpb25zLgorCisgICAgICAgIFRoZSBwYXRjaCBhbHNvIG1vdmVzIHNvbWUgZ2V0VXNlck1lZGlh
IGNoZWNrcyBlYXJsaWVyIHNvIGFzIHRvIHJlc3BlY3Qgb3JkZXIgcHJvdmlkZWQgYnkgdGhlIHNw
ZWNzLgorICAgICAgICBBZGQgYSBjaGVjayB0byB2YWxpZGF0ZSBnZXREaXNwbGF5TWVkaWEgaXMg
Y2FsbGVkIG9uIGEgdmlzaWJsZSBkb2N1bWVudCBhcyB0aGUgdXNlciBnZXN0dXJlIGlzIG5vdyB0
aW1lIGJhc2VkLgorCisgICAgICAgIENvdmVyZWQgYnkgQVBJIHRlc3QuCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorCiAyMDIyLTAxLTE0ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXVtXUEVdIFNoYXJlIGNvZGUgYmV0d2VlbiBOaWNvc2lhR0NHTExheWVyK0FO
R0xFIGFuZCBOaWNvc2lhSW1hZ2VCdWZmZXJQaXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMyMGE1YTIwN2E1NDRj
Mjc4N2EwNTY5ZjA0MjE3MTE1YWQ0ZGNkZDEuLjc2NzQ4NjczMzc1MGI1NzUyYzc5MGFhMmI3YTU5
MmMzNTg1Y2I1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjItMDEtMTQgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPiBhbmQgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBmb2N1cyBjaGVjayBmb3IgZ2V0
VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
QWRkIHNldHRlcnMvZ2V0dGVycyBmb3IgdGhlIGdldFVzZXJNZWRpYSBmb2N1cyBzZXR0aW5ncy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNHZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMg
X2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXNdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
c2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdFNldHRpbmdzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFNldHRpbmdzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlTWFwKTogQWx3YXlzIGFk
ZCB0aGUgV2luZG93SXNBY3RpdmUgZmxhZyB1bmRlciB4dmZiLgorICAgICAgICAod2Via2l0V2Vi
Vmlld0Jhc2VJc0ZvY3VzZWQpOiBBbHdheXMgY29uc2lkZXIgdGhlIHZpZXcgZm9jdXNlZCB3aGVu
IFdpbmRvd0lzQWN0aXZlIGZsYWcgaXMgcHJlc2VudCB1bmRlciB4dmZiLgorCiAyMDIyLTAxLTE0
ICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd2F5IHRv
IGVuY29kZSBDVEFQIGNvbW1hbmRzIHdpdGggb25seSB0aGUgaGFzaCBvZiBDbGllbnREYXRhSlNP
TgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsLnlhbWwKaW5kZXggMWMwNzA1MTNkZTdhM2Q2MzRhMDJmNWJmNjc3ZWM5
OWZlMjc5NGZmYi4uNjY3MTBmODQ5ZjlkMWFhNmZmYzJmYTg5ZGZlYjRmNTI0M2M5MjY0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbC55YW1sCkBAIC0yOTMsNiArMjkzLDE5IEBAIEZ1bGxTY3JlZW5FbmFibGVk
OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitHZXRVc2VyTWVkaWFSZXF1
aXJlc0ZvY3VzOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUmVxdWlyZSBm
b2N1cyB0byBzdGFydCBnZXRVc2VyTWVkaWEiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IlJlcXVpcmUgZm9jdXMgdG8gc3RhcnQgZ2V0VXNlck1lZGlhIgorICBjb25kaXRpb246IEVOQUJM
RShNRURJQV9TVFJFQU0pCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiB0cnVlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdl
YkNvcmU6CisgICAgICBkZWZhdWx0OiB0cnVlCisKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2ViY29yZU9uQ2hhbmdlOiBpY2VDYW5kaWRhdGVGaWx0ZXJp
bmdFbmFibGVkQ2hhbmdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5
NmUxNTY1ZjU4ZTUuLjFhZTUwZTlkNGJlYjA5NmUwYjAyMTY5NTRkZmY0NjY2YzUyMjNhNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKQEAgLTExOCwxNSArMTE4LDIwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjb21wdXRlVXNl
ckdlc3R1cmVQcml2aWxlZGdlKEdlc3R1cmVBbGxvd2VkUmVxdWVzdCByZXF1ZXN0VHlwCiAKIHZv
aWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkKIHsKKyAgICBhdXRvIGF1ZGlvQ29uc3RyYWlu
dHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKKyAgICBhdXRv
IHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZp
ZGVvKTsKKworICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0
cmFpbnRzLmlzVmFsaWQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yLCAiTm8g
Y29uc3RyYWludHMgcHJvdmlkZWQiX3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5pc0Z1bGx5QWN0aXZlKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFp
bnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0
byB2aWRlb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52
aWRlbyk7Ci0KICAgICBib29sIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCA9IGZhbHNlOwogCiAg
ICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCkKQEAgLTEzOCw3ICsxNDMsODYgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWludHMsIFByb21pc2UmJgogICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpV
c2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJh
aW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICByZXF1ZXN0LT5zdGFydCgpOworCisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGluZ3MoKS5nZXRV
c2VyTWVkaWFSZXF1aXJlc0ZvY3VzKCkpIHsKKyAgICAgICAgcmVxdWVzdC0+c3RhcnQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSB1c2UgaGlkZGVuIHdoaWxl
IHRoZSBzcGVjIGlzIHVzaW5nIGZvY3VzLCBsZXQncyByZXZpc2l0IHdoZW4gd2hlbiBzcGVjIGlz
IG1hZGUgY2xlYXJlci4KKyAgICBkb2N1bWVudC0+d2hlblZpc2libGUoW3JlcXVlc3QgPSBXVEZN
b3ZlKHJlcXVlc3QpXSB7CisgICAgICAgIGlmIChyZXF1ZXN0LT5pc0NvbnRleHRTdG9wcGVkKCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CisgICAgfSk7
Cit9CisKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIC8vIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNoYXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25z
CisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2QncyBmaXJzdCBhcmd1bWVu
dC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJlc2VudCBpbiBjb25zdHJhaW50cyB3aG9z
ZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6
CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVyIG5hbWVkIGFkdmFuY2Vk
LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJv
ci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFpbnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVy
biBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1lbWJlciBuYW1lZCBlaXRoZXIgbWluIG9y
CisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBu
ZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAoIWNvbnN0cmFpbnRzLmlzVmFsaWQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghY29uc3RyYWludHMuYWR2YW5jZWRDb25z
dHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYm9vbCBpbnZh
bGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmlsdGVy
KFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgbXV0YWJsZSB7
CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7CisgICAgICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6CisgICAgICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0g
ZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBpbnQgdmFs
dWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkg
fHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgor
ICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZTogeworICAgICAgICAg
ICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNv
bnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZhbHVlOworICAgICAgICAgICAgaW52YWxp
ZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQu
Z2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKKyAgICAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZTogeworICAgICAgICAgICAgYXV0byYg
Ym9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7
CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25z
dHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisK
KyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgorICAgICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOgorICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFp
bnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25z
dHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZToKKyAgICAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplOgorICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAgLy8gSWdub3JlZC4KKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsKKyAgICB9KTsKKworICAgIHJldHVybiBp
bnZhbGlkOwogfQogCiB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlhKGNvbnN0IERp
c3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21p
c2UpCkBAIC0xNTMsNyArMjM3LDE5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXREaXNwbGF5TWVk
aWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0Ojpj
cmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlh
LCB7IH0sIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pLCBpc1VzZXJH
ZXN0dXJlUHJpdmlsZWRnZWQgfSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgYXV0byB2aWRlb0Nv
bnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7Cisg
ICAgaWYgKGhhc0ludmFsaWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KHZpZGVvQ29uc3RyYWlu
dHMpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImdl
dERpc3BsYXlNZWRpYSBtdXN0IGJlIGNhbGxlZCB3aXRoIHZhbGlkIGNvbnN0cmFpbnRzLiJfcyB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSB1c2UgaGlkZGVu
IHdoaWxlIHRoZSBzcGVjIGlzIHVzaW5nIGZvY3VzLCBsZXQncyByZXZpc2l0IHdoZW4gd2hlbiBz
cGVjIGlzIG1hZGUgY2xlYXJlci4KKyAgICBpZiAoIWRvY3VtZW50LT5pc0Z1bGx5QWN0aXZlKCkg
fHwgZG9jdW1lbnQtPnRvcERvY3VtZW50KCkuaGlkZGVuKCkpIHsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVs
bHkgYWN0aXZlIG9yIGRvZXMgbm90IGhhdmUgZm9jdXMiX3MgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRv
Y3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIFdU
Rk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZN
b3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApp
bmRleCBlMDZjZGUwODliYWUzNzI3MGViMmJkMTI1ZmMwNjgxZDViYzY3ZGY1Li5jMzliOGYwYTc3
ZTNiZTNiNmU3YTVkZTRiMDVjNWQwZTY0MTFmMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTg1LDc0
ICs4NSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0Ojp0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4dCA/ICZjb250ZXh0LT50b3BPcmln
aW4oKSA6IG51bGxwdHI7CiB9CiAKLXN0YXRpYyBib29sIGhhc0ludmFsaWRHZXREaXNwbGF5TWVk
aWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQotewotICAg
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNoYXJlLyNuYXZp
Z2F0b3ItYWRkaXRpb25zCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRoZSBtZXRob2Qn
cyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJlc2VudCBpbiBj
b25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwgcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5zIGEgbWVtYmVy
IG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBj
cmVhdGVkIFR5cGVFcnJvci4KLSAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFpbnMgYSBtZW1i
ZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1lbWJlciBuYW1l
ZCBlaXRoZXIgbWluIG9yCi0gICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KLSAgICBpZiAoIWNvbnN0cmFp
bnRzLmlzVmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghY29uc3RyYWlu
dHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7Ci0gICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29u
c3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3Ry
YWludCkgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlw
ZSgpKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6Ci0gICAgICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7Ci0gICAgICAgICAgICBhdXRvJiBp
bnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWludCk7Ci0gICAg
ICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICBpbnZhbGlkID0gaW50Q29uc3RyYWludC5n
ZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkFzcGVjdFJhdGlvOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0
ZTogewotICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25jYXN0PERvdWJs
ZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOwotICAgICAgICAgICAgZG91YmxlIHZhbHVlOwotICAg
ICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFsdWUpIHx8IGRv
dWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToK
LSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZTogewotICAg
ICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFuQ29uc3RyYWlu
dD4oY29uc3RyYWludCk7Ci0gICAgICAgICAgICBib29sIHZhbHVlOwotICAgICAgICAgICAgaW52
YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdN
b2RlOgotICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOgotICAgICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKLSAgICAgICAgICAgIGF1dG8m
IHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25zdHJhaW50
KTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKLSAgICAgICAgICAgIGludmFs
aWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxl
UmF0ZToKLSAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplOgotICAg
ICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKLSAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgotICAgICAgICAgICAgLy8gSWdub3Jl
ZC4KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaW52YWxpZDsKLSAgICB9KTsK
LQotICAgIHJldHVybiBpbnZhbGlkOwotfQotCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0
KCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAt
MTYyLDI1ICs5NCw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVx
dWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7Ci0gICAgICAgIGlmIChoYXNJbnZhbGlkR2V0RGlz
cGxheU1lZGlhQ29uc3RyYWludChtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cykpIHsKLSAgICAg
ICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OklsbGVnYWxDb25zdHJhaW50KTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1c2VybWVkaWEuaHRtbCNkb20tbWVk
aWFkZXZpY2VzLWdldHVzZXJtZWRpYSgpCi0gICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRo
ZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KLSAgICAvLyAyLiBMZXQgcmVxdWVzdGVkTWVkaWFU
eXBlcyBiZSB0aGUgc2V0IG9mIG1lZGlhIHR5cGVzIGluIGNvbnN0cmFpbnRzIHdpdGggZWl0aGVy
IGEgZGljdGlvbmFyeQotICAgIC8vICAgIHZhbHVlIG9yIGEgdmFsdWUgb2YgInRydWUiLgotICAg
IC8vIDMuIElmIHJlcXVlc3RlZE1lZGlhVHlwZXMgaXMgdGhlIGVtcHR5IHNldCwgcmV0dXJuIGEg
cHJvbWlzZSByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yLiBUaGUgd29yZAotICAgIC8vICAgICJv
cHRpb25hbCIgb2NjdXJzIGluIHRoZSBXZWJJREwgZHVlIHRvIFdlYklETCBydWxlcywgYnV0IHRo
ZSBhcmd1bWVudCBtdXN0IGJlIHN1cHBsaWVkIGluIG9yZGVyCi0gICAgLy8gICAgZm9yIHRoZSBj
YWxsIHRvIHN1Y2NlZWQuCi0gICAgaWYgKCFtX3JlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5pc1Zh
bGlkICYmICFtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7Ci0gICAgICAgIGRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgLy8gNC4gSWYgdGhlIGN1cnJlbnQgc2V0dGluZ3Mgb2JqZWN0J3Mg
cmVzcG9uc2libGUgZG9jdW1lbnQgaXMgTk9UIGFsbG93ZWQgdG8gdXNlIHRoZSBmZWF0dXJlIGlu
ZGljYXRlZCBieQogICAgIC8vICAgIGF0dHJpYnV0ZSBuYW1lIGFsbG93dXNlcm1lZGlhLCByZXR1
cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBET01FeGNlcHRpb24gb2JqZWN0IHdob3NlIG5h
bWUKICAgICAvLyAgICBhdHRyaWJ1dGUgaGFzIHRoZSB2YWx1ZSBTZWN1cml0eUVycm9yLgpAQCAt
Mjg5LDEwICsyMDIsNiBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkoTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogCiAgICAgRXhjZXB0aW9u
Q29kZSBjb2RlOwogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2FzZSBNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6SWxsZWdhbENvbnN0cmFpbnQ6Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
U3RyZWFtLCAiVXNlck1lZGlhUmVxdWVzdDo6ZGVueSAtIGludmFsaWQgY29uc3RyYWludHMiKTsK
LSAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50czoKICAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gbm8gY29uc3RyYWludHMiKTsK
ICAgICAgICAgY29kZSA9IFR5cGVFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMzlhYmY2MGNkMDZiODk3
MjVhMGI2NzQzNWU4OGUzYTI1YjQ2ZjJmMC4uOWNjN2EyYmQ2ODJiNTU5NjBiOWY0MTBiYTYwOWJj
NmNlZDRjODk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2aWNlVUlEcyhjb25zdCBTdHJpbmcm
IGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlEKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICBlbnVtIE1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uIHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURl
dmljZXMsIEludmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVk
LCBJbnZhbGlkQWNjZXNzLCBJbGxlZ2FsQ29uc3RyYWludCwgT3RoZXJGYWlsdXJlIH07CisgICAg
ZW51bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRpYURp
c2FibGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVFcnJv
ciwgUGVybWlzc2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgT3RoZXJGYWlsdXJlIH07CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOwogCiAgICAgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9EZXZpY2VV
SURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyYzdlMmQxYTM4NjQzNmVlYTk1ODRi
NTcwZmE2NjViYTk2ZmEzMzYyLi45MTJhOThjNDRjNjYwOTU3NzMzM2VkMzc1ODc1MjNkYmUzMGNl
ZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE4NzYsNiArMTg3NiwxMiBAQCB2b2lk
IERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKICAgICAgICAgICAgIE1lZGlhU3Ry
ZWFtVHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoKnRoaXMpOwogICAg
IH0KICNlbmRpZgorCisgICAgaWYgKCFoaWRkZW4oKSkgeworICAgICAgICBhdXRvIGNhbGxiYWNr
cyA9IHN0ZDo6ZXhjaGFuZ2UobV93aGVuSXNWaXNpYmxlSGFuZGxlcnMsIHsgfSk7CisgICAgICAg
IGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAgICAgICAgICBjYWxsYmFjaygp
OworICAgIH0KIH0KIAogVmlzaWJpbGl0eVN0YXRlIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGUo
KSBjb25zdApAQCAtOTA5OSw2ICs5MTA1LDE1IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gdHM7CiB9
CiAKK3ZvaWQgRG9jdW1lbnQ6OndoZW5WaXNpYmxlKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBpZiAoaGlkZGVuKCkpIHsKKyAgICAgICAgbV93aGVuSXNWaXNpYmxlSGFuZGxl
cnMuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBjYWxsYmFjaygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NV
TUVOVF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyYzhkZjMxNjgwNmQ2NTM2
ZjllMGNjNTJiNzRhODUxN2UwOTdiZTc2Li5mMzJmMTFlOGE5NDRiYTExMzU3YTliYWRlYjM1MGE1
MzdkNDAyMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDI5LDYgKzQyOSw3IEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc0ZvY3VzKCkgY29uc3Q7CisgICAgdm9pZCB3aGVuVmlzaWJs
ZShGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgYm9vbCBoYXNNYW5pZmVzdCgpIGNvbnN0Owog
ICAgIApAQCAtMjI2MCw2ICsyMjYxLDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI+IG1fbW9kYWxDb250YWluZXJPYnNlcnZl
cjsKKworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3doZW5Jc1Zpc2libGVIYW5kbGVy
czsKIH07CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
CmluZGV4IGVhN2Q3NjExZWI0ZDZhOTA4OWQyZDJhOTI1OWJiZDkwYTlhMDY3ODUuLjcxZjJjMmYy
ZmEyMjBkZTlhOGRkMGQyYTYxMzdhOTVjZTI0NTE1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTI2LDYgKzE1MjYsMTYgQEAg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEdldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dl
dEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+Z2V0VXNlck1lZGlhUmVx
dWlyZXNGb2N1cygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxl
ZCkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmdFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggYjY2NGU5ZWExMTFjZWQ5ODAy
MjU3ZjIxMmVmNzRlNDY0ZGY4MjhlYy4uZjQyODUwYjA5Yzc2MzJmZGVlZDk5NzI3Njk5OGI5MDEx
MGY1YWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC0zOTgsNiArMzk4LDEwIEBAIFdLX0VYUE9SVCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUoV0tQcmVmZXJl
bmNlc1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwog
CisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CitXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhXS1ByZWZl
cmVuY2VzUmVmKTsKKwogLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYs
IGJvb2wpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldElDRUNhbmRpZGF0ZUZpbHRl
cmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDljNWY4ZGFjNThmZjllNTc2
ZTU5NTBlNmQ3OTVhMDNkZmY1M2M3NDAuLjFlM2IxOTYxM2NiNjdkNzhkOGM4YTU3MWRkOGM5Mjcw
OTMxMDdiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCkBAIC02NTAsNiArNjUwLDE2IEBAIHN0YXRpYyBfV0tTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkK
ICAgICBfcHJlZmVyZW5jZXMtPnNldE1lZGlhRGV2aWNlc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAK
Ky0gKEJPT0wpX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMKK3sKKyAgICByZXR1cm4gX3ByZWZl
cmVuY2VzLT5nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKCk7Cit9CisKKy0gKHZvaWQpX3NldEdl
dFVzZXJNZWRpYVJlcXVpcmVzRm9jdXM6KEJPT0wpZW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNl
cy0+c2V0R2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyhlbmFibGVkKTsKK30KKwogLSAoQk9PTClf
c2NyZWVuQ2FwdHVyZUVuYWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5zY3JlZW5D
YXB0dXJlRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBjMWM3MjNhMWZmNDdlYWMxOTZi
ZDA2MmIzZTI3NzMwMjRmMzFmYTA1Li5kMTU1YmExZjBiNzlmOTRiOWI2Y2MzOWFiN2EwMDMxNjA4
Y2RiZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTE3LDYgKzExNyw3IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQ6KSBCT09MIF9w
ZWVyQ29ubmVjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGV2aWNlc0Vu
YWJsZWQ6KSBCT09MIF9tZWRpYURldmljZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0R2V0
VXNlck1lZGlhUmVxdWlyZXNGb2N1czopIEJPT0wgX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOikgQk9P
TCBfc2NyZWVuQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQ6KSBCT09MIF9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TW9ja0NhcHR1cmVEZXZpY2VzUHJvbXB0RW5hYmxlZDopIEJPT0wgX21vY2tD
YXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFNldHRpbmdzLmNwcAppbmRleCBkOTI2MjgwMGU0NzFjMmJiYmUyOWIzODBlNzlmM2Vi
YmM2ZTJlMWRjLi4yNzQyNDdlMTg0YjA3NWZjNjA0ZjdmYWNiMzQ0NjgzZWMxNTQyMTk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3Mu
Y3BwCkBAIC0zODI3LDYgKzM4MjcsMTIgQEAgdm9pZCB3ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihXZWJLaXRTZXR0aW5ncyogc2V0dGkKICAgICBw
cml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9u
KHJlcXVpcmVkKTsKIH0KIAordm9pZCB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVp
cmVzRm9jdXMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBib29sIHJlcXVpcmVkKQoreworICAg
IFdlYktpdFNldHRpbmdzUHJpdmF0ZSogcHJpdiA9IHNldHRpbmdzLT5wcml2OworICAgIHByaXYt
PnByZWZlcmVuY2VzLT5zZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHJlcXVpcmVkKTsKK30K
KwogLyoqCiAgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWly
aW5nX2hhcmR3YXJlX3N1cHBvcnQ6CiAgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5n
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRp
bmdzUHJpdmF0ZS5oCmluZGV4IDA0NjlmN2VjMjgzNjgyZTE1MmVkZTk2OWFiM2FhZTBiYWNkYTU0
OGIuLjQwMTg5ZGRhYzdiMzVkNDFkZWUyYWI4NDdiOWMyZTIxYzQzNDYzNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzUHJp
dmF0ZS5oCkBAIC0zMyw1ICszMyw2IEBACiBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiB3ZWJraXRT
ZXR0aW5nc0dldFByZWZlcmVuY2VzKFdlYktpdFNldHRpbmdzKik7CiAKIFdLX0VYUE9SVCB2b2lk
IHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKFdl
YktpdFNldHRpbmdzKiwgYm9vbCByZXF1aXJlZCk7CitXS19FWFBPUlQgdm9pZCB3ZWJraXRTZXR0
aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoV2ViS2l0U2V0dGluZ3MqLCBib29sIHJl
cXVpcmVkKTsKIAogI2VuZGlmIC8vIFdlYktpdFNldHRpbmdzUHJpdmF0ZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmlu
ZGV4IGVhYmZkMTgwNWFkZThiNjU1Nzk5NmFmMDUwMmY2NWFiZjIwYWU0YTUuLjU1OWE4OWJmYzAy
NzllMTZhN2E3YjIzMjFkMGI4OTMxZjIyNGQzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC05MTEsNiArOTEx
LDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlTWFwKEd0a1dpZGdldCogd2lkZ2V0
KQogICAgIGlmIChwcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93KSB7CiAgICAgICAgIGlmICgh
KHByaXYtPmFjdGl2aXR5U3RhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KSkKICAgICAg
ICAgICAgIGZsYWdzVG9VcGRhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpOworCisj
aWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQorICAgICAgICAvLyBYdmZiIGRvZXNuJ3Qgc3VwcG9y
dCB0b3BsZXZlbCBmb2N1cywgc28gZ3RrX3dpbmRvd19pc19hY3RpdmUoKSBhbHdheXMgcmV0dXJu
cyBmYWxzZS4gV2UgY29uc2lkZXIKKyAgICAgICAgLy8gdG9wbGV2ZWwgd2luZG93IHRvIGJlIGFs
d2F5cyBhY3RpdmUgc2luY2UgaXQncyB0aGUgb25seSBvbmUuCisgICAgICAgIGlmIChXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gV2ViQ29yZTo6UGxh
dGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKKyAgICAgICAgICAgIGlmICghZ19zdHJjbXAwKGdf
Z2V0ZW52KCJVTkRFUl9YVkZCIiksICJ5ZXMiKSkKKyAgICAgICAgICAgICAgICBmbGFnc1RvVXBk
YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CisgICAgICAgIH0KKyNlbmRp
ZgorCiAgICAgICAgIGlmIChndGtfd2luZG93X2lzX2FjdGl2ZShHVEtfV0lORE9XKHByaXYtPnRv
cGxldmVsT25TY3JlZW5XaW5kb3cpKSAmJiAhKHByaXYtPmFjdGl2aXR5U3RhdGUgJiBBY3Rpdml0
eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSkpCiAgICAgICAgICAgICBmbGFnc1RvVXBkYXRlLmFkZChB
Y3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAgICAgfQpAQCAtMjQyOSw2ICsyNDM5LDE0
IEBAIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VJc0luV2luZG93QWN0aXZlKFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJWaWV3QmFzZSkKIAogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUlzRm9jdXNlZChXZWJL
aXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RF
KQorICAgIC8vIFh2ZmIgZG9lc24ndCBzdXBwb3J0IHRvcGxldmVsIGZvY3VzLCBzbyB0aGUgdmll
dyBpcyBuZXZlciBmb2N1c2VkLiBXZSBjb25zaWRlciBpdCB0byB0YmUgZm9jdXNlZCB3aGVuCisg
ICAgLy8gaXRzIHdpbmRvdyBpcyBtYXJrZWQgYXMgYWN0aXZlLgorICAgIGlmIChXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKKyAgICAgICAgaWYgKCFnX3N0cmNtcDAoZ19nZXRlbnYo
IlVOREVSX1hWRkIiKSwgInllcyIpICYmIHdlYlZpZXdCYXNlLT5wcml2LT5hY3Rpdml0eVN0YXRl
LmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlKSkKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiB3ZWJWaWV3QmFzZS0+cHJpdi0+
YWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTczYWQz
NDE1ZDI1MDE4YzZhZDMyMGI3YjhmYzljZTc5MmJlNmU4ZS4uNGYyMWU5MzM0YjUzYzA5ZTQ5NTg0
NjQzOGM1YTk2M2U5YjNmYzhiNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAxLTE0ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmZvcmNlIGZvY3VzIGNoZWNrIGZvciBn
ZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNTAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAg
ICBEaXNhYmxlIGZvY3VzIGZsYWcgZm9yIHRlc3RpbmcgdG8gbm90IHJlcXVpcmUgdG8gZm9jdXMg
dGhlIHdpbmRvdy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmluaXRpYWxpemVNZWRpYUNhcHR1
cmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRvQ2FwdHVyZU11dGVU
ZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjppbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbik6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlh
U3RyZWFtVHJhY2tEZXRhY2hlZC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJv
Y2Vzcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
R2V0RGlzcGxheU1lZGlhVGVzdDo6U2V0VXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW06CisgICAgICAgIChNZWRpYUNhcHR1cmVE
aXNhYmxlZFRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbToKKyAgICAgICAgKE1lZGlh
Q2FwdHVyZVNpbXVsYXRlRmFpbGVkU2FuZGJveDo6U2V0VXApOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwOgorICAgICAgICAodGVzdFdl
YlZpZXdVc2VyTWVkaWFFbnVtZXJhdGVEZXZpY2VzUGVybWlzc2lvbkNoZWNrKToKKyAgICAgICAg
KHRlc3RXZWJWaWV3VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKHRlc3RX
ZWJWaWV3QXVkaW9Pbmx5VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKToKKwogMjAyMi0wMS0x
NCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHdheSB0
byBlbmNvZGUgQ1RBUCBjb21tYW5kcyB3aXRoIG9ubHkgdGhlIGhhc2ggb2YgQ2xpZW50RGF0YUpT
T04KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJN
ZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5t
bQppbmRleCA5MzYyZWYzNTdlOWIwODYxMDM0ZmJlYzMzOGNiMTk4YTE5MWI2YmZhLi42NWJmYmRl
ZjA4MjI0NjA4MjNjZmQ2MWFhMzcyODc0OTViMmIxZGE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC0xNTIsMTQgKzE1MiwyMSBA
QCBib29sIHdhaXRVbnRpbENhcHR1cmVTdGF0ZShXS1dlYlZpZXcgKndlYlZpZXcsIF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBleAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBk
b0NhcHR1cmVNdXRlVGVzdChjb25zdCBGdW5jdGlvbjx2b2lkKFRlc3RXS1dlYlZpZXcqLCBfV0tN
ZWRpYU11dGVkU3RhdGUpPiYgc2V0UGFnZU11dGVkKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1l
ZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oV0tXZWJWaWV3Q29uZmlndXJhdGlvbiogY29uZmlndXJh
dGlvbikKIHsKLSAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBh
ZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
YXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKworICAgIGNv
bmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMu
X21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMu
X21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVz
ZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKK30KKwordm9pZCBkb0NhcHR1cmVNdXRlVGVzdChj
b25zdCBGdW5jdGlvbjx2b2lkKFRlc3RXS1dlYlZpZXcqLCBfV0tNZWRpYU11dGVkU3RhdGUpPiYg
c2V0UGFnZU11dGVkKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBwcm9jZXNzUG9vbENv
bmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9u
LmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29s
Q29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFD
YXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMjM1LDEwICsyNDIsNyBAQCBURVNUKFdlYktpdDIsIENh
cHR1cmVNdXRlQVBJKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENv
bmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwot
ICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBO
TzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwot
ICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGlu
aXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWcuZ2V0
KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CkBAIC0zNDAsMTAgKzM0NCw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3Ap
CiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHRO
UyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8g
cHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5j
ZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZp
Z3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5j
ZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlh
Q2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAKICAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwpAQCAt
Mzc4LDEwICszNzksNyBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVJbmRpY2F0b3JEZWxheSkKIHsK
ICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtb
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5f
bWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJh
dGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5f
bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0
dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8gbWVzc2Fn
ZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAg
ICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBAIC00MTQs
MTAgKzQxMiw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5V2hlbkNsb3Nl
ZCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9w
dE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJl
bmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJl
bmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVk
aWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGF1dG8g
bWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKICAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CkBA
IC00NDIsMTAgKzQzNyw3IEBAIFRFU1QoV2ViS2l0MiwgR2V0Q2FwYWJpbGl0aWVzKQogewogICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIHByZWZlcmVu
Y2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9u
LmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVD
b25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFu
ZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtb
Y29uZmlndXJhdGlvbi5nZXQoKSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAgLTQ3MywxMCAr
NDY1LDcgQEAgVEVTVChXZWJLaXQsIEludGVycnVwdGlvbkJldHdlZW5TYW1lUHJvY2Vzc1BhZ2Vz
KQogICAgIFtjb25maWd1cmF0aW9uIHNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2s6WUVTXTsK
ICNlbmRpZgogCi0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdl
dCgpKTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250
cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1l
OkAiZ3VtIl07CkBAIC01MzIsMTAgKzUyMSw3IEBAIFRFU1QoV2ViS2l0LCBQZXJtaXNzaW9uRGVs
ZWdhdGVQYXJhbWV0ZXJzKQogICAgIFtjb25maWd1cmF0aW9uIHNldEFsbG93c0lubGluZU1lZGlh
UGxheWJhY2s6WUVTXTsKICNlbmRpZgogCi0gICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFD
YXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihj
b25maWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRk
VG9XaW5kb3c6WUVTXSk7CkBAIC01NTUsMTAgKzU0MSw3IEBAIFRFU1QoV2ViS2l0LCBXZWJBdWRp
b0FuZEdldFVzZXJNZWRpYSkKICAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0g
KFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOwogICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
cHJvY2Vzc1Bvb2wuX2NvbmZpZ3VyYXRpb24uc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mg
PSBOTzsKIAotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
biA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZ
RVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7Cisg
ICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQo
KSk7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5k
bGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uLmdldCgpIHVzZXJDb250ZW50
Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkg
bmFtZTpAImd1bSJdOwpAQCAtNTkxLDkgKzU3NCw3IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQ
cm9jZXNzV2hpbGVDYXB0dXJpbmcpCiAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJs
ZWQ6WUVTIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KIAotICAgIHBy
ZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAg
ICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIGluaXRpYWxp
emVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCiAgICAg
YXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdlSGFuZGxlciBhbGxvY10g
aW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNj
cmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJndW0iXTsKQEAg
LTY2Niw5ICs2NDcsNyBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc0FmdGVyQXBwbHlp
bmdDb25zdHJhaW50cykKICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6
QCJDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkIl0pCiAgICAgICAgICAgICBbcHJlZmVy
ZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZlYXR1cmVdOwog
ICAgIH0KLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
KyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdl
dCgpKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazpZRVNdOwpAQCAtNzQ2LDkgKzcyNSw3IEBAIFRFU1Qo
V2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmdBbmRDYWxsaW5nKQogICAgICAg
ICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JGZWF0dXJlOmZlYXR1cmVdOwog
ICAgIH0KIAotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVk
ID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVT
OworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24u
Z2V0KCkpOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHVU1NZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENv
bnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5h
bWU6QCJndW0iXTsKQEAgLTg2NywxMCArODQ0LDcgQEAgVEVTVChXZWJLaXQsIEF1dG9wbGF5T25W
aXNpYmlsaXR5Q2hhbmdlKQogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VN
TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNv
bnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5n
ZXQoKSBuYW1lOkAiZ3VtIl07CiAKLSAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1
cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZp
Z3VyYXRpb24uZ2V0KCkpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dp
bmRvdzpZRVNdKTsKQEAgLTg5OCw2ICs4NzIsNzAgQEAgVEVTVChXZWJLaXQsIEF1dG9wbGF5T25W
aXNpYmlsaXR5Q2hhbmdlKQogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb1Rlc3QoKSJdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9
CisKK3N0YXRpYyBjb25zdCBjaGFyKiBnZXRVc2VyTWVkaWFGb2N1c1RleHQgPSBSIkRPQ0RPQ0RP
QygKKzxodG1sPjxib2R5PgorPHNjcmlwdD4KK29ubG9hZCA9ICgpID0+IHsKKyAgICBkb2N1bWVu
dC5vbnZpc2liaWxpdHljaGFuZ2UgPSAoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5ndW0ucG9zdE1lc3NhZ2UoIlBBU1MiKTsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5ndW0ucG9zdE1lc3NhZ2UoIlBBU1MiKTsKK30KKworZnVuY3Rpb24gY2FwdHVyZSgpCit7
CisgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0p
LnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
Z3VtLnBvc3RNZXNzYWdlKGRvY3VtZW50Lmhhc0ZvY3VzKCkgPyAiUEFTUyIgOiAiRkFJTCIpOwor
ICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+PC9odG1sPgorKURPQ0RPQ0RPQyI7CisKK1RF
U1QoV2ViS2l0LCBHZXRVc2VyTWVkaWFGb2N1cykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQ
U2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IGdldFVzZXJNZWRpYUZvY3VzVGV4dCB9
IH0KKyAgICB9LCBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cCwgbnVs
bHB0ciwgbnVsbHB0ciwgOTA5MCk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb250
ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0
ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQo
KTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAi
Z3VtIl07CisKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1
cmF0aW9uLmdldCgpKTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzID0g
WUVTOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAz
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsK
KworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0
ZS5nZXQoKTsKKworICAgIC8vIExvYWQgcGFnZS4KKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpz
ZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
CisgICAgLy8gTWluaW1pemUKKyAgICBkb25lID0gZmFsc2U7CisgICAgYXV0byAqaG9zdFdpbmRv
dyA9IFt3ZWJWaWV3IGhvc3RXaW5kb3ddOworICAgIFtob3N0V2luZG93IG1pbmlhdHVyaXplOmhv
c3RXaW5kb3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAv
LyBXZSBjYWxsIGNhcHR1cmUgd2hpbGUgbWluaW1pemluZy4KKyAgICBkb25lID0gZmFsc2U7Cisg
ICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1cmUoKSJdOwor
CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgZ2V0VXNlck1lZGlhIGRvZXMgbm90IHJlc29sdmUgdG9v
IHNvb24uCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoMTAwKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZG9uZSk7CisKKyAgICBbaG9zdFdpbmRvdyBkZW1pbmlhdHVyaXplOmhvc3RX
aW5kb3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQogCiBURVNUKFdlYktpdCwgSW52YWxpZERldmljZUlkSGFzaFNhbHRz
KQpAQCAtOTI0LDEwICs5NjIsNyBAQCBURVNUKFdlYktpdCwgSW52YWxpZERldmljZUlkSGFzaFNh
bHRzKQogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07Ci0g
ICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBj
b25maWd1cmF0aW9uLmdldCgpLl9tZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwotICAgIHByZWZl
cmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBw
cmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFs
aXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1VzZXJNZWRpYUNhcHR1cmVV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQppbmRleCAxMmNhNzQ2MmQ1YWJjZGJjZGQx
MThlZTYzYmU1ZjM1ODExOTVjNjk5Li5hNzYwOWQzNDUyZTNjZDA4OGUzMjY3MGNhZDYyYTcwMzFl
NDg5MjE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBi
b29sIHNob3VsZFJlbGVhc2VJbkVudW1lcmF0ZSA9IGZhbHNlOwogCiBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CiAKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0
aW9uKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24qIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBw
cmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKworICAgIGNvbmZpZ3Vy
YXRpb24uX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9t
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2Vy
TWVkaWFSZXF1aXJlc0ZvY3VzID0gTk87Cit9CisKIFRFU1QoV2ViS2l0LCBOYXZpZ2F0ZUR1cmlu
Z0dldFVzZXJNZWRpYVByb21wdCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtODgsMTAgKzk4LDcg
QEAgVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVyaW5nRGV2aWNlRW51bWVyYXRpb24pCiB7CiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5j
ZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxheWVk
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOwpAQCAtMTE3LDEwICsxMjQsNyBAQCBURVNUKFdlYktpdCwgRGVmYXVsdERl
dmljZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3Vy
YXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFs
bG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtb
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVmZXJlbmNlcy5f
bWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgY29uZmlndXJh
dGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5f
bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBpbml0aWFsaXplTWVkaWFDYXB0
dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0aW9uV2hpbGVHZXRVc2VyTWVkaWFQcm9tcHREaXNw
bGF5ZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xNDcsMTAgKzE1MSw3IEBAIFRFU1QoV2ViS2l0LCBEZXZp
Y2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0
aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5n
ZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVy
ZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVy
ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlvbldoaWxlR2V0VXNlck1lZGlhUHJvbXB0RGlzcGxh
eWVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6
ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQppbmRleCAwN2Y1N2QwMTI1ZTA0OTkyMDE1
YjMwZjE2ODZkZGEzZmUyMDUwZmFlLi43YWNkMzY4Njc1NDdjNWJmMGUxNDE3NjU1MDMwM2M1NjBj
MWU3OTdlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWFSZXByb21wdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQpAQCAtNjAsMTQgKzYwLDIyIEBACiAKIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKIAorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNv
bmZpZ3VyYXRpb24oV0tXZWJWaWV3Q29uZmlndXJhdGlvbiogY29uZmlndXJhdGlvbikKK3sKKyAg
ICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAg
Y29uZmlndXJhdGlvbi5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNl
cy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgcHJlZmVy
ZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMu
X2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBOTzsKK30KKwogVEVTVChXZWJLaXQyLCBHZXRV
c2VyTWVkaWFSZXByb21wdCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CiAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XTsKLSAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9u
ID0gTk87Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlF
UzsKLSAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAg
ICBpbml0aWFsaXplTWVkaWFDYXB0dXJlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgp
KTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbR2V0VXNlck1lZGlhUmVwcm9tcHRUZXN0
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnBy
b2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tV
c2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNl
dFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTAwLDEwICsxMDgsNyBAQCBURVNUKFdl
YktpdDIsIEdldFVzZXJNZWRpYVJlcHJvbXB0QWZ0ZXJBdWRpb1ZpZGVvQmVpbmdEZW5pZWQpCiB7
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhb
W19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJl
ZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMu
X21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMu
X21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2Fw
dHVyZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVJlcHJvbXB0VGVzdFZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQo
KV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbZGVsZWdhdGUgc2V0QXVkaW9EZWNpc2lvbjpXS1Bl
cm1pc3Npb25EZWNpc2lvbkdyYW50XTsKQEAgLTEyMywxMCArMTI4LDcgQEAgVEVTVChXZWJLaXQy
LCBNdWx0aXBsZUdldFVzZXJNZWRpYVN5bmNocm9ub3VzbHkpCiB7CiAgICAgYXV0byBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlh
Q2FwdHVyZUVuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgPSBZRVM7CisgICAgaW5pdGlhbGl6ZU1lZGlhQ2FwdHVyZUNvbmZpZ3VyYXRpb24o
Y29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0dldFVz
ZXJNZWRpYVJlcHJvbXB0VGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRh
Y2hlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZC5tbQppbmRleCA4NzM2ZWE0NjQ5ZDJiNGFhN2ExMmM2Y2UwNWU3MmExZGM3ZDM0
ZTk4Li45NzJiYTZhZDFiYjc3YmQxNDdhN2FhZTQ5OWRlYmNlYTYzN2JjZmE4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkLm1tCkBAIC02MSw2ICs2MSw3IEBAIFRFU1QoV2ViS2l0LCBNZWRpYVN0cmVh
bVRyYWNrRGV0YWNoZWQpCiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POwogICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVy
ZUVuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBO
TzsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmln
LmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tNZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgd2ViVmlldy5nZXQoKS5VSURl
bGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvVXNlck1lZGlhLmNwcAppbmRleCA1NzUxOTczYTU4ODc4OWU0ZmU5Zjg2ZTk1NTM1ZWI1
NWUyZmQ3ZTEzLi5iMjM0YzI4YjhkMTZiYTMwNjgxMzEwZDdhNTY0MThkOTlmODI4OGY5IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKQEAgLTc3
LDYgKzc3LDcgQEAgVEVTVChXZWJLaXQsIFVzZXJNZWRpYUJhc2ljKQogICAgIFdLUHJlZmVyZW5j
ZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmlj
ZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0R2V0VXNl
ck1lZGlhUmVxdWlyZXNGb2N1cyhwcmVmZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQYWdlVUlD
bGllbnRWNiB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGll
bnQpKTsKQEAgLTExMyw2ICsxMTQsNyBAQCBURVNUKFdlYktpdCwgT25EZXZpY2VDaGFuZ2VDcmFz
aCkKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2Vz
U2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQ
cmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMocHJlZmVyZW5jZXMsIGZhbHNl
KTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVu
dCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CkBAIC0xNzMsNiArMTc1LDcgQEAgVEVTVChXZWJLaXQs
IEVudW1lcmF0ZURldmljZXNDcmFzaCkKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNl
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9j
dXMocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7
CiAgICAgLy8gV2Ugd2FudCB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4gdG8gYmUgbnVsbC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQXVkaW9CdWZmZXJTaXplLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KaW5kZXggNTMzZGUxZWM0ZDZkYTQwMDVkOThh
Nzk4Y2U5NzZhNWQ5ZTAyMzQzOS4uOWRkNjI5Y2E4YjY0Y2E2MGRjZTk0ZWU4YzBmYzhhZDY3YmFm
MzEyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9B
dWRpb0J1ZmZlclNpemUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9BdWRpb0J1ZmZlclNpemUubW0KQEAgLTcyLDYgKzcyLDcgQEAgVEVTVChXZWJLaXQsIEF1
ZGlvQnVmZmVyU2l6ZSkKICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdOwogICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNv
bm5lY3Rpb24gPSBOTzsKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5P
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQpp
bmRleCAyZjEwNjk0NDRhN2UxODcwY2QyZGE5MmJhZDc5Y2IyODljN2QwYjQ2Li45MjNjMzgzMzhj
MjdkMWRkNjA4ODBiM2E4OGMyYjQwNjk1OWFhNDkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCkBAIC02OTYsNiArNjk2LDcg
QEAgVEVTVChHUFVQcm9jZXNzLCBFeGl0c1VuZGVyTWVtb3J5UHJlc3N1cmVXZWJSVENDYXNlKQog
ICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9u
ID0gTk87CiAgICAgICAgIGNvbmZpZ3VyYXRpb24uX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7
CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOwor
ICAgICAgICBwcmVmZXJlbmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogICAg
IH0pOwogfQogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCmlu
ZGV4IGRlMDUwMzAzN2Y2YzlhYTJkYWJjNTI5MDMxNWM4YzFiMmMyNGM1NTkuLmU3YzdkNjJjZDBj
YjJkYTFiZGY3MWU3NmNmOTBjODU1M2IzYmFkNmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCkBAIC0xMDQs
MTAgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURl
dmljZXNFbmFibGVkID0gWUVTOwogICAgICAgICBwcmVmZXJlbmNlcy5fc2NyZWVuQ2FwdHVyZUVu
YWJsZWQgPSBZRVM7CiAKLSAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5k
b3c6WUVTXSk7CiAKICAgICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW0dldERpc3BsYXlN
ZWRpYVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICAgICAgbV93ZWJWaWV3LmdldCgpLlVJ
RGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUuZ2V0KCk7CisgICAgICAgIFttX3dlYlZpZXcgZm9jdXNd
OwogCiAgICAgICAgIFttX3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAi
Z2V0RGlzcGxheU1lZGlhIl07CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
aW5kZXggYzUzMzgwY2IxMjlmM2I0MzNiMzkwYTNmZGU4ZDc3YWRkZjYyZDI5Ny4uYzkyMmI2M2Ey
NzE2ZGFlZjQ2MTIxZWQzNzczYzdmZDQ2OTUxNTMxOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tCkBAIC02ODI4LDYgKzY4MjgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBHZXRVc2Vy
TWVkaWFDYXB0dXJlU3RhdGUpCiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbiA9IE5POwogICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLl9t
ZWRpYUNhcHR1cmVFbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURl
dmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9nZXRVc2VyTWVkaWFSZXF1aXJl
c0ZvY3VzID0gTk87CiAKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6
cHJvY2Vzc1Bvb2wuZ2V0KCldOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCA0MGMwOGUzNWE2YTVk
NmVjNDczZDdmYTM2MzAwZTAwYWUyY2RjY2MwLi4yYzE2NDRkMWI2OGFmNmQwMjYyMzJkNjNmNDYy
NTIzOWZiMGI3MGUyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTE2Miw2ICsxNjIsNyBAQCBU
RVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JXaGVuU3RhcnRpbmdBdWRpb0NhcHR1
cmVPbkRpZmZlcmVudFBhZ2UpCiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0Vu
YWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9
IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX2dldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMgPSBO
TzsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gZmlyc3RXZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW2ZpcnN0V2ViVmll
dyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCmluZGV4
IDU3NjAxYzcxOWViODAwNmY3MzUxYmRhMjAwOGU2ZTA2ZThiMDI1ODEuLjE3NzlmYWFkMzY5MDg3
NDJiNGFkN2MxOTcwNzBjM2M1N2NmMjY5ZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQpAQCAtODIs
NiArODIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbbV93ZWJWaWV3
IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzOwogICAgICAgICBwcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2Fw
dHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgICAgICBwcmVmZXJlbmNlcy5f
Z2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogCiAgICAgICAgIG1fdWlEZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tVc2VyTWVkaWFVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFtt
X3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTptX3VpRGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZh
aWxlZFNhbmRib3gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQppbmRleCAyNGRjMzUxMmY4NDBjNWVjMmUx
YTg5MGViM2U4MjE5YmYzYzMxNWQyLi5kNzNhMWFlZjgxZTMxMzYxNThhNzIwYTJkZjJiZTIzM2Fh
OGYyNzk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQpA
QCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbbV93
ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzOwogICAgICAgICBwcmVmZXJlbmNlcy5f
bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICAgICAgcHJlZmVyZW5jZXMuX21l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgICAgICBwcmVmZXJl
bmNlcy5fZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cyA9IE5POwogCiAgICAgICAgIG1fdWlEZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tTaW11bGF0ZUZhaWxlZFNhbmRib3hVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CiAgICAgICAgIFttX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTptX3VpRGVsZWdhdGUuZ2V0
KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RVSUNsaWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFVJQ2xpZW50LmNwcAppbmRleCAyOThlNzVhZDUwM2M5MWU2NGE0MDJjNmRhM2I4NzBkZjMzNWI3
MjFlLi4yODRmODA0YjY0MTA1Yjg0YjY3NjI4Mzc4Y2U4Y2YwYzE5NzJhY2Y4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNw
cApAQCAtMTAwMiw2ICsxMDAyLDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFF
bnVtZXJhdGVEZXZpY2VzUGVybWlzc2lvbkNoZWNrKFVJQ2xpZW50VGVzdCogdGUKICAgICBnYm9v
bGVhbiBlbmFibGVkID0gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNl
dHRpbmdzKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0
dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBGQUxTRSk7CisgICAgd2Via2l0U2V0dGluZ3NTZXRH
ZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgd2Via2l0X3Nl
dHRpbmdzX3NldF9lbmFibGVfbW9ja19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIFRSVUUpOwog
CiAgICAgdGVzdC0+c2hvd0luV2luZG93KCk7CkBAIC0xMDM3LDYgKzEwMzgsNyBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0ZURldmljZXNQZXJtaXNzaW9uQ2hlY2so
VUlDbGllbnRUZXN0KiB0ZQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3N0
cmVhbShzZXR0aW5ncywgZW5hYmxlZCk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVf
bW9ja19jYXB0dXJlX2RldmljZXMoc2V0dGluZ3MsIEZBTFNFKTsKICAgICB3ZWJraXRTZXR0aW5n
c1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihzZXR0aW5ncywgVFJVRSk7
CisgICAgd2Via2l0U2V0dGluZ3NTZXRHZXRVc2VyTWVkaWFSZXF1aXJlc0ZvY3VzKHNldHRpbmdz
LCBUUlVFKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQpAQCAtMTA0Niw2ICsx
MDQ4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2kKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9tZWRpYV9zdHJlYW0oc2V0dGluZ3MsIFRSVUUpOwogICAgIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKHNldHRpbmdzLCBUUlVFKTsKICAgICB3
ZWJraXRTZXR0aW5nc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihzZXR0
aW5ncywgRkFMU0UpOworICAgIHdlYmtpdFNldHRpbmdzU2V0R2V0VXNlck1lZGlhUmVxdWlyZXNG
b2N1cyhzZXR0aW5ncywgRkFMU0UpOwogCiAgICAgdGVzdC0+c2hvd0luV2luZG93KCk7CiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHVzZXJNZWRpYVJlcXVlc3RIVE1MID0gIjxodG1sPiIKQEAgLTEx
MDUsNiArMTEwOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pCiAgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRpbmdzLCBlbmFibGVkKTsKICAgICB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgRkFM
U0UpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRp
YVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRSVUUpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2Vi
Vmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZXIpCkBAIC0xMTE0LDYgKzExMTgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2ViVmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3Qq
IHRlc3QsCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKHNldHRp
bmdzLCBUUlVFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2NrX2NhcHR1cmVf
ZGV2aWNlcyhzZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1
cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oc2V0dGluZ3MsIEZBTFNFKTsKKyAgICB3ZWJraXRT
ZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIEZBTFNFKTsKIAog
ICAgIHRlc3QtPnNob3dJbldpbmRvdygpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1c2VyTWVk
aWFSZXF1ZXN0SFRNTCA9ICI8aHRtbD4iCkBAIC0xMTQ0LDYgKzExNDksNyBAQCBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld0F1ZGlvT25seVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVu
dFRlc3QqIHRlc3QsCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFt
KHNldHRpbmdzLCBlbmFibGVkKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tb2Nr
X2NhcHR1cmVfZGV2aWNlcyhzZXR0aW5ncywgRkFMU0UpOwogICAgIHdlYmtpdFNldHRpbmdzU2V0
TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHNldHRpbmdzLCBUUlVFKTsKKyAg
ICB3ZWJraXRTZXR0aW5nc1NldEdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMoc2V0dGluZ3MsIFRS
VUUpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0Rpc3BsYXlVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVl
M2EwYmY0OWQ3Mzk5YjU1ZmM5NGY0ZTQzNTdiY2MwZDdkOWVmNmQuLjg3OTk0ZWM0MGIyMmQxZWUz
YjQ0MGU5MTIwMzllN2VlNWYxOTAzZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMS0x
NCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBm
b2N1cyBjaGVjayBmb3IgZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwMjYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENh
cmxzb24uCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2Vy
TWVkaWEtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAxLTE0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbOmhhcygpIHBzZXVkby1jbGFzc10gQXZvaWQgTyhuXjIp
IGluIHN0eWxlIGludmFsaWRhdGlvbiB3aXRoIHJlcGVhdGVkIERPTSBtdXRhdGlvbnMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJN
ZWRpYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CmluZGV4IDIyNjU3OGY2ZjBjZjYwZWNiMTRk
MzBjZjNmODVlMmVjMDYzZDUwNDYuLjQ2OTYyNzFkOWVjMDY3NDU0Yzg2OTAxNjY4ZjU5ODUwMGI1
NTkyMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dApAQCAtNiw4ICs2
LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgdHlwZW9mIG5hdmlnYXRvci5tZWRp
YURldmljZXMud2Via2l0R2V0VXNlck1lZGlhIGlzICd1bmRlZmluZWQnCiAKIFBBU1MgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdFN0cmVh
bTEpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IKLVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe30pIHJlamVjdGVk
IHdpdGggZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSgpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogTm8g
Y29uc3RyYWludHMgcHJvdmlkZWQKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe30pIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogTm8gY29uc3RyYWludHMg
cHJvdmlkZWQKIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEuYXBwbHko
dW5kZWZpbmVkKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwg
TWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBvbiBpbnN0YW5jZXMgb2YgTWVkaWFEZXZpY2VzCiBQ
QVNTIFN0cmVhbSAxIGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVu
Z3RoIGlzIDEK
</data>

          </attachment>
      

    </bug>

</bugzilla>